システムアーキテクト試験 2019年 午前221


関数従属(A、B)つCが完全関数従属性を満たすための条件はどれか。
{A, B} → B又は{A, B} → Aが成立していること
A → B → C 又はB → A → Cが成立していること
A → C及びB → Cのいずれも成立しないこと(正解)
C → {A, B}が成立しないこと

解説

関数従属(A、B)つCが完全関数従属性を満たすための条件【午前2 解説】

要点まとめ

  • 結論:完全関数従属性とは、複合キーのすべての属性が従属先に必要である状態を指します。
  • 根拠:部分的な関数従属が存在すると、正規化の妨げとなりデータの冗長性や異常が発生します。
  • 差がつくポイント:複合キーの一部だけで従属先が決まる場合は完全関数従属ではないため、部分関数従属の有無を正確に見極めることが重要です。

正解の理由

選択肢ウ「A → C及びB → Cのいずれも成立しないこと」が正解です。
完全関数従属性とは、複合キー{A, B}がCを決定するが、A単独やB単独ではCを決定しない状態を指します。つまり、部分的な関数従属が存在しないことが条件です。
ウの条件は「A → CもB → Cも成立しない」ことを示しており、これが完全関数従属性の定義に合致します。

よくある誤解

部分関数従属があっても完全関数従属性と誤解しやすいです。
また、逆方向の関数従属(C → AやC → B)を混同することも多いです。

解法ステップ

  1. 複合キー{A, B}がCを決定しているか確認する。
  2. A単独でCを決定するかどうかを調べる。
  3. B単独でCを決定するかどうかを調べる。
  4. A単独またはB単独でCが決定しない場合、完全関数従属性が成立する。
  5. 以上の条件を満たす選択肢を選ぶ。

選択肢別の誤答解説

  • ア: {A, B} → Bまたは{A, B} → Aが成立していること
    → これは部分関数従属の可能性を示し、完全関数従属性の条件ではありません。
  • イ: A → B → C または B → A → Cが成立していること
    → 連鎖的関数従属を示しており、完全関数従属性の定義とは異なります。
  • ウ: A → C及びB → Cのいずれも成立しないこと
    → 複合キー全体でのみCが決定され、部分関数従属がないため正解です。
  • エ: C → {A, B}が成立しないこと
    → 逆方向の関数従属であり、完全関数従属性の条件とは無関係です。

補足コラム

完全関数従属性は正規化の第2正規形(2NF)を満たすための重要な概念です。
部分関数従属が存在すると、データの重複や更新異常が発生しやすくなります。
そのため、複合キーのすべての属性が従属先に必要かどうかを正確に判断することが正規化の基本です。

FAQ

Q: 部分関数従属とは何ですか?
A: 複合キーの一部の属性だけで従属先が決まる関数従属のことです。完全関数従属性の否定にあたります。
Q: 逆方向の関数従属は正規化に影響しますか?
A: 逆方向(例:C → A)は通常、正規化の判断基準にはなりません。主にキーから非キー属性への関数従属を考えます。

関連キーワード: 関数従属性, 完全関数従属性, 部分関数従属, 正規化, 第2正規形, 複合キー
← 前の問題へ次の問題へ →

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