💡 핵심 인사이트
대체 키(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등을 한 선수들은 **상비군(대체 키)**이 됩니다. 상비군도 언제든 국가대표로 뛸 수 있는 완벽한 실력(유일성과 최소성)을 갖추고 있으며, 팀의 전력을 유지하는 핵심 자원입니다.