ホーム > データベーススペシャリスト試験 > 2018年

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


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

解説

解説:関数従属から候補キーを決定する方法


問題の整理

  • 関係 ( R ) の属性集合は ({A, B, C, D, E})。
  • 与えられた関数従属は以下の2つ:
    1. ( A \to {B, C} )
    2. ( {C, D} \to E )
求めたいのは、この情報から決定できる候補キー

用語の確認

  • 候補キー(candidate key)とは、関係の全ての属性を関数従属で決定できる、最小の属性集合のこと。
  • つまり、候補キー (K) は、
    • ( K^+ = {A, B, C, D, E} ) を満たし(全属性決定)
    • ( K ) の真部分集合で全属性決定できるものがない(最小性)

候補キーの候補を順に検討する

1. ア: ({A, C})

  • ( {A, C}^+ ) を求める
    • 初期:({A, C})
    • ( A \to B, C ) より、(B) が追加(ただし (C) は既にある)
      • ({A, C, B})
    • ({C, D} \to E) なので、(D)がないため (E) は決定できない
  • 結果:({A, B, C})
  • 属性 (D, E) が含まれず、すべての属性決定できない → 候補キーではない。

2. イ: ({A, C, D})

  • ({A, C, D}^+) を求める
    • 初期:({A, C, D})
    • ( A \to B, C ) より、 (B)を追加
      • ({A, B, C, D})
    • ({C, D} \to E) より、(E)を追加
      • ({A, B, C, D, E})
  • すべての属性が含まれる → 候補キーの条件は満たす
しかし、このキーの真部分集合を調べる必要がある。
特に、「({A, D})」が候補キーかどうかを調べることで、それよりも小さいキーがあれば、こちらは最小ではないため候補キーにならない。

3. ウ: ({A, D})

  • ({A, D}^+) を求める
    • 初期:({A, D})
    • (A \to B, C) より、(B, C)を追加
      • ({A, B, C, D})
    • ({C, D} \to E) より、(E)を追加
      • ({A, B, C, D, E})
  • 全属性決定できる → 候補キーの条件を満たす
また、({A}) や ({D}) では決定できないため、最小性も満たす。

4. エ: ({C, D})

  • ({C, D}^+) を求める
    • 初期:({C, D})
    • ({C, D} \to E) より、(E)追加
      • ({C, D, E})
    • (A)と(B)がないため全属性は決定できない
  • したがって、候補キーではない。

結論

  • 候補キーとなるのは ( {A, D} ) (選択肢ウ)のみ。
  • ( {A, C, D} ) は全属性を決定するが、より小さなキー ( {A, D} ) が存在するため候補キーとは言えない。

まとめ

候補キー候補全属性決定可能?最小性(真部分集合はどうか)候補キーか?
({A, C})いいえ-いいえ
({A, C, D})はい({A, D})がより小さいいいえ(最小でない)
({A, D})はいはいはい(正解)
({C, D})いいえ-いいえ

以上より、関数従属からわかる候補キーは (\boxed{{A, D}}) であり、選択肢ウが正解です。
← 前の問題へ次の問題へ →

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