データベース|令和3年度 ITパスポート試験 問95
関係データベースで管理された“商品”表,“売上”表から売上日が5月中で,かつ,商品ごとの合計額が20,000円以上になっている商品だけを全て挙げたものはどれか。
商品
| 商品コード | 商品名 | 単価(円) |
|---|---|---|
| 0001 | 商品A | 2,000 |
| 0002 | 商品B | 4,000 |
| 0003 | 商品C | 7,000 |
| 0004 | 商品D | 10,000 |
売上
| 売上番号 | 商品コード | 個数 | 売上日 | 配達日 |
|---|---|---|---|---|
| Z00001 | 0004 | 3 | 4/30 | 5/2 |
| Z00002 | 0001 | 3 | 4/30 | 5/3 |
| Z00005 | 0003 | 3 | 5/15 | 5/17 |
| Z00006 | 0001 | 5 | 5/15 | 5/18 |
| Z00003 | 0002 | 3 | 5/5 | 5/18 |
| Z00004 | 0001 | 4 | 5/10 | 5/20 |
| Z00007 | 0002 | 3 | 5/30 | 6/2 |
| Z00008 | 0003 | 1 | 6/8 | 6/10 |
- 商品A,商品B,商品C
- 商品A,商品B,商品C,商品D
- ✓ これが正解商品B,商品C
- 商品C
解説
5月の売上だけを商品ごとに足すと、BとCが2万円以上です。
関係データベースでは、二つの表を商品コードで結合し、条件に合う行を選択し、必要な列を射影して答えを作ります。まず売上日が5月中の行だけを残すと、5月15日の商品Cが3個、5月15日の商品Aが5個、5月5日の商品Bが3個、5月10日の商品Aが4個、5月30日の商品Bが3個の、5行になります。配達日ではなく売上日のほうで選ぶところが、この問の分かれ目になっています。次に商品ごとに単価と個数を掛けて足すと、商品Aは9個で18,000円、商品Bは6個で24,000円、商品Cは3個で21,000円になります。商品Dの行は売上日が4月30日なので、この段で落ちています。20,000円以上という条件に合うのは商品Bと商品Cです。よって挙げるべきものは、商品Bと商品Cということになります。
ほかの選択肢はなぜ違うのか
- 商品Aを含めている点が外れます。5月中の売上は5個と4個で合わせて9個であり、単価2,000円を掛けると18,000円です。20,000円には2,000円ほど届いていないので、条件を満たしません。個数はいちばん多いのに、単価が低い商品にあたります。
- 商品Aが20,000円に届いていないことに加えて、商品Dも入っています。商品Dの行は売上日が4月30日で、5月中ではありません。配達日のほうが5月2日になっているので、そちらに引かれると誤ることになります。
- 商品Cは条件を満たしますが、商品Bが抜けています。商品Bは5月5日と5月30日に3個ずつで、合わせて6個です。単価4,000円を掛けると24,000円になり、こちらも20,000円以上になります。
この問題に関係する言葉
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。設計に使うE-R図は、この形での実装を前提にしません。
- 結合
- 選択
- 射影
出典:令和3年度 ITパスポート試験 問95(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)