이번 주 중반에 데이터베이스가 있으며 BCNF 위반을 식별하는 데 문제가 있습니다. 나는 관계를 분해하고 열쇠가 무엇인지, 그리고 수퍼 키인지 찾는 방법을 안다. 내포 된 FD를 작성할 수도 있습니다. 나는 다음 비디오를보고 있었다 : https://www.youtube.com/watch?v=hTFyG5o8-EA. BCNF에 대한 위반 사항은 어떻게 지적합니까?
다음과 같은 관계에 BCNF 알고리즘을 적용하기 시작 설명, 레이디 그것을 요약하면 (그녀는 학생의 예를 사용하지만 나는 그것을 단순화하는 문자로 변환 한) :R (A를 B를 FDG : A → BCG, G → H, D → EF를 사용하여 C, D, E, F, G,
나는 그 열쇠가 AD + = ABCDEFGH이므로 키가 AD라는 것을 알고 있습니다. > EF (D + = DEF) // 어떤 위반 그런데 왜 -
R1 = D :
BCNF 시도 # 1 : 그녀는 모든 FDS 위반이다 제출하고 알고리즘을 적용하기 시작 있다고? 그것은 단지 위반이 아니 었습니까?
R2 = ABCDEFG - (DEF - D) = ABCDGH // 위반 이유는 무엇입니까? 두 키가 모두 들어 있습니다. R2에
BCNF 시도 # 2 :
R3 = G -> H (G + = GH) // 아무 위반 두 속성이 GH 때문에, 내가 믿는
R4 = ABCDG // 위반은 있지만 그 이유는 모르겠습니다.
R4에 BCNF 시도 # 3 :
R5 = A -> BCG // 전혀 위반하지
R6 = AD // 아무 위반 (?) (?)
최종 관계 : R1, R2, R5, R6.
내 최종 답변을 수정하고 설명해 주셔서 감사합니다. – mamajava
@philipxy 부분적이고 전이성 인 FD가 BCNF를 위반한다는 것을 보여주는 것은 어렵지 않습니다. 제 요점은 BCNF 위반 사항을 분류하는 것이 아니라 OP 문제의 위반 사항에 대한 유효한 (익숙한) 설명을 제공하는 것이 었습니다. 이러한 문제는 방금 이러한 용어로 설명 될 수 있습니다. 완성을 위해 PS를 추가했습니다. – reaanb
@reaanb 2NF를 위반하기 때문에 CK의 비 기본 속성의 부분 종속성이 BCNF를 위반한다는 것을 쉽게 나타낼 수 있습니다. 그러나 이들은 SK가 아닌 FD입니다. 부분적, 전이 적 및 기타 종속성이 SK가 아닌 FD를 참조하지 않고 BCNF를 위반 하는지를 정확하게 보여주는 것은 쉽지 않습니다. 그리고 후자 * 문제 때문에, 왜 귀찮게합니까? 3NF의 친숙한 개념은 3NF를 사용하는 정의와 결정된 집합과 결정 집합 사이의 집합 차이의 모든 요소를 기본 속성으로 사용하지 않는 한 3NF에서 익숙하지 않은 개념으로 유용하지 않습니다. 전 이적. – philipxy