SAシステムアーキテクト試験 午前Ⅱ
平成23年度秋期 システムアーキテクト 午前Ⅱ 問21
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アn
- イ2n
- ウn²
- エ2ⁿ
解き方のヒントを見る
抽出と列選択を見分ける視点
関係代数やSQLの設問では、処理の対象が行なのか列なのかを切り分け、各操作が結果のどの部分に影響するかを段階的に確認しましょう。文脈に流されず、役割の違いに注目することが大切です。
この問題で問われていること
一つの操作を見たとき、条件に合うレコードの集合を変える話なのか、各レコードに残す属性を変える話なのかを、結果の形に着目して整理してください。前後の変化を一度に決めつけず、観察対象を一つに絞りましょう。
視点
操作を判断するときは、入力と出力を並べ、変化している対象がレコードの集合なのか、レコード内の属性構成なのかを整理します。
確認ポイント
- 操作前後で、観察対象がどの単位になっているか確認する
- 条件や指定が、結果のどの側面に関係しているか整理する
- 複数の操作がある場合、それぞれの役割を分けて記録する
正解と解説を見る
正解
エ
解説
次数nの関係では、各属性について射影に含めるか含めないかをそれぞれ選択できます。属性なしの射影も含めるため、全属性に対する選択の組合せを数えると2ⁿになります。
理由
射影は、関係の属性から任意の属性集合を選び出す操作です。n個の属性それぞれについて、射影に含める場合と含めない場合の2通りがあります。これらを組み合わせると、属性なしの場合も含めた射影の総数は2ⁿです。
比較
nは属性数そのもの、2nは各属性に対する二つの選択を掛け合わせていない値、n²は属性数を二乗した値です。射影では各属性の採否を独立に選ぶため、選択肢を積で数える必要があります。
選択肢ア
これは不正解だよ。nは属性の個数を表すだけで、各属性について射影に含めるかどうかという選択を考慮していません。属性を一つも選ばない場合を含め、属性ごとの採否を組み合わせて数える必要があるため、射影の総数にはなりません。
選択肢イ
これは不正解だよ。2nは、属性数nに二つの選択肢を単純に掛けただけの形です。しかし射影では、各属性について含めるか含めないかを選ぶため、二つの選択を属性ごとに積み重ねて数えます。したがって2nでは不足します。
選択肢ウ
これは不正解だよ。n²は属性数を二度掛けた値であり、射影における各属性の採否の組合せを表していません。属性ごとに二つの状態を選ぶ問題なので、属性数を二乗するのではなく、二つの選択をn回組み合わせて数えます。
選択肢エ(正解)
これは正解だよ。n個の属性それぞれについて、射影に含めるか含めないかの2通りを選択できます。その選択を全属性について組み合わせると2ⁿ通りとなり、どの属性も選ばない属性なしの射影もこの中に含まれます。
学習のポイント
関係データベースにおける射影と、属性選択の組合せ数
出典:独立行政法人 情報処理推進機構(IPA)平成23年度秋期 システムアーキテクト試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針