データベーススペシャリスト試験 2012年 午前205


関係Rは属性{A, B, C, D, E}から成り、関数従属性A→B, A→C, {C, D}→Eが成立する。最初に属性集合{A, B}を与えて, これらの関数従属性を適用して導出される属性をこの属性集合に加える。この操作を繰り返して得られる属性集合(属性集合の閉包)はどれか。
{A, B, C}(正解)
{A, B, C, D}
{A, B, C, D, E}
{A, B, E}

解説

関数従属性の属性集合の閉包【午前2 解説】

要点まとめ

  • 結論:属性集合{A, B}の閉包は{A, B, C}であり、これ以上の属性は導出できません。
  • 根拠:関数従属性A→B, A→Cは適用可能ですが、{C, D}→EはDがないため適用不可です。
  • 差がつくポイント:閉包計算で必要な属性が揃っているかを正確に見極めることが重要です。

正解の理由

属性集合{A, B}からスタートし、関数従属性を適用して導出可能な属性を加えます。
  • A→Bは既にBがあるため変化なし。
  • A→CによりCが追加されます。
  • {C, D}→EはDがないため適用できません。
    したがって、閉包は{A, B, C}となり、選択肢アが正解です。

よくある誤解

{C, D}→Eの関数従属性を見て、CがあるからEも導出できると誤解しがちです。Dも必要なため注意が必要です。

解法ステップ

  1. 初期属性集合を{A, B}とする。
  2. 関数従属性A→Bを確認。Bは既にあるため追加なし。
  3. 関数従属性A→Cを適用し、Cを追加。集合は{A, B, C}に。
  4. 関数従属性{C, D}→Eを確認。Dがないため適用不可。
  5. これ以上追加できる属性がないため、閉包は{A, B, C}で確定。

選択肢別の誤答解説

  • ア: {A, B, C} 正解。正しく閉包を計算した結果。
  • イ: {A, B, C, D} Dは初期集合にも関数従属性からも導出不可。誤り。
  • ウ: {A, B, C, D, E} Dがないため{C, D}→Eは適用不可。誤り。
  • エ: {A, B, E} Eは{C, D}→Eで導出可能だがDがないため誤り。

補足コラム

属性集合の閉包は関数従属性の適用可能性を繰り返し検証し、導出可能な属性を全て集める操作です。正確な閉包計算は正規化やキーの判定に不可欠な基礎知識です。

FAQ

Q: 閉包計算で属性が追加されなくなったらどう判断すればよいですか?
A: 追加できる属性がなくなった時点で閉包は完成と判断します。
Q: {C, D}→Eのような複合属性の関数従属性はどう扱いますか?
A: 関数従属性を適用するには左辺の全属性が閉包に含まれている必要があります。

関連キーワード: 関数従属性, 属性集合の閉包, 正規化, 関係データベース, 閉包計算
← 前の問題へ次の問題へ →

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