DBMS - dołącza
Rozumiemy korzyści płynące z przyjęcia iloczynu kartezjańskiego dwóch relacji, który daje nam wszystkie możliwe krotki, które są ze sobą sparowane. Ale w niektórych przypadkach może nie być wykonalne dla nas przyjęcie iloczynu kartezjańskiego, w którym napotykamy ogromne relacje z tysiącami krotek mających znaczną liczbę atrybutów.
Jointo połączenie produktu kartezjańskiego, po którym następuje proces selekcji. Operacja Join łączy w pary dwie krotki z różnych relacji, wtedy i tylko wtedy, gdy dany warunek łączenia jest spełniony.
W następnych sekcjach pokrótce opiszemy różne typy złączeń.
Theta (θ) Dołącz
Łączenie theta łączy krotki z różnych relacji, pod warunkiem, że spełniają warunek theta. Warunek łączenia jest oznaczony symbolemθ.
Notacja
R1 ⋈θ R2
R1 i R2 to relacje mające atrybuty (A1, A2, .., An) i (B1, B2, .., Bn) takie, że atrybuty nie mają ze sobą nic wspólnego, czyli R1 ∩ R2 = Φ.
Łączenie theta może używać wszystkich rodzajów operatorów porównania.
Student | ||
---|---|---|
SID | Nazwa | Std |
101 | Alex | 10 |
102 | Maria | 11 |
Tematy | |
---|---|
Klasa | Przedmiot |
10 | Math |
10 | język angielski |
11 | Muzyka |
11 | Sporty |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail | ||||
---|---|---|---|---|
SID | Nazwa | Std | Klasa | Przedmiot |
101 | Alex | 10 | 10 | Math |
101 | Alex | 10 | 10 | język angielski |
102 | Maria | 11 | 11 | Muzyka |
102 | Maria | 11 | 11 | Sporty |
Equijoin
Gdy dołączenie Theta używa tylko equalityoperator porównania, mówi się, że jest to equijoin. Powyższy przykład odpowiada equijoin.
Połączenie naturalne ( ⋈ )
Łączenie naturalne nie używa żadnego operatora porównania. Nie łączy się w sposób, w jaki robi to produkt kartezjański. Możemy wykonać połączenie naturalne tylko wtedy, gdy istnieje co najmniej jeden wspólny atrybut, który istnieje między dwiema relacjami. Ponadto atrybuty muszą mieć tę samą nazwę i domenę.
Sprzężenie naturalne działa na te pasujące atrybuty, w których wartości atrybutów w obu relacjach są takie same.
Kursy | ||
---|---|---|
CID | Kierunek | Dept |
CS01 | Baza danych | CS |
ME01 | Mechanika | MNIE |
EE01 | Elektronika | EE |
Taczki | |
---|---|
Dept | Głowa |
CS | Alex |
MNIE | Maya |
EE | Mira |
Kursy ⋈ HoD | |||
---|---|---|---|
Dept | CID | Kierunek | Głowa |
CS | CS01 | Baza danych | Alex |
MNIE | ME01 | Mechanika | Maya |
EE | EE01 | Elektronika | Mira |
Połączenia zewnętrzne
Połączenia Theta, Equijoin i Natural Join nazywane są połączeniami wewnętrznymi. Sprzężenie wewnętrzne zawiera tylko te krotki z pasującymi atrybutami, a reszta jest odrzucana w wynikowej relacji. Dlatego musimy użyć zewnętrznych sprzężeń, aby uwzględnić wszystkie krotki z uczestniczących relacji w wynikowej relacji. Istnieją trzy rodzaje połączeń zewnętrznych - lewe sprzężenie zewnętrzne, prawe sprzężenie zewnętrzne i pełne sprzężenie zewnętrzne.
Lewe połączenie zewnętrzne (R
S)
Wszystkie krotki z relacji Left, R, są zawarte w wynikowej relacji. Jeśli istnieją krotki w R bez żadnej pasującej krotki w prawej relacji S, wówczas S-atrybuty wynikowej relacji mają wartość NULL.
Lewo | |
---|---|
ZA | b |
100 | Baza danych |
101 | Mechanika |
102 | Elektronika |
Dobrze | |
---|---|
ZA | b |
100 | Alex |
102 | Maya |
104 | Mira |
Kursy
|
|||
---|---|---|---|
ZA | b | do | re |
100 | Baza danych | 100 | Alex |
101 | Mechanika | --- | --- |
102 | Elektronika | 102 | Maya |
Prawe połączenie zewnętrzne: (R
S)
Wszystkie krotki z relacji Right, S, są zawarte w wynikowej relacji. Jeśli w S znajdują się krotki bez żadnej pasującej krotki w R, wówczas atrybuty R wynikowej relacji mają wartość NULL.
Kursy
|
|||
---|---|---|---|
ZA | b | do | re |
100 | Baza danych | 100 | Alex |
102 | Elektronika | 102 | Maya |
--- | --- | 104 | Mira |
Pełne połączenie zewnętrzne: (R
S)
W wynikowej relacji są uwzględniane wszystkie krotki z obu relacji uczestniczących. Jeśli nie ma pasujących krotek dla obu relacji, ich odpowiednie niedopasowane atrybuty przyjmują wartość NULL.
Kursy
|
|||
---|---|---|---|
ZA | b | do | re |
100 | Baza danych | 100 | Alex |
101 | Mechanika | --- | --- |
102 | Elektronika | 102 | Maya |
--- | --- | 104 | Mira |