令和5年度 秋期 応用情報技術者試験 午前 問28
テクノロジ/データベース更新可能なビューを作成する SQL 文はどれか。ここで,SQL 文中に現れる基底表は全て更新可能とする。
出典:令和5年度 秋期 応用情報技術者試験 午前 問28
- アCREATE VIEW 高額商品(商品番号, 商品名, 商品単価) AS SELECT 商品番号, 商品名, 商品単価 FROM 商品 WHERE 商品単価 > 1000
- イCREATE VIEW 受注商品(商品番号) AS SELECT DISTINCT 商品番号 FROM 受注
- ウCREATE VIEW 商品受注(商品番号, 受注数量) AS SELECT 商品番号, SUM(受注数量) FROM 受注 GROUP BY 商品番号
- エCREATE VIEW 商品平均受注数量(平均受注数量) AS SELECT AVG(受注数量) FROM 受注
正解:ア
解説
ビューを通して基底表を更新するには,ビューの各行が基底表の行と1対1に対応している必要があります。DISTINCT,集約関数(SUM,AVG など),GROUP BY などを含むビューは行の対応が失われるため更新できません。アは WHERE で行を絞り込んだだけの単純なビューなので更新可能です。
選択肢ごとの解説
- ア正しい。列の選択と WHERE による行の絞り込みだけのビューは,基底表の行と1対1に対応するため更新可能です。
- イ誤り。DISTINCT で重複を除いたビューは,1行が基底表の複数行に対応し得るため更新できません。
- ウ誤り。GROUP BY と SUM による集約結果のビューは基底表の行と対応しないため更新できません。
- エ誤り。AVG による集約結果のビューも同様に更新できません。