키(KEY)는 데이터 베이스 조건에 만족하는 튜플을 찾거나, 순서를 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)이다.
릴레이션을 구성하는 각각의 행을 말하며 속성의 모임으로 구성된다.
파일의 구조에서 레코드와 같은 의미.
카디널리티(Cardinality)또는 기수, 대응수라고 한다.
1.슈퍼 키 : 유일성을 만족하는 키
ex) 학번+이름, 주민등록번호+학번
2.복합 키 : 2개 개이상의 속성(Attribute)를 사용한 키
3.후보 키 : 유일성과 최소성을 만족하는 키. 기본키가 될 수 있는 후보이기 때문에 후보키라고 불린다.
ex) 주민등록번호, 학번
4.기본 키 : 후보 키에서 선택된 키.NULL 값이 들어갈 수 없으며, 기본키로 선택된 속성(Attribite)은 동일한 값이 들어갈 수 없다.
5.대체 키 : 후보키 중에 기본 키로 선택되지 않은 키
6.외래 키 : 어떤 테이블(Relation)간의 기본 키(Primary Key)를 참조하는 속성이다.
테이블들 간의 관계를 나타내기 위해서 사용한다.
- 4명을 구분할 수 있는 학번, 주민번호가 슈퍼키가 될 수 있음
- 이름과 나이를 묶어서 하나의 속성을 만드는것도 가능함.
- 학번과 주민번호를 묶어서 슈퍼키로 만들수 있음
어떤 속성끼리 묶던 중복값이 안나오고 서로 구별할 수 있으면 슈퍼키가 됨
- 슈퍼키는 후보키와 다르게 최소성을 만족해야하기 때문에 2개이상의 속성을 합쳐서 만드는건 후보키의 최소성에 어긋나게 되어 이름+나이는 후보키에 해당되지 않는다.
- 후보키들 중에서 하난를 선택한 키로 최소성과 유일성을 만족하는 속성이다.
- 테이블에서는 기본키는 오직 1개만 지정할 수 있다.
- 기본키는 NULL값을 가질 수 없고, 중복이 불가능하다.
- 후보키가 두개 이상일 경우 그중 하나를 기본키로 설정하고 남은 후보키를 대체키라고 한다.
- 기본키가 학번일때 주민번호는 대체키가 된다.
- 학번이 사라지면 주민번호가 없어진 기본키를 대체할 수 있다.
- 참조 될 테이블(학생)이 먼저 만들어지고 참조하는 테이블(수강)에 값이 입력된다.
- 이때, 참조될(학생) 열의 값은 참조될(학생) 테이블에서 기본키(Primary Key)로 설정되어 있어야한다.
- 외래키는 참조되는 테이블의 기본키와 동일한 속성을 가진다.
- 부모테이블을 삭제하려면 자식테이블 먼저 삭제가 되어야한다.
- 수강테이블에서 학번은 외래키 이다