平成29年度 春期 午前Ⅱ 問4
データベース設計
候補キーを全て挙げたもの
関係R(A,B,C,D,E)において,関数従属{A,B}→C,{B,C}→D,D→{A,E}が成立する。これらから決定できるRの候補キーを全て挙げたものはどれか。
- ア{A,B,C}
- イ{A,B},{B,C}
- ウ{A,B},{B,C},{B,D}
- エ{B,C},{C,D}
答えと解説を見る
✓ これが正解ウ{A,B},{B,C},{B,D}
解説
Bを含み閉包が全属性になる最小の組は{A,B}{B,C}{B,D}です。
候補キーは、そこから関係の全属性が決まり、しかも余計な属性を含まない最小の属性の組です。軸は、どの属性がどの関数従属の右辺にも現れないかです。Bはどの右辺にも出てこないので、すべての候補キーに含まれます。そこでBに1属性を足した組の閉包を順に求めます。{A,B}からはCが決まり、{B,C}からD、DからAとEが決まるので全属性に届きます。{B,C}はDを経てA・Eが決まり全属性です。{B,D}はDからAとE、{A,B}からCが決まり全属性です。{B,E}はそれ以上何も決まりません。B単独でも何も決まらないので、3つの組はどれも最小です。右辺に出ない属性を先に固定し、閉包を一つずつ確かめるのが確実な解き方です。
ほかの選択肢はなぜ違うのか
- ア{A,B,C}:{A,B,C}から全属性は決まりますが、Cは{A,B}から導けるので含めなくても足ります。余計な属性を含む組は超キーであって、最小性を満たす候補キーではありません。
- イ{A,B},{B,C}:{A,B}と{B,C}はどちらも候補キーですが、{B,D}が漏れています。Dが決まればAとEが決まり、そこから{A,B}を通してCも決まるので、{B,D}も最小の候補キーです。
- エ{B,C},{C,D}:{C,D}の閉包はDからAとEが加わっても、Bがどの関数従属からも導けないため全属性に届きません。Bはすべての候補キーに含まれるはずなので、Bを持たない組はどれも候補キーになりません。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)