Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

RDBMS 후보 키(Candidate Key)란? 개념부터 예제까지 쉽게 이해하기

관계형 데이터베이스(RDBMS)에서 후보 키(Candidate Key)는 테이블의 각 레코드를 고유하게 식별할 수 있는 속성(또는 속성의 조합)을 의미합니다. 하나의 테이블에는 기본 키(Primary Key)가 단 하나만 존재할 수 있지만, 후보 키는 한 개 이상 존재할 수 있습니다.

후보 키와 기본 키의 관계

하나의 관계(relation)에는 여러 개의 후보 키가 존재할 수 있으며, 그중 하나가 선택되어 기본 키(Primary Key)가 됩니다. 즉, 모든 후보 키는 기본 키가 될 자격을 갖추고 있기 때문에 '기본 키의 후보'라는 의미에서 후보 키라고 부르는 것입니다.

후보 키는 단일 컬럼일 수도 있고, 두 개 이상의 컬럼을 조합한 형태일 수도 있습니다. 데이터베이스 이론에서 후보 키는 최소성(minimality)을 만족하는 슈퍼 키(Super Key), 즉 최소 슈퍼 키(Minimal Super Key)로 정의됩니다. 여기서 최소성이란, 해당 키에서 어떤 속성을 제거하면 더 이상 레코드를 고유하게 식별할 수 없어야 한다는 조건입니다.

예제 1: 직원 테이블

직원 정보를 저장하는 테이블을 생각해 보겠습니다. EmployeeID(사원 번호)EmployeeEmail(사원 이메일)은 모두 중복 없이 각 직원을 고유하게 식별할 수 있습니다. 따라서 두 속성 모두 후보 키에 해당합니다.

하지만 하나의 테이블에는 기본 키가 오직 하나만 존재할 수 있으므로, 이 둘 중 하나만 기본 키로 선택해야 합니다. 예를 들어 EmployeeID를 기본 키로 지정하면, EmployeeEmail은 대체 키(Alternate Key)가 됩니다.

예제 2: 학생 테이블

Student_IDStudent_EnrollStudent_NameStudent_Email
S024545Daveddd@gmail.com
S344541Jackjjj@gmail.com
S224555Markmmm@gmail.com

위 학생 테이블에서 Student_ID(학생 번호), Student_Enroll(등록 번호), Student_Email(학생 이메일)은 각각 학생 레코드를 고유하게 식별할 수 있으므로 모두 후보 키입니다. 반면 Student_Name(학생 이름)은 동명이인이 존재할 수 있어 고유성을 보장하지 못하므로 후보 키가 될 수 없습니다.

후보 키의 주요 특징 정리

  • 테이블의 모든 레코드를 고유하게 식별할 수 있어야 합니다(유일성).
  • 키를 구성하는 속성이 더 이상 줄어들 수 없어야 합니다(최소성).
  • NULL 값을 가질 수 없습니다.
  • 하나의 테이블에는 여러 개의 후보 키가 존재할 수 있지만, 기본 키는 그중 단 하나만 선택됩니다.
  • 기본 키로 선택되지 않은 후보 키는 대체 키(Alternate Key)라고 부릅니다.

후보 키의 개념은 데이터베이스 설계 시 올바른 기본 키를 선정하는 데 필수적인 기초 지식입니다. 유일성과 최소성을 기준으로 적절한 후보 키를 판단하고, 그중 가장 안정적이고 변경 가능성이 낮은 속성을 기본 키로 선택하는 것이 좋습니다.