DBMS 結合: 内部結合、THETA 結合、外部結合、等価結合の種類 Operaン
DBMSの結合とは何ですか?
DBMSに参加する は、結合製品と選択を 1 つのステートメントで組み合わせることができるバイナリ操作です。結合条件を作成する目的は、2 つ以上の DBMS テーブルからのデータを結合できるようにすることです。DBMS 内のテーブルは、主キーと外部キーを使用して関連付けられます。
結合の種類
DBMS には主に XNUMX 種類の結合があります。
- 内部結合: Theta、Natural、EQUI
- 外部結合: 左、右、完全
それらを詳しく見てみましょう:
内部結合
内部結合 は、指定された条件を満たす両方のテーブルから行を返すために使用されます。これは最も広く使用されている結合操作であり、デフォルトの結合タイプと見なすことができます。
内部結合または等価結合は、結合述語で等価比較を使用する比較器ベースの結合です。ただし、「>」などの他の比較演算子を使用する場合は、等価結合とは言えません。
内部結合はさらに XNUMX つのサブタイプに分類されます。
- シータ参加
- 自然結合
- EQUI結合
シータ結合
シータ結合 シータ結合は、シータで表される条件に基づいて2つのテーブルを結合します。シータ結合はすべての比較演算子で機能します。記号で表されます。 θJOIN 操作の一般的なケースは、Theta 結合と呼ばれます。
構文:
A ⋈θ B
シータ結合では、選択基準に任意の条件を使用できます。
次の表を検討してください。
表A | 表B | |||
---|---|---|---|---|
列1 | 列2 | 列1 | 列2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
例:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.列 2 > B.列 2 (B) | |
---|---|
列1 | 列2 |
1 | 2 |
EQUI結合
EQUI結合 シータ結合が同値条件のみを使用する場合に行われます。EQUI結合は、効率的に実装するのが最も難しい操作です。 RDBMS、そして RDBMS に本質的なパフォーマンスの問題がある理由の XNUMX つです。
例:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.列 2 = B.列 2 (B) | |
---|---|
列1 | 列2 |
1 | 1 |
自然結合 (⋈)
自然結合 比較演算子は使用されません。このタイプの結合では、属性は同じ名前とドメインを持つ必要があります。自然結合では、2 つのリレーション間に少なくとも 1 つの共通属性が必要です。
両方の関係に現れる属性に対して等価性を形成する選択を実行し、重複する属性を削除します。
例:
次の2つの表を考えてみましょう
C | |
---|---|
で | 正方形である |
2 | 4 |
3 | 9 |
D | |
---|---|
で | キューブ |
2 | 8 |
3 | 18 |
C ⋈ D
C⋈D | ||
---|---|---|
で | 正方形である | キューブ |
2 | 4 | 8 |
3 | 9 | 18 |
アウタージョイン
An アウタージョイン XNUMX つの結合テーブルの各レコードが一致するレコードを持つ必要はありません。 このタイプの結合では、他に一致するレコードが存在しない場合でも、テーブルは各レコードを保持します。
外部結合には次の XNUMX 種類があります。
- 左外部結合
- 右外部結合
- 完全外部結合
左外部結合 (A ⟕ B)
左外部結合 右側のテーブルで一致する行が見つからなかった場合でも、左側のテーブルのすべての行を返します。 右側のテーブルに一致するレコードが見つからない場合は、NULL が返されます。
次の2つの表を考えてみましょう
A | |
---|---|
で | 正方形である |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
で | キューブ |
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
---|---|---|
で | 正方形である | キューブ |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | – |
右外部結合 ( A ⟖ B )
右外部結合 左側のテーブルに一致する行が見つからない場合でも、右側のテーブルのすべての列を返します。 左側のテーブルに一致するものが見つからない場合は、NULL が返されます。 RIGHT 外部 JOIN は LEFT JOIN の逆です
この例では、メンバーの名前とメンバーがレンタルしている映画を取得する必要があると仮定します。 まだ映画をレンタルしていない新しいメンバーが加わりました。
AB
A ⋈ B | ||
---|---|---|
で | キューブ | 正方形である |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | – |
完全外部結合 ( A ⟗ B)
で 完全外部結合 の場合、一致条件に関係なく、両方のリレーションのすべてのタプルが結果に含まれます。
例:
AB
A ⋈ B | ||
---|---|---|
で | 正方形である | キューブ |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | – |
5 | – | 75 |
まとめ
- 結合には主に XNUMX 種類あります DBMS 1) 内部結合 2) 外部結合
- 内部結合は広く使用されている結合操作であり、デフォルトの結合タイプと見なすことができます。
- 内部結合はさらに 1 つのサブタイプに分類されます: 2) Theta 結合 3) Natural 結合 XNUMX) EQUI 結合
- Theta Join を使用すると、theta で表される条件に基づいて XNUMX つのテーブルを結合できます。
- シータ結合が等価条件のみを使用する場合、等価結合になります。
- 自然結合では比較演算子は使用されません。
- 外部結合では、XNUMX つの結合テーブル内の各レコードが一致するレコードを持つ必要はありません。
- 外部結合はさらに次の 1 つのサブタイプに分類されます: 2) 左外部結合 3) 右外部結合 XNUMX) 完全外部結合
- LEFT 外部結合は、右側のテーブルで一致する行が見つからなかった場合でも、左側のテーブルのすべての行を返します。
- RIGHT 外部結合は、左側のテーブルに一致する行が見つからない場合でも、右側のテーブルのすべての列を返します。
- 完全外部結合では、一致条件に関係なく、両方のリレーションのすべてのタプルが結果に含まれます。