💡 핵심 인사이트
데이터베이스 설계자는 치열한 경쟁을 뚫고 올라온 '후보 키'들 중에서, 테이블을 대표할 가장 빠르고 튼튼한 녀석 단 한 명을 골라 왕관을 씌우는데 이를 **기본 키(Primary Key)**라고 합니다.
왕관을 쓰지 못하고 밀려난 나머지 후보 키들은 만약을 대비한 예비 왕세자인 **대체 키(Alternate Key)**가 됩니다.


Ⅰ. 기본 키 (Primary Key, PK)의 탄생

학생 테이블의 '후보 키' 명단에 {학번}{주민번호} 두 개가 올라왔다고 가정합시다. 둘 다 유일성과 최소성을 만족하는 완벽한 식별자입니다. DB 설계자(DBA)는 이 둘 중 하나를 테이블의 절대적 대표, **기본 키(PK)**로 임명해야 합니다.

PK 선정의 기준 (학번 vs 주민번호)

설계자는 주로 다음을 고려하여 선택합니다.

  1. 변동성이 적은가?: 학번은 졸업할 때까지 절대 바뀌지 않지만, 주민번호는 유출 시 국가에서 변경해 줄 수도 있고 암호화의 부담이 있습니다.
  2. 길이가 짧은가?: PK는 다른 테이블에서 자주 참조(FK)되고 인덱스 트리의 뼈대가 됩니다. 주민번호(13자리)보다 학번(8자리 숫자)이 훨씬 작고 검색 속도가 빠릅니다. ➔ 결론: {학번}을 기본 키(PK)로 채택합니다.

기본 키의 절대 제약 조건 (개체 무결성)

왕관을 쓴 기본 키는 엄청난 권력과 함께 무거운 책임을 집니다.

  • NOT NULL: 학번이 비어있는(NULL) 유령 학생은 테이블에 등록(INSERT)될 수 없습니다.
  • UNIQUE: 다른 사람과 똑같은 학번을 가진 튜플은 등록될 수 없습니다 (중복 절대 불가).

Ⅱ. 대체 키 (Alternate Key, 보조 키)

기본 키(PK) 오디션에서 탈락한 나머지 후보 키들의 운명입니다.

  • 앞선 예시에서 {학번}이 PK로 뽑혔으므로, 훌륭한 자격을 갖췄음에도 밀려난 **{주민번호}가 바로 대체 키(Alternate Key)**가 됩니다.
  • 대체 키는 비록 테이블의 공식 대표(PK)는 아니지만, 여전히 사람을 유일하게 식별할 수 있는 훌륭한 속성입니다.
  • 실무(SQL)에서는 PK를 놓쳤어도 이 컬럼 값들이 중복으로 들어오는 것을 막기 위해, 이 대체 키 컬럼에 UNIQUE 제약조건을 걸어두어 유일성을 강력하게 보장합니다.

Ⅲ. 데이터베이스 키의 계층 구조 요약

이제까지 배운 키들의 포함 관계(집합)를 그리면 다음과 같습니다.

[ 데이터베이스 키의 포함 관계 계층도 ]

┌────────────────────────────────────────────────────────┐
│                   슈퍼 키 (Super Key)                  │
│       (유일성 O, 최소성 무시 / 예: 학번+이름, 주민번호)        │
│                                                        │
│  ┌──────────────────────────────────────────────────┐  │
│  │               후보 키 (Candidate Key)            │  │
│  │       (유일성 O, 최소성 O / 예: 학번, 주민번호)       │  │
│  │                                                  │  │
│  │  ┌────────────────────┐  ┌────────────────────┐  │  │
│  │  │ 기본 키 (Primary Key)│  │ 대체 키 (Alternate Key)│  │  │
│  │  │     (선택받은 1인)   │  │   (탈락한 예비 2인자)   │  │  │
│  │  │     예: 학번        │  │      예: 주민번호     │  │  │
│  │  └────────────────────┘  └────────────────────┘  │  │
│  └──────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────┘

📢 섹션 요약 비유: 대통령 선거(테이블 설계)를 상상해 보세요. 시민권자(슈퍼키) 중에서 훌륭한 자격을 갖춘 **대선 출마자 3명(후보키)**이 나왔습니다. 투표를 통해 1명이 **대통령(기본키, PK)**으로 당선되어 국가를 대표하게 되고, 낙선한 2명은 훌륭한 정치인이지만 직책을 얻지 못한 **야당 대표(대체키)**로 남아 언제든 식별자 역할을 거들게 됩니다.