후보 키

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

후보 키(candidate key)는 관계형 데이터베이스관계형 모델에서 슈퍼 키 중 바꿀 수 없는(irreducible) 형태를 가진 것을 말한다.

바꿀 수 없다는 것은 그것을 구성하는 속성(열) 중 어느 하나라도 부족한 경우 고유성을 확보할 수 없게 되는 것, 즉 중복 속성이 없는 것을 말한다. 극소(minimal)라고도 한다. 즉, 쌍 (행)의 식별을 위해 필요한 특성 또는 그 집합이 후보 키이다. 후보 키는 행(row)의 ‘주소’ 또는 ‘식별자’라고 생각할 수도 있다. 후보 키라고 하는 이름은 그것이 기본 키로 선정할 수 있는 후보이기 때문에 유래한 명칭이다.

하나의 관계(관계, 테이블)에는 관계를 정의할 때, 적어도 하나의 후보 키가 존재한다. 물론 하나의 관계에 후보 키가 두 개 이상 존재할 수 있다. 예를 들어 마을(마을 ID, 도시명, 도명)이라는 관계의 경우 마을 ID와 {도시명, 도명}가 후보 키이다. 또한 도시명에는 중복이 있을 수 있기 때문에 도시 이름은 단독으로는 후보 키가 되지 않는다. (예, 고성군)

NULL을 허용하는 후보 키라는 것을 인정할 것인가에 대해서는 여러 설이 있다. 어떤 사람들은 주로 키는 인정되지 않지만 후보 키는 인정되어야 한다고 생각하고 있다. 다른 사람들은 기본 키를 인정하지 않으면, 후보 키도 존재할 이유가 없다고 생각하고 있다. 기본 키는 인정되지 않지만 후보 키는 인정한다는 생각은 후보 키 중 무작위로 선정된 하나가 기본 키라는 정의와 모순된다.

또한 SQL 구문 CREATE UNIQUE INDEX 문에 지정된 고유 제약 조건은 엄격하게 후보 키는 다른 개념이기 때문에 고유성 제약 조건에 NULL을 허용할 수 있는 것은 여기 토론에 반드시 영향을 주지 않는다.

관련 항목[편집]

주석[편집]