ITパスポート

問78

ITパスポート過去問 平成31年度(2019年)問78

関係データベースの“社員”表と“部署”表がある。“社員”表と“部署”表を結合し,社員の住所と所属する部署の所在地が異なる社員を抽出する。抽出される社員は何人か。

選択肢

  • 1
  • 2
  • 3
  • 4

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

“社員”表の部署コードと“部署”表の部署コードで結合し、社員の住所と部署の所在地を比較します。その結果、住所と所在地が異なるのは高橋(H002)と鈴木(H003)の2人なので、抽出される社員は2人です。

不正解

不一致は2人いるため、1人にはなりません。部署コードで結合して住所と所在地を比較すると、不一致が2行あります。

正解

高橋四郎(住所:神奈川県、所在地:東京都)と鈴木一郎(住所:三重県、所在地:愛知県)の2人が、住所と所属部署の所在地が異なります。

不正解

住所と所在地が異なる社員は2人のため、3人ではありません。

不正解

住所と所在地が異なる社員は2人のため、4人ではありません。

Point

この問題は、2つの表を結合キーで結合したうえで、結合後に得られる列(社員の住所と部署の所在地)に対して抽出条件(不一致)を適用し、該当件数を数えられるかを確認する問題です。

解くために必要な知識

この問題を解くには、表の結合と、結合後の条件抽出の考え方が必要です。

用語の整理

用語 意味
関係データベース データを表(テーブル)の形で管理するデータベースです。表同士を共通の列で関連付けて扱えます。
表(テーブル) 行(レコード)と列(フィールド)で構成されるデータの集合です。
結合(JOIN) 2つ以上の表を、共通する列の値が一致する行同士で対応付けて1つの結果として扱う操作です。
主キー 表の各行を一意に識別できる列です。重複しない値を持ちます。
外部キー 別の表の主キーを参照する列です。表同士を結び付けるために使います。

図表の読み取り方

1. 共通する列を見つける

この問題の共通列は、両方の表にある部署コードです。

2. 社員ごとに部署の情報を付け足して考える

社員表の各行に対して、部署コードが一致する部署表の行を対応付けます。すると、社員の住所と部署の所在地を同じ行で比較できます。

解くための手順

  1. 結合キー(部署コード)を特定します。

  2. 部署コードが一致する行同士で“社員”表と“部署”表を結合します。

  3. 結合後の各行で、住所と所在地が異なるものを抽出します。

  4. 抽出された行数を数えます。

問題の解法手順

この問題では、“社員”表の部署コードと、“部署”表の部署コードを使って結合し、住所と所在地が異なる社員を数えます。

図表の読み取り

結合に使う列

両方の表にある部署コードで結合します。

結合後のデータ(社員ごとに部署所在地を付与)

社員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人です。

テクノロジ系 > 技術要素 > データベース

順次、単語を追加予定です。もうしばらくお待ちください。