多値従属性

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

多値従属性(たちじゅうぞくせい、MVD: multivalued dependency)は、コンピュータ関係データベースにおける関係)の中の属性の2つの集合の間の、完全な制約である。

多値従属性の定義を述べる。 R を関係とし、A, B, C を、R の属性集合の任意の部分集合とする。 R のある(A値, C値)対に対応するB値の集合がA値だけに依存し、C値には独立かつそのときに限り、B は A に多値従属しているといい、次のように表す。

A Twoheadrightarrow.gif B [1]

関数従属性とは対照的に、多値従属性は関係においていくつかの(タプル、行)を親として必要とする。 それゆえ、多値従属性は組生成従属性とも呼ばれる。 多値従属性はデータベースの正規化において第4正規形 (4NF) への正規化で役割を果たす。

多値従属性は関数従属性を一般化した概念と位置づけることができる。

[編集]

この例は、講義コースの関係データベースである。 各コースで推奨されている参考図書がある。 各コースには講義する予定となっている講師がいる。

講義コースデータベースの関係
コース 参考図書 講師
AHA Silberschatz John D
AHA Nederpelt John D
AHA Silberschatz William M
AHA Nederpelt William M
AHA Silberschatz Christian G
AHA Nederpelt Christian G
OSO Silberschatz John D
OSO Silberschatz William M

講師はコースに属している。 参考図書はコースに属している。 講師と参考図書は互いに独立している。 こうしたことから、このデータベース設計には多値従属性が存在すると、述べることができる。 この例の関係(表)は {コース, 参考図書, 講師} を候補キーとするボイス=コッド正規形(BCNF、第3正規形の修正版)であるが、第4正規形 (4NF) ではない。 仮に AHA コースに新しい参考図書を追加しようとする場合、そのコースの各講師のデータに対して参考図書を追加しなければならない。 逆に AHA コースに新しい講師を追加しようとする場合も同様である。 形式的にはこの例の関係には次の2つの多値従属性がある。

  • {コース} Twoheadrightarrow.gif {参考図書}
  • {コース} Twoheadrightarrow.gif {講師}

この例の関係のように、決定項 (多値従属性の左側) が候補キーではない多値従属性のある関係では、冗長性がある。 データベースの正規化においては、多値従属性の存在する関係においては決定項が候補キーである場合に限り、第4正規形 (4NF) である。 このとき多値従属性は事実上は関数従属性である。 多値従属性は関数従属性を一般化した概念と位置づけることができる。

前述の例の関係は、次のように2つの第4正規形 (4NF) の関係に分解して正規化することができる。

コース 参考図書
AHA Silberschatz
AHA Nederpelt
OSO Silberschatz
コース 講師
AHA John D
AHA William M
AHA Christian G
OSO John D
OSO William M

多値従属性の特性[編集]

を関係 R の属性の部分集合とする。 Twoheadrightarrow.gif を多値従属性とする。

  • Twoheadrightarrow.gif であるならば、 Twoheadrightarrow.gif
  • Twoheadrightarrow.gif かつ であるならば、 Twoheadrightarrow.gif
  • Twoheadrightarrow.gif かつ Twoheadrightarrow.gif であるならば、 Twoheadrightarrow.gif

次の特性は関数従属性を使っている。 → を関数従属性とする。

  • であるならば Twoheadrightarrow.gif
  • Twoheadrightarrow.gif かつ であるならば、

前述の規則は広く知られており、完全な規則である。

  • X Twoheadrightarrow.gif Y が関係 R において成立する場合かつその場合に限り、R(X, Y)(X, R-Y) に無損失分解できる (情報の損失を伴うこと無く分解することが —— 正規化することができる)。

用語の定義[編集]

完全な制約
データベースにおける全ての属性について何らかのことを表現する制約(組み込みの制約とは異なる)。多値従属性はその定義から完全な制約である。多値従属性の定義では、 の属性集合について何らかのことを述べている。
組生成従属性
関係において存在するためには、明白にいくつかの組を必要とする従属性。

参考文献[編集]

脚注[編集]

[ヘルプ]
  1. ^ C. J .Date、藤原譲ほか、1997年、p.358

外部リンク[編集]