내가 BCNF가 무엇인지 이해하려고 노력하고 있는데이 같은 관계가 있습니다 BCNF
학생
(아이디, 주민등록번호, 이메일, 이름, 성)을
- ID가 NOT NULL 및 자동 증가 속성와 차 대용 키가 어디
- SSN은이다 null이 아닌 고유 속성 키 및
- 전자 메일은 null이 아닌 고유 키입니다..
BCNF를 위반하는 것이 있습니까? 그렇다면 어떻게하면 더 나은 디자인으로 이러한 상황을 극복 할 수 있습니까?
내 함수 종속을 작성하려고하지만, 내가 틀렸다면 수정하시기 바랍니다하고
편집 할 수 있습니다.
다른 속성을 결정하는 세 가지 속성이 있으므로 방정식의 왼쪽과 오른쪽에 ssn과 전자 메일이 모두 있다는 것이 혼란 스럽습니다. 이 관계는 BCNF에 있지 않은 것 같다하지만 뭔가 잘못 :)
id -> (ssn, email, name, surname)
ssn -> (id, email, name, surname)
email -> (id, ssn, name, surname)
sedran의 종속성 세트가 완전하면 yes입니다. 그러나 일반적으로 키가 겹치지 않는다고해서 자동으로 관계가 BCNF에 있다는 것을 의미하지는 않습니다. 비 핵심 종속성 또는 부분 키 종속성이 발생한 경우 BCNF를 충족시키지 못합니다. – sqlvogel
@sqlvogel - 중복되는 키가 없으면 어떻게 BCNF에 실패 할 수 있는지 생각할 수 없습니다. 예를 보여 주시겠습니까? –
예. A와 B가 비 보증 (nonprime) 인 종속성 A -> B는 후보 키가 무엇이든간에 BCNF (및 3NF)를 위반하게됩니다. – sqlvogel