データベーススペシャリスト試験 2021年 午前209


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

解説

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

要点まとめ

  • 結論:属性がnn個ある関係の異なる射影の個数は2n2^n通りです。
  • 根拠:射影は属性の部分集合を選ぶ操作であり、属性の全ての部分集合の数は2n2^nだからです。
  • 差がつくポイント:空集合を含むかどうかや、元の関係と同じ射影を含めるかで数え方が変わるため、問題文の条件を正確に理解することが重要です。

正解の理由

射影とは、関係の属性の一部または全部を選択して新しい関係を作る操作です。属性がnn個ある場合、射影は属性の部分集合に対応します。属性の部分集合の数は2n2^nであり、空集合(属性を全く含まない射影)や元の関係と同じ射影(全属性を選ぶ場合)も含めるため、答えは2n2^nとなります。したがって、選択肢の中で唯一2n2^nを示す「エ」が正解です。

よくある誤解

射影の個数を属性の数nn2n2nlog2n\log_2 nなどと誤解しがちですが、射影は属性の部分集合の数であるため指数関数的に増えます。空集合を除く場合や元の関係を除く場合は数が変わるため、問題文の条件を必ず確認しましょう。

解法ステップ

  1. 射影とは属性の部分集合を選ぶ操作であることを理解する。
  2. 属性がnn個あるとき、部分集合の数は2n2^nであることを思い出す。
  3. 問題文で「元の関係と同じ射影及び属性を全く含まない射影を含める」とあるため、空集合と全属性の集合も含める。
  4. よって、射影の個数は2n2^nとなる。
  5. 選択肢の中から2n2^nを示す「エ」を選ぶ。

選択肢別の誤答解説

  • ア: log2n\log_2 n
    射影の個数は部分集合の数であり、対数では表せません。
  • イ: nn
    属性の数そのものは射影の個数ではなく、部分集合の数はもっと多いです。
  • ウ: 2n2n
    これは単純に属性数の2倍であり、部分集合の数とは異なります。
  • エ: 2n2^n
    属性の部分集合の数を正しく表しており、問題文の条件にも合致します。

補足コラム

射影はリレーショナルデータベースの基本操作の一つで、属性の選択により必要な情報だけを抽出できます。属性の部分集合の数は2n2^nであり、これは集合論の基本的な性質です。空集合を含む場合は結果が空の関係となり、実務ではあまり使われませんが、理論的には射影の一つとして数えられます。

FAQ

Q: 射影で空集合を選ぶ意味はありますか?
A: 理論的には空集合も部分集合の一つで射影に含まれますが、実務では空の関係となるため通常は使いません。
Q: 元の関係と同じ射影を含める場合、なぜ2n2^nになるのですか?
A: 元の関係は全属性を選ぶ射影に対応し、部分集合の中に含まれるため、2n2^nの中にカウントされます。

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

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