[DB] [2.3] Keys
1. Introduction
- Key는 DB 테이블에서 각 튜플을 유일하게 식별하는 attribute(혹은 집합)를 말한다.
- 즉, 데이터의 무결성을 보장하고, 각 데이터가 중복 없이 구별되도록 도와준다.
2. 키의 종류
2.1. Superkey
- 테이블에서 튜플을 유일하게 식별할 수 있는 attribute들의 집합을 의미한다.
- 하나의 attribute 혹은 여러 attribute를 조합한 것도 Superkey가 될 수 있다.
- 예를 들어, {ID},{ID,name},{ID,dept_name},{ID,name,dept_name,salary} 등등이 해당된다.
2.2. Candidate key
- 최소한의 attribute으로 구성된 Superkey라고 생각하면 된다.
- 불필요한 attribute들이 제거된 상태를 의미한다.
- 예를 들어 {ID}는 가능하지만, {ID,name}은 불가능하다 그 이유는 ID만으로 유일서이 보장되기 때문이다.
- 만약 name과 학과명이 같이있어야 유일성이 보장이 된다고 가정하면,
- {name, dept_name}도 Candidate key라고 볼 수 있다.
2.3. Primary key
- Candidate key들 중에 대표로 선택된 키를 의미한다.
- 중복은 불가능하고, NULL 값을 가질 수 없다는 특징이 있다.
- table에서 단 하나만 존재가능하다.
- {ID}를 Primary key로 설정했다면, 나머지는 Primary key가 될 수 없다.
2.4. Alternate Key
- Candidate key들 중 Primary key로 선택되지 않은 나머지 키들을 의미한다.
- 즉, {ID} 가 아닌, {name,dept_name}이 Alternate key가 된다.
2.5. Foreign Key
- 다른 테이블의 Primary key를 참조하는 attribute을 의미한다.