データベース|平成31年度 春期 ITパスポート試験(特別措置試験) 問78
関係データベースの“社員”表と“部署”表がある。“社員”表と“部署”表を結合し,社員の住所と所属する部署の所在地が異なる社員を抽出する。抽出される社員は何人か。
社員
| 社員ID | 氏名 | 部署コード | 住所 |
|---|---|---|---|
| H001 | 伊藤 花子 | G02 | 神奈川県 |
| H002 | 高橋 四郎 | G01 | 神奈川県 |
| H003 | 鈴木 一郎 | G03 | 三重県 |
| H004 | 田中 春子 | G04 | 大阪府 |
| H005 | 渡辺 二郎 | G03 | 愛知県 |
| H006 | 佐藤 三郎 | G02 | 神奈川県 |
部署
| 部署コード | 部署名 | 所在地 |
|---|---|---|
| G01 | 総務部 | 東京都 |
| G02 | 営業部 | 神奈川県 |
| G03 | 製造部 | 愛知県 |
| G04 | 開発部 | 大阪府 |
- 1
- ✓ これが正解2
- 3
- 4
解説
住所と所在地が食い違うのは、高橋さんと鈴木さんの二人です。
二つの表を突き合わせるには、両方に共通して置かれている欄を手掛かりにします。ここでは部署コードがその欄にあたります。社員の表から部署コードを読み、部署の表で同じコードの行を探して所在地を取ります。そのうえで、社員の住所と並べて違うかどうかを見ます。一人目は神奈川県で、部署も神奈川県なので同じです。二人目は神奈川県ですが、部署は東京都なので違います。三人目は三重県で、部署は愛知県なので違います。四人目は大阪府どうし、五人目は愛知県どうしで同じです。六人目も神奈川県どうしで同じです。違っているのは二人なので、答えは2になります。表を突き合わせる操作は結合と呼ばれます。共通の欄が無ければ、二つの表は結び付けられません。ここでは部署コードがその役を果たしています。同じ部署でも住所が違えば結果が分かれます。
ほかの選択肢はなぜ違うのか
- 1は、六行のうち一行だけを見つけて止めた場合の数です。違っているのは二行目と三行目で、隣り合っています。二行目は神奈川県と東京都、三行目は三重県と愛知県です。片方を見つけたところで安心すると、もう片方を見落とします。
- 3は、同じ組を一つ数え入れてしまった場合の数です。三つ目の部署コードは二人に使われていますが、住所が違うのは片方だけです。数えるのは行であって部署ではありません。部署ごとにまとめて判定すると、この差が消えてしまいます。
- 4は、同じと違うを取り違えた場合の数です。六人のうち同じなのが四人、違うのが二人なので、問われている側の反対を数えたことになります。同じ組は一行目と四行目と五行目と六行目です。どちらを聞かれているかを先に確かめます。
この問題に関係する言葉
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。設計に使うE-R図は、この形での実装を前提にしません。
- 結合
出典:平成31年度 春期 ITパスポート試験(特別措置試験) 問78(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)