DBMS-i liitumised: THETA, sisemine, välimine ja Equi tüüpi liitumised
⚡ Nutikas kokkuvõte
Andmebaasihaldussüsteemis (DBMS) on liitmine binaaroperatsioon, mis ühendab kahe või enama tabeli ridu, kasutades nende primaar- ja võõrvõtmeid. Ühendused jagunevad sisemisteks ühendusteks, mis tagastavad ainult vastavad read, ja välisteks ühendusteks, mis säilitavad vastavuseta read ja täidavad lüngad nullväärtusega.
Mis on andmebaasihaldussüsteemis liitumine (Join)?
Liituge DBMS-iga on binaaroperatsioon, mis võimaldab ühendada liitmisprodukti ja valiku ühes lauses. Liitumistingimuse loomise eesmärk on ühendada kahe või enama tabeli andmed. Tabelid on seotud nende primaarvõtmete ja võõrad võtmed.
Liitumise tüübid
DBMS-is on peamiselt kahte tüüpi liitumisi:
- Sisemised ühendused: teeta, looduslik, EQUI
- Välised ühendused: vasak, parem, täis
Allolev tabel annab ülevaate kõigist ühendustüüpidest enne iga tüübi selgitamist näite abil.
| Liitu | Tagastamine | Sobimatud read |
|---|---|---|
| Sisemine (Theta / EQUI / Looduslik) | Mõlema tabeli tingimusele vastavad read | Langenud |
| Vasakpoolne välimine | Kõik vasakpoolsed read pluss vasted | Vasakult hoitakse, paremalt null |
| Parempoolne | Kõik õiged read pluss vasted | Paremalt hoitud, vasakul null |
| Täisvälimine | Kõik read mõlemast tabelist | Mõlemast eemal hoitud, puuduvatest kohtadest null |
Sisemine liitumine
Sisemine liitumine kasutatakse mõlema tabeli ridade tagastamiseks, mis vastavad antud tingimusele. See on kõige laialdasemalt kasutatav liitmisoperatsioon ja seda võib pidada vaikeliitmistüübiks.
Sisemine ühendus ehk võrdusühendus on võrdlusel põhinev ühendus, mis kasutab ühenduspredikaadis võrdusvõrdlusi. Kui aga kasutate teisi võrdlusoperaatoreid, näiteks „>”, ei saa seda võrdusühenduseks nimetada. Sisemine ühendus jaguneb omakorda kolmeks alamtüübiks:
- Teeta liituda
- Loomulik liitumine
- EQUI liitumine
Teeta Liitu
Teeta Liitu võimaldab teil ühendada kaks tabelit teetaga esindatud tingimuse alusel. Teetaühendused toimivad kõigi võrdlusoperaatorite puhul. Seda tähistatakse sümboliga θJOIN-operatsiooni üldist juhtumit nimetatakse teeta-liitumiseks.
süntaksit:
A ⋈θ B
Teetaliitmine saab valikukriteeriumides kasutada mis tahes tingimusi.
Mõelge järgmistele tabelitele.
| Tabel A. | Tabel B | |||
|---|---|---|---|---|
| veerg 1 | veerg 2 | veerg 1 | veerg 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Näiteks:
A ⋈ A.column 2 > B.column 2 (B)
| A ⋈ A.2. veerg > B. 2. veerg (B) | |
|---|---|
| veerg 1 | veerg 2 |
| 1 | 2 |
EQUI Liitu
EQUI Liitu tehakse siis, kui teetaliitumine kasutab ainult ekvivalentsustingimust. EQUI-liitmine on kõige keerulisem toiming, mida tõhusalt rakendada RDBMSja see on üks põhjus, miks RDBMS-il võib olla jõudlusprobleeme.
Näiteks:
A ⋈ A.column 2 = B.column 2 (B)
| A ⋈ A.2. veerg = B. 2. veerg (B) | |
|---|---|
| veerg 1 | veerg 2 |
| 1 | 1 |
Loomulik liitumine (⋈)
Loomulik liitumine ei kasuta võrdlusoperaatorit. Seda tüüpi ühenduses peaksid atribuutidel olema sama nimi ja domeen. Loomulikus ühenduses peaks kahel seosel olema vähemalt üks ühine atribuut.
See teostab valiku, moodustades võrdsuse mõlemas relatsioonis esinevate atribuutide põhjal, ja eemaldab duplikaattribuudid.
Näide: kaaluge kahte järgmist tabelit.
| C | |
|---|---|
| Sisse | ruut |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| Sisse | Kuubik |
| 2 | 8 |
| 3 | 18 |
C ⋈ D
| C ⋈ D | ||
|---|---|---|
| Sisse | ruut | Kuubik |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Väline liitumine
An Väline liitumine ei nõua, et kahe ühendatud tabeli igal kirjel oleks vastav kirje. Seda tüüpi ühenduses säilitab tabel iga kirje isegi siis, kui ühtegi teist vastavat kirjet pole. Välise ühenduse kolm tüüpi on:
- Vasakpoolne välimine liitekoht
- Parempoolne ühendus
- Täielik väline liitumine
Vasakpoolne välimine liitmik (A–B)
Vasakpoolne välimine liitekoht tagastab kõik vasakpoolse tabeli read, isegi kui parempoolses tabelis ei leita vastavaid ridu. Kui paremal tabelis vastavaid kirjeid ei leita, tagastatakse null.
Vaatleme kahte järgmist tabelit.
| A | |
|---|---|
| Sisse | ruut |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| Sisse | Kuubik |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A ⟕ B | ||
|---|---|---|
| Sisse | ruut | Kuubik |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Parempoolne välimine ühendus (A ⟖ B)
Parempoolne ühendus tagastab kõik parempoolse tabeli veerud, isegi kui vasakpoolses tabelis ei leita vastavaid ridu. Kui vasakul tabelis vasteid ei leita, tagastatakse null. Parempoolne väline ühendus on vasakpoolse ühenduse vastand.
AB
| A ⟖ B | ||
|---|---|---|
| Sisse | Kuubik | ruut |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Täielik välimine liitumine (A ⟗ B)
Aastal Täielik väline liitumine, kaasatakse tulemusesse kõik korteid mõlemast relatsioonist, olenemata sobitustingimusest.
Näide:
AB
| A ⟗ B | ||
|---|---|---|
| Sisse | ruut | Kuubik |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |



