데이터베이스 후보 키

From IT Wiki

후보 키(Candidate Key)는 데이터베이스 테이블에서 각 행을 고유하게 식별할 수 있는 속성 또는 속성들의 집합을 의미한다. 후보 키는 테이블 내의 모든 행을 유일하게 구분할 수 있는 최소한의 속성 집합으로, 기본 키(primary key)로 선택될 수 있는 후보가 된다.

후보 키의 조건[edit | edit source]

후보 키가 되기 위해서는 다음 조건을 만족해야 한다.

  • 유일성(Uniqueness): 후보 키는 테이블 내에서 각 행을 유일하게 식별할 수 있어야 한다. 즉, 동일한 값을 가지는 두 행이 존재할 수 없다.
  • 최소성(Minimality): 후보 키는 속성의 최소 집합이어야 한다. 즉, 후보 키의 속성 중 하나라도 제거하면 유일성을 상실해야 한다.

후보 키는 테이블 내에서 기본 키가 아닌 대체 키(alternate key)로도 사용될 수 있다.

예시[edit | edit source]

학생 테이블이 있고, 각 학생의 정보를 저장하는 `학생ID`, `이메일`, `전화번호` 속성이 있다고 가정하자. 이 테이블에서 각 속성들이 후보 키가 될 수 있다.

학생ID 이름 이메일 전화번호
1 홍길동 [email protected] 010-1234-5678
2 이영희 [email protected] 010-9876-5432

이 예시에서 다음과 같은 후보 키가 존재할 수 있다.

  • `학생ID`: 모든 학생을 고유하게 식별하므로 후보 키가 될 수 있다.
  • `이메일`: 각 이메일 주소는 고유하므로 후보 키가 될 수 있다.
  • `전화번호`: 각 전화번호는 고유하므로 후보 키가 될 수 있다.
  • `이름`: 이름은 고유하지 않을 가능성이 크므로 후보 키로 적합하지 않다.

후보 키와 기본 키의 차이[edit | edit source]

  • 후보 키는 기본 키로 선택될 수 있는 모든 속성 집합을 의미한다.
  • 기본 키는 후보 키 중에서 실제로 테이블의 주요 식별자로 선택된 키이다. 기본 키는 단 하나만 존재할 수 있지만, 후보 키는 여러 개 존재할 수 있다.

관련 개념[edit | edit source]

  • 대체 키(Alternate Key): 후보 키 중 기본 키로 선택되지 않은 키를 의미한다.
  • 슈퍼 키(Super Key): 유일성은 만족하지만 최소성을 충족하지 않는 속성 집합이다. 후보 키는 슈퍼 키의 부분 집합이다.

후보 키의 중요성[edit | edit source]

후보 키는 데이터베이스 설계에서 매우 중요한 역할을 하며, 데이터의 중복을 방지하고 테이블 내에서 각 행을 고유하게 식별하는 데 필수적이다. 올바른 후보 키 설정은 데이터베이스의 무결성을 유지하고 데이터베이스를 최적화하는 데 기여한다.

같이 보기[edit | edit source]