[데이터베이스] 키(Key)의 개념 및 종류

kuku·2023년 3월 18일
0

CS 스터디

목록 보기
17/18

📖키(Key)란?

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

📁키의 특성

  • 유일성(uniqueness)
    하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 한다
  • 최소성(minimality)
    꼭 필요한 최소한의 속성들로만 키를 구성한다
    (ex. 학생은 학번만 있어도 구별 가능)

📖키의 종류

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

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

📁슈퍼키(super key)

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

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

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

📁후보키(candidate key)

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

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

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

📁기본키(primary key)

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

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

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

📁대체키(alternate key)

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

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

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

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

📁외래키(foreign key)

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

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

  • 릴레이션들 간의 관계를 표현
    • 참조하는 릴레이션 : 외래키를 가진 릴레이션
    • 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션

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

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

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

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

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

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

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

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

참고 : 데이터베이스 개론 (한빛아카데미)

0개의 댓글