[관계 데이터 모델] 릴레이션의 키

k_bell·2024년 9월 19일

데이터베이스

목록 보기
6/12
post-thumbnail

릴레이션의 키는, 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임을 의미한다. 슈퍼 키 (superkey) , 후보 키 (candidate key) , 기본 키 (primary key) , 대체 키 (alternate key) , 외래 키 (foregin key)로 구분할 수 있다.

슈퍼 키

한 릴레이션 내에서 특정 튜플을 고유하게 식별하는 하나 이상의 애트리뷰트들의 모임을 말한다. 신용카드 회사의 고객 릴레이션이 있다고 할 때 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호)가 슈퍼 키가 될 수 있다. 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다.

후보 키

각 튜플들을 고유하게 식별하는 최소한의 애트리뷰트들의 모임을 말한다. 따라서 튜플을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트가 포함된다면, 그것은 후보 키라고 할 수 없다. 예를 들어, (신용카드번호, 주소)는 고객 릴레이션의 후보 키가 아니지만 (신용카드번호)는 후보 키이다.

모든 릴레이션에는 최소한 한 개 이상의 후보 키가 존재해야 한다.

후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며, 이런 경우에 복합 키 (composite key) 라고 부른다.

기본 키

한 릴레이션에 후보 키가 두 개 이상 있으면 데이터베이스 설계자 또는 데이터베이스 관리자가 후보 키들 중에서 하나를 기본 키로 선정한다. 기본 키는 다를 릴레이션에서 접근하거나 관계를 표현할 때 사용하기 때문에, 신중하게 선택하여야 한다.

예를 들어, 신용카드 회사의 고객 릴레이션에서는 신용카드번호와 주민등록번호 모두 기본 키로 선정할 수 있지만 신용카드번호를 선정해야 다른 릴레이션에서 접근하기 더 유용할 것이다. 또한 기본 키를 통해 튜플들을 식별해야 하는데 이때 도메인이 어떤 값인지에 따라서도 비교 비용이 다르므로 이런 여러 요소들을 함께 생각해야 한다. 문자열과 정수의 비교는 당연히 시간에서 많은 차이가 날 것이기 때문이다.

대리 키

자연스러운 기본 키를 찾을 수 없는 경우에는 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있다. 책이나 옷의 바코드와 상품 번호가 그 예시이다. (ISBN)

대체 키

기본 키로 선정되지 않은 후보 키를 의미한다.

외래 키

어떤 다른 릴레이션의 기본 키를 참조하는 애트리뷰트가 외래 키이다. 튜플을 고유하게 식별하는 기능은 없을 수도 있다. 즉, 다른 릴레이션의 기본 키를 참조한다고 해서 외래 키가 해당 릴레이션의 후보 키가 아닐 수도 있기 때문이다.

외래 키는 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용된다. 또한 외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 한다. 당연히 외래 키는 참조하는 기본 키와 같은 값을 가져야 한다.

외래 키는 자신이 속한 릴레이션의 기본 키의 구성요소가 되거나 되지 않을 수 있다.

  • 다른 릴레이션의 기본 키를 참조하는 외래 키

  • 자체 릴레이션의 기본 키를 참조하는 외래 키

  • 기본 키의 구성요소가 되는 외래 키

0개의 댓글