関数従属性 - 属性(データ)の関係性

関数従属性 - 属性(データ)の関係性

データベースでデータを扱うには、データの関係性を理解することが重要です。

ここではその基礎となる関数従属性について解説します。

属性

属性は“データの項目名”のことです。

例えば、『商品名』や『価格』などが該当し、属性値(データ)として、『りんご』や『¥150』があります。

DBの属性と属性値

関数従属性

関数従属性は属性Xの値によって属性Yの値が一意に決まる関係性のことです。

この関係性は「属性Yは属性Xに関数従属する」と言語し、次のように表記します。

属性X → 属性Y

この時、属性Xを独立属性、属性Yを従属属性と呼びます。

例えば、商品名(属性X)が『りんご』のとき、価格(属性Y)は¥150に決まるいう関係のとき、「価格は商品名に関数従属する」と言い、商品名 → 価格と表記します。

関数従属性(独立属性・従属属性)

逆に価格によって商品名は決まらないため、商品名は価格に関数従属しません。

関数従属しないケース

独立属性は複数属性の組み合わせにすることができ、その場合は波括弧で括り、カンマ(,)で区切って表記します。

{属性X,属性A} → 属性Y

例えば、店名と商品名によって価格が決まる場合は、{店名,商品名} → 価格です。

複数の属性により構成される独立属性

種類

関数従属性は3つの種類があります。

部分関数従属性

部分関数従属性は“独立属性を構成する一部の属性に関数従属する関係性”です。

例えば、{店名,商品名} → 価格店名 → 住所が成り立つとき、「住所は店名に部分関数従属する」と言います。

部分的関数従属性

完全関数従属性

完全関数従属性は“部分関数従属性がない関数従属性”です。

例えば、先ほどの部分関数従属性の例において、{店名,商品名} → 価格の関数従属のみの場合は、「価格は店名と商品名に完全従属する」と言います。

完全関数従属性

推移的関数従属性

推移的関数従属性は“間接的に関数従属する関係性”です。

例えば、店名 → 住所住所 → 最寄駅が成り立つ時、「最寄駅は店名に推移的関数従属する」と言います。

推移的関数従属性