基本情報技術者試験 - 令和7年7月修了 - 問20
“商品” 表のデータが次の状態のとき,〔ビュー定義〕で示すビュー “収益商品” の行数が減少する更新処理はどれか。
商品
〔ビュー定義〕
CREATE VIEW 収益商品
AS SELECT * FROM 商品
WHERE 売値 - 仕入値 >= 40000
商品
| 商品コード | 品名 | 型式 | 売値 | 仕入値 |
| 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
| ア | 商品コードがS001の売値を130,000に更新する。 |
|---|---|
| イ | 商品コードがS003の仕入値を150,000に更新する。 |
| ウ | 商品コードがS005の売値を130,000に更新する。 |
| エ | 商品コードがS005の仕入値を90,000に更新する。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
解説 :
ビューの定義に基づいて,更新処理によってビューの行数が減少するケースを判断するものです。ビュー「収益商品」は,商品表から「売値-仕入値が40,000以上」という条件を満たす行だけを抽出したものです。
現在の商品表では,S001(売値150,000,仕入値100,000,差額50,000),S003(売値200,000,仕入値170,000,差額30,000),S005(売値140,000,仕入値80,000,差額60,000)となっており,条件を満たすのはS001とS005の2件です。選択肢「ア」のようにS001の売値を130,000に更新すると,差額は130,000-100,000=30,000となり,40,000未満になるためビューの条件を満たさなくなり,ビューの行数が1減って1件になります。
誤りの選択肢を見ると,S003の仕入値を150,000に更新しても差額は50,000となり,もともと条件を満たしていなかったS003が新たに条件を満たすようになるため行数は増加します。S005について売値を130,000に更新しても差額は50,000で条件を満たし続け,仕入値を90,000に更新しても差額は50,000で条件を満たし続けるため,いずれも行数は変化しません。それぞれの更新後の差額を計算し,条件を満たすかどうかを確認することがポイントです。
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
解説 :
ビューの定義に基づいて,更新処理によってビューの行数が減少するケースを判断するものです。ビュー「収益商品」は,商品表から「売値-仕入値が40,000以上」という条件を満たす行だけを抽出したものです。
現在の商品表では,S001(売値150,000,仕入値100,000,差額50,000),S003(売値200,000,仕入値170,000,差額30,000),S005(売値140,000,仕入値80,000,差額60,000)となっており,条件を満たすのはS001とS005の2件です。選択肢「ア」のようにS001の売値を130,000に更新すると,差額は130,000-100,000=30,000となり,40,000未満になるためビューの条件を満たさなくなり,ビューの行数が1減って1件になります。
誤りの選択肢を見ると,S003の仕入値を150,000に更新しても差額は50,000となり,もともと条件を満たしていなかったS003が新たに条件を満たすようになるため行数は増加します。S005について売値を130,000に更新しても差額は50,000で条件を満たし続け,仕入値を90,000に更新しても差額は50,000で条件を満たし続けるため,いずれも行数は変化しません。それぞれの更新後の差額を計算し,条件を満たすかどうかを確認することがポイントです。