IPA過去問ドリル

平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問7

テクノロジ/データベース

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

出典:平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問7

正解:イ

解説

SQL文は,大阪商品表から東京商品表にない行を取り出したものと,名古屋商品表から東京商品表にない行を取り出したものをUNIONでまとめています。これは,大阪商品と名古屋商品の和集合から東京商品を除いた集合,すなわち(大阪商品 ∪ 名古屋商品)- 東京商品と同じ結果になります。

選択肢ごとの解説

  • 誤り。大阪商品と名古屋商品の共通集合(∩)から東京商品を除く演算では,どちらか一方にしかない商品が失われ,SQL文の結果とは一致しません。
  • 正しい。(大阪商品 ∪ 名古屋商品)- 東京商品は,SQL文が行っている処理と同じ結果になります。
  • 誤り。東京商品から大阪商品と名古屋商品の共通部分を除く演算であり,SQL文の対象とは主体が逆になっています。
  • 誤り。東京商品から大阪商品と名古屋商品の和集合を除く演算であり,SQL文の対象とは主体が逆になっています。
データベーススペシャリストの過去問を演習モードで解く