Złączenia DBMS: wewnętrzne, THETA, zewnętrzne, równoważne typy połączeń Operanych
Co to jest dołączenie w DBMS?
Dołącz do DBMS jest operacją binarną, która umożliwia połączenie produktu łączenia i selekcji w jednym poleceniu. Celem tworzenia warunku łączenia jest pomoc w łączeniu danych z dwóch lub więcej tabel DBMS. Tabele w DBMS są skojarzone przy użyciu klucza podstawowego i kluczy obcych.
Rodzaje przyłączeń
W systemie DBMS istnieją głównie dwa typy złączeń:
- Łączenia wewnętrzne: Theta, Natural, EQUI
- Połączenie zewnętrzne: lewe, prawe, pełne
Zobaczmy je szczegółowo:
Połączenie wewnętrzne
Połączenie wewnętrzne służy do zwracania wierszy z obu tabel, które spełniają podany warunek. Jest to najszerzej stosowana operacja łączenia i może być uważana za domyślny typ łączenia
Połączenie wewnętrzne lub equijoin to połączenie oparte na komparatorze, które używa porównań równości w predykacie połączenia. Jednak jeśli używasz innych operatorów porównania, takich jak „>”, nie można go nazwać equijoin.
Złącze wewnętrzne podzielone jest dalej na trzy podtypy:
- Dołącz do Theta
- Naturalne połączenie
- Dołącz do EQUI
Dołącz do Thety
Dołącz do Thety pozwala na scalenie dwóch tabel na podstawie warunku reprezentowanego przez theta. Łączenie theta działa dla wszystkich operatorów porównania. Jest ono oznaczone symbolem θOgólny przypadek operacji JOIN nazywany jest połączeniem Theta.
Składnia:
A ⋈θ B
Theta Join może używać dowolnych warunków 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 używa tylko warunku równoważności. Połączenie EQUI jest najtrudniejszą operacją do efektywnego wdrożenia w RDBMSi jeden z powodów, dla których RDBMS ma istotne 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 wykorzystuje żadnego z operatorów porównania. W tym typie łączenia atrybuty powinny mieć tę samą nazwę i domenę. W łączu naturalnym powinien być co najmniej jeden wspólny atrybut między dwiema relacjami.
Dokonuje selekcji tworzącej równość na atrybutach występujących w obu relacjach i eliminuje zduplikowane atrybuty.
Przykład:
Rozważ następujące 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 tabelach łączenia miał pasujący rekord. W przypadku tego typu złączenia tabela zachowuje każdy rekord, nawet jeśli nie istnieje żaden inny pasujący rekord.
Trzy typy złączeń zewnętrznych to:
- 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 stronie nie znaleziono pasujących wierszy. Jeśli w tabeli po prawej stronie nie zostanie znaleziony żaden pasujący rekord, zwracana jest wartość NULL.
Rozważ następujące 2 tabele
A | |
---|---|
Ilość | Kwadratowe |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
Ilość | Kostka |
2 | 8 |
3 | 18 |
5 | 75 |
A B
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 stronie nie znaleziono pasujących wierszy. Jeżeli w tabeli po lewej stronie nie znaleziono żadnych dopasowań, zwracana jest wartość NULL. PRAWY zewnętrzny JOIN jest przeciwieństwem LEWEGO JOIN
W naszym przykładzie załóżmy, że musisz uzyskać nazwiska członków i wypożyczone przez nich filmy. Teraz mamy nowego członka, który nie wypożyczył jeszcze żadnego filmu.
A B
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:
A B
A ⋈ B | ||
---|---|---|
Ilość | Kwadratowe | Kostka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Podsumowanie
- Istnieją głównie dwa typy złączeń DBMS 1) Złącze wewnętrzne 2) Złącze zewnętrzne
- Połączenie wewnętrzne jest powszechnie stosowaną operacją łączenia i można je uważać za domyślny typ łączenia.
- Połączenie wewnętrzne dzieli się dalej na trzy podtypy: 1) połączenie Theta 2) połączenie naturalne 3) połączenie EQUI
- Theta Join umożliwia połączenie dwóch tabel w oparciu o warunek reprezentowany przez theta
- Kiedy złączenie theta wykorzystuje tylko warunek równoważności, staje się złączeniem ekwiwalentnym.
- Dołączenie naturalne nie wykorzystuje żadnych operatorów porównania.
- Złączenie zewnętrzne nie wymaga, aby każdy rekord w dwóch tabelach złączenia miał pasujący rekord.
- Połączenie zewnętrzne dzieli się dalej na trzy podtypy: 1) Lewe połączenie zewnętrzne 2) Prawe połączenie zewnętrzne 3) Pełne połączenie zewnętrzne
- LEFT Outer Join zwraca wszystkie wiersze z tabeli po lewej stronie, nawet jeśli w tabeli po prawej nie znaleziono żadnych pasujących wierszy.
- RIGHT Outer Join zwraca wszystkie kolumny z tabeli po prawej stronie, nawet jeśli w tabeli po lewej stronie nie znaleziono pasujących wierszy.
- W pełnym sprzężeniu zewnętrznym wszystkie krotki z obu relacji są uwzględniane w wyniku, niezależnie od warunku dopasowania.