ウカマル応用情報技術者ログイン

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

テクノロジ系

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

SELECT * FROM 大阪商品
    WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
UNION
SELECT * FROM 名古屋商品
    WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
選択肢
正解と解説

正解 イ

大阪商品と名古屋商品のそれぞれから東京商品にある商品を除き、和をとる処理は、(大阪商品 ∪ 名古屋商品) − 東京商品と同じです。

1つ目のSELECT文は、大阪商品のうち東京商品にない商品を取り出します。これは差「大阪商品 − 東京商品」です。2つ目のSELECT文は同じく「名古屋商品 − 東京商品」です。UNIONは和なので、全体は (大阪商品 − 東京商品) ∪ (名古屋商品 − 東京商品) です。差は和に対して分配できるので、この式は (大阪商品 ∪ 名古屋商品) − 東京商品 と等しくなります。

ア:積(∩)は、大阪と名古屋の両方にある商品だけを残します。UNIONは和(∪)なので、どちらか一方にある商品も結果に含まれます。

ウ:東京商品から引く式なので、東京商品にだけある商品が残ります。SQL文は東京商品にない商品を求めており、差の向きが逆です。さらに和ではなく積を使っています。

エ:東京商品から大阪と名古屋の商品を除くと、東京商品にだけある商品が残ります。SQL文は東京商品を除く側なので、差の向きが逆です。

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

全年度から出題。10問で実力を判定します。登録不要。

出典:平成25年度 秋期 応用情報技術者試験 問31(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方