DB

[DB] 데이터베이스 키(Key)의 개념 / 종류

연듀 2024. 1. 31. 21:04

 

 

관계형 데이터베이스에서 키(key)는 데이터베이스 테이블에서 각 행을 유일하게 식별하는 데 사용되는 필드나 필드의 조합을 말한다.

 

 

 

 

 

기본키(Primary key)

유일성과 최소성을 만족하는 키이다.

중복된 값을 가질 수 없다.

Null 값을 가질 수 없다.

 

유일성: 하나의 키 값으로 하나의 튜플만을 유일하게 식별

최소성: 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성

 

 

ex) 사용자 테이블에서의 사용자 ID

 

 

후보키(Candidate key)

기본키가 될 수 있는 후보들이며 유일성과 최소성을 모두 만족해야 한다.

후보키의 조합 중에 기본키를 선택한다. 

 

 

ex) 사용자 테이블의 이메일 주소, 전화번호

 

 

대체키(Alternate key)

후보키가 둘 이상일 때 기본키로 선택되지 않고 남은 키이다.

 

 

ex) 사용자 테이블의 전화번호(만약 이메일이 기본키인 경우)

 

 

 

슈퍼키(Super key)

각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 모든 키의 조합이다. 

한가지 속성일 땐 key가 될 수 없지만 여러 속성이 합쳐 key의 속성을 가진다. 

최소성은 만족하지 못한다. 

 

ex) 사용자 테이블의 사용자 ID + 이메일 주소

 

 

외래키(Foreign Key)

다른 테이블의 기본키를 그대로 참조하여 개체와의 관계를 식별하는 데 사용한다.

참조하는 테이블의 기본키와 동일한 값이거나 Null 이어야 한다. 

 

ex) 주문 테이블의 사용자 ID => 사용자 테이블의 사용자 ID를 참조

 

 

자연키

비즈니스 도메인에서 가져온 실제 데이터의 키이다.

 

ex) 사람의 주민등록번호, 책의 ISBN

 

인조키

인위적으로 id 부여해 생성된 키이다. 

  • Oracle: sequence, MySQL: auto increment
  • 자연키와 대조적으로 변하지 않는다.
  • 보통 인조키를 기본키로 설정한다.

 

ex) 사용자 테이블에서 자동 증가하는 ID