2017-04-03 9 views
0

할당 :속성이 어떤 다른 사람과 아무 관계가 없을 때 분해를 BCNF하는 방법에

의 관계를 고려 (......)와 FD 집합 = {→, →, →, → , →, →}. BCNF에 없으면이를 BCNF 관계 콜렉션으로 분해하십시오. 분해가 무손실 결합인지 확인하십시오.

설명

안녕, 내 데이터베이스 숙제 일하고 있어요 (관련 디자인 장). 클래스 내 예제를 기반으로 기본 프로세스를 명령했다고 생각합니다. 그러나 까다로운 부분은 다른 사람과 아무런 관련이없는 'H'속성을 가지고있어서 나를 혼란스럽게합니다. 어떻게 처리해야합니까?

시도 대답

• We start from a schema: ABCDEGH, since H has no relations with any attribute, we decompose it into tables: H and ABCDEG 
• The FDs for ABCDEG remains the same, therefore key is E. 
• The FD D →AG violates BCNF (FD with non-key on LHS). 
• To fix, we need to decompose into tables: ADG and BCDE 
• FDs for ADG are { D → AG }, therefore key is D, therefore BCNF. 
• FDs for BCDE are { B → CD,  E → D,  BC → DE, E → B, CD → BE } 
• Key for BCDE is also E, and FD B → CD violates BCNF (FD with non-key on LHS). 
• To fix, we need to decompose into tables: BCD and BE 
• FDs for BCD are { B → CD } therefore key is B, therefore BCNF. 
• FDs for BE are { E → B } therefore key is E, therefore BCNF. 
• Final schema:  H, ADG, BCD, BE 

내 실수에 대한 의견은 무엇입니까?

+0

1 단계가 잘못되었습니다. 어떤 참조를 사용하고 있습니까? – philipxy

+0

"동일하게 유지되는"것은 무엇을 의미합니까? AB가 또한 CK 인 것을 깨닫습니까? 관계에 여러 CK가있을 수 있다는 것을 알고 있습니까? 제발 당신이 알고리즘을 따르거나 그것에 대한 참조를 주어야합니다. 또한 "타인과 관계가 없다"는 용어는 전문 용어로서 다르게 사용하는 문맥에서 일반적인 방식으로 "관계"를 사용합니다. 다른 속성을 가진 임의의 FD에 H가 언급되어 있지 않다는 것을 의미합니다. – philipxy

답변

0

첫 글 머리 기호가 잘못되었습니다. 따라야 할 BCNF 분해 알고리즘이있는 참조로 이동하면 해당 단계가 없습니다. 결국 FD마다 생성 된 BCNF 구성 요소 스키마 중 하나에 FD (기능 종속성)에 언급되지 않은 특성을 추가 할 것입니다.