RDBMS에서 대체 키(Alternate Key)는 보조 키(Secondary Key)라고도 불리며, 기본 키(Primary Key)로 선택되지 않은 후보 키(Candidate Key)를 의미합니다. 즉, 기본 키가 될 자격을 갖춘 속성 중에서 실제로 기본 키로 지정되지 않은 나머지 키들이 바로 대체 키입니다.
후보 키(Candidate Key)와 대체 키의 관계
후보 키는 테이블에서 레코드를 고유하게 식별할 수 있는 하나의 속성 또는 속성의 집합입니다. 여러 개의 후보 키 중 하나가 기본 키로 선정되면, 나머지 후보 키들은 모두 대체 키가 됩니다.
예제 1: 학생(Student) 테이블
| Student_ID | Student_Enroll | Student_Name | Student_Email |
| 096 | 2717 | Manish | aaa@gmail.com |
| 055 | 2655 | Manan | abc@gmail.com |
| 067 | 2699 | Shreyas | pqr@gmail.com |
위 테이블에서 Student_ID, Student_Enroll, Student_Email은 모두 후보 키입니다. 이 세 속성은 각각 학생 레코드를 고유하게 식별할 수 있기 때문입니다.
만약 Student_ID를 기본 키로 선택했다면, 나머지 두 키인 Student_Enroll과 Student_Email은 대체 키(기본 키의 후보)가 됩니다.
예제 2: 직원(Employee) 테이블
| Employee_ID | Employee_SSN | Employee_Name | Employee_Phone |
| E897 | SSN08 | Harry | 999999 |
| E856 | SSN06 | Jacob | 999899 |
| E871 | SSN09 | Amy | 999898 |
위 테이블에서 후보 키는 다음 세 가지입니다.
- Employee_ID
- Employee_SSN
- Employee_Phone
이 중 예를 들어 Employee_SSN을 기본 키로 선택하면, 나머지 두 키는 기본 키의 후보였기 때문에 대체 키라고 부릅니다.
따라서 위 테이블에서 Employee_ID와 Employee_Phone이 대체 키에 해당합니다.
정리
대체 키는 단순히 '남겨진 키'가 아니라, 기본 키와 동일한 조건인 고유성(Uniqueness)과 NOT NULL 제약을 모두 만족하는 유효한 키입니다. 데이터베이스를 설계할 때는 어떤 후보 키를 기본 키로 삼고, 어떤 키를 대체 키로 남길지 신중히 결정하는 것이 중요합니다. 대체 키는 필요에 따라 UNIQUE 제약 조건으로 설정하여 데이터 무결성을 추가로 보장하는 데 활용할 수 있습니다.