次の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 納品 .顧客番号』から、顧客番号を表示します。これは、 射影になります。
【キーワード】
・関係演算
【キーワードの解説】
- 関係演算(関係代数)
関係データベースにおいて、集合論と一階述語論理に基づいて、関係として表現されたデータを扱う、コンピュータ科学における代数的な演算のことです。
関係代数の演算子としては、和、差、交わり、直積、制限(選択)、射影、結合、商の8種類がある。
和:和集合を同じ演算になります。
差:差集合と同じ演算になります。
直積:二つの集合から組合せで新しい集合を作ることです。
射影:特定の属性のデータを取り出すことです。
制限(選択):関係データから条件に合ったデータを取り出すことです。
もっと、「関係演算」について調べてみよう。
戻る
一覧へ
次へ
|