DBMS spajanja: THETA, unutarnje, vanjsko, ekvi tipovi spajanja

⚡ Pametni sažetak

Spajanje u DBMS-u je binarna operacija koja kombinira retke iz dvije ili više tablica koristeći njihove primarne i vanjske ključeve. Spajanja se dijele na unutarnja spajanja, koja vraćaju samo odgovarajuće retke, i vanjska spajanja, koja zadržavaju nepodudarne retke i popunjavaju praznine s null vrijednostima.

  • 🔗 Osnovna svrha: Spoj spaja povezane tablice u jedan skup rezultata na temelju uvjeta spajanja.
  • 🎯 Unutarnje spajanje: Vraća samo retke koji zadovoljavaju uvjet u obje tablice; zadani tip spajanja.
  • 📐 Theta i EQUI: Theta spoj koristi bilo koji operator usporedbe; EQUI spoj koristi samo jednakost.
  • 🔄 Prirodno pridruživanje: Podudara se s identično imenovanim atributima i uklanja duplicirani stupac.
  • ⬅️ Lijevi vanjski spoj: Zadržava svaki redak iz lijeve tablice, popunjavajući s null vrijednostima tamo gdje desni nema podudaranja.
  • ➡️ Desni vanjski spoj: Zadržava svaki redak iz desne tablice, popunjavajući s null vrijednostima tamo gdje lijeva nema podudaranja.
  • 🌐 Potpuni vanjski spoj: Čuva sve retke iz obje tablice bez obzira na podudaranje.

Spojevi u DBMS-u Lijevo Desno

Što je spajanje (Join) u DBMS-u?

Pridružite se DBMS-u je binarna operacija koja vam omogućuje kombiniranje produkta spajanja i odabira u jednoj naredbi. Cilj stvaranja uvjeta spajanja je kombiniranje podataka iz dvije ili više tablica. Tablice su povezane pomoću svojih primarnih ključeva i strani ključevi.

Vrste pridruživanja

Postoje uglavnom dvije vrste spajanja u DBMS-u:

  1. Unutarnji spojevi: Theta, Natural, EQUI
  2. Vanjski spojevi: Lijevi, Desni, Puni

Donja tablica prikazuje pregled svih vrsta spajanja prije nego što je svaka objašnjena primjerom.

Pridružite se Povratak Nepodudarni retci
Unutarnji (Theta / EQUI / Prirodni) Redci koji odgovaraju uvjetu u obje tablice Ispustio
Lijevi vanjski Svi lijevi retci plus podudaranja Čuvano s lijeva, nula s desne strane
Desni vanjski Svi desni redovi plus šibice Čuvano s desne strane, nula s lijeve strane
Puni vanjski Svi retci iz obje tablice Sačuvano od oba, null gdje nedostaje

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.

Unutarnji spoj, ili ekvispoj, je spoj temeljen na usporedbi koji koristi usporedbe jednakosti u predikatu spoja. Međutim, ako koristite druge operatore usporedbe poput ">", ne može se nazvati ekvispojom. Unutarnji spoj se dalje dijeli na tri podtipa:

  • Theta spoj
  • Prirodno spajanje
  • Pridružite se EQUI

Theta Pridružite se

Theta Pridružite se omogućuje spajanje dviju tablica na temelju uvjeta predstavljenog thetom. Theta spaja rad za sve operatore usporedbe. Označava se simbolom θOpći slučaj JOIN operacije naziva se theta spajanje.

Sintaksa:

A ⋈θ B

Theta spoj 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 se izvodi kada theta spoj koristi samo uvjet ekvivalencije. EQUI spoj je najteža operacija za učinkovitu implementaciju u RDBMS, i to je jedan od razloga zašto RDBMS može imati problema s performansama.

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 nikakav operator usporedbe. U ovoj vrsti spajanja, atributi bi trebali imati isto ime i domenu. U prirodnom spajanju, trebao bi postojati barem jedan zajednički atribut između dvaju odnosa.

Izvodi selekciju formirajući jednakost na atributima koji se pojavljuju u obje relacije i eliminira duplicirane atribute.

Primjer: razmotrite sljedeće dvije tablice.

C
U Kvadratni
2 4
3 9
D
U Kocka
2 8
3 18
C ⋈ D
C ⋈ D
U Kvadratni 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 vrste vanjskog spajanja 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 se u tablici s desne strane ne pronađu odgovarajući retci. Kada se s desne strane ne pronađe odgovarajući zapis, vraća se null.

Lijevi vanjski spoj

Razmotrite sljedeće dvije tablice.

A
U Kvadratni
2 4
3 9
4 16
B
U Kocka
2 8
3 18
5 75
A Left Outer Join B
A ⟕ B
U Kvadratni 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 se u tablici s lijeve strane ne pronađu odgovarajući retci. Tamo gdje se s lijeve strane ne pronađu odgovarajući retci, vraća se vrijednost null. Desni vanjski spoj je suprotnost lijevom spoju.

Desni vanjski spoj

A Right Outer Join B
A ⟖ B
U Kocka Kvadratni
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:

A Full Outer Join B
A ⟗ B
U Kvadratni Kocka
2 4 8
3 9 18
4 16 -
5 - 75

Pitanja i odgovori

Unutarnji spoj vraća samo retke koji se podudaraju u obje tablice. Vanjski spoj također zadržava nepodudarne retke iz jedne ili obje tablice, popunjavajući nedostajuću stranu s null.

Theta spoj može koristiti bilo koji operator usporedbe, kao što je veće od ili manje od. EQUI spoj je theta spoj ograničen na operator jednakosti, pa se podudara samo s jednakim vrijednostima.

Oba se podudaraju po jednakosti, ali prirodno spajanje automatski se podudara s identično imenovanim stupcima i uklanja duplicirani stupac. EQUI spajanje eksplicitno imenuje uvjet i zadržava oba stupca.

Da. S obzirom na shemu i pitanje, umjetna inteligencija može odabrati vrstu spajanja i ključeve, na primjer lijevi spoj kako bi kupci ostali bez narudžbi. Potvrdite rezultat, budući da pogrešan spoj mijenja broj redaka.

Da. Umjetna inteligencija može uočiti da ključ spajanja nije jedinstven na jednoj strani, što stvara eksploziju više-na-više, i predložiti dodavanje uvjeta ili prvo agregiranje kako bi se svako podudaranje brojalo jednom.

Sažmite ovu objavu uz: