반응형
1️⃣ 슈퍼키(Super Key) – "일단 유일하면 다 슈퍼키"
슈퍼키는 테이블의 튜플(레코드)을 유일하게 식별할 수 있는 컬럼(또는 컬럼들의 집합)을 말합니다.
즉, 겹치지만 않으면 다 슈퍼키입니다.
예를 들어 학생 테이블이 있다고 가정합시다:
학번이름생년월일
2023001 | 홍길동 | 2000-01-01 |
2023002 | 김철수 | 1999-12-31 |
여기서 유일하게 식별 가능한 조합들:
- 학번
- 학번 + 이름
- 학번 + 생년월일
- 학번 + 이름 + 생년월일
이 전부 슈퍼키입니다.
즉, 유일성만 만족하면 다 슈퍼키입니다.
2️⃣ 후보키(Candidate Key) – "진짜 꼭 필요한 것만 남기자"
슈퍼키 중에서 더 이상 뺄 수 없는 최소한의 컬럼 조합, 그게 바로 후보키입니다.
즉, 유일성 + 최소성을 만족하는 키죠.
위 예시에서:
- 학번 → ✅ 유일 + ✅ 최소 → 후보키
- 학번 + 이름 → ✅ 유일하지만 ❌ 최소 아님 → 후보키 탈락
즉, 후보키는 슈퍼키 중에서 가장 날씬한 애들만 골라낸 것입니다.
💡 보통 후보키는 여러 개일 수도 있습니다.
예: 학번, 이메일 둘 다 유일하다면 둘 다 후보키!
3️⃣ 기본키(Primary Key) – "후보 중에서 너로 정했다!"
여러 후보키 중에서 테이블 대표 식별자로 선택된 키가 기본키입니다.
예:
- 후보키1: 학번
- 후보키2: 이메일
→ 여기서 우리는 학번을 기본키로 선택할 수 있습니다.
선택 안 된 후보키는 나중에 대체키(Alternate Key) 라고 부르기도 해요.
슈퍼키는 유일성만을 판별한다.
후보키는 유일성에 최소성까지 판별한다.
반응형
'CS > Database' 카테고리의 다른 글
[데이터베이스] 데이터베이스 정규화 (1NF ~ BCNF) (0) | 2025.05.24 |
---|---|
[데이터베이스] 트랜잭션 고립 수준 (0) | 2022.08.23 |
[Mysql] rownum 활용 (0) | 2022.07.20 |
[데이터베이스] 무결성 제약 조건 (0) | 2022.06.15 |
[데이터 베이스] 제 4 정규형, 제 5 정규형 (0) | 2022.06.13 |