令和3年度 秋期 応用情報技術者試験 午前 問題 問26

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

図表 bb_14_1
図の説明テキスト

関係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、および関係Xの表の内容を比較して、どのような関係演算が行われたかを確認します。

  • 関係Rには (0001, a, 100)、(0002, b, 200)、(0003, d, 300) の3行が含まれています。
  • 関係Sには (0001, a, 100)、(0002, a, 200) の2行が含まれています。
  • 関係Xには (0001, a, 100)、(0002, a, 200)、(0002, b, 200)、(0003, d, 300) の4行が含まれています。

関係Xの行を確認すると、関係Rに含まれるすべての行と、関係Sに含まれるすべての行が合わさっていることがわかります。両方の表に共通して存在する (0001, a, 100) の行は、重複が排除されて1行だけ表示されています。

このように、同じ列構成を持つ2つの表から、どちらか一方または両方に存在するすべての行を取り出し、重複を除いて1つの表にまとめる関係演算を 和 と呼びます。

したがって、関係Xを求める演算は「和」であるため、正解は エ となります。

各選択肢の解説

  • ア (IDで結合): 結合演算は、共通の列(ここではID)を条件に行同士を横に連結する操作です。結合すると列数が増加するなど、元の表と同じ列構成の関係Xとは結果が異なります。
  • イ (差): 差演算は、一方の表からもう一方の表に含まれる共通の行を取り除く演算です。例えば「関係R-関係S」とした場合、結果は (0002, b, 200) と (0003, d, 300) の2行のみとなり、関係Xとは一致しません。
  • ウ (直積): 直積演算は、2つの表のすべての行の組み合わせを作成します。関係Rの3行と関係Sの2行の直積をとると、3×2=63 \times 2 = 6 行の表になり、列もそれぞれの表の列を合わせた構成になるため、関係Xとは異なります。
  • エ (和): 正解です。関係Rと関係Sのすべての行を統合し、重複する行 (0001, a, 100) を1つにまとめたものが、関係Xと完全に一致します。

Spineチーム