데이터베이스 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성입니다. 그러므로 각각의 튜플에 포함된 속성들 중 어느 하나 이상은 값이 달라져야 한다. (한 행이 같은 중복값이 없어야 한다.)
튜플: 릴레이션을 구성하는 각각의 행, 속성의 모임. 파일 구조에서는 레코드와 같은 개념
여러 후보키 중 하나를 선정하며 대표로 삼는 키

유일성: 테이블 내의 모든 튜플을 유일하게 식별, 중복된 값이 X
최소성: 꼭 필요한 속성만 포함되어야 한다. → 후보키에서 어떤 속성을 빼면 유일성 조건을 만족하지 못해야 한다. 예를 들어, (고객번호, 도서번호)가 후보키인데, 도서번호만으로도 유일하다면 → 고객번호는 불필요한 속성이라 최소성에 위배된다.
기본키로 선정되지 않은 후보키
튜플을 유일하게 식별할 수 있는 속성의 최소 집합

위와 같이 주문 릴레이션에서 단일 속성으로 튜플을 유일하게 식별하는 것은 불가능하다. 그래서 (고객번호 + 도서번호) 2개의 속성을 합한게 후보키가 되며 복합키(Composite Key)라고 부른다.
여기서 주문번호와 같은 값이 있었다면 단일 후보키가 되고 기본키로 설정할 수 있다.
튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

이름, 주소는 동일한 값이 올 수 있고, 핸드폰은 없을 수도 있음.
그래서 슈퍼키가 될 수 있는 건 (주민번호), (주민번호, 이름), (고객번호), 등… 이다.

슈퍼키 > 후보키 > 기본키 | 대체키
다른 릴레이션의 기본키를 참조하는 속성
