정처기 감자
데이터베이스물리DB 설계

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

DB물리DB 설계키
읽는데 8분 소요
처음 쓰인 날: 2025-09-22
마지막 수정일: 2026-09-25
조회수: —

요약

키의 유일성·최소성과 슈퍼키, 후보키, 기본키, 대체키, 외래키의 관계를 설명합니다. 후보키의 최소성은 다른 키의 크기가 아닌 자기 부분집합으로 판단합니다.

키 종류특징설명
기본키 (Primary Key)후보키 중 선택, Not Null후보키 중에서 선택된 테이블 대표 키
대체키 (Alternate Key)후보키 중 나머지기본키로 선택되지 않은 후보키
후보키 (Candidate Key)유일성 O, 최소성 O유일하게 식별하며 어느 속성도 뺄 수 없는 집합
슈퍼키 (Super Key)유일성 O, 최소성 요건 없음튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합
외래키 (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) - 각 학생을 유일하게 식별
    • {이름, 전공}: 후보키 (유일성 O, 최소성 O) - 가정한 제약에 따라 조합이 중복되지 않고, 이름만 남기면 '김철수'가, 전공만 남기면 '수학'이 중복되므로 어느 한쪽도 뺄 수 없음
    • {이름}: 후보키가 아님 (유일성 X) - '김철수'가 중복되어 유일성을 만족하지 않음
    • {학번, 이름}: 후보키가 아님 (최소성 X) - 이름을 빼도 학번만으로 유일성을 만족하므로 불필요한 속성이 포함됨

    최소성은 그 조합에서 속성을 뺐을 때 유일성이 깨지는지로 판단합니다. {학번}처럼 속성이 더 적은 후보키가 따로 있다고 해서 {이름, 전공}이 후보키에서 탈락하지는 않습니다. 한 테이블에 후보키가 여러 개 있을 수 있고, 후보키마다 속성 개수가 서로 달라도 됩니다.

    [학생 테이블]

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

4. 슈퍼키 (Super Key)

슈퍼맨 감자
슈퍼키는 슈퍼맨과 관계가 없습니다
  • 정의: 테이블의 각 행을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합입니다.
  • 특성: 유일성만 만족하면 되고, 최소성은 요구하지 않습니다. 최소성까지 만족하는 슈퍼키는 후보키이기도 하므로, 모든 후보키는 슈퍼키입니다.
  • 예시: 위 학생 테이블에서,
    • {학번}: 슈퍼키 (유일성 O, 최소성 O) - 최소성까지 만족하므로 후보키이기도 함
    • {이메일}: 슈퍼키 (유일성 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최지연물리학

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


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

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(14개)
제목태그업데이트시험
데이터베이스 파일 구조 - 순차, 인덱스, 해싱 접근 방식
파일 구조DB물리DB 설계파일 구조
2026-10-20-
정규화,키,무결성,파일구조(물리DB설계) 정보처리기사 실기 모의 시험
물리DB 설계DB물리DB 설계
2025-10-25응시
데이터베이스 무결성: 개체, 참조, 속성, 사용자, 키
무결성DB물리DB 설계무결성
2026-06-27-
물리DB 설계7개
제목태그업데이트시험
데이터베이스 파일 구조 - 순차, 인덱스, 해싱 접근 방식
파일 구조DB물리DB 설계파일 구조
2026-10-20-
정규화,키,무결성,파일구조(물리DB설계) 정보처리기사 실기 모의 시험
물리DB 설계DB물리DB 설계
2025-10-25응시
데이터베이스 무결성: 개체, 참조, 속성, 사용자, 키
무결성DB물리DB 설계무결성
2026-06-27-
데이터베이스 이상 현상(Anomaly)
정규화DB물리DB 설계정규화
2026-04-15-
데이터베이스 정규화와 반정규화
정규화DB물리DB 설계정규화
2026-10-25-
데이터베이스 함수 종속성(Functional Dependency)
정규화DB물리DB 설계정규화
2025-10-18-
RAID - 저장 장치의 성능과 안정성
저장장치DB물리DB 설계RAID
2025-01-11-
DB7개
제목태그업데이트시험
데이터베이스 스키마 3단계 구조 (외부, 개념, 내부)
스키마DB논리DB 설계스키마
2026-04-29-
DB 왕감자 정보처리기사 실기 모의 시험
DBDB
2026-09-21응시
트랜잭션과 회복 기법
트랜잭션DBSQL트랜잭션
2026-06-18-
데이터 모델 3요소와 요개논물(설계 4단계)
E-R 다이어그램DB논리DB 설계요개논물
2026-04-29-
관계대수,데이터모델,요개논물(논리DB설계) 정보처리기사 실기 모의 시험
논리DB 설계DB논리DB 설계
2025-10-02응시
관계대수와 관계해석
관계대수/해석DB논리DB 설계관계대수/해석
2026-10-20-
관계 데이터 모델의 구성요소 - 릴레이션, 카디널리티, 차수
관계데이터모델DB논리DB 설계관계데이터모델
2026-10-20-

댓글

댓글을 불러오고 있어요
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999