戦国IT

情報処理技術者試験の過去問対策サイト

データベーススペシャリスト試験 2012年 午前210


次の関係R, S, T, Uにおいて, 関係代数表現R×S÷T-Uの演算結果はどれか。ここで, ×は直積, ÷は商, -は差の演算を表す。
問題画像選択肢画像
(正解)

解説

関係代数表現 R×S÷T - U の演算結果はどれか【午前2 解説】

要点まとめ

  • 結論:演算結果は選択肢アの「B=a, C=y」の1行である。
  • 根拠:R×Sの直積からTのA列で商を取り、Uの差集合を適用するとこの結果になる。
  • 差がつくポイント:商演算の意味と差集合の適用順序を正確に理解し、属性の整合性を確認することが重要。

正解の理由

R×SはRの各行にSの全行を結合し、属性はA,B,Cとなる。
次に商演算 R×S÷T は、TのA列の値(1,3)に対応するAの値を持つR×Sの行を除外し、残りの行のB,C列を抽出する。
最後に差集合 -U で、Uにある(B,C)の組み合わせを除く。
この過程で残るのはB=a, C=yの1行のみであり、選択肢アが正解となる。

よくある誤解

商演算は単なる差集合ではなく、特定の属性に基づく除外である点を誤解しやすいです。
また、差集合の適用対象の属性を混同し、誤った結果を導くことがあります。

解法ステップ

  1. R×Sの直積を求め、属性A,B,Cの全組み合わせを作成する。
  2. TのA列の値(1,3)を用いて、R×SのA列がTに含まれる行を除外する(商演算)。
  3. 残った行のB,C列を抽出し、Uの(B,C)組み合わせを差集合で除外する。
  4. 最終的に残った行が演算結果となる。

選択肢別の誤答解説

  • ア:正解。R×S÷T - U の演算結果として正しい。
  • イ:B=b, C=x はTのA=3に該当する行が除外されていないため誤り。
  • ウ:B=a, C=y−x のような演算結果は関係代数の基本演算に存在しないため誤り。
  • エ:負の値や不正な属性値が含まれており、関係代数の演算結果として不適切。

補足コラム

関係代数の商演算は、ある関係の属性の部分集合に対して「すべての値を持つ」行を抽出する操作です。
本問題では商演算の逆の意味で使われているため、商の定義を正確に理解することが重要です。
また、差集合は同じ属性セットを持つ関係間でのみ適用可能です。

FAQ

Q: 商演算はどのような場合に使いますか?
A: 商演算は「ある属性の値の組み合わせがすべて存在する」行を抽出する際に使います。
Q: 差集合と商演算の違いは何ですか?
A: 差集合は単純に片方にあってもう片方にない行を除外する操作で、商演算は属性の包含関係に基づく抽出操作です。

関連キーワード: 関係代数, 直積, 商演算, 差集合, 属性, SQL基礎, データベース理論
← 前の問題へ次の問題へ →

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