令和7年度 秋期 データベーススペシャリスト試験 午前II 問10

関係演算において,商演算と同等な結果が得られる演算の組合せはどれか。

解答・解説

正解: イ. 直積演算と射影演算と差演算

関係データベースにおける関係演算の商演算(Division)は、基本演算(和、差、直積、射影、選択)を組み合わせて表現することができます。

関係 R(A,B)R(A, B) を関係 S(B)S(B) で割る商演算 R÷SR \div S は、「SS に含まれるすべての BB の値と組み合わされている AA の値」を求める演算です。

この商演算は、以下の手順で他の基本演算を用いて表現できます。

  1. 射影演算を用いて、RR から属性 AA のすべての値を取り出します(πA(R)\pi_A(R))。

  2. その結果と SS との直積演算を行います(πA(R)×S\pi_A(R) \times S)。これにより、「考えられるすべての (A,B)(A, B) の組み合わせ」が得られます。

  3. 2の結果から元の関係 RR を差演算で引きます((πA(R)×S)−R(\pi_A(R) \times S) - R)。これにより、「SS の要素と組み合わされていない AA を含むペア」が得られます。

  4. 3の結果から射影演算を用いて属性 AA の値を取り出します(πA((πA(R)×S)−R)\pi_A((\pi_A(R) \times S) - R))。これが「条件を満たさない AA の値」の集合です。

  5. 最後に、1で求めたすべての AA の値の集合から、4で求めた条件を満たさない AA の値の集合を差演算で引きます。

式で表すと以下のようになります。

R÷S=πA(R)−πA((πA(R)×S)−R)R \div S = \pi_A(R) - \pi_A((\pi_A(R) \times S) - R)

この定義式から明らかなように、商演算と同等な結果を得るために必要な演算は直積演算、射影演算、差演算の3つです。

各選択肢の解説

  • ア(直積演算と差演算と選択演算): 射影演算が含まれておらず、不要な選択演算が含まれているため誤りです。

  • イ(直積演算と射影演算と差演算): 正解です。商演算はこの3つの演算の組み合わせで表現できます。

  • ウ(直積演算と射影演算と和演算): 差演算が含まれておらず、不要な和演算が含まれているため誤りです。

  • エ(直積演算と選択演算と和演算): 射影演算と差演算が含まれておらず、不要な選択演算と和演算が含まれているため誤りです。

Spineチーム