[Database] 여러 종류의 키

여러 종류의 키

데이터베이스의 슈퍼 키, 후보 키, 기본 키, 대체 키, 외래 키를 알아보자.

두 가지 릴레이션

아래와 같은 두 가지 릴레이션이 있다고 하자.

군인 테이블
1

병과 테이블
2

군인들의 정보가 담긴 군인 테이블과 병과들의 정보가 담긴 병과 테이블이다.

슈퍼 키

릴레이션 내의 특정 투플을 고유하게 식별해야 하는 애트리뷰트나 애트리뷰트의 집합이다.
ex) (군번), (이메일), (군번, 이름), (군번, 이메일), (이메일, 병과 ID), (군번, 이름, 이메일), (이름, 이메일) … 등 식별만 가능하다면 여러 가지가 슈퍼 키가 될 수 있다.

후보 키

투플을 고유하게 식별할 수 있는 최소한의 애트리뷰트이다.
위의 군인 테이블 예제에서는 군번과 이메일이며, (군번), (이메일)로 표시한다.

기본 키

Primary Key라고 부르며 후보 키가 두 개 이상 있을 때 설계자가 임의로 하나를 기본 키로 선정할 수 있다.
위의 예제에선 군인 테이블의 군번을 기본 키로 정하자.
군번 키가 기본 키가 되었으므로 군번 키는 null값을 가질 수 없다.

대체 키

기본 키가 아닌 후보 키가 대체 키다.
위의 예제에선 군번 키를 기본 키로 정했으므로 이메일이 대체 키가 된다.

외래 키

Foreign Key라고 부르며 한 릴레이션에서 다른 릴레이션의 기본 키를 참조하는 애트리뷰트다.
위의 예제에선 군인 테이블에 있는 병과 ID가 외래 키가 된다.
외래 키를 이용해 군인 테이블에서도 병과 테이블의 튜플을 참조할 수 있다.