リレーショナルデータベースデザイン
リレーションスキーマR(A1,A2,…,Al,B1,B2,…,Bm,C1,C2,…,Cn)の任意のインスタンスRが、
その2つの射影R[A1A2…AlB1B2…Bm]とR[A1A2…AlC1C2…Cn]に情報無損失分解されるとき、及びそのときのみ
Rに自明でない多値従属性
A1A2…Al →→ B1B2…Bm
が存在するという。
この定義は多値従属性をリレーションスキーマの情報無損失分解という立場から規定したものである。 この従属性は関数従属性の一般化として与えられたもので、リレーションの情報無損失分解 の基本定理となるものである。
A1A2…Al→→B1B2…Bmのとき
A1A2…AlはB1B2…Bmを多値に決定する。または、B1B2…BmはA1A2…Alに多値に従属するという。 また、A1A2…Al→→B1B2…BmならばA1A2…Al→→C1C2…Cnが成立し、多値属性を A1A2…Al→→B1B2…Bm|C1C2…Cnと書く場合もある。
次に多値従属性の例を図1に示します。フライトA150便のクルーはパイロット浜崎さんと客室乗務員
宇多田さんの各1名、乗客は清水さん、二岡さん、高橋さんの3名である。例えば、清水さんが搭乗した
A150便の客室乗務員がたまたま宇多田さんだっただけだが、クルーと乗客に関するデータがフライト
というひとつのリレーションの中にまとめあげられており、クルーと乗客の全ての組み合わせが記録されてしまっている。
これは図2のリレーション クルーと図3のリレーション 乗客の自然結合として表されるべきである。
クルーと乗客の間には全く因果関係はなく、直行(orthogonal)した概念であり、多値従属性
フライト番号 →→ クルー名|乗客名
を意味する。
図1.リレーション フライト
図2.リレーション クルー
図3.リレーション 乗客
最後に、自明な多値従属性(trivial MVD)について説明します。
リレーションスキーマをR(A1,A2,…,Al,B1,B2,…,Bm)とするとき、
A1A2…Al→→B1B2…Bm|Φ
は自明な多値従属性という。