DBデータベーススペシャリスト試験 午前Ⅱ

平成22年度春期 データベーススペシャリスト 午前Ⅱ 問12

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

次の関係R,S,T,Uにおいて,関係代数表現R×S÷T−Uの演算結果はどれか。ここで,×は直積,÷は商,−は差の演算を表す。
入力となる関係R,S,T,Uの四つの表と,差演算で除外される組を打消し線で示した四つの結果候補。
入力となる関係R,S,T,Uの四つの表と,差演算で除外される組を打消し線で示した四つの結果候補。

選択肢

  1. ア
    図ア
  2. イ
    図イ
  3. ウ
    図ウ
  4. エ
    図エ
解き方のヒントを見る

関係代数を整理する着眼点

関係代数の結果を考えるときは、操作の適用順序と対象の構造に注目し、各段階で何が扱われているかを整理しながら、入力と結果の対応を落ち着いて確認しましょう。

この問題で問われていること

一つの観点として、操作を順に追ったとき対象の構造がどのように受け継がれているかに注目し、各段階の内容と最終結果の対応を丁寧に見比べます。

視点

関係を構成する要素を整理し、操作の目的と適用順序を意識しながら、各段階で扱う対象と結果の構造を入力との対応から検討します。

確認ポイント

  • 操作の適用順序と、各段階で扱う対象の範囲が一貫しているか確認する。
  • 結果に残る要素のまとまりと、入力側の構造との対応を確認する。
  • 指定された条件が、各段階の結果の構造に反映されているか確認する。
正解と解説を見る

正解

ア

解説

RとSの直積をTで除算すると、TのすべてのA値と組み合わせられるB、Cの組が残ります。その後、Uに含まれる組を差し引くと、図アの1行になります。

理由

R×Sでは、Rの各行とSのx、yを組み合わせます。これをTのAの値で除算すると、Tに含まれる各Aについて組合せが成立するB、Cだけが残ります。最後にUと同じ属性構成で差を取り、Uに存在する行を除きます。

比較

RではA=1に対応するBはaだけであり、A=3ではB=aとbが存在します。そのため、TのA=1とA=3の両方に対応できるB、Cの組を残し、Uの(a、x)を差し引くと、結果は図アと一致します。

選択肢ア(正解)

これは正解だよ。RとSの直積をTで除算すると、TのA=1とA=3の両方に対応できるB,Cの組が得られます。その後、Uに含まれる(a,x)を差演算で除くため、残る行は(a,y)となり、図アの内容と一致します。

選択肢イ

これは不正解だよ。図イの(b,x)は、Tに含まれるA=1との組合せをRから確認できません。関係除算では、除数Tの各A値に対して組合せが成立する必要があるため、A=3との組合せだけを根拠に(b,x)を残すことはできません。

選択肢ウ

これは不正解だよ。図ウには、関係除算の条件を満たさないB=bの行が含まれています。また、差演算はUの行を除く操作であり、y−xのような属性値の算術計算を作る操作ではありません。したがって、図ウの行構成は演算結果と一致しません。

選択肢エ

これは不正解だよ。差演算は、R×S÷Tの結果からUに一致する行を取り除く操作であり、Uの値を負号付きに変換する操作ではありません。図エの−cや−zのような値は関係差の結果として生成されないため、正しい結果ではありません。

学習のポイント

直積・関係除算・差演算を順序どおりに適用する方法を学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 データベーススペシャリスト試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針