2011年7月10日日曜日

表!表!表!

テーブル1
名前  年齢  身長
69    24   180
70    70   170
71    71   171


テーブル2
名前  誕生日  体重
68    6/8    68
69    7/10   60
70    7/11   70

テーブル3
名前  年齢  身長

71    71   171
72    72   172

73    73   173

テーブル4
身長
180

って、あるとします。
テーブル適当です。。。69さんの値以外。

・和集合
→テーブル1とテーブル2は和集合演算はできません。
だって、和両立じゃないから。
テーブル1とテーブル3が演算できます。で、結果は

名前  年齢  身長

69    24   180
70    70   170
71    71   171
72    72   172
73    73   173

てな感じです。71さんの重複は一つにまとめられちゃいます。

・差集合
→これもテーブル1とテーブル2は差集合演算できません。
だって、…。
テーブル1-テーブル3の結果は

名前  年齢  身長
69    24   180
70    70   170

逆にテーブル3-テーブル1は

名前  年齢  身長
72    72   172
73    73   173

です。

・積集合
→これもテーブル1とテーブル3で行うと

名前  年齢  身長
71    71   171

ですね。

・直積集合
→やっと、テーブル2の出番です。
テーブル1×テーブル2の結果は

名前  年齢  身長  名前  誕生日  体重
69    24   180   68    6/8    68
69    24   180   69    7/10   60
69    24   180   70    7/11   70
70    70   170   68    6/8    68
70    70   170   69    7/10   60
70    70   170   70    7/11   70
71    71   171   68    6/8    68
71    71   171   69    7/10   60
71    71   171   70    7/11   70

で、合ってると思います。以後ではテーブル12という名前で使っていきます。

・選択
→テーブル12から誕生日=7/10という比較条件で選択演算をすると

名前  年齢  身長  名前  誕生日  体重
69    24   180   69    7/10   60
70    70   170   69    7/10   60
71    71   171   69    7/10   60

だし、比較条件を身長=170とすると

名前  年齢  身長  名前  誕生日  体重
70    70   170   68    6/8    68
70    70   170   69    7/10   60
70    70   170   70    7/11   70

です。

・射影
→テーブル12から身長と体重という属性のみ取り出します。

身長  体重
180    68
180    60
180    70
170    68
170    60
170    70
171    68
171    60
171    70

だし、年齢と身長だけ取り出すと

年齢  身長
24   180
70   170
71   171

です。重複は除外されます。

・等結合
→テーブル1とテーブル2をテーブル1の名前=テーブル2の名前で等結合します。

名前  年齢  身長  名前  誕生日  体重
69    24   180   69    7/10   60
70    70   170   70    7/11   70

です。これは、テーブル12から名前=名前のものを選択したと考えられるらしい。。。

・自然結合
→テーブル1とテーブル2をテーブル1の名前=テーブル2の名前で自然結合します。

名前  年齢  身長  誕生日  体重
69    24   180   7/10   60
70    70   170   7/11   70

うん。これが見慣れた感じ。

・左外部結合
→テーブル1とテーブル2をテーブル1の名前=テーブル2の名前で左外部結合します。

名前  年齢  身長  名前  誕生日  体重
69    24   180   69    7/10   60
70    70   170   70    7/11   70
71    71   171   NULL  NULL  NULL

です。てか、どっちが左になるんだろう…
テーブル1と2をって言ったら、1が左なのかな?それでいいのかな?

・右外部結合
→テーブル1とテーブル2をテーブル1の名前=テーブル2の名前で左外部結合します。

名前  年齢  身長  名前  誕生日  体重
NULL NULL  NULL  68    6/8    68
69    24   180   69    7/10   60
70    70   170   70    7/11   70

・フル外部結合
→テーブル1とテーブル2をテーブル1の名前=テーブル2の名前で左外部結合します。


名前  年齢  身長  名前  誕生日  体重
NULL NULL  NULL  68    6/8    68
69    24   180   69    7/10   60
70    70   170   70    7/11   70
71    71   171   NULL  NULL  NULL

・商演算
→やっとテーブル4の登場です。
テーブル1÷テーブル4

名前  年齢
69    24

かな?正直わかりません。。。



こんなもんかな?演算結果が違ってたり、例が悪いかもですが
なんとなく、イメージはわかったような。。。

おしまい。

0 件のコメント:

コメントを投稿