私は最小限のカバーを持っていると言う場合:F」= {A-> F、A-> G、CF-> A、BG-> C)と私は関係の1つの候補キーを同定した 、それがAだと言うと、 私は正確に何をしますか?
F 'は、最小限のカバーではありません:あなたはA-> FとA-> GへのA-> FG
AはF与えられた候補キーできなくても価値が
結合する必要がありB' がないために可能な候補キーはABです。あなたはFでの依存関係の各1」のためのテーブルの作成を開始し3NFについては
、すなわち、
R1(A,F,G) R2(A,C,F) R3(B,C,G)
次はテーブルのいずれかが、候補キーが含まれているかどうか確認してください。 Bは依存関係の左側にのみ現れるため、Bは常に候補キーの一部でなければなりません。 Bを持つ唯一のテーブルはR3であり、候補キーは含まれていません(チェックしてください!)。
R4(A,B)
を属性としてそこで、私たちは候補キーを持つ新しいテーブルR4を追加最後に、我々は、テーブルのいずれかの属性のセットを別のテーブルの属性の集合に含まれているかどうかを確認してください。実行中の例ではそうではありません。したがって
、当社3NF分解では、R(A、B、C、F、G)で始まり、BCNF違反を探しBCNFについては
R1(A,F,G) R2(A,C,F) R3(B,C,G) R4(A,B)
です。
たとえば、A-> FGはBCNFの違反です。この依存関係は自明ではなく、Aはスーパーキーではないためです。したがって、我々はRを分割した。
得られた関係にはBCNF違反が含まれていないので、プロセスはここで停止する。