北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。
関数従属性の閉包の定義
リレーションスキーマ$RS$と属性集合$X,Y\subseteq RS$が与えられ,$X,Y$間の関数従属性の集合$F$が存在するとき,
\begin{align}
F^{+} = \{X~\rarr~Y~|~F\models X~\rarr~Y\}
\end{align}
F^{+} = \{X~\rarr~Y~|~F\models X~\rarr~Y\}
\end{align}
で定義される$F^{+}$を,$F$の閉包と呼びます。ただし,$F\models X~\rarr~Y$とは,$X~\rarr~Y$という関数従属性を成り立たせるような全ての関数従属性の集合を表しています。
$F\models X~\rarr~Y$は「$F$は$X~\rarr~Y$を論理的に含意する」とも表現され,例えば$\{A\rarr B, B\rarr C\}$は$A\rarr C$を論理的に含意すると表現されます。
補足
一見難解な定義ですが,閉包は「リレーションスキーマに現れる関数従属性は氷山の一角で,実は裏側にもっと沢山の関数従属性が自明な関数従属性も含めて存在する」という主張をサポートするためのツールです。
また,関数従属性が整合性制約の一種であることを踏まえると,関数従属性の閉包は整合性制約の全体と捉えることもでききます。すると,ある二つの関数従属性の閉包$F^{+},G^{+}$に対して$F^{+}{=}G^{+}$が成り立つときは,$F$の規定する整合性制約と$G$の規定する整合性制約は全く同じになります。このとき,$F$と$G$は等価であると表現します。
参考文献
ポチップ
コメント