ホーム > データベーススペシャリスト試験 > 2016年

データベーススペシャリスト試験 2016年 午前212


関係代数における直積に関する記述として, 適切なものはどれか。
ある属性の値に条件を付加し, その条件を満たす全てのタプルの集合である。
ある一つの関係の指定された属性だけを残して, 他の属性を取り去って得られる属性の集合である。
二つの関係における, あらかじめ指定されている二つの属性の2項関係を満たす全てのタプルの組合せの集合である。
二つの関係における, それぞれのタプルの全ての組合せの集合である。(正解)

解説

関係代数における直積についての解説

直積(Cartesian Product)とは?

関係代数における直積は、2つの関係(テーブル)が与えられたとき、その関係のすべての組み合わせのタプルを生成する操作です。
例えば、関係Rがm個の属性を持ち、n個のタプルを含み、関係Sがp個の属性を持ち、q個のタプルを含む場合、直積R × Sは次のような関係を生成します。
  • 生成される関係の属性数:( m + p )
  • 生成されるタプル数:( n \times q )
つまり、Rの各タプルごとにSのすべてのタプルと結びつけられた新しいタプルが作成されます。

選択肢の説明

  • ア: 「ある属性の値に条件を付加し、その条件を満たすすべてのタプルの集合」
    → これは**選択(Selection)**操作に該当します。直積ではありません。
  • イ: 「ある一つの関係の指定された属性だけを残して、他の属性を取り去って得られる属性の集合」
    → これは**射影(Projection)**操作に該当します。直積ではありません。
  • ウ: 「二つの関係における、あらかじめ指定されている二つの属性の2項関係を満たす全てのタプルの組合せの集合」
    → これは**結合(Join)**操作に近く、特定の条件を使って結合するものです。直積とは異なります。
  • エ: 「二つの関係における、それぞれのタプルのすべての組合せの集合」
    → まさに**直積(Cartesian Product)**の定義と一致します。

まとめ

直積は2つの関係から、それぞれのタプルのすべての組み合わせを生成する操作で、条件の指定はありません。関係代数の基本操作の一つで、他の操作(例えば結合)は直積と選択の組み合わせにより表現できます。
そのため、今回の設問の正解は であり、以下のように定義されます。
R×S={trtstrR,tsS}R \times S = \{\, t_r \cup t_s \mid t_r \in R, t_s \in S \,\}
ここで、( t_r ) は関係 ( R ) のタプル、( t_s ) は関係 ( S ) のタプル、そして ( \cup ) は属性と値の結合を示します。
← 前の問題へ次の問題へ →

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