平成27年度 春期 午前Ⅱ 問10
データ操作
等結合した結果
“商品”表と“納品”表を商品番号で等結合した結果はどれか。
商品
| 商品番号 | 商品名 | 価格 |
|---|---|---|
| S01 | ボールペン | 150 |
| S02 | 消しゴム | 80 |
| S03 | クリップ | 200 |
納品
| 商品番号 | 顧客番号 | 納品数 |
|---|---|---|
| S01 | C01 | 10 |
| S01 | C02 | 30 |
| S02 | C02 | 20 |
| S02 | C03 | 40 |
| S03 | C03 | 60 |
選択肢は原典では表。各肢は〔列名〕の後に行を上から順に並べた(行の中の値は「,」で区切った)。
- ア〔商品番号,商品名,価格,顧客番号,納品数〕 S01,ボールペン,150,C01,10 / S02,消しゴム,80,C02,20 / S03,クリップ,200,C03,60
- イ〔商品番号,商品名,価格,商品番号,顧客番号,納品数〕 S01,ボールペン,150,S01,C01,10 / S02,消しゴム,80,S02,C02,20 / S03,クリップ,200,S03,C03,60
- ウ〔商品番号,商品名,価格,顧客番号,納品数〕 S01,ボールペン,150,C01,10 / S01,ボールペン,150,C02,30 / S02,消しゴム,80,C02,20 / S02,消しゴム,80,C03,40 / S03,クリップ,200,C03,60
- エ〔商品番号,商品名,価格,商品番号,顧客番号,納品数〕 S01,ボールペン,150,S01,C01,10 / S01,ボールペン,150,S01,C02,30 / S02,消しゴム,80,S02,C02,20 / S02,消しゴム,80,S02,C03,40 / S03,クリップ,200,S03,C03,60
答えと解説を見る
✓ これが正解エ〔商品番号,商品名,価格,商品番号,顧客番号,納品数〕 S01,ボールペン,150,S01,C01,10 / S01,ボールペン,150,S01,C02,30 / S02,消しゴム,80,S02,C02,20 / S02,消しゴム,80,S02,C03,40 / S03,クリップ,200,S03,C03,60
解説
等結合は商品番号の列を両方残し、一致する組合せをすべて作ります。
等結合は、二つの表の行を組み合わせ、指定した列の値が等しい組だけを残す演算です。結合に使った列は、両方の表のものがそのまま結果に並びます。この点で、同じ名前の列を一つにまとめる結合とは違います。行数を確かめると、納品表の5行それぞれに、商品番号が一致する商品表の行がちょうど一つあるので、結果は5行になります。S01とS02はそれぞれ2行、S03は1行です。列は商品番号、商品名、価格、商品番号、顧客番号、納品数の六つで、正解の表はこの形になっています。列が重複して残るかどうかと、行数が納品の件数と一致するかの二点で見分けます。
ほかの選択肢はなぜ違うのか
- ア〔商品番号,商品名,価格,顧客番号,納品…:結合に使った商品番号の列を一つにまとめたうえに、商品ごとに1行しか残していません。納品表には同じ商品の行が複数あるので、一致する組合せをすべて作るとS01とS02は2行ずつになります。
- イ〔商品番号,商品名,価格,商品番号,顧客…:商品番号の列が両方残っている点は合っていますが、行が3行しかありません。商品番号が一致する組合せは納品表の行の数だけあるので、本来5行になるところを商品ごとに1行へ減らしています。
- ウ〔商品番号,商品名,価格,顧客番号,納品…:行は5行そろっていますが、商品番号の列が一つにまとめられています。同じ名前の列を一つにする結合の結果であり、結合に使った列を両方の表から残す等結合とは列の数が違います。
出典:平成27年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)