平成25年 秋期 応用情報技術者 午前 問31

地域別に分かれている同じ構造の三つの商品表、“東京商品”、“名古屋商品”、“大阪商品”がある。
次のSQL文と同等の結果が得られる関係代数式はどれか。
ここで、三つの商品表の主キーは“商品番号”である。
また、X -Y X からY の要素を除いた差集合を表す。

SELECT * FROM 大阪商品
  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
UNION
SELECT * FROM 名古屋商品
  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)

 ア  (大阪商品 ∩ 名古屋商品)-東京商品
 イ  (大阪商品 ∪ 名古屋商品)-東京商品
 ウ  東京商品-(大阪商品 ∩ 名古屋商品)
 エ  東京商品-(大阪商品 ∪ 名古屋商品)


答え イ


解説
問題のSQL文の
  SELECT * FROM 大阪商品
    WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
は、大阪商品の集合の中から、東京商品にも属している要素を取り除くことを意味している。
すなわち、
 大阪商品-東京商品
である。

同様に問題のSQL文の
  SELECT * FROM 名古屋商品
    WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
は、名古屋商品の集合の中から、東京商品にも属している要素を取り除くことを意味している。
すなわち、
 名古屋商品-東京商品
である。

問題のSQLではこの2つを
 UNION:和集合
しているので、
 (大阪商品-東京商品) ∪ (名古屋商品-東京商品)
になる。
この式を、整理すると
 (大阪商品 ∪ 名古屋商品)-東京商品
(イ)になる。


キーワード
・差集合

キーワードの解説

戻る 一覧へ 次へ