属性xの値によって属性yの値が一意に定まることを,x→yで表す。
図に示される関係を,第3正規形の表として正しく定義しているものはどれか。
ここで,xの四角内に複数の属性が入っているものは,それら複数の属性すべての値によって,属性yの値が一意に定まることを示す。
正答4
解説
正解は4です。
図から、次の関数従属が読み取れます。
aから、b、c、d、eへそれぞれ矢印が出ています。
bからfとgへ矢印が出ています。
bとcを囲んだ四角から、hへ矢印が出ています。
つまり、aがb、c、d、eを決め、bがfとgを決め、bとcの組がhを決めるという3つの従属があります。
第3正規形では、部分関数従属と推移的関数従属をなくし、決定する側ごとに表を分けます。
その結果、{a,b,c,d,e}、{b,f,g}、{b,c,h}の3つの表になります。
【選択肢別解説】
1:× 表1がaだけで、aとb〜eの関係が失われています。
表2の{b,c,d,e}や表3の{f,g,h}も、図の従属関係と対応していません。
2:× 表2の{a,c}は表1と重複しているだけです。
表3の{b,e,f,g,h}は、eやhがbだけでは決まらないので正しい分割ではありません。
3:× 表2の{b,c,f,g,h}では、fとgがbだけで決まる部分関数従属が残っており、第2正規形も満たしません。
4:○ 表1はaをキーとし、表2はbをキーとし、表3は{b,c}をキーとします。
各表で非キー属性がキー全体に直接従属しているので、第3正規形です。
【ポイント】
第2正規形は部分関数従属をなくした形、第3正規形は推移的関数従属もなくした形です。
関数従属の図では、矢印の出発点(決定項)ごとに表を作ると考えると整理しやすくなります。