Candidate Key

후보키는 더 줄일 수 없는 최소 슈퍼키다

후보키는 유일성과 최소성을 모두 만족합니다. 속성을 하나라도 뺐을 때 식별력이 깨져야 진짜 후보키입니다.

슈퍼키지만 과함

{student_id, name}

두 속성 조합은 모든 학생을 구분하므로 슈퍼키입니다.

name을 제거하면? {student_id}만으로도 여전히 식별 가능
->
최소 슈퍼키

{student_id}

더 이상 뺄 속성이 없고 유일성도 유지되므로 후보키입니다.

최소성 통과 불필요한 속성이 남아 있지 않습니다.
{student_id}

학번이 모든 튜플을 유일하게 식별하면 후보키입니다.

{email}

이메일이 NOT NULL + UNIQUE로 보장된다면 후보키가 될 수 있습니다.

유일성 X가 모든 튜플을 구분한다 X -> all attributes
최소성 X의 진부분집합은 구분하지 못한다 불필요한 컬럼이 없어야 합니다.
선택 후보키 중 하나를 기본키로 고른다 나머지는 대체키로 관리할 수 있습니다.