DBMS spojevi: unutarnji, THETA, vanjski, jednaki tipovi spojeva Operama
Što je pridruživanje u DBMS-u?
Pridružite se DBMS-u je binarna operacija koja vam omogućuje kombiniranje proizvoda pridruživanja i odabira u jednoj izjavi. Cilj stvaranja uvjeta spajanja je da vam pomogne kombinirati podatke iz dvije ili više DBMS tablica. Tablice u DBMS-u povezane su pomoću primarnog ključa i stranih ključeva.
Vrste pridruživanja
Postoje uglavnom dvije vrste spajanja u DBMS-u:
- Unutarnji spojevi: Theta, Natural, EQUI
- Vanjski spoj: lijevo, desno, puni
Pogledajmo ih detaljnije:
Unutarnje pridruživanje
Unutarnje pridruživanje koristi se za vraćanje redaka iz obje tablice koji zadovoljavaju zadani uvjet. To je najčešće korištena operacija spajanja i može se smatrati zadanom vrstom spajanja
Unutarnje spajanje ili equijoin spajanje je temeljeno na usporedbi koje koristi usporedbe jednakosti u predikatu spajanja. Međutim, ako koristite druge operatore usporedbe poput “>”, to se ne može nazvati equijoin.
Unutarnji spoj dalje podijeljen u tri podvrste:
- Theta spoj
- Prirodno spajanje
- Pridružite se EQUI
Theta Pridružite se
Theta Pridružite se omogućuje vam spajanje dviju tablica na temelju stanja predstavljenog theta. Theta pridružuje posao za sve operatore usporedbe. Označava se simbolom θ. Opći slučaj operacije JOIN naziva se Theta spajanje.
Sintaksa:
A ⋈θ B
Theta pridruživanje može koristiti bilo koje uvjete u kriterijima odabira.
Razmotrite sljedeće tablice.
Tablica A | Tablica B | |||
---|---|---|---|---|
stupac 1 | stupac 2 | stupac 1 | stupac 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Na primjer:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. stupac 2 > B. stupac 2 (B) | |
---|---|
stupac 1 | stupac 2 |
1 | 2 |
EQUI Pridružite se
EQUI Pridružite se radi se kada Theta pridruživanje koristi samo uvjet ekvivalencije. EQUI pridruživanje najteža je operacija za učinkovitu implementaciju u RDBMS, i jedan od razloga zašto RDBMS ima bitnih problema s izvedbom.
Na primjer:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. stupac 2 = B. stupac 2 (B) | |
---|---|
stupac 1 | stupac 2 |
1 | 1 |
Prirodni spoj (⋈)
Prirodni spoj ne koristi nijedan od operatora usporedbe. U ovoj vrsti spajanja, atributi trebaju imati isto ime i domenu. U prirodnom spoju, trebao bi postojati barem jedan zajednički atribut između dva odnosa.
Izvodi selekciju formirajući jednakost na onim atributima koji se pojavljuju u oba odnosa i eliminira duple atribute.
Primjer:
Razmotrite sljedeće dvije tablice
C | |
---|---|
U | Trg |
2 | 4 |
3 | 9 |
D | |
---|---|
U | Kocka |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
---|---|---|
U | Trg | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
Vanjsko pridruživanje
An Vanjsko pridruživanje ne zahtijeva da svaki zapis u dvije spojene tablice ima odgovarajući zapis. U ovoj vrsti spajanja, tablica zadržava svaki zapis čak i ako ne postoji drugi odgovarajući zapis.
Tri tipa vanjskih spojeva su:
- Lijevi vanjski spoj
- Desni vanjski spoj
- Potpuno vanjsko pridruživanje
Lijevi vanjski spoj (A ⟕ B)
Lijevi vanjski spoj vraća sve retke iz tablice s lijeve strane čak i ako u tablici s desne strane nisu pronađeni odgovarajući redovi. Kada se u tablici s desne strane ne pronađe odgovarajući zapis, vraća se NULL.
Razmotrite sljedeće 2 tablice
A | |
---|---|
U | Trg |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
U | Kocka |
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
---|---|---|
U | Trg | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Desni vanjski spoj (A ⟖ B)
Desni vanjski spoj vraća sve stupce iz tablice s desne strane čak i ako u tablici s lijeve strane nisu pronađeni odgovarajući redovi. Ako nema podudaranja u tablici s lijeve strane, vraća se NULL. RIGHT vanjski JOIN je suprotan LIJEVOM JOIN-u
U našem primjeru, pretpostavimo da trebate dobiti imena članova i filmova koje su oni iznajmili. Sada imamo novog člana koji još nije iznajmio nijedan film.
AB
A ⋈ B | ||
---|---|---|
U | Kocka | Trg |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Potpuni vanjski spoj (A ⟗ B)
U Potpuno vanjsko pridruživanje , sve torke iz obje relacije uključene su u rezultat, bez obzira na uvjet podudaranja.
Primjer:
AB
A ⋈ B | ||
---|---|---|
U | Trg | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Rezime
- Uglavnom postoje dvije vrste spajanja DBMS 1) Unutarnji spoj 2) Vanjski spoj
- Unutarnje spajanje široko je korištena operacija spajanja i može se smatrati zadanom vrstom spajanja.
- Unutarnje spajanje dalje se dijeli na tri podvrste: 1) Theta spajanje 2) Prirodno spajanje 3) EQUI spajanje
- Theta Join vam omogućuje spajanje dviju tablica na temelju stanja koje predstavlja theta
- Kada theta spajanje koristi samo uvjet ekvivalencije, ono postaje jednakopravno spajanje.
- Prirodno spajanje ne koristi nijedan od operatora usporedbe.
- Vanjsko spajanje ne zahtijeva da svaki zapis u dvije tablice spajanja ima odgovarajući zapis.
- Vanjski spoj dalje se dijeli na tri podvrste: 1) Lijevi vanjski spoj 2) Desni vanjski spoj 3) Potpuni vanjski spoj
- LEFT Outer Join vraća sve retke iz tablice s lijeve strane, čak i ako u tablici s desne strane nisu pronađeni odgovarajući redovi.
- DESNO vanjsko spajanje vraća sve stupce iz tablice s desne strane, čak i ako u tablici s lijeve strane nisu pronađeni odgovarajući redovi.
- U potpunom vanjskom spajanju, sve torke iz obje relacije uključene su u rezultat, bez obzira na uvjet podudaranja.