問題プレビューID: 360cc1c2

問 31

“商品” 表のデータが次の状態のとき,〔ビュー定義〕で示すビュー “収益商品” の行数が減少する更新処理はどれか。

商品

商品コード品名型式売値仕入値
S001TT2003150,000100,000
S003SS2003200,000170,000
S005RR2003140,00080,000

〔ビュー定義〕

CREATE VIEW 収益商品
    AS SELECT * FROM 商品
    WHERE 売値 - 仕入値 >= 40000
解説

ビュー “収益商品” は,売値 - 仕入値 >= 40000 を満たす行だけを表示する。

現在の各行の差額は次のとおりである。

  • S001: 150,000 - 100,000 = 50,000(ビューに含まれる)
  • S003: 200,000 - 170,000 = 30,000(ビューに含まれない)
  • S005: 140,000 - 80,000 = 60,000(ビューに含まれる)

したがって,現在のビューの行数は 2 である。各更新後の差額を確認する。

  • ア: S001 の売値を 130,000 にすると 130,000 - 100,000 = 30,000 < 40,000 となり,S001 がビューから外れるので行数は 2 → 1 に減少する。
  • イ: S003 の仕入値を 150,000 にすると 200,000 - 150,000 = 50,000 となり,S003 が新たにビューに含まれるので行数は増加する。
  • ウ: S005 の売値を 130,000 にすると 130,000 - 80,000 = 50,000 のままで,行数は変化しない。
  • エ: S005 の仕入値を 90,000 にすると 140,000 - 90,000 = 50,000 のままで,行数は変化しない。

よって,行数が減少するのはアである。