データベーススペシャリスト試験 2020年 午前203


関係Rは属性A, B, C, D, Eから成り、関数従属A→{B, C}, {C, D}→Eが成立するとき、Rの候補キーはどれか。
{A, C}
{A, C, D}
{A, D}(正解)
{C, D}

解説

関係Rの候補キー判定問題【午前2 解説】

要点まとめ

  • 結論:候補キーは属性AとDの組み合わせである。
  • 根拠:関数従属からA→{B, C}が成立し、{C, D}→Eも成立するため、AとDで全属性を決定できる。
  • 差がつくポイント:候補キーの最小性を見極め、不要な属性を含めないことが重要である。

正解の理由

関係Rの属性はA, B, C, D, Eで、関数従属はA→{B, C}と{C, D}→Eです。
まず、AからBとCが決まるため、AだけでBとCを補完できます。
次に、Eは{C, D}から決まるため、CとDが必要です。
しかしCはAから決まるため、Cを含める必要はありません。
したがって、AとDがあればB, C, Eも決まり、全属性を決定できるため、候補キーは{A, D}です。
これが最小の属性集合であるため、正解はウ: {A, D}となります。

よくある誤解

候補キーに含める属性は「決定できる属性」を重複して含めないことが重要です。
例えば、CはAから決まるため、Cをキーに含める必要はありません。

解法ステップ

  1. 関数従属を整理し、決定できる属性を把握する。
  2. A→{B, C}より、AがあればBとCは決まると理解する。
  3. {C, D}→Eより、Eを決めるにはCとDが必要だと認識する。
  4. CはAから決まるため、Eを決めるには実質AとDが必要と判断する。
  5. AとDで全属性A, B, C, D, Eが決まるため、{A, D}が候補キーとなる。

選択肢別の誤答解説

  • ア: {A, C}
    CはAから決まるため冗長。DがないためEを決定できず不十分。
  • イ: {A, C, D}
    Cが冗長であり、最小性を欠く。候補キーはより小さい集合であるべき。
  • ウ: {A, D}
    最小の属性集合で全属性を決定できるため正解。
  • エ: {C, D}
    AがないためBを決定できず不十分。

補足コラム

候補キーとは、関係のすべての属性を関数従属で決定できる最小の属性集合です。
関数従属の推移律や最小カバーを理解すると、候補キーの判定が容易になります。
また、候補キーは複数存在する場合もありますが、今回の問題では一つに絞られています。

FAQ

Q: 候補キーと主キーの違いは何ですか?
A: 候補キーは最小の決定属性集合で複数存在することもありますが、主キーはその中から選ばれた一つのキーです。
Q: 関数従属の推移律とは何ですか?
A: 例えばA→BかつB→Cならば、A→Cも成立するという関数従属の性質です。

関連キーワード: 関数従属, 候補キー, 関係データベース, 最小カバー, 属性集合
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ