작성
·
30
0
3번 문제입니다.
```
기본 키(Primary Key)는 반드시 고유하며 Null을 허용하지 않아야 합니다. 그렇다면 '후보 키(Candidate Key)'는 기본 키와 비교할 때 어떤 속성에서 차이가 있을 수 있나요?
```
이 문제에 대한 답입니다.
```
Null 허용 여부: 후보 키는 테이블 내에서 고유하게 레코드를 식별할 수 있는 속성들의 집합이지만, 기본 키로 선정되지 않은 후보 키는 경우에 따라 Null 값을 가질 수 있습니다.
```
후보키라는게 결국 PK(기본키)가 될 가능성이 있는 키라고 하셨는데, 그러면 Null허용이 되면 안되는거 아닌가요? 기본 키로 선정되지 않는 경우더라도요.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
임형준님, 질문에 답변 드리겠습니다.
후보 키(Candidate Key)는 테이블에서 기본 키(Primary Key)로 선정될 수 있는 모든 속성을 의미하며, 일반적으로 후보 키는 고유한 값이어야 하고 Null을 허용하지 않아야 합니다. 하지만 질문에서 제시된 정보와 같이 후보 키로 사용할 수 있는 조건 중 하나인 “기본 키로 선정되지 않은 경우”라는 점이 고려되면, 일부 시스템이나 컨텍스트에서 후보 키가 Null을 허용할 수 있는지를 검토하는 경우도 있을 수 있습니다.
기본적으로 후보 키도 기본 키가 될 잠재성을 가지므로 Null 값이 허용되지 않는 것이 일반적입니다. 하지만 특정 사례나 환경에 따라서 구현 관점에서 후보 키가 다르게 다뤄질 수 있다는 혼동이 생긴 걸로 보이네요.
추가적으로 이해하기 위해서 실질적인 구현 관계에 따라 후보 키의 충족 조건이 달라질 수 있다는 점도 유념하시기 바랍니다. 또 다른 질문이 생기면 언제든지 문의 주세요!
참조 링크: 데이터베이스 관련 참조