Połączenia DBMS: typy połączeń THETA, wewnętrzne, zewnętrzne i równorzędne
⚡ Inteligentne podsumowanie
Dołączenie w systemie DBMS to operacja binarna, która łączy wiersze z dwóch lub więcej tabel za pomocą ich kluczy podstawowych i obcych. Dołączenia dzielą się na wewnętrzne, które zwracają tylko pasujące wiersze, oraz zewnętrzne, które zachowują niepasujące wiersze i wypełniają luki wartością null.

Czym jest łączenie w systemie DBMS?
Dołącz do DBMS to operacja binarna, która pozwala połączyć produkt łączenia i selekcję w jednym poleceniu. Celem utworzenia warunku łączenia jest połączenie danych z dwóch lub więcej tabel. Tabele są kojarzone za pomocą ich kluczy podstawowych i klucz obcy.
Rodzaje przyłączeń
W systemie DBMS istnieją głównie dwa typy złączeń:
- Łączenia wewnętrzne: Theta, Natural, EQUI
- Połączenia zewnętrzne: lewe, prawe, pełne
Poniższa tabela zawiera podgląd wszystkich typów połączeń, a następnie objaśnia każdy z nich na przykładzie.
| Dołącz do rejestru | Zwroty | Niedopasowane wiersze |
|---|---|---|
| Wewnętrzny (Theta / EQUI / Naturalny) | Wiersze spełniające warunek w obu tabelach | Wypada |
| Lewy zewnętrzny | Wszystkie lewe rzędy plus mecze | Zachowane od lewej, null po prawej |
| Prawa zewnętrzna | Wszystkie rzędy w prawo i pasujące | Zachowane z prawej, null z lewej |
| Pełna zewnętrzna | Wszystkie wiersze z obu tabel | Zachowane z obu stron, null tam, gdzie brakuje |
Połączenie wewnętrzne
Połączenie wewnętrzne Służy do zwracania wierszy z obu tabel, które spełniają zadany warunek. Jest to najczęściej stosowana operacja łączenia i można ją uznać za domyślny typ łączenia.
Złączenie wewnętrzne, czyli equijoin, to złączenie oparte na komparatorze, które wykorzystuje porównania równości w predykacie złączenia. Jeśli jednak użyjesz innych operatorów porównania, takich jak „>”, nie będzie ono nazywane equijoin. Złączenie wewnętrzne dzieli się na trzy podtypy:
- Dołącz do Theta
- Naturalne połączenie
- Dołącz do EQUI
Dołącz do Thety
Dołącz do Thety Umożliwia scalanie dwóch tabel na podstawie warunku reprezentowanego przez theta. Połączenia theta działają dla wszystkich operatorów porównania. Jest to oznaczone symbolem θOgólny przypadek operacji JOIN nazywany jest połączeniem theta.
Składnia:
A ⋈θ B
Połączenie theta może wykorzystywać dowolne warunki w kryteriach wyboru.
Przyjrzyj się poniższym tabelom.
| Tabela A | Tabela B | |||
|---|---|---|---|---|
| kolumna 1 | kolumna 2 | kolumna 1 | kolumna 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Na przykład:
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.kolumna 2 > B.kolumna 2 (B) | |
|---|---|
| kolumna 1 | kolumna 2 |
| 1 | 2 |
Dołącz do EQUI
Dołącz do EQUI jest wykonywane, gdy połączenie theta wykorzystuje wyłącznie warunek równoważności. Połączenie EQUI jest najtrudniejszą operacją do efektywnego wdrożenia w RDBMSi jest to jeden z powodów, dla których system RDBMS może mieć problemy z wydajnością.
Na przykład:
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.kolumna 2 = B.kolumna 2 (B) | |
|---|---|
| kolumna 1 | kolumna 2 |
| 1 | 1 |
Naturalne połączenie (⋈)
Naturalne połączenie nie używa operatora porównania. W tym typie sprzężenia atrybuty powinny mieć tę samą nazwę i domenę. W sprzężeniu naturalnym powinien istnieć co najmniej jeden wspólny atrybut między obiema relacjami.
Wykonuje selekcję tworzącą równość atrybutów pojawiających się w obu relacjach i eliminuje atrybuty powtarzające się.
Przykład: rozważ poniższe dwie tabele.
| C | |
|---|---|
| Ilość | Kwadratowe |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| Ilość | Kostka |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C ⋈ D | ||
|---|---|---|
| Ilość | Kwadratowe | Kostka |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Połączenie zewnętrzne
An Połączenie zewnętrzne Nie wymaga, aby każdy rekord w dwóch połączonych tabelach miał pasujący rekord. W tym typie połączenia tabela zachowuje każdy rekord, nawet jeśli nie istnieje żaden inny pasujący rekord. Istnieją trzy typy połączenia zewnętrznego:
- Lewe połączenie zewnętrzne
- Prawe połączenie zewnętrzne
- Pełne połączenie zewnętrzne
Lewe połączenie zewnętrzne (A ⟕ B)
Lewe połączenie zewnętrzne Zwraca wszystkie wiersze z tabeli po lewej stronie, nawet jeśli w tabeli po prawej nie znaleziono pasujących wierszy. Jeśli po prawej stronie nie zostanie znaleziony żaden pasujący rekord, zwracana jest wartość null.
Rozważ poniższe dwie tabele.
| A | |
|---|---|
| Ilość | Kwadratowe |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| Ilość | Kostka |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A ⟕ B | ||
|---|---|---|
| Ilość | Kwadratowe | Kostka |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Prawe połączenie zewnętrzne (A ⟖ B)
Prawe połączenie zewnętrzne Zwraca wszystkie kolumny z tabeli po prawej stronie, nawet jeśli w tabeli po lewej nie znaleziono pasujących wierszy. Jeśli po lewej stronie nie znaleziono pasujących wierszy, zwracana jest wartość null. Złączenie zewnętrzne prawe jest przeciwieństwem złączenia lewego.
AB
| A ⟖ B | ||
|---|---|---|
| Ilość | Kostka | Kwadratowe |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Pełne połączenie zewnętrzne (A ⟗ B)
W Pełne połączenie zewnętrzne, w wyniku zostaną uwzględnione wszystkie krotki z obu relacji, niezależnie od warunku dopasowania.
Przykład:
AB
| A ⟗ B | ||
|---|---|---|
| Ilość | Kwadratowe | Kostka |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


