ITパスポート過去問 平成31年度(2019年)問78
関係データベースの“社員”表と“部署”表がある。“社員”表と“部署”表を結合し,社員の住所と所属する部署の所在地が異なる社員を抽出する。抽出される社員は何人か。

選択肢
- ア:1
- イ:2
- ウ:3
- エ:4
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
“社員”表の部署コードと“部署”表の部署コードで結合し、社員の住所と部署の所在地を比較します。その結果、住所と所在地が異なるのは高橋(H002)と鈴木(H003)の2人なので、抽出される社員は2人です。
Point
この問題は、2つの表を結合キーで結合したうえで、結合後に得られる列(社員の住所と部署の所在地)に対して抽出条件(不一致)を適用し、該当件数を数えられるかを確認する問題です。
解くために必要な知識
この問題を解くには、表の結合と、結合後の条件抽出の考え方が必要です。
用語の整理
| 用語 | 意味 |
|---|---|
| 関係データベース | データを表(テーブル)の形で管理するデータベースです。表同士を共通の列で関連付けて扱えます。 |
| 表(テーブル) | 行(レコード)と列(フィールド)で構成されるデータの集合です。 |
| 結合(JOIN) | 2つ以上の表を、共通する列の値が一致する行同士で対応付けて1つの結果として扱う操作です。 |
| 主キー | 表の各行を一意に識別できる列です。重複しない値を持ちます。 |
| 外部キー | 別の表の主キーを参照する列です。表同士を結び付けるために使います。 |
図表の読み取り方
1. 共通する列を見つける
この問題の共通列は、両方の表にある部署コードです。
2. 社員ごとに部署の情報を付け足して考える
社員表の各行に対して、部署コードが一致する部署表の行を対応付けます。すると、社員の住所と部署の所在地を同じ行で比較できます。
解くための手順
-
結合キー(部署コード)を特定します。
-
部署コードが一致する行同士で“社員”表と“部署”表を結合します。
-
結合後の各行で、住所と所在地が異なるものを抽出します。
-
抽出された行数を数えます。
問題の解法手順
この問題では、“社員”表の部署コードと、“部署”表の部署コードを使って結合し、住所と所在地が異なる社員を数えます。
図表の読み取り
結合に使う列
両方の表にある部署コードで結合します。
結合後のデータ(社員ごとに部署所在地を付与)
| 社員ID | 氏名 | 部署コード | 住所 | 部署名 | 所在地 |
|---|---|---|---|---|---|
| H001 | 伊藤 花子 | G02 | 神奈川県 | 営業部 | 神奈川県 |
| H002 | 高橋 四郎 | G01 | 神奈川県 | 総務部 | 東京都 |
| H003 | 鈴木 一郎 | G03 | 三重県 | 製造部 | 愛知県 |
| H004 | 田中 春子 | G04 | 大阪府 | 開発部 | 大阪府 |
| H005 | 渡辺 二郎 | G03 | 愛知県 | 製造部 | 愛知県 |
| H006 | 佐藤 三郎 | G02 | 神奈川県 | 営業部 | 神奈川県 |
解く手順
条件の確認
住所と所在地が異なる行だけを抽出します。
| 氏名 | 住所 | 所在地 | 判定 |
|---|---|---|---|
| 伊藤 花子 | 神奈川県 | 神奈川県 | 一致 |
| 高橋 四郎 | 神奈川県 | 東京都 | 不一致 |
| 鈴木 一郎 | 三重県 | 愛知県 | 不一致 |
| 田中 春子 | 大阪府 | 大阪府 | 一致 |
| 渡辺 二郎 | 愛知県 | 愛知県 | 一致 |
| 佐藤 三郎 | 神奈川県 | 神奈川県 | 一致 |
件数を数える
不一致は2件なので、抽出される社員は2人です。
選択肢ごとの解説
- ア:不正解
不一致は2人いるため、1人にはなりません。部署コードで結合して住所と所在地を比較すると、不一致が2行あります。
- イ:正解
高橋四郎(住所:神奈川県、所在地:東京都)と鈴木一郎(住所:三重県、所在地:愛知県)の2人が、住所と所属部署の所在地が異なります。
- ウ:不正解
住所と所在地が異なる社員は2人のため、3人ではありません。
- エ:不正解
住所と所在地が異なる社員は2人のため、4人ではありません。
まとめ
“社員”表の部署コードと“部署”表の部署コードで結合し、社員の住所と部署の所在地を比較します。その結果、住所と所在地が異なるのは高橋(H002)と鈴木(H003)の2人なので、抽出される社員は2人です。
テクノロジ系 > 技術要素 > データベース
不一致は2人いるため、1人にはなりません。部署コードで結合して住所と所在地を比較すると、不一致が2行あります。
高橋四郎(住所:神奈川県、所在地:東京都)と鈴木一郎(住所:三重県、所在地:愛知県)の2人が、住所と所属部署の所在地が異なります。
住所と所在地が異なる社員は2人のため、3人ではありません。
住所と所在地が異なる社員は2人のため、4人ではありません。