728x90
반응형
SMALL
슈퍼키 (Super Key)
- 유일성만 만족(한 행을 유일하게 식별 가능)
- 최소일 필요는 없음 → 불필요한 속성이 포함되어도 됨.
후보키 (Candidate Key)
- 유일성 + 최소성 모두 만족
- 더 이상 뺄 수 없는(불필요한 속성이 없는) 최소 식별자 집합.
기본키 (Primary Key, PK)
- 후보키 중 선택된 키 (NULL/중복 금지).
대체키 (Alternate Key)
- 후보키 중 기본키로 선택되지 않은 나머지 후보키.
한 줄 요약
슈퍼키 ⊇ 후보키
- 후보키 = 기본키 + 대체키
대리키 (Surrogate Key / 인공키)
- 실제 데이터와 무관하게 시스템이 인위적으로 부여한 식별자
(보통 일련번호, 자동 증가 ID 등) - 특징:
- 의미를 가지지 않음 (업무적 속성과 독립)
- 데이터 변경 시에도 안정적 (업무 속성이 변해도 ID는 변하지 않음)
- 데이터베이스 내부적으로 관리가 쉬움
예시: 학생(학번, 성명, 주민등록번호, 학과)
| 학번 | 주민등록번호 | 성명 | 학과 |
| 1 | 123456-789456 | 홍길동 | 컴퓨터학과 |
| 2 | 456789-123456 | 김상순 | 물리학과 |
- 학번: 학교에서 유일
- 주민등록번호: 사람마다 유일
- 성명, 학과: 단독으론 유일 아님
1) 슈퍼키 예시
- {학번}, {주민등록번호} ← 유일성 만족
- {학번, 성명}, {학번, 학과}, {학번, 성명, 학과}, {주민등록번호, 학과} …
- 유일성은 여전히 만족(학번/주민번호가 포함되어 있으니까)
- 하지만 불필요한 속성이 섞여 있어 최소성은 위배 → “슈퍼키는 맞지만 후보키는 아님”
2) 후보키
- {학번}, {주민등록번호}
- 둘 다 유일 + 최소
- {학번, 성명}처럼 더 큰 집합은 후보키가 아님(학번 하나만으로 식별 가능하므로 최소성 위배)
3) 기본키/대체키 선정
- 기본키(PK): 예를 들어 학번을 선택
- 대체키(AK): 주민등록번호 (후보키지만 PK로 선택되지 않은 키)

728x90
반응형
LIST