【DB入門】関数従属性の定義

北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。

関数従属性の定義

リレーションスキーマ$RS$と属性集合$X,Y\subseteq RS$が与えられたとき,$RS$の任意のインスタンス$R$において,次の関係

\begin{align}
(\forall t\in R)(\exists u\in R)(t[X]=u[X]~\rarr~t[Y]=u[Y])\label{定義}
\end{align}

が成立するならば,関数従属性$X\rarr Y$が成り立つという。ただし,$t[X]$はタプル$t$の$X$属性値を示す記法です。また,関数従属性$X\rarr Y$が成り立つとき,$Y$は$X$に関数従属するといいます。

補足1

式($\ref{定義}$)を噛み砕くと,「リレーション$R$に属する全てのタプル$t$とその属性値$X$に対し,同じ属性値$X$をもつタプル$u$が見つかった場合に,全てのタプル$u$の属性値$Y$とタプル$t$の属性値$Y$が必ず同じ値になる場合,属性$X$と属性$Y$の間には関数従属性が成り立つ」という日本語になります。直感的には,リレーションに属する全てのタプルを観察したときに,ある属性を一つ決めれば他の属性も一意に定まる場合に,関数従属性が成り立つと捉えておけばよいでしょう。

補足2

正規化論を勉強していると,「部分関数従属」や「完全関数従属」や「推移的関数従属」といった用語が用いられる場合もあります。そこで,これらの定義をおさえておきましょう。

部分関数従属

$X\rarr Y$が成り立ち,$Z\rarr Y$が成り立つ$Z{\subset}X$が存在するとき,$Y$は$X$に部分関数従属するという。

$Y$は$X$の真部分集合に依存するという意味です。

完全関数従属

$X\rarr Y$が成り立つが,あらゆる$X^{\prime}{\subset}X$に対して$X^{\prime}\rarr Y$は成り立たないとき,$Y$は$X$に完全関数従属するという。

$Y$は$X$の真部分集合に依存せず,$X$そのものにのみ依存するという意味です。

推移的関数従属

$X\rarr Y$が成り立つが$Y\rarr X$は成り立たず,$Z{\not\subseteq}Y$に対して$Y\rarr Z$が成り立つとき,$Z$は$X$に推移的関数従属するという。

関数従属性が連鎖しているという意味です。

参考文献

オーム社
¥1,800 (2024/10/12 23:31時点 | Amazon調べ)
シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.