令和2年度 10月 午前Ⅱ 問3
データベース設計
Rの候補キー
関係Rは属性A,B,C,D,Eから成り,関数従属A→{B,C},{C,D}→Eが成立するとき,Rの候補キーはどれか。
- ア{A,C}
- イ{A,C,D}
- ウ{A,D}
- エ{C,D}
答えと解説を見る
✓ これが正解ウ{A,D}
解説
AとDから全属性が決まり、どちらを欠いても決まらないので{A,D}です。
候補キーは、そこから全ての属性が関数従属で決まり、しかもどの属性を外しても決まらなくなる最小の組です。まず、どの関数従属の右辺にも現れない属性を探すと、AとDは他から決まらないので、候補キーに必ず含まれます。{A,D}から出発すると、A→{B,C}でBとCが決まり、手元にCとDがそろうので{C,D}→EでEが決まり、AからEまで全てが決まります。Aだけでは{A,B,C}、Dだけでは{D}しか決まらないので、どちらも欠かせません。よって{A,D}が候補キーです。右辺に一度も出てこない属性は必ずキーに入る、と覚えておくと候補を素早く絞れます。
ほかの選択肢はなぜ違うのか
- ア{A,C}:{A,C}から決まるのは、A→{B,C}によるBまでです。Dはどの関数従属からも決まらず、Dが欠けるので{C,D}→Eも使えません。全ての属性を決められないため、候補キーになりません。
- イ{A,C,D}:{A,C,D}からは全ての属性が決まりますが、CはA→{B,C}によってAから決まるので、外しても{A,D}だけで全てを決められます。余分な属性を含む組は最小ではないので、候補キーではありません。
- エ{C,D}:{C,D}からは{C,D}→EでEが決まるだけで、AとBは決まりません。Aはどの関数従属の右辺にも現れないので、Aを含まない組は候補キーになり得ません。
出典:令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問3
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)