戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

データベーススペシャリスト 2016年 午前203


問題文

関係R(A, B, C)において、関数従属A→B, B→Cが成立するとき、導けない関数従属はどれか。

選択肢

{A, B, C} → {A, B}
{A, C} → {A, B}
{A, C} → {A, B, C}
{B, C} → {A, C}(正解)

関係R(A, B, C)において関数従属A→B, B→Cが成立するとき導けない関数従属はどれか【午前2 解説】

要点まとめ

  • 結論:与えられた関数従属から導けないのは「エ: {B, C} → {A, C}」です。
  • 根拠:A→BかつB→Cならば、A→Cが導けるがB→Aは導けず、{B, C}→Aは成立しません。
  • 差がつくポイント:関数従属の推移律と拡大律を正確に理解し、逆方向の従属を誤認しないことが重要です。

正解の理由

関数従属A→BとB→Cが成立するとき、推移律によりA→Cも成立します。
したがって、Aを含む属性集合からBやCを導くことは可能です。
しかし、B→Aの関数従属は与えられておらず、逆方向の従属は導けません。
選択肢エの{B, C}→{A, C}は、BとCからAを導くことを意味しますが、これは与えられた関数従属から導けません。
よって、エが導けない関数従属となります。

よくある誤解

関数従属は双方向に成り立つと誤解しやすいですが、推移律は一方向のみ有効です。
また、属性集合に含まれる属性が多いほど関数従属が成立すると誤認しがちです。

解法ステップ

  1. 与えられた関数従属A→B、B→Cを確認する。
  2. 推移律によりA→Cが導けることを理解する。
  3. 各選択肢の左辺から右辺の属性が導けるか検証する。
  4. 逆方向の関数従属(B→Aなど)が導けないことを確認する。
  5. 導けない関数従属を選択肢から特定する。

選択肢別の誤答解説

  • ア: {A, B, C} → {A, B}
    すべての属性を含む集合から部分集合への関数従属は拡大律で成立するため正しい。
  • イ: {A, C} → {A, B}
    A→Bがあるため、AとCの集合からBも導ける。
  • ウ: {A, C} → {A, B, C}
    イと同様にA→B、A→C(自己関数従属)で成立。
  • エ: {B, C} → {A, C}
    BとCからAを導く関数従属は与えられておらず、導けない。

補足コラム

関数従属の基本法則には「反射律」「推移律」「拡大律」があります。
推移律は「X→YかつY→ZならX→Z」となり、これを正しく使うことが関数従属問題の鍵です。
また、関数従属は方向性があり、逆方向は必ずしも成立しません。

FAQ

Q: 関数従属はなぜ逆方向に成り立たないのですか?
A: 関数従属は「ある属性集合が別の属性集合を一意に決定する」関係であり、逆方向は必ずしも一意に決定できないためです。
Q: 属性集合に余分な属性があっても関数従属は成立しますか?
A: はい。拡大律により、左辺に属性を追加しても関数従属は成立します。

関連キーワード: 関数従属、推移律、拡大律、関係データベース、正規化
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

データベーススペシャリスト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてプライバシーポリシー利用規約特商法表記開発者について