平成28年度 春期 午前Ⅱ 問3
データベース設計
導けない関数従属
関係R(A,B,C)において,関数従属A→B,B→Cが成立するとき,導けない関数従属はどれか。
- ア{A,B,C} → {A,B}
- イ{A,C} → {A,B}
- ウ{A,C} → {A,B,C}
- エ{B,C} → {A,C}
答えと解説を見る
✓ これが正解エ{B,C} → {A,C}
解説
{B,C}からはAが決まらないので、{B,C}→{A,C}は導けません。
左辺の属性の組から関数従属をたどって決まる属性を集め、右辺がすべて含まれていれば、その関数従属は導けます。{B,C}から始めると、B→CでCが決まりますが、これはすでに含まれています。Aを右辺にもつ関数従属は与えられていないので、決まる属性はBとCだけです。右辺のAが含まれないため、{B,C}→{A,C}は導けません。残りの三つは、左辺から決まる属性が右辺をすべて覆うので導けます。左辺から決まる属性を書き出し、右辺と見比べるという手順で判定します。与えられた関数従属の矢印は、AからB、BからCの一方向だけであり、逆向きにはたどれないことを意識すると判断が速くなります。
ほかの選択肢はなぜ違うのか
- ア{A,B,C} → {A,B}:{A,B,C}→{A,B}は、右辺が左辺の一部になっている関数従属です。左辺の値が決まればその一部も当然決まるので、与えられた関数従属に頼らなくても常に成り立ちます。
- イ{A,C} → {A,B}:{A,C}からはA→BでBが決まり、A、B、Cがそろいます。右辺の{A,B}はこの中に含まれているので、この関数従属は与えられた関数従属から導けます。
- ウ{A,C} → {A,B,C}:{A,C}にA→BでBが加わると、三つの属性がすべて決まります。右辺の{A,B,C}がすべて含まれるので、この関数従属も導くことができます。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)