IPA過去問ドリル

平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10

テクノロジ/データベース

次の関係R,S,T,Uにおいて,関係代数表現R×S÷T-Uの演算結果はどれか。ここで,×は直積,÷は商,-は差の演算を表す。 関係R A:1,B:a A:2,B:b A:3,B:a A:3,B:b A:4,B:a 関係S C:x C:y 関係T A:1 A:3 関係U B:a,C:x B:c,C:z (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10

正解:ア

解説

関係代数表現R×S÷T-Uを順に計算する。まず直積R×Sは,Rの各行(A,B)とSの各行(C)の全ての組合せから成る10個のタプル(A,B,C)の集合になる。次に,この直積をT(属性Aのみ,値は1と3)で除算する。除算R×S÷Tの結果は,Tに含まれる全てのA値(1と3)について,対応する(A,B,C)の組合せが直積の中に存在するような(B,C)の組合せから成る。B,Cの組合せごとにA=1とA=3の両方が直積に存在するかを調べると,(a,x)と(a,y)はA=1,A=3の両方が存在するため条件を満たすが,(b,x)や(b,y)はA=1の組合せ(1,b,*)がRに存在しないため条件を満たさない。したがって,R×S÷T={(a,x),(a,y)}となる。最後に,これからUの内容((a,x),(c,z))を差し引くと,(a,x)が除外され,結果は(a,y)の1行だけになる。

選択肢ごとの解説

  • 正しい。R×S÷Tの結果は{(a,x),(a,y)}であり,そこからUに含まれる(a,x)を除くと,残るのは(a,y)の1行だけである。
  • 誤り。(b,x)はR×S÷Tの時点で既に除外されている(Rには(A=1,B=b)や(A=3,B=b)以外に(A=1,B=b)の組合せがなく,A=1に対応する(b,*)が直積中に存在しないため)。
  • 誤り。この結果は,Sの属性Cの値そのものを差の演算のように扱ったものであり,関係代数の直積・商・差の演算結果として得られる形(Cは単なる値であり,y-xのような引き算の対象ではない)とは異なる。
  • 誤り。この結果も同様に,属性Cの値を減算した架空の値(-c,-z)を含んでおり,関係代数の直積・商・差の演算からはこのような値は導出されない。
データベーススペシャリストの過去問を演習モードで解く