属性の包をデータベースで求める方法は?
データベースにおいて、属性の閉包は関係の関数従属に基づいて求めることが可能である。具体的には以下の手順に基づいて求める。
- 与えられた関数従属関係から、関係スキーマ内の全ての関数従属関係を決定する。
- 与えられた属性集合で、初期の閉包集合を定めます。
- 包集合内の各属性集合に対して関数従属関係を用いて導出を行い、新たな属性が導出されなくなるまで繰り返す。
- それぞれの関数従属性について、右辺の属性集合が閉包集合内にあるか確認し、なかった場合には右辺の属性集合を閉包集合に追加する。
- 4番目の手順を、もう閉鎖集合に新しい属性を追加できなくなるまで繰り返します。
- 属性の閉包は、結果的に得られる閉包集合です。
プロパティの包絡は複数のプロパティ集合を含む可能性があることに注意してください。そのため、最終的に得られる包絡集合は集合の集合です。