次の機能依存関係があると仮定します。
AB -> C
DEG -> H
A -> B
DG -> H
(G-(AB ->C) U (A -> C) = ACB である B+ の閉包により B を削除できることがわかります
最小限のカバーを見つけるために、DEG -> H、DG -> H に関する他の左側の冗長性にどのようにアプローチすればよいでしょうか。これらを減らすことができますか。
どうもありがとう、マシュー
次の機能依存関係があると仮定します。
AB -> C
DEG -> H
A -> B
DG -> H
(G-(AB ->C) U (A -> C) = ACB である B+ の閉包により B を削除できることがわかります
最小限のカバーを見つけるために、DEG -> H、DG -> H に関する他の左側の冗長性にどのようにアプローチすればよいでしょうか。これらを減らすことができますか。
どうもありがとう、マシュー
これを行うには、いくつかのルールがあります。とても簡単です。機能依存セットは最小限です。
したがって、最小限のカバーを見つけている場合は、これらを確認する必要があります. もちろん、クロージャーを同等に保つ必要があります。
あなたが見てみると:
AB -> C
DEG -> H
A -> B
DG -> H
冗長性を簡単に見つけることができます。DEG → H と DG → H の両方を含める意味はありません。なぜなら、DG → H は、DEG → H がカバーするすべてを既にカバーしているからです。だから、それを削除することができます。
それでも同等:
AB -> C
A -> B
DG -> H
B は機能的に A に依存しているため、最初の行から B を削除できることがわかります。
それでも同等:
A -> C
A -> B
DG -> H
最小限のカバーが見つかりました。クロージャーを維持するために依存関係を削除することはできません。右側には単一の属性のみがあり、左側には保持する必要がある唯一の二重属性である DG があります。D も G も削除せず、元のクロージャを維持することはできません。
これは、アームストロングの公理を使用して証明できます。元のセットを取得できれば、これは真に同等の最小セットです。(後で投稿します-正しいことを願っています。)