データベース

基本情報技術者試験候補キー」の問題

テクノロジ系データベース計算問題難易度:hard
属性{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

【基本情報技術者試験】候補キーの問題 — 解答・解説|ukamiru 過去問