平成18年 秋期 ソフトウェア開発技術者 午前 問65

次のSQL文は、和、差、直積、射影、選択の関係演算のうち、どの関係演算の組合せで表現されるか。
ここで、下線部は主キーを表す。

 SELECT 納品.顧客番号, 顧客名 FROM 納品, 顧客
     WHERE 納品.顧客番号=顧客.顧客番号

納品
商品番号 顧客番号 納品数量

顧客
顧客番号 顧客名

 ア  差、選択、射影  イ  差、直積、選択
 ウ  直積、選択、射影  エ  和、直積、射影


答え ウ


解説
納品と顧客番号のデータをそれぞれ次のようなデータとします。

納品
商品番号 顧客番号 納品数量
0001 ABCD 5
0002 EFGH 3
0003 WXYZ 4

顧客
顧客番号 顧客名
ABCD ○○○○
WXYZ △△△△

まず、問題のSQL文の『FROM 納品, 顧客』から、納品と顧客の直積を求めます。
納品×顧客
納品.商品番号 納品.顧客番号 納品.納品数量 顧客.顧客番号 顧客.顧客名
0001 ABCD 5 ABCD ○○○○
0002 EFGH 3 ABCD ○○○○
0003 WXYZ 4 ABCD ○○○○
0001 ABCD 5 WXYZ △△△△
0002 EFGH 3 WXYZ △△△△
0003 WXYZ 4 WXYZ △△△△

次に、『WHERE 納品.顧客番号=顧客.顧客番号』から、条件に合うデータを取り出します。これは、選択になります。
『WHERE 納品.顧客番号=顧客.顧客番号』の結果
納品.商品番号 納品.顧客番号 納品.納品数量 顧客.顧客番号 顧客.顧客名
0001 ABCD 5 ABCD ○○○○
0003 WXYZ 4 WXYZ △△△△

最後に、『SELECT 納品.顧客番号』から、顧客番号を表示します。これは、射影になります。
『SELECT 納品.顧客番号』の結果
納品.顧客番号
ABCD
WXYZ


キーワード
・関係演算

キーワードの解説
  • 関係演算(関係代数)
    関係データベースにおいて、集合論と一階述語論理に基づいて、関係として表現されたデータを扱う、コンピュータ科学における代数的な演算のことです。
    関係代数の演算子としては、和、差、交わり、直積、制限(選択)、射影、結合、商の8種類がある。
    :和集合を同じ演算になります。
    :差集合と同じ演算になります。
    直積:二つの集合から組合せで新しい集合を作ることです。
    射影:特定の属性のデータを取り出すことです。
    制限(選択):関係データから条件に合ったデータを取り出すことです。

もっと、「関係演算」について調べてみよう。

戻る 一覧へ 次へ