1. Super key
Super key는 데이터에 관계에서 tuple을 유일하게 식별할 수 있는 속성의 집합이다.
2. Candidate key
Candidate key는 Super key 중 minimal한 집합을 의미한다. 여기서 minimal이란 속성의 개수가 적다는 것을 의미하는 것이 아니다. minimal은 key의 unique를 유지하면서 가장 적은 속성을 의미한다. 예를 들어 아래와 같은 예시가 있다고 하자.
- MyStudent(student-id, name, national-id, address, phone)
여기에서 student-id와 national-id는 학생들을 구별할 수 있는 unique한 키다.
이 때 나올 수 있는 Super key는
- (student-id), (student-id, name), (studient-id, name, address)
- (national-id), (national-id, name), (national-id, address, phone)
- (student-id, national-id), (student-id, national-id, name)... 등이 있다.
이 중 Candidate key가 될 수 있는 것은
- (student-id)
- (national-id)
이다. (Candidate key는 여러 개가 될 수 있다.)
(student-id, national-id)가 Candidate key가 될 수 없는 이유는 minimal하지 않기 때문이다. 다시 말해, student-id와 national-id 중 하나를 없애도 계속 값이 unique하기 때문에 (student-id, national-id)는 Candidate key가 될 수 없다.
3. Primary key
만약 Candidate key가 하나 이상 존재한다면 DB 설계자는 그 중 하나를 Primary key로 지정할 수 있다.
'CS > Database' 카테고리의 다른 글
[DB] 데이터 추상화 레벨, 3단계 스키마 구조, 데이터 독립성 (0) | 2024.04.06 |
---|---|
[DB] 인스턴스(Instance)와 스키마(Schema) (0) | 2024.04.06 |