Today's special moments become memories of tomorrow.

Database

기본키, 후보키, 슈퍼키, 대체키

lotus lee 2021. 3. 30. 10:55

 

 

후보키(Candidate Key)

튜플을 유일하게 식별할 수 있는 속성의 부분집합이다.

후보키는 유일성최소성을 만족한다.

 

  - 유일성 : 튜플을 유일하게 식별할 수 있음을 의미한다.

  - 최소성 : 튜플을 식별하기 위해서 꼭 필요한 속성들로 구성되어 있어야 한다.

 

위의 [학생] 테이블에서 각 튜플을 유일하게 식별할 수 있는 속성은 주민등록번호, 학번, 전화번호다.

주민등록번호, 학번, 전화번호 모두 사람마다 가지고 있는 고유한 정보이기 때문이다. 따라서 위의 테이블에서 후보키가 될 수 있는 속성은 주민등록번호, 학번, 전화번호이다.

 

 

기본키(Primary Key)

후보키 중에서 튜플을 대표하는 키를 하나 선택하여 기본키라 한다.

기본키는 유일성최소성을 만족하며, NULL값을 허용하지 않는다.

 

[학생] 테이블에서 후보키는 주민등록번호, 학번, 전화번호가 될 수 있었다. 기본키는 이 후보키들 중에서 하나를 선택하여 설정할 수 있다. 즉, 주민등록번호가 기본키가 될 수도 있고, 학번 혹은 전화번호가 기본키가 될 수도 있다.

 

 

대체키(Alternate Key)

후보키에서 기본키를 제외한 나머지 키들을 대체키라고 한다. 즉, 기본키를 선정하고 남은 키가 대체키이다.

후보키 - 기본키 = 대체키

 

만약 [학생] 테이블에서 주민등록번호를 기본키로 선정하면 학번과 전화번호가 대체키가 된다.

학번을 기본키로 선정하면 주민등록번호와 전화번호가 대체키가 된다.

전화번호를 기본키로 선정하면 주민등록번호와 학번이 대체키가 될 것이다.

 

 

슈퍼키(Super Key)

슈퍼키는 유일성은 만족하지만 최소성은 만족하지 않는 키를 의미한다.

 

후보키는 유일성과 최소성을 모두 만족하기 때문에 주민등록번호, 학번, 전화번호 3가지였다.

하지만 슈퍼키는 (주민등록번호), (학번), (전화번호), (주민등록번호, 학번), (주민등록번호, 전화번호), (학번, 전화번호) 등이 있다.

(주민등록번호, 학번), (주민등록번호, 전화번호), (학번, 전화번호)의 경우, 반드시 필요한 속성들로 이루어진 것이 아니기 때문에 최소성을 만족한다고 볼 수 없다. (주민등록번호, 학번) 에서 학번이 빠져도 주민등록번호만으로 튜플을 식별할 수 있기 때문이다.