令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9

属性が nn 個ある関係の異なる射影は幾つあるか。ここで,射影の個数には,元の関係と同じ結果となる射影,及び属性を全く含まない射影を含めるものとする。

解答・解説

正解: エ. 2n2^n

関係データベースにおいて、関係(リレーション)は複数の属性(アトリビュート)を持ちます。
射影(プロジェクション)とは、元の関係から指定した一部の属性のみを取り出し、新しい関係を作る演算です。

属性が nn 個ある関係から異なる射影を作ることは、これら nn 個の属性の「部分集合」を一つ選ぶことと同値です。
各属性について「射影に含める」「含めない」の2通りが独立に存在するため、部分集合の総数は 2×2×⋯×2=2n2 \times 2 \times \cdots \times 2 = 2^n 個となります。

問題文には「元の関係と同じ結果となる射影(全ての属性を選ぶ)」「属性を全く含まない射影(どの属性も選ばない)」を含めるとあるため、制約なくすべての部分集合の数を考えればよく、その数は 2n2^n となります。
よって、正解は エ です。

各選択肢の解説

  • ア log⁡2n\log_2 n:誤り。二分探索の計算量などに現れる式であり、部分集合の数ではありません。
  • イ nn:誤り。これは属性をちょうど1つだけ選ぶ射影の数に相当します。
  • ウ 2n2n:誤り。各属性について2通りの選択肢があるため、足し合わせるのではなく掛け合わせる(2n2^n)のが正しい組み合わせの求め方です。
  • エ 2n2^n:正解。nn 個の属性の部分集合の総数に一致します。

Spineチーム