戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

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


問題文

次の関係R, S, T, Uにおいて、関係代数表現R×S÷T-Uの演算結果はどれか。ここで、×は直積、÷は商、-は差の演算を表す。
データベーススペシャリスト 2012年 午前2 問10の問題画像データベーススペシャリスト 2012年 午前2 問10の選択肢の画像

選択肢

(正解)

関係代数表現 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基礎、データベース理論
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

データベーススペシャリスト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてプライバシーポリシー利用規約特商法表記開発者について