IPA過去問ドリル

平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10

テクノロジ/データベース

更新可能なビューの定義はどれか。ここで,ビュー定義の中で参照する基底表は全て更新可能とする。

出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10

正解:ウ

解説

ビューが更新可能となるためには,一般に単一の基底表からのSELECTであり,DISTINCTや集合関数,GROUP BYなどによる集約を含まないことが必要です。ビュー3は,一つの基底表“取引先”に対して単純なWHERE条件(取引先.ランク>15)で行を絞り込んでいるだけであり,どの基底表のどの行に対応するかが一意に定まるため,更新可能です。

選択肢ごとの解説

  • 誤り。ビュー1はSELECT DISTINCTによって重複行を排除しており,更新しようとした行が基底表のどの行に対応するか一意に定まらない場合があるため,一般に更新可能とは扱われません。
  • 誤り。ビュー2はGROUP BYによる集約を含んでおり,集約後の1行が基底表の複数行に対応するため,どの行を更新すべきかが一意に定まらず,更新可能ではありません。
  • 正しい。ビュー3は単一の基底表“取引先”に対する単純な行の絞り込み(WHERE句)だけで構成されており,ビューの各行が基底表の1行に一意に対応するため,更新可能です。
  • 誤り。ビュー4は“取引先”と“製品”という複数の基底表を結合しており,ビューの1行がどちらの基底表のどの行の更新に対応するかが一意に定まらないため,更新可能ではありません。
データベーススペシャリストの過去問を演習モードで解く