데이터베이스 키(Key): 슈퍼키, 후보키, 기본키, 외래키

DB
읽는데 8분 소요
처음 쓰여진 날: 2025-09-22
마지막 수정일: 2025-09-22

요약

데이터베이스의 핵심 개념인 키(Key)의 모든 것을 알아봅니다. 키의 특성인 유일성과 최소성부터 슈퍼키, 후보키, 기본키, 대체키, 외래키의 개념과 관계를 예제와 함께 쉽게 설명하고, 정보처리기사 실기 대비 문제로 마무리합니다.

키 종류특징설명
기본키 (Primary Key)후보키 중 선택, Not Null후보키 중에서 선택된 테이블 대표 키
대체키 (Alternate Key)후보키 중 나머지기본키로 선택되지 않은 후보키
후보키 (Candidate Key)유일성 O, 최소성 O튜플을 유일하게 식별할 수 있는 최소한의 속성 집합
슈퍼키 (Super Key)유일성 O, 최소성 X튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합
외래키 (Foreign Key)다른 테이블의 기본키 참조테이블 간의 관계를 정의하고 참조 무결성을 보장

데이터베이스 키란?

키(Key) 는 데이터베이스에서 조건을 만족하는 튜플(Tuple, 행)을 찾거나, 순서대로 정렬할 때 다른 튜플과 구별할 수 있는 유일한 기준이 되는 속성(Attribute) 또는 속성의 집합입니다. 키는 데이터의 무결성을 보장하고, 효율적인 데이터 관리를 가능하게 합니다.

데이터베이스 키 감자
데이터베이스에서 키를 고르는건 중요하죠

키의 주요 특성

모든 키가 이 두 가지 특성을 항상 만족하는 것은 아니지만, 특히 후보키를 정의하는 데 있어 핵심적인 성질입니다.

  • 유일성(Uniqueness): 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 합니다. 예를 들어, '학생' 테이블에서 '학번'은 각 학생을 유일하게 구분하므로 유일성을 만족합니다.
  • 최소성(Minimality): 유일성을 만족하는 속성들 중 가장 적은 수의 속성으로 구성되어야 합니다. 즉, 키를 구성하는 어떤 속성을 제거하면 더 이상 유일성을 만족하지 못하게 되는 상태를 의미합니다.

키의 종류와 관계

데이터베이스에는 여러 종류의 키가 있으며, 서로 포함 관계를 가집니다.

기대(후)슈

[본키 + 체키 = 보키] ⊂ 퍼키

데이터베이스 키의 관계 외우는 방법
'아빠 어디가' 윤후가 '기대슈' 라고 이야기하는걸 떠올리자

1. 기본키 (Primary Key, PK)

  • 정의: 후보키 중에서 선택된 단 하나의 키입니다. 테이블을 대표하는 키라고 할 수 있습니다.
  • 특성:
    • NULL 값을 가질 수 없습니다.
    • 중복된 값을 가질 수 없습니다.
    • 테이블 당 오직 하나의 기본키만 존재합니다.
  • 선정 기준: 보통 길이가 짧고, 값이 자주 변경되지 않으며, NULL 값을 갖지 않는 후보키를 기본키로 선정합니다.
  • 예시: {학번}{이메일} 두 후보키 중에서, 값이 자주 변경되지 않는 학번을 기본키로 선택합니다.

[학생 테이블]

학번이메일이름전공
20241001kim@example.com김철수컴퓨터공학
20241002lee@example.com이영희수학
20241003cheolsoo@example.com김철수수학
20241004choi@example.com최지연물리학

2. 대체키 (Alternate Key)

  • 정의: 기본키로 선택되지 못한 나머지 후보키들입니다.

  • 특성: 후보키의 성질(유일성, 최소성)을 그대로 가집니다.

  • 예시: {학번}이 기본키로 선택되었다면, {이메일}은 대체키가 됩니다.

3. 후보키 (Candidate Key)

  • 정의: 테이블의 각 행을 유일하게 식별하면서 최소한의 속성으로 구성된 키입니다.

  • 특성: 유일성과 최소성을 모두 만족해야 합니다.

  • 예시: 아래 학생 테이블에서,

    • {학번}: 후보키 (유일성 O, 최소성 O) - 각 학생을 유일하게 식별
    • {이메일}: 후보키 (유일성 O, 최소성 O) - 각 학생을 유일하게 식별
    • {이름}: 후보키가 아님 (유일성 X) - '김철수'가 중복되어 유일성을 만족하지 않음
    • {학번, 이름}: 후보키가 아님 (최소성 X) - 이름을 빼도 학번만으로 유일성을 만족하므로 불필요한 속성이 포함됨

    [학생 테이블]

    학번이메일이름전공
    20241001kim@example.com김철수컴퓨터공학
    20241002lee@example.com이영희수학
    20241003cheolsoo@example.com김철수수학
    20241004choi@example.com최지연물리학

4. 슈퍼키 (Super Key)

슈퍼맨 감자
슈퍼키는 슈퍼맨과 관계가 없습니다
  • 정의: 테이블의 각 행을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합입니다.
  • 특성: 유일성은 만족하지만, 최소성은 만족하지 않습니다.
  • 예시: 위 학생 테이블에서,
    • {학번}: 슈퍼키 (유일성 O) - 후보키이기도 함
    • {이메일}: 슈퍼키 (유일성 O) - 후보키이기도 함
    • {이름}: 슈퍼키가 아님 (유일성 X) - '김철수'가 중복되어 유일성을 만족하지 않음
    • {학번, 이름}: 슈퍼키 (유일성 O, 최소성 X) - 불필요한 이름 속성이 포함됨
    • {학번, 이메일}: 슈퍼키 (유일성 O, 최소성 X) - 둘 다 각각 유일성을 만족하므로 하나만 있어도 됨
    • {이메일, 전공}: 슈퍼키 (유일성 O, 최소성 X) - 전공이 불필요함

5. 외래키 (Foreign Key, FK)

  • 정의: 한 테이블의 속성 중, 다른 테이블의 기본키 (PK)를 참조하는 속성입니다.
  • 목적: 테이블 간의 관계(Relationship) 를 맺고, 데이터의 참조 무결성을 보장하기 위해 사용됩니다.
  • 특성:
    • 참조하는 테이블의 기본키에 존재하는 값이나 NULL 값만 가질 수 있습니다.
    • 외래키 값은 참조하는 테이블의 기본키와 동일한 도메인을 가져야 합니다.
  • 예시: 다음과 같은 '수강' 테이블이 있다고 가정해 봅시다.

[수강 테이블]

수강ID학번과목코드학점
120241001CS1013
220241002MATH2013
320241001PHYS3012

[학생 테이블]

학번이메일이름전공
20241001kim@example.com김철수컴퓨터공학
20241002lee@example.com이영희수학
20241003cheolsoo@example.com김철수수학
20241004choi@example.com최지연물리학

여기서 학번 속성은 위 학생 테이블의 기본키인 학번을 참조하는 외래키입니다. 이를 통해 어떤 학생이 어떤 과목을 수강하는지 관계를 정의할 수 있습니다.


정보처리기사 실기 대비 문제

기출
문제
키(key)에 대한 설명을 보고 괄호 안에 들어갈 키를 보기에서 고르시오. - ( 1 ) : 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키. - ( 2 ) : 유일성은 만족하지만 최소성은 만족하지 않는 키. - ( 3 ) : 기본키로 선택되지 않은 나머지 후보키. - ( 4 ) : 튜플을 구별하는데 기준이 되는 키로 유일성과 최소성을 만족하는 키.
보기
답변
1:
2:
3:
4:
정답정답 보기
기출
문제
다음 괄호를 채우시오 슈퍼키는 ( 1 )의 속성을 가진다. 후보키는 ( 1 )과 ( 2 ) 의 속성을 가진다.
답변
1:
2:
정답정답 보기
문제
튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합으로, 유일성은 만족하지만 최소성은 만족하지 않는 키는 무엇인가?
답변
정답정답 보기
문제
유일성과 최소성을 모두 만족하는 키로, 기본키가 될 수 있는 키는 무엇인가?
답변
정답정답 보기
문제
후보키 중에서 하나를 선택하여 테이블을 대표하는 키로 사용하는 것은 무엇인가? 이 키는 NULL 값을 가질 수 없다.
답변
정답정답 보기
문제
기본키로 선택되지 않은 나머지 후보키를 무엇이라고 하는가?
답변
정답정답 보기
문제
다른 테이블의 기본키를 참조하여 테이블 간의 관계를 맺고, 참조 무결성을 보장하는 데 사용되는 키는 무엇인가?
답변
정답정답 보기