データベーススペシャリスト試験 2017年 午前213


属性がn個ある関係の異なる射影は幾つあるか。ここで, 射影の個数には、元の関係と同じ結果となる射影, 及び属性を全く含まない射影を含めるものとする。
2n2n
n2n^2(正解)
log2n\log_2 n
nn

解説

属性がn個ある関係の異なる射影は幾つあるか【午前2 解説】

要点まとめ

  • 結論:属性がn個ある関係の異なる射影の個数は2n2^n通りです。
  • 根拠:射影は属性の部分集合を選ぶ操作であり、属性の全ての部分集合の数は2n2^nだからです。
  • 差がつくポイント:空集合(属性を全く含まない射影)や元の関係と同じ射影も含める点を見落とさず、部分集合の数を正確に理解することが重要です。

正解の理由

射影とは、関係の属性の一部または全部を選択して新しい関係を作る操作です。属性がn個ある場合、射影は属性の部分集合に対応します。部分集合の数は集合の要素数nに対して2n2^n通りあります。問題文では「元の関係と同じ結果となる射影」や「属性を全く含まない射影」も含めるため、空集合もカウントします。したがって、正解はイ: 2n2^nです。

よくある誤解

射影の個数を単に属性の数nやその二乗と考えたり、空集合を除外してしまう誤りが多いです。部分集合の数は指数関数的に増えることを理解しましょう。

解法ステップ

  1. 射影は属性の部分集合を選ぶ操作であることを確認する。
  2. 属性がn個ある集合の部分集合の数は2n2^nであることを思い出す。
  3. 問題文で空集合や元の関係と同じ射影も含むと明示されていることを確認する。
  4. よって、射影の個数は2n2^n通りと判断する。
  5. 選択肢の中から2n2^nに該当するイを選ぶ。

選択肢別の誤答解説

  • ア: 2n2n
    属性の数に比例した線形の数であり、部分集合の数を表していません。
  • イ: 2n2^n
    正解。属性の部分集合の数を正しく表しています。
  • ウ: log2n\log_2 n
    対数は部分集合の数とは無関係で、射影の個数を表しません。
  • エ: nn
    属性の数そのものを射影の個数と誤解しています。部分集合の数はもっと多いです。

補足コラム

射影はリレーショナルデータベースの基本操作の一つで、属性の選択により必要な情報だけを抽出します。部分集合の数が2n2^nであることは集合論の基本であり、データベース設計やクエリ最適化にも応用されます。

FAQ

Q: なぜ空集合も射影に含めるのですか?
A: 問題文で「属性を全く含まない射影も含める」と明示されているため、空集合もカウントします。
Q: 射影の個数が指数関数的に増える理由は?
A: 射影は属性の部分集合を選ぶ操作であり、集合の部分集合の数は2n2^nと指数関数的に増えるためです。

関連キーワード: 射影, 部分集合, 関係データベース, 集合論, リレーショナル代数
← 前の問題へ次の問題へ →

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