平成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- ア商品コードが S001 の売値を 130,000 に更新する。
- イ商品コードが S003 の仕入値を 150,000 に更新する。
- ウ商品コードが S005 の売値を 130,000 に更新する。
- エ商品コードが S005 の仕入値を 90,000 に更新する。
答えと解説を見る
✓ これが正解ア商品コードが S001 の売値を 130,000 に更新する。
解説
差額が4万を下回った行だけがビューから外れます。
ビューは、条件に当てはまる行だけを取り出して見せる仕組みです。行数が減るのは、いま条件を満たしていて見えている行が、更新処理のあとに条件から外れたときだけです。まず今の姿を確かめます。売値から仕入値を引いた差は、T2003が50,000、S2003が30,000、R2003が60,000です。定義の境目は40,000ですから、いま見えているのはT2003とR2003の2行です。減らすには、この2行のどちらかの差を40,000より小さくしなければなりません。T2003の売値を130,000に下げると差は30,000になり、境目を割って見えなくなります。これで1行減ります。
ほかの選択肢はなぜ違うのか
- イ商品コードが S003 の仕入値を 15…:いま境目に届いていない行の差が50,000へ広がるので、この行は新しく姿を現します。見える行は減る向きではなく増える向きに動きます。
- ウ商品コードが S005 の売値を 130…:更新後の差は50,000で、境目をなお上回ったままです。金額そのものは変わりますが、取り出される行の顔ぶれは動きません。
- エ商品コードが S005 の仕入値を 90…:仕入れの側が上がるので差は縮みますが、それでも50,000あり、境目を割りません。条件を満たし続けるため、この行は残ったままです。
出典:平成24年度 秋期 基本情報技術者試験 午前 問29(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)