1

3NF와 BCNF의 차이점에 대해 머리를 쓰려고합니다. 나는 거기에 다가 가고 있다고 생각하지만 누구든지 도와 줄 수 있다면 좋을 것입니다.Boyce Codd 일반형 확인

Client {clientNo(PK), clientName} 
Owner {ownerNo(PK), ownerName} 
Property {propertyNo (PK), propertyAddress, rent} 
ClientRental {clientNo(PK), propertyNo(PK), rentStart, rentFinish, ownerNo(FK)} 

각 속성은 하나 개의 소유자와 클라이언트의 수를 가지고 다음

3 일반적인 형태의 관계의 일련의 (유용하게 차례로 코놀리에서 그들을했다 Identifying Functional Dependencies에서 도난 & Begg의 데이터베이스 시스템)입니다 해당 속성을 임대하십시오. 각 부동산에 대한 임대료가 고정되어 있다고 가정합니다.

제 질문은 이것들이 BCNF에도 있습니까?

내 직감은 ClientRental 관계가 아니기 때문에 아닙니다. PropertyNo-> ownerNo. 따라서 PropertyNo는 함수 종속성의 결정 요인이지만 수퍼 키가 아닙니다.

Am은 어디든 오른쪽 야구장 근처에 있습니까?

+0

전이 의존성이 있으므로 ClientRental은 3NF에 없습니다. 이 문제를 올바르게 수정하면 6NF에는 2 개의 테이블이 있고 5NF에는 2 개의 테이블이 있다고 생각합니다. –

+0

오, 물론, ownerNo는 propertyNo를 통해 키에 전이 적으로 의존하기 때문입니다. 권리? 매우 감사합니다. 지금도 BCNF에없는 3NF 테이블의 좋은 예는 아직 없습니다. –

+0

[BCNF의 Wikipedia 항목] (http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form#3NF_tables_not_meeting_BCNF)을 참조하십시오. –

답변

0

차이를 표현하는 짧은 비공식적 인 방법은 BCNF에서 모든 기능 종속성에 대한 모든 "화살표"는 후보 키의 "화살표"입니다. 3NF에 있지만 BCNF에는없는 관계의 경우 후보 키 외에도 적어도 하나의 "화살표"가 있습니다.

Wikipedia entry for 3NF table not meeting BCNF

일반적인 오해

당신이 2NF 에 정상화 할 수 있고 더 이상이 다음에 3NF 없이 높은는 다음 을 BCNF하지하고 더 높은 것입니다. 실제로, 2NF에 도달하기 위해 부분적인 키 종속성을 수정하면 5NF의 모든 관계가 유지됩니다. 즉, BCNF에서 중간에 멈추지 않고 2NF의 관계에서 5NF의 다중 관계로 이동했습니다.