보조 키(Secondary Key)란 무엇인가?
관계형 데이터베이스(RDBMS)에서 보조 키(Secondary Key)는 여러 후보 키 중 기본 키(Primary Key)로 최종 선택되지 않은 키를 의미합니다. 즉, 기본 키가 될 자격은 충분했지만 선택받지 못한 키라고 할 수 있습니다.
여기서 후보 키(Candidate Key)란 테이블에서 레코드를 고유하게 식별할 수 있는 속성 또는 속성의 집합으로, 기본 키가 될 수 있는 모든 가능성을 가진 키를 말합니다. 따라서 후보 키 중 하나가 기본 키로 지정되면, 나머지 후보 키들은 모두 보조 키가 됩니다.
참고: 보조 키는 외래 키(Foreign Key)가 아닙니다. 외래 키는 다른 테이블의 기본 키를 참조하는 키로, 보조 키와는 완전히 다른 개념입니다.
보조 키의 주요 특징
- 기본 키로 선정되지 않은 후보 키입니다.
- 테이블의 레코드를 고유하게 식별할 수 있는 능력을 가지고 있습니다.
- 대체 키(Alternate Key)라고도 불립니다.
- 검색 성능 향상을 위해 인덱스로 활용되는 경우가 많습니다.
예제 1: 학생 테이블
다음 학생 테이블을 통해 보조 키의 개념을 살펴보겠습니다.
| 학생ID | 등록번호 | 학생이름 | 나이 | 이메일 |
|---|---|---|---|---|
| 096 | 9122717 | 마니쉬 | 25 | aaa@gmail.com |
| 055 | 9122655 | 마난 | 23 | abc@gmail.com |
| 067 | 9122699 | 슈레야스 | 28 | pqr@gmail.com |
위 표에서 학생ID, 등록번호, 이메일은 모두 후보 키입니다. 이 세 속성은 각각 학생 레코드를 중복 없이 고유하게 식별할 수 있기 때문입니다. 이 중 하나를 기본 키로 선택하면, 나머지 두 개의 키는 보조 키가 됩니다.
예를 들어 학생ID를 기본 키로 선택했다면, 등록번호와 이메일은 보조 키(기본 키의 후보)가 됩니다.
예제 2: 직원 테이블
이번에는 직원 테이블을 통해 개념을 다시 한번 확인해 보겠습니다.
| 직원ID | 사번 | 직원이름 | 이메일 | 부서 |
|---|---|---|---|---|
| 0989 | E7897 | 제이콥 | jacob@example.com | 재무 |
| 0777 | E8768 | 안나 | anna@example.com | 인사 |
| 0656 | E8789 | 톰 | tom@example.com | 운영 |
위 표에서 직원ID, 사번, 이메일은 후보 키에 해당합니다. 세 속성 모두 직원 레코드를 고유하게 식별할 수 있기 때문입니다. 이 중 하나를 기본 키로 지정하면, 남은 두 개의 키는 보조 키가 됩니다.
정리
보조 키는 단지 기본 키로 선택되지 않았을 뿐, 레코드를 고유하게 식별할 수 있다는 점에서 후보 키와 동일한 자격을 갖춘 키입니다. 실무에서는 보조 키를 활용해 대체 검색 경로를 만들거나 인덱스를 구성함으로써 데이터 조회 성능을 높이는 데 유용하게 사용할 수 있습니다.