본문 바로가기
정보처리기사/실기

[정보처리기사 실기] 데이터베이스 키(Key) 종

by 보안매크로 2025. 4. 21.

데이터베이스에서 "키(Key)"는 데이터를 고유하게 식별하거나, 테이블 간 관계를 맺는 중요한 도구


✅ 데이터베이스 키 종류 정리

키 종류 정의 예시 특징

슈퍼키 (Super Key) 튜플(행)을 유일하게 식별할 수 있는 속성 집합 학번, 학번+이름, 주민번호 등 유일성을 만족하지만 최소성은 아님
후보키 (Candidate Key) 슈퍼키 중에서 속성이 최소성을 만족하는 것 학번, 주민번호 등 최소성 유일성 만족, 여러 개 존재 가능
기본키 (Primary Key) 후보키 중에서 대표로 선택된 키 학번 NOT NULL + (유일성)UNIQUE, (최소성)중복/NULL 불가
대체키 (Alternate Key) 후보키 중 기본키로 선택되지 않은 나머지 주민번호 기본키가 아니지만 유일한 값
외래키 (Foreign Key) 다른 테이블(릴레이션)의 기본키를 참조하는 키 학생(학과코드) → 학과(학과코드) 참조 무결성 유지, 관계 설정 역할

🔍 키 종류별 자세한 설명


🔹 1. 슈퍼키 (Super Key)

  • 행을 유일하게 식별할 수 있는 하나 이상의 속성
  • 예: (학번), (주민번호), (학번 + 이름) 등

✅ 유일하면 모두 슈퍼키지만, 최소성은 만족하지 않음


🔹 2. 후보키 (Candidate Key)

  • 슈퍼키 중에서 속성 수가 최소인 것
  • 예: 학번, 주민번호
    → 둘 다 하나만으로 유일성, 최소성 만족, 그래서 후보키 2개

✅ 후보키는 여러 개 존재 가능
❗중복 ❌, NULL ❌


🔹 3. 기본키 (Primary Key)

  • 후보키 중에서 대표로 선택된 키
  • 테이블의 주 식별자로 사용됨
CREATE TABLE 학생 (
  학번 CHAR(10) PRIMARY KEY,
  이름 VARCHAR(20),
  주민번호 CHAR(13) UNIQUE NOT NULL
);

하나의 테이블에 하나만 존재 가능
✅ 자동으로 NOT NULL + UNIQUE 적용됨


🔹 4. 대체키 (Alternate Key)

  • 후보키 중에서 기본키로 선택되지 않은 것
  • 예: 주민번호 (학번이 기본키로 선택됐을 경우)

✅ 여전히 유일함
❗기본키는 아니지만 중요한 식별자


🔹 5. 외래키 (Foreign Key)

  • 다른 테이블의 기본키를 참조하는 키
  • 두 테이블 간 **관계(릴레이션)**을 설정
CREATE TABLE 수강 (
  학번 CHAR(10),
  과목코드 CHAR(10),
  FOREIGN KEY (학번) REFERENCES 학생(학번)
);

✅ 참조 무결성 유지
✅ 부모 테이블의 값만 가질 수 있음


🧠 요약 정리표

키 종류 역할 유일성 NULL 허용 복수 가능 설명 요약

키(Key) 역할  유일성 NULL 복수 가능 설명 요약
슈퍼키 유일성 식별 가능 유일하기만 하면 OK
후보키 최소성 유일성 슈퍼키 중 최소 집합
기본키 대표 후보키 후보키 중 선택된 것
대체키 예비 후보키 기본키 제외 후보키
외래키 참조 관계 ❌ (상대 테이블 기준) 가능 다른 테이블의 기본키 참조