데이터베이스 키(Key): 슈퍼키, 후보키, 기본키, 외래키
DB
읽는데 8분 소요
처음 쓰여진 날: 2025-09-22
마지막 수정일: 2025-09-22
조회수: 14
요약
데이터베이스의 핵심 개념인 키(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 값을 갖지 않는 후보키를 기본키로 선정합니다.
- 예시:
{학번}
과{이메일}
두 후보키 중에서, 값이 자주 변경되지 않는학번
을 기본키로 선택합니다.
[학생 테이블]
학번 | 이메일 | 이름 | 전공 |
---|---|---|---|
20241001 | kim@example.com | 김철수 | 컴퓨터공학 |
20241002 | lee@example.com | 이영희 | 수학 |
20241003 | cheolsoo@example.com | 김철수 | 수학 |
20241004 | choi@example.com | 최지연 | 물리학 |
2. 대체키 (Alternate Key)
-
정의: 기본키로 선택되지 못한 나머지 후보키들입니다.
-
특성: 후보키의 성질(유일성, 최소성)을 그대로 가집니다.
-
예시:
{학번}
이 기본키로 선택되었다면,{이메일}
은 대체키가 됩니다.
3. 후보키 (Candidate Key)
-
정의: 테이블의 각 행을 유일하게 식별하면서 최소한의 속성으로 구성된 키입니다.
-
특성: 유일성과 최소성을 모두 만족해야 합니다.
-
예시: 아래 학생 테이블에서,
{학번}
: 후보키 (유일성 O, 최소성 O) - 각 학생을 유일하게 식별{이메일}
: 후보키 (유일성 O, 최소성 O) - 각 학생을 유일하게 식별{이름}
: 후보키가 아님 (유일성 X) - '김철수'가 중복되어 유일성을 만족하지 않음{학번, 이름}
: 후보키가 아님 (최소성 X) -이름
을 빼도학번
만으로 유일성을 만족하므로 불필요한 속성이 포함됨
[학생 테이블]
학번 이메일 이름 전공 20241001 kim@example.com 김철수 컴퓨터공학 20241002 lee@example.com 이영희 수학 20241003 cheolsoo@example.com 김철수 수학 20241004 choi@example.com 최지연 물리학
4. 슈퍼키 (Super Key)

- 정의: 테이블의 각 행을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합입니다.
- 특성: 유일성은 만족하지만, 최소성은 만족하지 않습니다.
- 예시: 위 학생 테이블에서,
{학번}
: 슈퍼키 (유일성 O) - 후보키이기도 함{이메일}
: 슈퍼키 (유일성 O) - 후보키이기도 함{이름}
: 슈퍼키가 아님 (유일성 X) - '김철수'가 중복되어 유일성을 만족하지 않음{학번, 이름}
: 슈퍼키 (유일성 O, 최소성 X) - 불필요한이름
속성이 포함됨{학번, 이메일}
: 슈퍼키 (유일성 O, 최소성 X) - 둘 다 각각 유일성을 만족하므로 하나만 있어도 됨{이메일, 전공}
: 슈퍼키 (유일성 O, 최소성 X) -전공
이 불필요함
5. 외래키 (Foreign Key, FK)
- 정의: 한 테이블의 속성 중, 다른 테이블의 기본키 (PK)를 참조하는 속성입니다.
- 목적: 테이블 간의 관계(Relationship) 를 맺고, 데이터의 참조 무결성을 보장하기 위해 사용됩니다.
- 특성:
- 참조하는 테이블의 기본키에 존재하는 값이나 NULL 값만 가질 수 있습니다.
- 외래키 값은 참조하는 테이블의 기본키와 동일한 도메인을 가져야 합니다.
- 예시: 다음과 같은 '수강' 테이블이 있다고 가정해 봅시다.
[수강 테이블]
수강ID | 학번 | 과목코드 | 학점 |
---|---|---|---|
1 | 20241001 | CS101 | 3 |
2 | 20241002 | MATH201 | 3 |
3 | 20241001 | PHYS301 | 2 |
[학생 테이블]
학번 | 이메일 | 이름 | 전공 |
---|---|---|---|
20241001 | kim@example.com | 김철수 | 컴퓨터공학 |
20241002 | lee@example.com | 이영희 | 수학 |
20241003 | cheolsoo@example.com | 김철수 | 수학 |
20241004 | choi@example.com | 최지연 | 물리학 |
여기서 학번
속성은 위 학생 테이블의 기본키인 학번
을 참조하는 외래키입니다. 이를 통해 어떤 학생이 어떤 과목을 수강하는지 관계를 정의할 수 있습니다.
정보처리기사 실기 대비 문제
기출 | |
문제 | 키(key)에 대한 설명을 보고 괄호 안에 들어갈 키를 보기에서 고르시오.
- ( 1 ) : 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키.
- ( 2 ) : 유일성은 만족하지만 최소성은 만족하지 않는 키.
- ( 3 ) : 기본키로 선택되지 않은 나머지 후보키.
- ( 4 ) : 튜플을 구별하는데 기준이 되는 키로 유일성과 최소성을 만족하는 키. |
보기 | |
답변 | 1: 2: 3: 4: |
정답 | 정답 보기 |
기출 | |
문제 | 다음 괄호를 채우시오
슈퍼키는 ( 1 )의 속성을 가진다.
후보키는 ( 1 )과 ( 2 ) 의 속성을 가진다. |
답변 | 1: 2: |
정답 | 정답 보기 |
문제 | 튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합으로, 유일성은 만족하지만 최소성은 만족하지 않는 키는 무엇인가? |
답변 | |
정답 | 정답 보기 |
문제 | 유일성과 최소성을 모두 만족하는 키로, 기본키가 될 수 있는 키는 무엇인가? |
답변 | |
정답 | 정답 보기 |
문제 | 후보키 중에서 하나를 선택하여 테이블을 대표하는 키로 사용하는 것은 무엇인가? 이 키는 NULL 값을 가질 수 없다. |
답변 | |
정답 | 정답 보기 |
문제 | 기본키로 선택되지 않은 나머지 후보키를 무엇이라고 하는가? |
답변 | |
정답 | 정답 보기 |
문제 | 다른 테이블의 기본키를 참조하여 테이블 간의 관계를 맺고, 참조 무결성을 보장하는 데 사용되는 키는 무엇인가? |
답변 | |
정답 | 정답 보기 |