0

、:3NFに与えられていない例はなぜですか?私は理解しようとしている例を以下している

R = {A, B, C} 
FD = {A->B, B->C, AB->C} 

プライムキーがAです。

私はこの例が2NFであることを知っています。プライムキーには要素が1つしかないので、この例はなぜ3NFに含まれないのか理解できません。

Cは機能的にABに依存しますが、Bはキーのキーまたはキーの一部ではありません。それが3NFにない理由です。

おかげ関係Rで

+1

* CはABに機能的に依存しますが、Bはキーの一部ではありません。*そのため、3番目の正規形ではありません。 3番目の通常の形式では、エンティティはキー、キー全体、およびキーだけに依存しているので、Coddを助けてください。 –

答えて

3

は、依存性FDのセットの正規のカバーである:

1. A → B 
2. B → C 

理由は依存A B → Cが他人に由来することができることである。

1. A → B (given) 
2. AB → B (by enrichment of A → B) 
3. AB → C (by transitivity of AB → B and B → C) 

この関係の候補キーは、Aです。これは、クロージャが他のすべての属性を決定するためです。

A+ = A 
A+ = AB (by using A → B) 
A+ = ABC (by using B → C) 

他の属性は、キー(BACのみ依存関係のrigth一部に表示されるかを決定することはできません)になることはできません。

スキンは、正規のカバーの関数従属関係のすべての決定子がスーパーキーである場合、または第3正規形(3NF)の場合にのみ、カノニカルカバーの関数従属関係のすべての決定要因がスーパーキーであるか、または確定要素が主要な属性である場合。

決定Bがキーではない、とCは素数属性ではありませんした機能依存B → Cがあるのでので、スキーマは、BCNFでは、どちらも3NFではありません。最後に、2つのリレーションのスキーマを分解する:

R1 < (A B), { A → B } > 

R2 < (B C), { B → C } > 

我々は3NFにし、BCNFの両方にある2体の関係を持っており、この分解は元のスキーマの関数従属性を保持します。

関連する問題