Što je Pridruživanje u DBMS-u?
Pridruživanje u DBMS- u binarna je operacija koja vam omogućuje kombiniranje proizvoda i odabira pridruživanja u jednoj izjavi. Cilj stvaranja uvjeta pridruživanja je da vam pomaže kombinirati podatke iz dvije ili više DBMS tablica. Tablice u DBMS-u povezane su pomoću primarnog i stranog ključa.
U ovom vodiču za DBMS naučit ćete:
- Vrste pridruživanja
- Unutarnje pridruživanje
- Theta Pridružite se
- EQUI pridruživanje:
- Prirodno pridruživanje (⋈)
- Vanjsko pridruživanje
- Lijevi vanjski spoj (A B)
- Desno vanjsko spajanje (A B)
- Potpuno vanjsko pridruživanje (A B)
Vrste pridruživanja
U DBMS-u postoje uglavnom dvije vrste spajanja:
- Unutarnji spojevi: Theta, Natural, EQUI
- Vanjski spoj: lijevo, desno, puno
Pogledajmo ih detaljno:
Unutarnje pridruživanje
INNER JOIN 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 zadanim tipom spajanja
Unutarnje spajanje ili izjednačavanje pridruživanje je na temelju usporedbe koje koristi usporedbe jednakosti u predikatu pridruživanja. Međutim, ako koristite druge operatore usporedbe poput ">", to se ne može nazvati equijoin.
Unutarnji spoj dalje podijeljen u tri podvrste:
- Theta se pridruži
- Prirodno pridruživanje
- EQUI pridruži se
Theta Pridružite se
THETA JOIN omogućuje spajanje dviju tablica na temelju stanja predstavljenog theta. Theta se pridružuje radu za sve operatore usporedbe. Označava se simbolom θ . Općeniti slučaj JOIN operacije naziva se Theta join.
Sintaksa:
A ⋈θ B
Theta pridruživanje može koristiti bilo koje uvjete u kriterijima za odabir.
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 JOIN se izvodi kada Theta pridruživanje koristi samo uvjet ekvivalencije. Pridruživanje EQUI najteža je operacija za učinkovitu implementaciju u RDBMS i jedan od razloga zašto RDBMS imaju bitne probleme 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 |
Prirodno pridruživanje (⋈)
NATURAL JOIN ne koristi nijedan operator usporedbe. U ovoj vrsti pridruživanja atributi bi trebali imati isto ime i domenu. U Prirodnom spajanju trebao bi postojati barem jedan zajednički atribut između dviju relacija.
Izvršava selekciju tvoreći jednakost na onim atributima koji se pojavljuju u obje relacije i uklanja dvostruke atribute.
Primjer:
Razmotrite sljedeće dvije tablice
C | |
Num | Kvadrat |
2 | 4 |
3 | 9 |
D | |
Num | Kocka |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Kvadrat | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
Vanjsko pridruživanje
VANJSKI PRIDRUŽITE ne zahtijeva svaki zapis u dva pridružiti tablice imati odgovarajući zapis. U ovoj vrsti spajanja, tablica zadržava svaki zapis, čak i ako ne postoji drugi odgovarajući zapis.
Tri su vrste vanjskih pridruživanja:
- Lijevo vanjsko pridruživanje
- Desno vanjsko pridruživanje
- Potpuno vanjsko pridruživanje
Lijevi vanjski spoj (A B)
LEFT JOIN vraća sve retke iz tablice s lijeve strane, čak i ako u tablici s desne strane nisu pronađeni odgovarajući retci. Kad se u tablici s desne strane ne pronađe odgovarajući zapis, vraća se NULL.
Razmotrite sljedeće 2 tablice
A | |
Num | Kvadrat |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Kocka |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
Num | Kvadrat | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Desno vanjsko spajanje (A B)
RIGHT JOIN vraća sve stupce iz tablice s desne strane, čak i ako u tablici s lijeve strane nisu pronađeni odgovarajući retci. Ako u tablici s lijeve strane nisu pronađena podudaranja, vraća se NULL. DESNI vanjski JOIN je suprotnost LEFT JOIN
U našem primjeru pretpostavimo da trebate dobiti imena članova i filmove koje su unajmili. Sad imamo novog člana koji još nije unajmio nijedan film.
A B
A ⋈ B | ||
Num | Kocka | Kvadrat |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Potpuno vanjsko pridruživanje (A B)
U POTPUNOM VANJSKOM PRIDRUŽIVANJU , u rezultat su uključeni svi kompleti iz oba odnosa, bez obzira na uvjet podudaranja.
Primjer:
A B
A ⋈ B | ||
Num | Kvadrat | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Sažetak:
- U DBMS-u postoje uglavnom dvije vrste spajanja 1) Unutarnje pridruživanje 2) Vanjsko pridruživanje
- Unutarnje spajanje je široko korištena operacija spajanja i može se smatrati zadanim tipom spajanja.
- Unutarnje spajanje je dalje podijeljeno u tri podvrste: 1) Theta spajanje 2) Prirodno spajanje 3) EQUI spajanje
- Theta Join vam omogućuje spajanje dviju tablica na temelju stanja predstavljenog theta
- Kada theta spoj koristi samo uvjet ekvivalencije, on postaje equi join.
- Prirodno spajanje ne koristi nijednog operatora usporedbe.
- Vanjsko spajanje ne zahtijeva da svaki zapis u dvije tablice spajanja ima odgovarajući zapis.
- Vanjsko pridruživanje dalje se dijeli na tri podvrste: 1) Lijevo vanjsko pridruživanje 2) Desno vanjsko pridruživanje 3) Potpuno vanjsko pridruživanje
- LIJEVO vanjsko spajanje vraća sve retke iz tablice s lijeve strane, čak i ako u tablici s desne strane nisu pronađeni odgovarajući retci.
- DESNO Vanjsko pridruživanje vraća sve stupce iz tablice s desne strane, čak i ako u tablici s lijeve strane nisu pronađeni odgovarajući retci.
- U potpunom vanjskom spoju, svi nabori iz oba odnosa uključeni su u rezultat, bez obzira na podudarni uvjet.