키
데이터베이스에서 키란, 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플과 구별할 수 있는 유일한 기준이 되는 속성(Attribute)이다.
종류
키의 종류에는 5가지가 있다.
후보키 (Candidate key)
- 릴레이션(테이블)에서 각 튜플을 유일하게 식별할 수 있는 속성 또는 집합을 말한다.
- 후보키가 되려면 유일성과 최소성을 모두 만족해야 한다.
기본키 (Primary key)
- 기본키는 후보키 중에서 행을 식별하기 위해 특별히 선택된 키를 말한다.
- 기본키는 중복될 수 없으며, NULL값이 올 수 없다.
- 유일성과 최소성을 만족해야 한다.
- 기본키는 테이블당 오직 하나의 필드에만 설정할 수 있다.
- 기본키 제약 조건은 테이블의 데이터를 쉽고 빠르게 찾도록 도와주는 역할을 한다.
대체키 (Alternate key)
- 대체키는 기본키로 선택되지 않고 남은 후보키를 의미한다.
- 보조키라고도 부른다.
- 슈퍼키 (Super key)
- 슈퍼키는 관계의 행을 고유하게 식별할 수 있는 속성 또는 집합을 의미한다.
- 슈퍼키는 대상관계의 모든 속성이 함수 종속하는 속성의 집합으로 정의할 수 있다.
외래키 (Foreign key)
- 외래키는 두 테이블을 서로 연결하는데 사용되는 키이다
- 외래키가 포함된 테이블을 자식 테이블이라고 하고, 외래키 값을 제공하는 테이블을 부모 테이블이라 한다.
- 외래키는 데이터의 무결성을 유지하는데 사용된다. 부모와 자식 데이터 간의 논리적 관계를 일치시킨다는 것이다.
유일성과 최소성
유일성: 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질
여러 개의 튜플이 존재할 때 각각의 튜플을 서로 구분할 수 있어야 한다는 성질이다. 즉, 각각의 튜플은 유일해야 한다는 것이다. 예를 들어, (주민 번호, 나이, 주소, 혈액형)이라는 속성이 있을 때 나이, 주소, 혈액형은 충분히 중복될 수 있으나, 주민 번호는 모두 달라 중복될 수 없다. 주민 번호처럼 각각의 튜플을 구분할 수 있는 속성이 가진 성질을 유일성이라고 합니다.
최소성: 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질
키를 구성하는 속성들이 각 튜플을 구분하는데 꼭 필요한 속성들로만 구성된다는 성질이다. 예를 들어, [주민 번호, 이름, 나이]처럼 키가 구성되어 있다면, 이미 주민 번호로 해당 키를 식별할 수 있는데 이름과 나이가 포함되어 있기 때문에 최소성을 만족하지 못한다.