DBデータベーススペシャリスト試験 午前Ⅱ

平成31年度春期 データベーススペシャリスト 午前Ⅱ 問13

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    2n
  2. イ
    2ⁿ
  3. ウ
    log₂n
  4. エ
    n
解き方のヒントを見る

射影を整理するための定義確認

射影を数え上げるときは、何を対象として区別しているのかを定義に沿って整理し、同じ結果を重複して数えていないか、条件の違いを別の観点と混同していないか確認します。

この問題で問われていること

一つの観点に絞り、各候補が表している区別の基準を問題文の定義と照合してください。対象・条件・結果のどこが数え上げの単位になっているかを見極めることが出発点です。

視点

数え上げでは、用語の印象や見た目ではなく、定義上どの対象を別物として扱うかに注目します。区別の基準を先に言語化し、その基準が一貫しているか確認すると、分類と個数の対応を整理できます。

確認ポイント

  • 数え上げの単位が何として定義されているか確認する
  • 同じ基準で区別できるものだけを比較しているか確認する
  • 分類の違いと個数の違いを混同していないか確認する
正解と解説を見る

正解

イ

解説

射影は、n個の属性それぞれについて含めるか含めないかを選んで得られる。各属性には二つの選択肢があり、それらを独立に組み合わせるため、異なる射影の個数は2ⁿとなる。

理由

n個の属性それぞれについて、射影に含めるか含めないかの2通りがある。各属性の選択は独立しているので、全体の組合せは2×2×…×2(n個)=2ⁿとなる。全属性を含める射影は元の関係と同じ結果になり、属性を全く含めない射影も条件に含まれる。

比較

この問題は属性の個数そのものや、一定量を加える計算ではなく、各属性を選択する組合せの総数を求める問題です。したがって、属性ごとの二択を掛け合わせる考え方が適切であり、選択肢の形をその観点から比較できる。

選択肢ア

これは不正解だよ。2nはnを2倍した値を表し、属性ごとに含めるか含めないかを選ぶ独立した組合せの総数ではない。この問題では、属性が増えるたびに選択肢が積み重なるため、単純な比例関係では表せない。

選択肢イ(正解)

これは正解だよ。n個の属性それぞれに、射影へ含めるか含めないかの2通りがある。各選択を独立に組み合わせるので、個数は2をn回掛けた2ⁿとなる。全属性を含む場合と、属性を全く含まない場合もこの組合せに含まれる。

選択肢ウ

これは不正解だよ。log₂nは、2を何乗するとnになるかを表す値であり、各属性について二択を行った組合せの総数ではない。射影の個数を求めるには、属性ごとの選択を掛け合わせる必要がある。

選択肢エ

これは不正解だよ。nは属性の個数そのものであり、各属性を含めるか含めないかという二択を組み合わせた結果を表さない。属性を選ばない場合や複数属性を選ぶ場合も含めるため、単に属性数だけを数えることはできない。

学習のポイント

属性の部分集合と、独立した二択の組合せとして射影の個数を数える。

出典:独立行政法人 情報処理推進機構(IPA)平成31年度春期 データベーススペシャリスト試験 午前Ⅱ 問13(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針