DB에서 키는 테이블에서 각 레코드를 고유하게 식별하거나, 데이터 무결성을 유지하는데 중요한 역할능 함 (키 - DB의 정합성, 무결성 성능)
| 분류 기준 | 키(Key) 종류 | 정의 (간단하게) |
|---|
| 행 식별 (유일성) | 슈퍼키 (Super Key) | 행을 식별할 수 있는 모든 열의 조합 (최소성 X) |
| 후보 키 (Candidate Key) | 행을 식별할 수 있는 최소한의 열 조합 (PK 후보) |
| 기본 키 (Primary Key, PK) | 후보 키 중 대표로 선택된 단 하나의 키 (NOT NULL, 중복 X) |
| 대체 키 (Alternate Key) | 기본 키로 선택되지 않은 나머지 후보 키 |
| 테이블 관계 | 외래 키 (Foreign Key, FK) | 다른 테이블의 기본 키(PK)를 참조하는 키 (테이블 연결) |
1. 기본키 (Primary Key)
후보 키 중에서 데이터베이스 설계자가 대표로 선택한 단 하나의 키
- 유일성 (Unique): 중복 X
- NOT NULL
- 기본 키 칼럼은 레코드를 고유하게 식별 → 데이터 무결성 유지의 중요 요소
2. 외래키 (Foreign Key)
다른 테이블의 기본 키를 참조 하는 키
- 두 테이블 간의 관계를 정의
- 외래키를 사용하면 참조 무결성을 유지할 수 있으며,
외래키는 참조하는 테이블의 기본 키나 고유 키와 연결됨
- 외래 키가 참조하는 값은 참조되는 테이블에서 존재하는 값이어야 함 (참조 무결성 보장)
- 외래 키 칼럼은 중복 허용
- Null 값 허용 X
3. 후보 키 (Candidate Key)
테이블에서 레코드를 유일하게 식별할 수 있는 키
- 유일성 & 최소성을 만족하는 키 → Null 값 허용 X
- 기본 키는 후보 키 중 하나를 선택한 것
후보 키는 기본 키가 될 수 있는 모든 후보임 (여러 개 일 수 있음)
4. 대체 키 (Alternate Key)
후보 키 중에서 기본 키로 선택되지 않은 나머지 키
- 기본키 외에 레코드를 유일하게 식별할 수 있는 다른 후보 키들
- 대체키도 유일성을 보장하고, Null값 허용 X
5. 슈퍼 키 (Super Key)
테이블의 각 행을 유일하게 식별할 수 있는 하나 이상의 열(Column) 집합
- 슈퍼키는 기본키, 후보키, 대체키 등을 포함한 더 넓은 범위의 키
- 유일성만 만족하면 됨 → 불필요한 열이 포함될 수 있음
- e.g. 학생 테이블
학번 - 주민번호 - 이름
학번 : 슈퍼키
주민번호: 슈퍼키
학번, 이름: 슈퍼키
주민번호, 이름, 학번: 슈퍼키
6. 고유 키 (Unique Key)
테이블의 특정 칼럼이나 칼럼 조합에 대해 중복을 허용하지 않도록 하는 키
- 중복 값을 허용하지 않음
- 하나의 테이블에 여러 개의 고유 키 설정할 수 있음
- Null 값 허용 (기본키와 차이점)