Tietokannan hallintajärjestelmien liitokset: THETA-, Inner-, Outer- ja Equi-liitostyypit
⚡ Älykäs yhteenveto
Tietokannan hallintajärjestelmissä liitos on binäärioperaatio, joka yhdistää kahden tai useamman taulukon rivit käyttämällä niiden ensisijaista ja viiteavainta. Liitokset jaetaan sisäliitoksiin, jotka palauttavat vain vastaavat rivit, ja ulkoliitoksiin, jotka säilyttävät vastaavat rivit ja täyttävät aukot null-arvolla.

Mikä on Join-liitos tietokannan hallintajärjestelmässä?
Liity DBMS:ään on binäärioperaatio, jonka avulla voit yhdistää liitostulon ja valinnan yhteen lausekkeeseen. Liitosehdon luomisen tavoitteena on yhdistää tiedot kahdesta tai useammasta taulukosta. Taulukot yhdistetään käyttämällä niiden ensisijaisia avaimia ja vieraat avaimet.
Liittymistyypit
DBMS:ssä on pääasiassa kahdenlaisia liitoksia:
- Sisäliitokset: Theta, Natural, EQUI
- Ulkoliitokset: Vasen, Oikea, Täysi
Alla olevassa taulukossa esitellään kaikki liitostyypit ennen kuin kutakin selitetään esimerkin avulla.
| Liity | Palautukset | Yhteensopimattomat rivit |
|---|---|---|
| Sisäinen (Theta / EQUI / Luonnollinen) | Ehtoa vastaavat rivit molemmissa taulukoissa | Pudonnut |
| Vasen ulompi | Kaikki vasemmanpuoleiset rivit plus osumat | Vasemmalta pidetty, oikealta tyhjä |
| Oikea ulompi | Kaikki oikeat rivit plus osumat | Oikealta pidetty, vasemmalta tyhjä |
| Täysi ulkopinta | Kaikki rivit molemmista taulukoista | Säilytetty molemmilta, null sieltä, missä puuttuu |
Sisäinen liittyminen
Sisäinen liittyminen käytetään palauttamaan rivejä molemmista taulukoista, jotka täyttävät annetun ehdon. Se on yleisimmin käytetty liitosoperaatio ja sitä voidaan pitää oletusliitostyyppinä.
Sisäliitos eli equijoin on vertailuun perustuva liitos, joka käyttää yhtäsuuruusvertailuja liitospredikaatissa. Jos kuitenkin käytät muita vertailuoperaattoreita, kuten ">", sitä ei voida kutsua equijoiniksi. Sisäliitos jaetaan edelleen kolmeen alatyyppiin:
- Theta liittyy
- Luonnollinen liitos
- EQUI liittyä
Theta Liity
Theta Liity mahdollistaa kahden taulukon yhdistämisen theetan edustaman ehdon perusteella. Theeta-liitokset toimivat kaikkien vertailuoperaattoreiden kanssa. Sitä merkitään symbolilla θYleistä JOIN-operaatiota kutsutaan theta-liitokseksi.
Syntaksi:
A ⋈θ B
Theta-liitos voi käyttää mitä tahansa valintakriteerien ehtoja.
Harkitse seuraavia taulukoita.
| Taulukko A | Taulukko B | |||
|---|---|---|---|---|
| sarake 1 | sarake 2 | sarake 1 | sarake 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Esimerkiksi:
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.sarake 2 > B.sarake 2 (B) | |
|---|---|
| sarake 1 | sarake 2 |
| 1 | 2 |
EQUI Liity
EQUI Liity tehdään, kun theta-liitos käyttää vain ekvivalenssiehtoa. EQUI-liitos on vaikein operaatio toteuttaa tehokkaasti RDBMS, ja se on yksi syy siihen, miksi RDBMS:ssä voi olla suorituskykyongelmia.
Esimerkiksi:
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.sarake 2 = B.sarake 2 (B) | |
|---|---|
| sarake 1 | sarake 2 |
| 1 | 1 |
Luonnollinen liittyminen (⋈)
Luonnollinen liittyminen ei käytä vertailuoperaattoria. Tällaisessa liitoksessa attribuuteilla tulisi olla sama nimi ja toimialue. Luonnollisessa liitoksessa kahden relaation välillä tulisi olla vähintään yksi yhteinen attribuutti.
Se suorittaa valinnan muodostaen yhtäsuuruuden molemmissa relaatioissa esiintyville attribuuteille ja poistaa päällekkäiset attribuutit.
Esimerkiksi: harkitse seuraavia kahta taulukkoa.
| C | |
|---|---|
| Sisään | Neliö |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| Sisään | Kuutio |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C⋈D | ||
|---|---|---|
| Sisään | Neliö | Kuutio |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Ulkopuolinen liittyminen
An Ulkopuolinen liittyminen ei vaadi, että jokaisella kahden yhdistetyn taulukon tietueella on vastaava tietue. Tällaisessa liitoksessa taulukko säilyttää jokaisen tietueen, vaikka muita vastaavia tietueita ei olisikaan. Ulkoliitoksen kolme tyyppiä ovat:
- Vasen ulompi liittymä
- Oikea ulompi liitos
- Täysi ulkoinen liittyminen
Vasen ulkoliitos (A–B)
Vasen ulompi liittymä palauttaa kaikki vasemmanpuoleisen taulukon rivit, vaikka oikeanpuoleisesta taulukosta ei löytyisi vastaavia rivejä. Kun oikealta puolelta ei löydy vastaavaa tietuetta, palautetaan null.
Tarkastellaan seuraavia kahta taulukkoa.
| A | |
|---|---|
| Sisään | Neliö |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| Sisään | Kuutio |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A ⟕ B | ||
|---|---|---|
| Sisään | Neliö | Kuutio |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Oikea ulompi liitos (A ⟖ B)
Oikea ulompi liitos palauttaa kaikki oikeanpuoleisen taulukon sarakkeet, vaikka vasemmanpuoleisesta taulukosta ei löytyisikään vastaavia rivejä. Jos vasemmalta ei löydy osumia, palautetaan null. Oikea ulkoliitos on vasemmanpuoleisen liitoksen vastakohta.
AB
| A ⟖ B | ||
|---|---|---|
| Sisään | Kuutio | Neliö |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Täysi ulkoliitos (A ⟗ B)
Jonkin sisällä Täysi ulkoinen liittyminen, kaikki monikot molemmista suhteista sisällytetään tulokseen riippumatta vastaavuusehdosta.
Esimerkiksi:
AB
| A ⟗ B | ||
|---|---|---|
| Sisään | Neliö | Kuutio |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


