平成30年度 春期 午前Ⅱ 問3
データベース設計
関数従属に関する問題
関係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}から全属性が決まります。
候補キーは、そこから全属性が決まり、余計な属性を含まない最小の属性の組です。軸は、どの関数従属の右辺にも現れない属性を探すことです。右辺に出てくるのはB・C・Eだけなので、AとDは他から導けず、候補キーに必ず含まれます。{A,D}の閉包を求めると、AからBとCが決まり、CとDからEが決まるので、A・B・C・D・Eの全属性に届きます。A単独ではB・Cまで、D単独ではDだけなので、どちらも欠かせません。したがって{A,D}が最小の組です。右辺に出ない属性を先に集め、その組の閉包が全属性になるかを確かめる、という手順で解けます。
ほかの選択肢はなぜ違うのか
- ア{A,C}:{A,C}の閉包は、AからBとCが決まって{A,B,C}になりますが、そこで止まります。Dはどの関数従属からも導けないため、DとEが決まらず、全属性には届きません。
- イ{A,C,D}:{A,C,D}から全属性は決まりますが、CはAから導けるので組に入れる必要がありません。余計な属性を含むこの組は超キーであり、最小性を満たす候補キーではありません。
- エ{C,D}:{C,D}の閉包は、CとDからEが決まって{C,D,E}になりますが、AとBは導けません。Aはどの関数従属の右辺にも現れないので、Aを含まない組は候補キーになれません。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)