DBMS 結合: 内部結合、THETA 結合、外部結合、等価結合の種類 Operaン

DBMSの結合とは何ですか?

DBMSに参加する は、結合製品と選択を 1 つのステートメントで組み合わせることができるバイナリ操作です。結合条件を作成する目的は、2 つ以上の DBMS テーブルからのデータを結合できるようにすることです。DBMS 内のテーブルは、主キーと外部キーを使用して関連付けられます。

結合の種類

DBMS には主に XNUMX 種類の結合があります。

  1. 内部結合: Theta、Natural、EQUI
  2. 外部結合: 左、右、完全

それらを詳しく見てみましょう:

内部結合

内部結合 は、指定された条件を満たす両方のテーブルから行を返すために使用されます。これは最も広く使用されている結合操作であり、デフォルトの結合タイプと見なすことができます。

内部結合または等価結合は、結合述語で等価比較を使用する比較器ベースの結合です。ただし、「>」などの他の比較演算子を使用する場合は、等価結合とは言えません。

内部結合はさらに 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
A Left Outer Join B
A ⋈ B
正方形である キューブ
2 4 8
3 9 18
4 16

右外部結合 ( A ⟖ B )

右外部結合 左側のテーブルに一致する行が見つからない場合でも、右側のテーブルのすべての列を返します。 左側のテーブルに一致するものが見つからない場合は、NULL が返されます。 RIGHT 外部 JOIN は LEFT JOIN の逆です

この例では、メンバーの名前とメンバーがレンタルしている映画を取得する必要があると仮定します。 まだ映画をレンタルしていない新しいメンバーが加わりました。

右外部結合

A Right Outer Join B
A ⋈ B
キューブ 正方形である
2 8 4
3 18 9
5 75

完全外部結合 ( A ⟗ B)

完全外部結合 の場合、一致条件に関係なく、両方のリレーションのすべてのタプルが結果に含まれます。

例:

A Full B
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 外部結合は、左側のテーブルに一致する行が見つからない場合でも、右側のテーブルのすべての列を返します。
  • 完全外部結合では、一致条件に関係なく、両方のリレーションのすべてのタプルが結果に含まれます。