データベーススペシャリスト試験 2013年 午前212


関係RとSにおいて, R÷Sの関係演算結果として適切なものはどれか。ここで, ÷は除算を表す。
問題画像選択肢画像
(正解)

解説

関係RとSにおけるR÷Sの関係演算結果【午前2 解説】

要点まとめ

  • 結論:R÷Sは「Sのすべての値に対してRに存在するタプルの集合」を返し、選択肢ウが正解です。
  • 根拠:関係除算は、Sのすべての値に対応するRの値を抽出し、条件を満たす「店」を求めます。
  • 差がつくポイント:除算の意味を正確に理解し、Sの全要素を含むRの「店」を見極めることが重要です。

正解の理由

R÷Sは「Rの中で、Sのすべての『商品』を持つ『店』」を求める演算です。
Rの「店」と「商品」の組み合わせから、Sの「商品」すべてを含む「店」を抽出します。
Sの商品はa, b, cであり、これらすべてを持つ店はBのみです。
したがって、選択肢ウの「店:B」が正解となります。

よくある誤解

除算は単なる差集合や結合とは異なり、Sの全要素を満たすRの値を抽出する演算であることを誤解しやすいです。
また、部分的にSの要素を持つ「店」も正解と誤認しがちです。

解法ステップ

  1. Rの「店」と「商品」の組み合わせを確認する。
  2. Sの「商品」全体(a, b, c)を把握する。
  3. Rの中で、Sのすべての「商品」を持つ「店」を探す。
  4. 条件を満たす「店」を選択肢から特定する。

選択肢別の誤答解説ステップ

  • ア:Rの全タプルをそのまま示しており、除算の結果ではありません。
  • イ:Sの「商品」全体を持つ「店」を抽出していません。
  • ウ:Sの全商品a,b,cを持つ「店B」のみを示しており正解です。
  • エ:「店E」は商品d,eを持ち、Sの全商品a,b,cを満たしていません。

補足コラム

関係除算はリレーショナル代数の中でも理解が難しい演算の一つです。
「R÷S」は「Rの中でSのすべての値に対応するもの」を抽出するため、実務では「全条件を満たす集合の抽出」に使われます。
SQLでは除算演算子は存在しませんが、NOT EXISTSやGROUP BYとHAVING句で同様の処理を実現します。

FAQ

Q: 関係除算はどんな場面で使われますか?
A: 例えば「すべての必須科目を履修した学生を抽出する」など、全条件を満たす集合の抽出に使います。
Q: 関係除算と差集合の違いは何ですか?
A: 差集合は単に片方にあってもう片方にない要素を除く操作ですが、除算は「すべての条件を満たす」要素を抽出します。

関連キーワード: 関係除算, リレーショナル代数, 関係演算, データベース基礎, SQL代替手法
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ