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

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


問題文

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

選択肢

(正解)

🔒 解説は解答すると表示されます

関係の射影の総数【午前2解説】

正解の理由

射影は「どの属性を残すか」を選ぶ操作であり、各属性ごとに「残す/残さない」の2通りの選択が独立にあるため、全体で選べる射影の通り数は です。問題文で「元の関係と同じ結果となる射影、及び属性を全く含まない射影を含める」と明記されているため、空集合(属性を全く含まない射影)や全属性を残す射影もカウントに入ります。したがって理論的に正しい個数は であり、出題側の解答が )となっているのは誤りです。
(補足)各射影は属性の部分集合に一対一対応します。部分集合の総数はべき集合の要素数 で与えられます。

解法ステップ

  1. 射影操作は「属性集合の部分集合を選ぶ」ことと同値と認識する。
  2. 各属性について「含める/含めない」の2通りの選択が独立にあるため、通り数は (n個)で
  3. 組合せ的に書くと、全ての 個選ぶ場合の和で表せる:
  4. 例: のとき、選べる射影は空集合、{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C} の計8通り。

選択肢別の誤答解説

  • ア:
    • これは各属性について2通りあることを「単純に2×n」と誤解した形。属性ごとの独立な選択を連乗(冪乗)で数える必要があるため不適切。
  • :
    • 「属性のペア」や「属性間の組み合わせの数(順序あり)」など別の数量を想定すると出る値だが、本問の射影(属性の部分集合)を数える解答としては理由付けがつかない。したがって誤り(出題側の解答キーと整合しない)。
  • ウ:
    • 対数は成長の尺度であり、選択肢数を表すには不適合。属性数が増えると指数的に通りが増える()のに対し、 は非常に小さい値になる。
  • エ:
    • 「1つだけ属性を選ぶ場合」のみを数えている誤り。空集合や複数属性を残す場合も含める必要があるため不適切。

よくある誤解

  • 射影の「結果として得られる関係の件数」を数えると解釈してしまう誤り:実データによっては異なる属性集合が同一の結果(同じタプル集合)を返すことがあり得ますが、本問は「射影操作の種類(選ぶ属性の組)」を数える設問である点を見落としやすいです。
  • 空の射影(属性を全く含まないもの)を忘れるミス:設問で明示しているため含める必要があります。
  • 「組み合わせ」と「順列」を混同する:属性の選択は順序を持たない部分集合の問題です(順序を考えると別問題になる)。

補足コラム

リレーショナル代数の射影(π)は、属性(列)の選択を行い、通常は重複タプルを排除して結果の「関係」を返します。したがって実際のデータ次第では、異なる属性集合が同一の結果関係を生むことがあります。試験問題のように「射影の個数」を理論的に問う場合は属性集合の取り得る部分集合の数=べき集合の大きさ を用いるのが標準的です。
また、計算上は2進表現で直感的に理解できます。各属性をビットに対応させ、1なら含む、0なら含まないとすると、nビットで表せるパターン数は です。

FAQ

Q1: 「異なる射影」って属性の組み合わせを指しますか?
A1: はい。本問は射影操作そのもの(どの属性を選ぶか)を数える設問であり、属性集合ごとに1つとして数えます。
Q2: 実データによっては より少なくならないですか?
A2: 実データで結果が重複する場合、得られる異なる「結果関係」の数は 以下になります。しかし本問は理論的な射影の種類を問うもので、データ依存性は考慮しません。
Q3: 出題の解答が になっているがどうすればよいですか?
A3: 理論的な解法(属性の部分集合を数える)からは が正解です。出題側の解答キーが異なる場合は、試験運営側の訂正情報を確認してください。

関連キーワード: 関係代数、射影、部分集合、べき集合、組合せ、二進法、属性選択
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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