ホーム > データベーススペシャリスト試験 > 2023年
データベーススペシャリスト試験 2023年 午前2 問11
関係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のすべての商品を持っているため、正解はウとなります。
表Sの商品はa, b, cの3つです。
表Rでこれらすべての商品a, b, cを扱う店はBのみです。
店Bはa, b, cのすべての商品を持っているため、正解はウとなります。
よくある誤解
商演算を単なる結合や積集合と混同し、部分的に商品を扱う店を含めてしまう誤りが多いです。
また、重複行をそのまま結果に含める誤解も注意が必要です。
また、重複行をそのまま結果に含める誤解も注意が必要です。
解法ステップ
- 表Sの全商品(a, b, c)を確認する。
- 表Rで各店が扱う商品をリストアップする。
- 各店がSのすべての商品を扱っているかを判定する。
- すべての商品を扱う店のみを結果に含める。
- 重複を除き、店名だけを抽出する。
選択肢別の誤答解説
- ア:店名が重複しており、商演算の結果として不適切。すべての商品を扱う店だけでなく、部分的な店も含まれている。
- イ:重複を除いているが、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」などを用いて実現されることが多いです。
「R÷S」は「Sのすべての値に対してRが対応する値を持つか」を問うため、単なる結合や選択とは異なります。
SQLでは「NOT EXISTS」や「GROUP BY」「HAVING COUNT」などを用いて実現されることが多いです。
FAQ
Q: 商演算はどのような場面で使われますか?
A: 例えば「すべての条件を満たす対象を抽出したい」場合に使われ、複数条件の完全一致を確認する際に有効です。
A: 例えば「すべての条件を満たす対象を抽出したい」場合に使われ、複数条件の完全一致を確認する際に有効です。
Q: 商演算と内積演算の違いは何ですか?
A: 商演算は「すべての値に対応するか」を問うのに対し、内積は単に共通する値の集合を求める演算です。
A: 商演算は「すべての値に対応するか」を問うのに対し、内積は単に共通する値の集合を求める演算です。
Q: 商演算の結果に重複がある場合はどうなりますか?
A: 関係代数の結果は集合として扱うため、重複は除かれます。
A: 関係代数の結果は集合として扱うため、重複は除かれます。
関連キーワード: 商演算, 関係代数, 関係演算, データベース, SQL, 完全包含, 集合演算