DBMS-i ühendused: sisemine, THETA, välimine, ekviühenduse tüübid Operamine
Mis on liitumine DBMS-iga?
Liituge DBMS-iga on kahendtehte, mis võimaldab ühendada toote ja valiku ühes lauses. Ühendustingimuse loomise eesmärk on see, et see aitaks teil kombineerida kahe või enama DBMS-i tabeli andmeid. DBMS-i tabelid on seotud primaarvõtme ja võõrvõtmete abil.
Liitumise tüübid
DBMS-is on peamiselt kahte tüüpi liitumisi:
- Sisemised ühendused: teeta, looduslik, EQUI
- Välisühendus: vasak, parem, täis
Vaatame neid üksikasjalikult:
Sisemine liitumine
Sisemine liitumine kasutatakse antud tingimusele vastavate ridade tagastamiseks mõlemast tabelist. See on kõige laialdasemalt kasutatav liitumisoperatsioon ja seda võib pidada vaikeühendustüübiks
Sisemine ühendus või võrdusliit on võrdluse aluseks olev liit, mis kasutab liitumispredikaadis võrdusvõrdlusi. Kui aga kasutate muid võrdlustehtereid, nagu “>”, ei saa seda nimetada equijoin-iks.
Siseühendus, mis on jagatud kolmeks alamtüübiks:
- Teeta liituda
- Loomulik liitumine
- EQUI liitumine
Teeta Liitu
Teeta Liitu võimaldab liita kaks tabelit teetaga tähistatud tingimuse alusel. Teeta ühendab töö kõigi võrdlusoperaatorite jaoks. Seda tähistatakse sümboliga θ. Operatsiooni JOIN üldist juhtumit nimetatakse teeta liitumiseks.
süntaksit:
A ⋈θ B
Teeta liitumine võib 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 Theta liitumine kasutab ainult samaväärsuse tingimust. EQUI liitumine on kõige keerulisem toiming, mida tõhusalt rakendada RDBMSja üks põhjus, miks RDBMS-il on olulisi 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 ühtegi võrdlusoperaatorit. Seda tüüpi liitumisel peavad atribuutidel olema sama nimi ja domeen. Funktsioonis Natural Join peaks kahe seose vahel olema vähemalt üks ühine atribuut.
See teostab valiku, moodustades võrdsuse mõlemas relatsioonis esinevatele atribuutidele ja kõrvaldab dubleerivad atribuudid.
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 ühendtabeli igal kirjel oleks sobiv kirje. Seda tüüpi liitmise korral säilitab tabel iga kirje isegi siis, kui ühtki teist sobivat kirjet pole.
Välisühendusi on kolme tüüpi:
- 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 parempoolsest tabelist ei leitud ühtegi sobivat rida. Kui parempoolses tabelis ei leitud ühtegi sobivat kirjet, tagastatakse NULL.
Mõelge järgmistele kahele tabelile
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 | - |
Parem välimine liitmik (A ⟖ B)
Parempoolne ühendus tagastab kõik parempoolse tabeli veerud, isegi kui vasakpoolsest tabelist pole leitud ühtegi sobivat rida. Kui vasakpoolses tabelis ei leitud vasteid, tagastatakse NULL. RIGHT väline JOIN on vasakühenduse vastand
Oletame meie näites, et peate hankima liikmete ja nende laenutatud filmide nimed. Nüüd on meil uus liige, kes pole veel ühtegi filmi laenutanud.
AB
A ⋈ B | ||
---|---|---|
Sisse | Kuubik | ruut |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Täielik välimine liitmik (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 |
kokkuvõte
- Peamiselt on kahte tüüpi liitumisi DB-süsteemid 1) sisemine ühendus 2) välimine ühendus
- Sisemine ühendus on laialdaselt kasutatav liitumisoperatsioon ja seda võib pidada vaikeühendustüübiks.
- Inner Join jaguneb veel kolmeks alamtüübiks: 1) Teeta liitmine 2) Looduslik ühendus 3) EQUI liitumine
- Theta Join võimaldab teil liita kaks tabelit teetaga tähistatud tingimuse alusel
- Kui teeta-ühendus kasutab ainult samaväärsuse tingimust, muutub see võrdsusühenduseks.
- Looduslik liitumine ei kasuta ühtegi võrdlusoperaatorit.
- Välisliitmine ei nõua, et kahes liitmistabelis olev iga kirje omaks sobivat kirjet.
- Välimine ühendus on jagatud kolmeks alamtüübiks: 1) vasakpoolne välimine ühendus 2) parem välimine ühendus 3) täielik välimine ühendus
- LEFT Outer Join tagastab kõik vasakpoolse tabeli read, isegi kui parempoolsest tabelist pole leitud ühtegi sobivat rida.
- RIGHT Outer Join tagastab kõik parempoolse tabeli veerud, isegi kui vasakpoolsest tabelist pole leitud ühtegi sobivat rida.
- Täieliku välise liitumise korral kaasatakse tulemusesse kõik mõlema relatsiooni kordused, olenemata sobitustingimusest.