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.

  • 🔗 Põhieesmärk: Liitmine ühendab seotud tabelid üheks tulemite komplektiks liitmistingimuse alusel.
  • 🎯 Sisemine liitumine: Tagastab ainult read, mis vastavad mõlema tabeli tingimusele; vaikimisi ühendamise tüüp.
  • 📐 Theta ja EQUI: Teetaliit kasutab suvalist võrdlusoperaatorit; EQUIliit kasutab ainult võrdusoperaatorit.
  • 🔄 Loomulik liitumine: Leiab vasteid identselt nimetatud atribuutidele ja eemaldab duplikaatveeru.
  • ⬅️ Vasakpoolne välimine liitekoht: Säilitab vasakpoolse tabeli kõik read, täites nulliga need, kus paremal pole vastet.
  • ➡️ Parempoolne välimine ühendus: Säilitab iga rea ​​paremast tabelist, täites nulliga need, kus vasakul pole vastet.
  • 🌐 Täielik välimine liitumine: Säilitab kõik read mõlemast tabelist olenemata vastest.

Ühendused andmebaasihaldussüsteemis Vasak Parem

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:

  1. Sisemised ühendused: teeta, looduslik, EQUI
  2. 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.

Vasakpoolne välimine liitekoht

Vaatleme kahte järgmist tabelit.

A
Sisse ruut
2 4
3 9
4 16
B
Sisse Kuubik
2 8
3 18
5 75
A Left Outer Join B
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.

Parempoolne ühendus

A Right Outer Join B
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:

A Full Outer Join B
A ⟗ B
Sisse ruut Kuubik
2 4 8
3 9 18
4 16 -
5 - 75

KKK

Sisemine ühendus tagastab ainult read, mis vastavad mõlemas tabelis. Väline ühendus säilitab samuti ühe või mõlema tabeli vastavuseta read, täites puuduva poole nulliga.

Teetaliit saab kasutada mis tahes võrdlusoperaatorit, näiteks „suurem kui” või „väiksem kui”. EQUI-liit on teetaliit, mis piirdub võrdusoperaatoriga, seega leiab vaste ainult võrdsetele väärtustele.

Mõlemad sobivad võrdsuse korral, kuid loomulik ühendus sobib automaatselt identselt nimetatud veergude korral ja eemaldab duplikaatveeru. EQUI ühendus nimetab tingimuse selgesõnaliselt ja säilitab mõlemad veerud.

Jah. Skeemi ja küsimuse põhjal saab tehisintellekt valida liitumistüübi ja võtmed, näiteks vasakpoolse liitumise, et hoida kliente, kellel pole tellimusi. Kinnitage tulemus, kuna vale liitumine muudab ridade arvu.

Jah. Tehisintellekt suudab tuvastada, et liitumisvõti pole ühel poolel unikaalne, mis põhjustab mitmest mitmele plahvatuse, ning soovitada esmalt tingimuse lisamist või agregeerimist, et iga vastet loendataks üks kord.

Võta see postitus kokku järgmiselt: