基本情報技術者試験「候補キー」の問題
属性{A,B,C,D}からなる関係で、関数従属が A→B、B→C、{A,D}→C のみ成り立つとする。この関係の候補キーはどれか。ただし他の従属はないものとする。
ア属性{A}のみで一意に定まる
イ属性の組{A,B}である
ウ属性の組{A,C}
エ属性の組{A,D}が該当
正解
エ.属性の組{A,D}が該当
{A,D}から出発するとA→BでB、B→CでC、Dは自身を含み全属性{A,B,C,D}を決定できる。さらにA単独ではDを、D単独では他を導けず極小なので、{A,D}が候補キーであり正しい。
?選択肢ごとの解説
ア ×{A}の閉包はA→B→Cまで届くが、Dを決定できないため全属性を一意に決められず候補キーにならない。
イ ×{A,B}の閉包はA,B,Cにとどまりやはりすべての属性を決定できず候補キーにならない。
ウ ×{A,C}の閉包もA,B,Cまでで、ここからDを導く従属がないため全属性を決定できず候補キーにならない。
エ ○{A,D}から出発するとA→BでB、B→CでC、Dは自身を含み全属性{A,B,C,D}を決定できる。さらにA単独ではDを、D単独では他を導けず極小なので、{A,D}が候補キーであり正しい。
✎くわしく
候補キーは『全属性を関数従属で決定でき(スーパーキー)』かつ『どの真部分集合もその性質を持たない(極小)』属性集合である。属性閉包を計算して全属性に届くかを調べ、さらに極小性を確認するのが判定手順である。
✓本番での押さえどころ
試験のコツ
右辺に一度も現れない属性(本問のA,D)は必ずキーに含まれる。まずそれらの閉包を計算すると素早い。
覚え方
候補キーは『全部を当てられる最小のヒント集合』。届く(スーパーキー)かつ無駄がない(極小)、と二条件で覚える。
よくある誤り
閉包計算で導出を途中で止める、または全属性を決定できても極小性を確認せずスーパーキーを候補キーと誤認する誤りが多い。
データベースの他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0232