過去問解きまくり研究所 ホーム

平成23年度 特別 午前Ⅱ 問7

データ操作

関係代数式

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

SELECT * FROM 大阪商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
UNION
SELECT * FROM 名古屋商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
答えと解説を見る

✓ これが正解イ(大阪商品 ∪ 名古屋商品) − 東京商品

解説

東京に無い大阪と名古屋の商品を合わせるので、和から東京を引きます。

SQL 文は二つの SELECT を UNION で合わせています。前半は大阪商品のうち東京商品に無い商品番号の行、後半は名古屋商品のうち東京商品に無い行です。関係代数で書くと (大阪商品−東京商品)∪(名古屋商品−東京商品) で、どちらからも同じ東京商品を引いているので、先に和をとってから引いても同じ集合になります。したがって (大阪商品∪名古屋商品)−東京商品 と同等です。三つの表は同じ構造なので、和や差がそのまま使えます。共通の相手を引く差は和の外にくくり出せる、と覚えておくと、式の形から素早く対応がつけられます。

ほかの選択肢はなぜ違うのか

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)