データベーススペシャリスト試験 2014年 午前208


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

解説

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

要点まとめ

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

正解の理由

射影とは、関係の属性の一部または全部を選択して新しい関係を作る操作です。属性がnn個ある場合、選べる属性の組み合わせは部分集合の数に相当します。部分集合の数は2n2^nであり、空集合も含まれます。問題文で「元の関係と同じ結果となる射影」や「属性を全く含まない射影」も含めると明示されているため、正解は2n2^n、すなわちとなります。

よくある誤解

射影の個数を属性の数nn2n2nと誤解しがちですが、これは属性の選び方の組み合わせ数を考慮していないためです。空集合の射影も含む点を見落とすことも多いです。

解法ステップ

  1. 射影は属性の部分集合を選ぶ操作であることを理解する。
  2. 属性がnn個あるとき、選べる部分集合の数は2n2^nであることを思い出す。
  3. 問題文で空集合や全属性を含む射影も含めると明示されていることを確認する。
  4. よって、異なる射影の個数は2n2^nであると結論付ける。

選択肢別の誤答解説

  • ア: 2n2n
    属性の数に2をかけただけで、部分集合の数とは異なります。組み合わせの考え方が不足しています。
  • イ: 2n2^n
    正解。属性の部分集合の数として正しい値です。
  • ウ: log2n\log_2 n
    対数は属性の数の増加に対して射影の数を表せません。射影は指数的に増えます。
  • エ: nn
    属性の数そのものを射影の数と誤解しています。部分集合の数を考慮していません。

補足コラム

射影はリレーショナルデータベースの基本操作の一つで、特定の属性だけを抽出する際に使われます。属性の部分集合の数は2n2^nであり、これは集合論の基本的な性質です。空集合の射影は通常は意味を持ちませんが、問題文で含めると指定されているため注意が必要です。

FAQ

Q: 射影で空集合を選ぶ意味はありますか?
A: 通常は意味がありませんが、問題文で含めると指定されている場合は計算上の部分集合としてカウントします。
Q: 射影と選択の違いは何ですか?
A: 射影は属性の列を選ぶ操作、選択は行(タプル)を条件で絞る操作です。

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

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