티스토리 뷰
수퍼키 (Super Key)
- 유일성 O, 최소성 X
- [학생번호] → 학생을 유일하게 결정한다. → 수퍼키 만족
- [이름, 나이, 성별] → 중복되는 학생이 존재할 수 있다. → 수퍼키 만족 X
- [학생번호, 나이, 성별] → 학생을 유일하게 결정한다. → 수퍼키 만족
- 학생번호만으로도 학생을 유일하게 결정할 수 있기 때문에 최소성을 만족하지 않는다.
후보키 (Candidate Key)
- 유일성 O, 최소성 O
- [학생번호] → 학생을 유일하게 결정하면서, 최소의 키를 갖는다. → 후보키 만족
- [학생번호, 나이, 성별] → 학생번호만으로도 학생을 결정할 수 있으므로 최소성을 만족하지 않는다. → 후보키 X
기본키 (Primary Key)
- 일성 O, 최소성 O
- 튜플을 식별할 때 기준이 되는 반드시 필요한 키이다.
- 특징
- NULl을 저장할 수 없다.
- 후보키 중에서 하나를 선정한다.
- 테이블에는 하나의 기본키만 존재한다.
아래 테이블은 학생 ID라는 기본키가 있는데, 유일성과 최소성을 만족한다.
- 유일성 : 학생 ID로 유일한 학생이름을 결정 가능하다.
- 최소성 : 학생 ID만으로 학생이름을 결정할 수 있다.
외래키
- 테이블 간의 관계를 나타내며, 다른 테이블의 기본키를 참조하여 외래키로 사용한다.
왼쪽 테이블에서 student_id 속성을 기본키로 사용하고 있는데, 오른쪽 테이블에서 해당 기본키를 참조하여 외래키로 사용하고 있다.
외래키를 사용하면 데이터 무결성(데이터가 정확한 값을 갖는다)을 보장할 수 있다. 예를 들어, 오른쪽 테이블이 외래 키를 사용하는 것이 아닌 직접 student_id를 관리한다면, 왼쪽 테이블의 student_id 값이 변경되었을 때 오른쪽 테이블의 값이 함께 변경되지 않았을 때 문제가 발생할 수 있다.
대체키 (Alternate Key)
기본키를 제외한 후보키들을 의미한다.