키(Key)

최석훈·2025년 10월 16일

데이터베이스

목록 보기
7/18

키(Key)란?

데이터베이스에서 키(key)는 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성(attribute) 또는 속성들의 집합이다.

*튜플 = 테이블의 한 행(row) 을 의미합니다.

키의 특성

  • 유일성(uniqueness)
    하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 한다

  • 최소성(minimality)
    꼭 필요한 최소한의 속성들로만 키를 구성한다
    (ex. 학생은 학번만 있어도 구별 가능)

키의 종류

키의 종류에는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다.

다음은 키의 종류를 설명하기 위해 사용할 고객 릴레이션이다.

슈퍼키(super key)

유일성을 만족하는 속성 또는 속성들의 집합

슈퍼키는 유일성을 만족해야 하므로 속성 또는 속성들이 서로 다른 키 값을 가져야 한다. 예를 들어, 고객 릴레이션의 나이는 같은 값이 존재할 수 있으므로 유일성을 만족하지 않는다.

고객 릴레이션의 슈퍼키로는 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등이 있다.

*릴레이션은 테이블이라 생각하면된다.

후보키(candidate key)

유일성과 최소성을 만족하는 속성 또는 속성들의 집합

후보키는 유일성과 최소성을 모두 만족한다. 따라서 속성 또는 속성들이 서로 다른 키 값을 가지면서 꼭 필요한 최소한의 속성들로만 구성되어야 한다.

고객 릴레이션의 후보키로는 고객아이디, (고객이름, 주소) 등이 있다.

기본키(primary key)

후보키 중에서 기본적으로 사용하기 위해 선택한 키

후보키는 유일성과 최소성을 모두 만족하기 때문에 튜플들을 구별하는 데에 효율적으로 사용할 수 있다. 이때, 후보키 중 주로 사용할 키를 선택하여 기본키라고 한다. 따라서 후보키는 기본키에 대한 후보라고도 할 수 있다.

고객 릴레이션의 후보키 중 하나의 속성으로만 이루어진 고객아이디를 기본키로 선택할 수 있다.

대체키(alternate key)

기본키로 선택되지 못한 후보키

후보키 중 기본키를 제외한 것들이 해당한다.

고객 릴레이션의 대체키로는 (고객이름, 주소)가 있다.

이때까지 설명한 4개의 키는 다음과 같은 관계성을 가진다.

외래키(foreign key)

다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

릴레이션을 구성하는 속성 또는 속성들의 집합 중 다른 릴레이션의 기본키가 있는 경우, 그것을 외래키라고 한다.

  • 릴레이션들 간의 관계를 표현

참조하는 릴레이션 : 외래키를 가진 릴레이션
참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션

다음과 같이 주문 릴레이션에서 고객 릴레이션의 기본키를 참조할 수 있다.

외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야 한다.

즉, 참조하는 기본키 속성에 존재하지 않는 키 값은 외래키 속성의 키 값이 될 수 없다.

예를 들어, 고객아이디에 apple, banana, carrot, orange가 있으면 주문고객은 apple, banana, carrot, orange로만 이루어져야 한다.

하나의 릴레이션에는 외래키가 여러 개 존재할 수도 있고, 외래키를 기본키로 사용할 수도 있다.

상담 릴레이션은 학생 릴레이션의 기본키와 교사 릴레이션의 기본키를 참조하여 외래키가 총 2개이고, 외래키인 학번과 상담교사가 기본키로 쓰이고 있다.

  • 같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다.
  • 외래키 속성은 NULL 값을 가질 수도 있다.

따라서 다음과 같은 릴레이션이 성립할 수 있다.

profile
기술 노트 블로그 (2025.09.01~)

1개의 댓글

comment-user-thumbnail
2025년 10월 16일

굿

답글 달기