平成24年度 秋期 基本情報技術者試験 午前 問29
テクノロジ/データベース“商品”表のデータが次の状態のとき,〔ビュー定義〕で示すビュー“収益商品”の行数が減少する更新処理はどれか。 商品:商品コード,品名,型式,売値,仕入値 S001,T,T2003,150,000,100,000 S003,S,S2003,200,000,170,000 S005,R,R2003,140,000,80,000 〔ビュー定義〕 CREATE VIEW 収益商品 AS SELECT * FROM 商品 WHERE 売値 - 仕入値 >= 40000
出典:平成24年度 秋期 基本情報技術者試験 午前 問29
- ア商品コードがS001の売値を130,000に更新する。
- イ商品コードがS003の仕入値を150,000に更新する。
- ウ商品コードがS005の売値を130,000に更新する。
- エ商品コードがS005の仕入値を90,000に更新する。
正解:ア
解説
ビュー“収益商品”は,売値-仕入値が40,000以上の商品を抽出しています。現在の3行のうち,売値-仕入値が40,000以上なのはS001(50,000)とS003(30,000ではなく実際は30,000で対象外)とS005(60,000)です。正確には,S001:150,000-100,000=50,000(対象),S003:200,000-170,000=30,000(対象外),S005:140,000-80,000=60,000(対象)で,ビューの行数は2行(S001,S005)です。選択肢ア(S001の売値を130,000に更新)にすると差額は130,000-100,000=30,000となり,40,000未満になるためS001がビューから外れ,行数が1行に減少します。
選択肢ごとの解説
- ア正しい。S001の売値を130,000に更新すると差額が30,000(<40,000)となり,S001がビューの条件を満たさなくなるため行数が減少します。
- イ誤り。S003の仕入値を150,000に更新すると差額は200,000-150,000=50,000となり,新たに条件を満たすようになるため行数はむしろ増加します。
- ウ誤り。S005の売値を130,000に更新すると差額は130,000-80,000=50,000となり,条件(40,000以上)を満たしたままなので行数は変化しません。
- エ誤り。S005の仕入値を90,000に更新すると差額は140,000-90,000=50,000となり,条件を満たしたままなので行数は変化しません。