平成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


キーワード
・関係演算

キーワードの解説

戻る 一覧へ 次へ