2

5 개의 함수 종속성이있는 관계에서 BCNF 분해를 수행하고 5 개의 관계로 끝납니다. 그러나 각각의 새로운 관계는 원래의 기능 종속성 중 하나와 동일한 속성 및 FD를가집니다.BCNF 분해 후 시작하는 동일한 FD 가져 오기?

하나의 함수 종속성은 AB -> C 였고, 결국 다섯 가지 관계 중 하나는 AB -> C 함수 종속성을 가진 ABC 특성을 가졌습니다. 다른 네 가지 릴레이션 (원본 애트리뷰트 중 하나와 동일한 애트리뷰트와 FD)에서도 마찬가지였다.

BCNF 분해가 잘못 되었습니까?

이 질문은 비슷한 상황을 설명하는 약자 Specific BCNF decomposition 인 것으로 나타났습니다.

BCNF 알고리즘을 전혀 따르지 않아도되고 각 FD에서 속성을 가져와 관계에 넣은 다음 각 관계가 BCNF에 있으므로 새로운 새로운 관계로 구성된 스키마도 마찬가지일까요?

+1

일반적으로 NO. 이는 대소 문자에 따라 다릅니다. 관계와 FDs 및 솔루션을 추가하여 질문을 편집하면 구체적인 예에 ​​대한 답을 얻을 수 있습니다. – Renzo

+1

예, 모든 FD는 BCNF 분해로 보존됩니다. 그러나 그것이 항상 존재한다는 것을 의미하지는 않으며, 그들이 항상 존재할 수 있음을 의미하지는 않습니다. – philipxy

답변

0

일부 원래 FD (기능 종속성)가 분해 구성 요소 사이에 존재하는 경우가 있습니다. 이것은 "FD가 보존되어있는"경우이며 가능한 경우 가능합니다. (이것은 항상 3NF 로의 정규화와 일반적인 "3NF"알고리즘이 실제로 생성하는보다 엄격한 EKNF로 가능합니다.) 그러나 BCNF에 대한 모든 분해가 모든 FD를 보존하는 것은 아닙니다. 그리고 BCNF로 분해 할 때 항상 모든 FD를 보존 할 수있는 것은 아닙니다. 가능하지 않은 경우는 CK (후보 키)가 겹치는 경우입니다.

"각 FD에서 속성을 가져 와서 관계로 넣는 것"이 ​​무슨 뜻인지는 분명하지 않습니다. 그러나 때로는 FD의 속성을 분리 할 때 다른 FD는 더 이상 하나의 구성 요소에 모든 속성을 갖지 않으므로 구성 요소 중 하나에서 끝날 수 없습니다. 즉, 유지되지 않습니다. BCNF 알고리즘 BCNF 알고리즘 입니다. 왜냐하면 모든 경우를 처리하기 때문에이며, 하나를 따르지 않으면 항상 BCNF 분해를 얻지 못할 것입니다. 그런 알고리즘이 왜 그런 식으로 설계되었는지 이해하고 싶다면 그 알고리즘을 소개하십시오. 예 : Silberschatz, Korth & Sudarshan의 데이터베이스 시스템 개념 7 장 관계형 데이터베이스 설계, 섹션 7.6 Boyce-Codd 일반형 (7.6.2 분해 알고리즘 및 7.6.3 종속성 보존) 및 7.7 제 3 정규형. 온라인에서 텍스트와 슬라이드를 찾을 수 있습니다.

7.6.3 종속 보존

아니 모든 BCNF 분해는 종속 보존이다. 무손실 조인

리콜 정보의 손실을 방지하기 위해 분해를위한 필수 조건이다. 따라서 BCNF 나 의존성 보존을 포기해야합니다. 7.7 절에서 우리는 BCNF의 작은 이완 인 제 3 정규형이라고 불리는 대안적인 표준 형태를 제시한다. 세 번째 정규 형식을 사용하려는 동기는 항상 세 번째 정규 형식으로 분해를 보존하는 종속성이 있다는 것입니다.

스키마를 BCNF로 분해하는 방법이 여러 가지 경우가 있습니다. 이러한 분해 중 일부는 종속성을 보존하는 반면 다른 일부는 그렇지 않을 수도 있습니다.일반적으로

, 데이터베이스 설계자는 그러므로 다른 분해보고, 가능한 분해를 보존 종속성을 선택해야합니다.