平成30年度 春期 応用情報技術者試験 午前 問27
テクノロジ/データベース関係 R と関係 S に対して,関係 X を求める関係演算はどれか。 関係R:(ID=0001,A=a,B=100),(ID=0002,A=b,B=200),(ID=0003,A=d,B=300) 関係S:(ID=0001,A=a,B=100),(ID=0002,A=a,B=200) 関係X:(ID=0001,A=a,B=100),(ID=0002,A=a,B=200),(ID=0002,A=b,B=200),(ID=0003,A=d,B=300) (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成30年度 春期 応用情報技術者試験 午前 問27
- アIDで結合
- イ差
- ウ直積
- エ和
正解:エ
解説
関係Xは,関係Rの全タプルと関係Sの全タプルを重複なく合わせたものになっており,これは和集合演算(和)に一致します。関係代数における和は,両方の関係に現れるタプルを1つにまとめつつ,どちらか一方にしかないタプルもすべて含みます。
選択肢ごとの解説
- ア誤り。IDで結合すると,共通するIDの行同士が結合され列数の異なる新しい関係が得られますが,Xは元のR,Sと同じ列構成のタプルの集合であり,結合の結果とは異なります。
- イ誤り。差(R−S)を計算すると,Sに含まれないRのタプルだけが残るため,Xのように両方の関係のタプルを含む結果にはなりません。
- ウ誤り。直積は,Rの各タプルとSの各タプルの全ての組合せを作るため,タプル数がR×S通りに増加し,Xのタプル数とは一致しません。
- エ正しい。RとSに含まれる全てのタプルを重複なく合わせるとXになり,これは関係演算の和に相当します。