、:3NFに与えられていない例はなぜですか?私は理解しようとしている例を以下している
R = {A, B, C}
FD = {A->B, B->C, AB->C}
プライムキーがA
です。
私はこの例が2NFであることを知っています。プライムキーには要素が1つしかないので、この例はなぜ3NFに含まれないのか理解できません。
Cは機能的にABに依存しますが、Bはキーのキーまたはキーの一部ではありません。それが3NFにない理由です。
おかげ関係Rで
、:3NFに与えられていない例はなぜですか?私は理解しようとしている例を以下している
R = {A, B, C}
FD = {A->B, B->C, AB->C}
プライムキーがA
です。
私はこの例が2NFであることを知っています。プライムキーには要素が1つしかないので、この例はなぜ3NFに含まれないのか理解できません。
Cは機能的にABに依存しますが、Bはキーのキーまたはキーの一部ではありません。それが3NFにない理由です。
おかげ関係Rで
は、依存性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)
他の属性は、キー(B
がA
、C
のみ依存関係のrigth一部に表示されるかを決定することはできません)になることはできません。
スキンは、正規のカバーの関数従属関係のすべての決定子がスーパーキーである場合、または第3正規形(3NF)の場合にのみ、カノニカルカバーの関数従属関係のすべての決定要因がスーパーキーであるか、または確定要素が主要な属性である場合。
決定B
がキーではない、とC
は素数属性ではありませんした機能依存B → C
があるのでので、スキーマは、BCNFでは、どちらも3NFではありません。最後に、2つのリレーションのスキーマを分解する:
R1 < (A B), { A → B } >
R2 < (B C), { B → C } >
我々は3NFにし、BCNFの両方にある2体の関係を持っており、この分解は元のスキーマの関数従属性を保持します。
* CはABに機能的に依存しますが、Bはキーの一部ではありません。*そのため、3番目の正規形ではありません。 3番目の通常の形式では、エンティティはキー、キー全体、およびキーだけに依存しているので、Coddを助けてください。 –