戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2011年 秋期 65


問題文

関係データベースのA表、B表がある。A表、B表に対してを行った結果は、それぞれP表、Q表及びR表のどれになるか。ここで、は和集合演算、は共通集合演算を表す。
ITパスポート 2011年 秋期  問65の問題画像ITパスポート 2011年 秋期  問65の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

和集合と共通集合【ITパスポート解説】

正解の理由

関係データベース(表形式でデータを扱うシステム)における和集合と共通集合は次の通りです。和集合(記号 )は「AまたはBに含まれるすべての行(重複は1つにまとめる)」、共通集合(記号 )は「AにもBにも含まれる行」を表します。
A表の製品コードは P001、P003、P007、P012、P019、B表の製品コードは P003、P007、P020 です。これより
  • 共通集合(A∩B)は両方にある P003 と P007 → P表(P003, P007)に一致します。
  • 和集合(A∪B)は両方のすべての行を重複を除いて集めた P001、P003、P007、P012、P019、P020 → R表に一致します。
したがって、(A∪B) = R、(A∩B) = P となり、選択肢のうち中央列が R、右列が P の組合せである が正しい選択です。

解法ステップ

  1. A表とB表の各行を「識別できる項目」(ここでは商品コード)で並べる。
    • A: P001, P003, P007, P012, P019
    • B: P003, P007, P020
  2. 共通集合(A∩B)を求める:AにもBにも含まれるものだけを取る → P003, P007。これは P表と同じ内容。
  3. 和集合(A∪B)を求める:AかBのどちらかに含まれるすべてを集め、重複は1つにまとめる → P001, P003, P007, P012, P019, P020。これは R表と同じ内容。
  4. 表の名前(P, Q, R)と照合して、(A∪B)=R、(A∩B)=P の組合せを選ぶ →

選択肢別の誤答解説

  • ア:中央 (A∪B)=P、右 (A∩B)=R
    誤り。Pは共通の小さい集合(P003, P007)なので和集合には不足します。Rは和集合の内容を含む全件であり、共通集合になるわけではありません。
  • イ:中央 (A∪B)=Q、右 (A∩B)=R
    誤り。Qは A にだけある行(P001, P012, P019)で、和集合としては一部しか含んでいません。Rが共通集合になるのも矛盾です。
  • :中央 (A∪B)=R、右 (A∩B)=P
    正しい。上の「正解の理由」で示したように、和集合は R、共通集合は P に対応します。
  • エ:中央 (A∪B)=R、右 (A∩B)=Q
    誤り。和集合がRなのは合っていますが、共通集合がQではありません。QはAからのみの行であり、Bに共通していない行が含まれます。

よくある誤解

  1. 「和集合=両方に含まれるもの」と取り違える(これが交差=共通集合の定義)。和集合は「どちらかに含まれる全て」です。
  2. 重複を数えてしまう(AとBに同じ行があるとき、和集合で2回カウントするのは間違い。重複は1つにまとめます)。
  3. 表の行順や見た目で判断してしまう(集合演算は行の内容で判断。順序は意味を持ちません)。

補足コラム

  • SQLでの対応:関係データベースの集合演算はSQLでも使えます。一般的には次のようになります(テーブル名 A, B と仮定)。
-- 重複を取り除く和集合
SELECT * FROM A
UNION
SELECT * FROM B;

-- 全ての行を含める(重複を残す)和集合
SELECT * FROM A
UNION ALL
SELECT * FROM B;

-- 共通集合(両方に存在する行)
SELECT * FROM A
INTERSECT
SELECT * FROM B;
  • 行の等価性:集合演算で「同じ行」とみなすには、全ての列の値が一致する必要があります。今回の例では商品コードで一意(主キー:その行を一意に識別する項目)になっているため、商品コードだけで照合して考えて問題ありません。
  • 実務ポイント:重複を意図的に残したいときは SQL の UNION ALL を使う点に注意。

FAQ

Q. 行の順序は結果に影響しますか?
A. いいえ。集合演算は集合の概念なので「順序」は意味を持ちません。必要なら結果を ORDER BY で並べ替えます。
Q. 列の数や型が違うとどうなりますか?
A. SQL の集合演算では、結合する両方の SELECT が同じ数と互換性のある型の列を返す必要があります。問題文のように同じ列構成なら問題ありません。
Q. 同じ内容の行が複数ある場合、和集合はどうなりますか?
A. 通常の集合演算(SQL の UNION も含む)は重複を取り除きます。重複を残したいときは UNION ALL を使います。

関連キーワード: 関係データベース、和集合、共通集合、UNION、INTERSECT、UNION ALL、主キー、集合演算
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について