Dbms-database-joins
DBMS-結合
2つの関係のデカルト積を取ることの利点を理解しています。これにより、ペアになっているすべての可能なタプルが得られます。 しかし、特定のケースでは、かなりの数の属性を持つ数千のタプルとの巨大な関係に遭遇するデカルト積を取るのは現実的でないかもしれません。
*Join* は、デカルト積とそれに続く選択プロセスの組み合わせです。 結合操作は、特定の結合条件が満たされた場合にのみ、異なる関係から2つのタプルをペアにします。
次のセクションで、さまざまな結合タイプについて簡単に説明します。
シータ(θ)結合
シータ結合は、シータ条件を満たしていれば、異なるリレーションのタプルを組み合わせます。 結合条件は、記号*θ*で示されます。
記法
R1 ⋈θ R2
R1とR2は、属性(A1、A2、..、An)および(B1、B2、.. 、Bn)属性に共通点がないようにします。つまり、R1∩R2 =Φです。
シータ結合では、あらゆる種類の比較演算子を使用できます。
学生
SID
Name
Std
101
Alex
10
102
マリア
11
科目
クラス
件名
10
Math
10
英語
11
音楽
11
スポーツ
Student_Detail-
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail
SID
Name
Std
クラス
件名
101
Alex
10
10
Math
101
Alex
10
10
英語
102
マリア
11
11
音楽
102
マリア
11
11
スポーツ
等結合
Theta結合が equality 比較演算子のみを使用する場合、等価結合と呼ばれます。 上記の例は、等結合に対応しています。
自然結合(⋈)
自然結合では、比較演算子は使用されません。 デカルト積のようには連結しません。 2つのリレーション間に少なくとも1つの共通属性が存在する場合にのみ、Natural Joinを実行できます。 さらに、属性は同じ名前とドメインを持っている必要があります。
自然結合は、両方の関係の属性の値が同じである一致する属性に作用します。
コース
CID
コース
Dept
CS01
データベース
CS
ME01
力学
ME
EE01
エレクトロニクス
EE
HoD
Dept
Head
CS
Alex
ME
Maya
EE
Mira
コース⋈HoD
Dept
CID
コース
Head
CS
CS01
データベース
Alex
ME
ME01
力学
Maya
EE
EE01
エレクトロニクス
Mira
外部結合
シータ結合、等結合、および自然結合は、内部結合と呼ばれます。 内部結合には、一致する属性を持つタプルのみが含まれ、残りは結果のリレーションで破棄されます。 そのため、外部結合を使用して、結果の関係に参加関係からのすべてのタプルを含める必要があります。 外部結合には、左外部結合、右外部結合、完全外部結合の3種類があります。
左外部結合(R 左外部結合、幅= 24 S)
左の関係Rからのすべてのタプルは、結果の関係に含まれます。 RightリレーションSに一致するタプルがないRにタプルがある場合、結果のリレーションのS属性はNULLになります。
Left
A
B
100
データベース
101
力学
102
エレクトロニクス
右
A
B
100
Alex
102
Maya
104
Mira
コース左外部結合、幅= 24 HoD
A
B
C
D
100
データベース
100
Alex
101
力学
102
エレクトロニクス
102
Maya
右外部結合:(R 右外部結合、幅= 24 S)
RightリレーションシップのすべてのタプルSは、結果のリレーションシップに含まれます。 Rに一致するタプルのないSにタプルがある場合、結果のリレーションのR属性はNULLになります。
コース右外部結合、幅= 13 HoD
A
B
C
D
100
データベース
100
Alex
102
エレクトロニクス
102
Maya
104
Mira
完全外部結合:(R 完全外部結合、幅= 16 S)
両方の参加関係からのすべてのタプルは、結果の関係に含まれます。 両方のリレーションに一致するタプルがない場合、それぞれの一致しない属性はNULLになります。
コース完全外部結合、幅= 13 HoD
A
B
C
D
100
データベース
100
Alex
101
力学
102
エレクトロニクス
102
Maya
104
Mira