私は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にできますか?
くだけた言い方をすれば、宿題の問題で BCNF にたどり着くのは
部分的なキーの依存関係の例はペアです
AB->D
A->D
A だけが D を決定するため、機能依存性 AB->D は部分的なキー依存性を持ちます。
推移的な依存関係の例はペアです
A->EF
EF->G
特定の関係を、たとえば BCNFと正規化できるという保証はありません。(これは、SO の大学生の間で多くの混乱を引き起こしているようです。) 2NF に到達するために部分キーの依存関係を削除すると、すべての関係が 5NF に残る可能性があります。
)アームストロングの公理を使って 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分解です。