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

平成25年度 秋期 午前 問31

データベース

関係代数式

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

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

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

解説

大阪と名古屋を合わせてから、東京を引く形になります。

設問は、示された SQL 文と同等の結果が得られる関係代数式を選ばせています。見る軸は二つで、どの表から行を取り出しているかと、どの表を引いているかです。取り出しの対象は大阪商品と名古屋商品の二つで、東京商品からは一行も取り出していません。したがって東京商品は引かれる側に立ちます。それぞれの取り出しには、商品番号が東京商品に含まれないという条件が NOT IN で付いており、これが東京商品を引く操作にあたります。二つの結果を重ねて重複を一つにまとめるのが UNION です。大阪商品から東京商品を引いたものと、名古屋商品から東京商品を引いたものを合わせた形は、先に大阪商品と名古屋商品を合わせてから東京商品を引いた形と同じになります。東京を1と2、大阪を1と3、名古屋を2と4として確かめると、どちらの手順でも3と4が残ります。

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

出典:平成25年度 秋期 応用情報技術者試験 午前 問31

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