令和3年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前Ⅰ 問題【共通】 問8

関係Rと関係Sに対して,関係Xを求める関係演算はどれか。

関係R、関係S、関係Xの表
図の説明テキスト

関係R、関係S、関係Xの3つの表が横に並んでいる。

関係R:

ID A B
0001 a 100
0002 b 200
0003 d 300

関係S:

ID A B
0001 a 100
0002 a 200

関係X:

ID A B
0001 a 100
0002 a 200
0002 b 200
0003 d 300
解答・解説

正解: エ. 和

関係データベースにおける各種の関係演算を用いた結果の表について確認します。
問題で示されている関係Rと関係Sのタプル(行)は以下の通りです。

  • 関係R
    • (0001, a, 100)
    • (0002, b, 200)
    • (0003, d, 300)
  • 関係S
    • (0001, a, 100)
    • (0002, a, 200)

関係Xのタプルは以下の通りです。

  • 関係X
    • (0001, a, 100)
    • (0002, a, 200)
    • (0002, b, 200)
    • (0003, d, 300)

関係Xのタプルを確認すると、関係Rに含まれるすべてのタプルと、関係Sに含まれるすべてのタプルがまとめられていることがわかります。両方の関係に含まれるタプルを集め、重複する (0001, a, 100) を1つにまとめる関係演算を 和 と呼びます。
したがって、正解は「和」となります。

各選択肢の解説

  • ア IDで結合
    結合演算は、共通する属性(ここではID)の値が一致するタプル同士をつなぎ合わせ、新しい列を構成する演算です。関係Rと関係Sを結合した場合、列数が増えた表になるため、関係Xとは一致しません。
  • イ 差
    差演算は、一方の関係に含まれるタプルのうち、もう一方の関係にも含まれるタプルを取り除く演算です。たとえば関係Rから関係Sの差を求める(R - S)と、共通する (0001, a, 100) が取り除かれ、(0002, b, 200) と (0003, d, 300) が残ります。関係Xとは一致しません。
  • ウ 直積
    直積演算は、2つの関係のすべてのタプルの組み合わせを作る演算です。関係R(3行)と関係S(2行)の直積は 3×2=63 \times 2 = 6 行の表となり、関係Xとは一致しません。
  • エ 和
    正解です。2つの関係のいずれかに含まれるすべてのタプルを集め、重複を排除して新しい関係を作ります。

Spineチーム