1

私はBCNFデータベースを理解しようとしていますが、頭を完全に包み込むことができません。

次の関係を考慮してください。

R (A, B, C, D, E, F, G)

次の機能依存関係が成り立ちます。

A -> E, F
A -> G
A, B -> D
B -> C
E, F -> G
A -> D

どうすればBCNFにできますか?

4

3 に答える 3

2

くだけた言い方をすれば、宿題の問題で BCNF にたどり着くのは

  • あなたが少なくとも1NFにいると仮定すると、
  • (少なくとも) 2NF に到達するために部分的なキーの依存関係を削除し、
  • 推移的な依存関係を削除して (少なくとも) 3NF に到達し、最後に
  • 左側が(少なくとも)BCNFに到達するための候補キーではない残りの機能的依存関係を削除します。

部分的なキーの依存関係の例はペアです

AB->D
A->D

A だけが D を決定するため、機能依存性 AB->D は部分的なキー依存性を持ちます。

推移的な依存関係の例はペアです

A->EF
EF->G

特定の関係を、たとえば BCNFと正規化できるという保証はありません。(これは、SO の大学生の間で多くの混乱を引き起こしているようです。) 2NF に到達するために部分キーの依存関係を削除すると、すべての関係が 5NF に残る可能性があります。

于 2012-08-02T11:51:54.573 に答える
1

)アームストロングの公理を使って F+ を得ることができる

A -> D、E、F、G

B -> C (A -> D のため、A,B -> D は無視されます)

E,F -> G

主キー(A、B)を取得できます。

BCNF の定義によると、A-> (E,F)、B->C、A -> D、および (E,F) -> G を元のスキーマから分離する必要があります。

(A,B) 主キー(A,B)

(B,C) 主キー(B)

(A,D) 主キー(A)

(A,E,F) 主キー(A)

(E,F,G) 主キー(E,F)

それがBCNF分解です。

于 2013-12-04T02:03:19.700 に答える