問題タブ [bcnf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
relational-database - リレーションが BCNF にあるかどうかを確認する方法
私には関係があります:A,B,C,D,E
FD付き:
A->BC
になれるので、A->B
にA->C
なれB->D
ますA->D
。そして からA->C
、A->D
そして にCD->E
なることができA->E
ます。よくわかりませんE->A
が、それ以来A->E
、そうでA->A
あり、些細なFDになると思います。つまり、この関係のキーは{A}
? A
したがって、左側にある唯一の FD はになりますA->BC
。
しかし、この関係は BCNF にあるのでしょうか。そうでない場合、BCNF になるように変更するにはどうすればよいですか? BCNF に違反する FD を関係を分離するための出発点として使用することを読みましたが、左側に A がない FD を選択し、そこで分離し続けますか?
key - プライム属性とキー
プライム属性は候補キーのメンバーのみですか、それともスーパーキーにもなり得ますか? プライム属性は任意のキーのメンバーになることができ、他の人はそれが候補キーのメンバーである必要があると言っているので、私は少し混乱しています。
normalization - 関数の依存関係 lhs には、主要な属性と非主要な属性の両方があります
テーブルzoo(a、b、c、d、e、f、g)とFDを検討してください
a → b,d,e,g
c,d → f
f → c
e,g → d
その上で正規化を実行します。
候補キーは {a,c} {a,f} であるため、素数は {a,c,f} です。
2NF は a → b,d,e,g によって破られる
次に、新しいテーブルは t1(a,b,d,e,g)、zoo(a,c,f) です
3NF は e,g → d によって破られる
次に、新しいテーブルは t2(e,g,d)、t1(a,b,e,g)、zoo(a,c,f) です。
BCNF 違反は素数 -> 素数ですが、c と f は素数ですが、d は非素数なので、lhs には素数と非素数があり、rhs は素数です。
次に、私の質問は、FD c、d → f をどのように処理するかです。