平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
テクノロジ/データベース関係R(A,B,C,D,E)において, 関数従属 {A,B}→C,{B,C}→D,D→{A,E} が成立する。これらから決定できるRの候補キーを全て挙げたものはどれか。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
- ア{A,B,C}
- イ{A,B},{B,C}
- ウ{A,B},{B,C},{B,D}
- エ{B,C},{C,D}
正解:ウ
解説
候補キーは,関数従属からRの全属性{A,B,C,D,E}を一意に決定でき,かつそれ以上属性を減らせない(極小の)属性集合です。{A,B}の閉包は,{A,B}→Cにより Cが加わり,{B,C}→Dにより Dが加わり,D→{A,E}によりEが加わるため,{A,B,C,D,E}となりRの候補キーです。同様に{B,C}の閉包も{B,C}→D,D→{A,E}によりR全体になり候補キーです。{B,D}の閉包も,D→{A,E}でA,Eが加わり,加わったAとBから{A,B}→CでCが加わるためR全体になり候補キーです。一方{C,D}の閉包は,D→{A,E}でA,Eが加わりますが,Bを導く関数従属が無いためBが決定できず,R全体になりません。したがって候補キーは{A,B},{B,C},{B,D}の三つです。
選択肢ごとの解説
- ア誤り。{A,B,C}はRの全属性を決定できますが,真部分集合である{A,B}だけでも既にR全体を決定できるため極小ではなく,候補キーではありません。また,本来の候補キーである{B,D}が挙げられていません。
- イ誤り。{A,B}と{B,C}は候補キーですが,同じく候補キーである{B,D}が挙げられておらず,全ての候補キーを挙げたことになりません。
- ウ正しい。{A,B},{B,C},{B,D}はいずれも閉包がR全体になり,かつそれぞれ極小であるため,Rの候補キーを全て挙げたものになっています。
- エ誤り。{C,D}の閉包は{A,C,D,E}にとどまりBを決定できないため,Rの候補キーではありません。また,候補キーである{A,B}や{B,D}が挙げられていません。