💡 핵심 인사이트
대체 키(Alternate Key)는 '후보 키(Candidate Key)'들 중에서 '기본 키(Primary Key)'로 선택받지 못하고 남은 나머지 키들을 의미합니다.
비록 1인자의 자리(PK)는 놓쳤지만, 여전히 튜플을 유일하게 식별할 수 있는 훌륭한 자격을 갖춘 '예비 식별자'입니다.


Ⅰ. 대체 키의 탄생 (기본 키와의 경쟁)

데이터베이스를 설계할 때, 행(튜플)을 구별할 수 있는 유일성과 최소성을 갖춘 후보 키들을 먼저 찾아냅니다.

[ 사원 릴레이션 예시 ]

  • 속성: (사번, 주민번호, 이메일, 이름, 부서)
  • 후보 키 목록: {사번}, {주민번호}, {이메일}

이 3개의 후보 키 중에서 DBA(데이터베이스 관리자)는 가장 짧고, 변하지 않으며, 검색이 빠른 {사번}을 **기본 키(PK)**로 임명합니다. 그러면 왕관을 쓰지 못한 나머지 2개의 후보 키, 즉 {주민번호}{이메일}이 자동으로 '대체 키(Alternate Key)'가 됩니다.


Ⅱ. 대체 키의 실무적 역할 (UNIQUE 제약조건)

"그럼 기본 키 하나만 있으면 됐지, 대체 키는 버리면 되는 거 아닌가요?" 아닙니다. 대체 키는 실무에서 데이터의 무결성을 지키는 매우 강력한 방어막으로 쓰입니다.

  • 문제 상황: PK인 사번은 중복 입력이 안 되지만, 직원이 실수로 신입사원 등록 시 기존 직원의 주민번호이메일을 똑같이 한 번 더 입력(INSERT)할 수 있습니다.
  • 해결책 (UNIQUE Constraint): 이를 막기 위해 DBA는 테이블 생성 시 대체 키 속성들에 반드시 UNIQUE 제약조건을 걸어줍니다.
    • 이렇게 하면 "사번도 겹치면 안 되지만, 이메일과 주민번호 컬럼도 절대 중복된 값이 들어올 수 없다"는 강력한 룰이 성립하여 데이터베이스의 완벽한 무결성이 유지됩니다.

Ⅲ. 기본 키와의 차이점 비교

특성기본 키 (Primary Key)대체 키 (Alternate Key)
선출 여부후보 키 중 선택된 1개후보 키 중 선택받지 못한 나머지
개수테이블당 무조건 1개만 존재테이블당 0개 이상 (여러 개 가능)
NULL 허용절대 허용 안 함 (NOT NULL)경우에 따라 NULL 허용 가능 (예: 아직 사내 이메일이 발급 안 된 신입사원)
외부 참조(FK)주로 다른 테이블에서 참조하는 기준이 됨다른 테이블에서 참조 기준으로 잘 쓰지 않음

📢 섹션 요약 비유: 국가 대표 선발전(후보 키)에서 1등을 한 선수가 **국가대표(기본 키)**로 출전합니다. 아쉽게 2등, 3등을 한 선수들은 **상비군(대체 키)**이 됩니다. 상비군도 언제든 국가대표로 뛸 수 있는 완벽한 실력(유일성과 최소성)을 갖추고 있으며, 팀의 전력을 유지하는 핵심 자원입니다.