関係Rと関係Sに対して,関係Xを求める関係演算はどれか。
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
正答4
解説
正解は4です。
この問題は、関係Rと関係Sから関係Xを作る関係演算の種類を問うています。
RとSの行を比べて、Xにどの行が含まれているかを確かめます。
【選択肢別解説】
1:× IDで結合すると、同じIDをもつRの行とSの行が横につながり、列の数が増えます。
Xの列はID・A・Bの3列のままで、Rにしかない0003の行も含むので、結合ではありません。
2:× 差(R-S)は、Rの行のうちSにない行だけを取り出す演算です。
結果は(0002, b, 200)と(0003, d, 300)の2行になり、Sの行を含むXとは一致しません。
3:× 直積は、Rの各行とSの各行のすべての組合せを作る演算です。
3行×2行で6行、列も6列になるため、Xとは一致しません。
4:○ 和(UNION)は、RとSのどちらかに含まれる行を重複なく集める演算です。
Rの3行とSの2行のうち、(0001, a, 100)は共通なので1行にまとめられ、Xの4行と一致します。
【ポイント】
和・差・共通(積)は、列の構成が同じ関係どうしで行う集合演算です。
直積や結合は列が増える演算であることと区別して覚えましょう。