データベーススペシャリスト試験 2023年 午前211


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

解説

関係R÷Sの商演算の結果はどれか【午前2 解説】

要点まとめ

  • 結論:R÷Sの商演算は、Sのすべての値に対応するRの値を抽出し、正解は「ウ」の店Bのみです。
  • 根拠:商演算は「Sのすべての商品を扱う店」を求めるため、Rの店がSの全商品を持つかを確認します。
  • 差がつくポイント:商演算の意味を正確に理解し、部分集合や単純な結合と混同しないことが重要です。

正解の理由

商演算R÷Sは「Sのすべての商品を扱っている店」を抽出します。
表Sの商品はa, b, cの3つです。
表Rでこれらすべての商品a, b, cを扱う店はBのみです。
店Bはa, b, cのすべての商品を持っているため、正解はとなります。

よくある誤解

商演算を単なる結合や積集合と混同し、部分的に商品を扱う店を含めてしまう誤りが多いです。
また、重複行をそのまま結果に含める誤解も注意が必要です。

解法ステップ

  1. 表Sの全商品(a, b, c)を確認する。
  2. 表Rで各店が扱う商品をリストアップする。
  3. 各店がSのすべての商品を扱っているかを判定する。
  4. すべての商品を扱う店のみを結果に含める。
  5. 重複を除き、店名だけを抽出する。

選択肢別の誤答解説

  • ア:店名が重複しており、商演算の結果として不適切。すべての商品を扱う店だけでなく、部分的な店も含まれている。
  • イ:重複を除いているが、cを扱わない店Aも含まれており、Sの全商品を扱う条件を満たしていない。
  • :正解。店Bのみがa, b, cすべての商品を扱っている。
  • エ:店Eはd, eの商品を扱い、Sの商品a, b, cとは無関係であるため不適切。

補足コラム

商演算は関係代数の中でも特に理解が難しい演算の一つです。
「R÷S」は「Sのすべての値に対してRが対応する値を持つか」を問うため、単なる結合や選択とは異なります。
SQLでは「NOT EXISTS」や「GROUP BY」「HAVING COUNT」などを用いて実現されることが多いです。

FAQ

Q: 商演算はどのような場面で使われますか?
A: 例えば「すべての条件を満たす対象を抽出したい」場合に使われ、複数条件の完全一致を確認する際に有効です。
Q: 商演算と内積演算の違いは何ですか?
A: 商演算は「すべての値に対応するか」を問うのに対し、内積は単に共通する値の集合を求める演算です。
Q: 商演算の結果に重複がある場合はどうなりますか?
A: 関係代数の結果は集合として扱うため、重複は除かれます。

関連キーワード: 商演算, 関係代数, 関係演算, データベース, SQL, 完全包含, 集合演算
← 前の問題へ次の問題へ →

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