DBMS-i liitumised: sisemine, vasakpoolne, THETA-tüüpi liitumisoperatsioonide tüübid

Lang L: none (table-of-contents):

Anonim

Mis on liitumine DBMS-is?

DBMS- is liitumine on binaarne toiming, mis võimaldab teil ühendada toote ja valiku ühes avalduses. Liitumistingimuse loomise eesmärk on, et see aitaks teil kombineerida kahe või enama DBMS-i tabeli andmed. DBMS-i tabelid on seotud esmase võtme ja võõrvõtmetega.

Selles DBMS-i õpetuses saate teada:

  • Liitumise tüübid
  • Sisemine liitumine
    • Theta Liitu
    • EQUI liitumine:
    • Loomulik liitumine (⋈)
  • Väline liitumine
    • Vasakpoolne välimine liitumine (A B)
    • Parem välimine liitumine (A B)
    • Täielik välimine liitumine (A B)

Liitumise tüübid

DBMS-is on peamiselt kahte tüüpi liitumisi:

  1. Sisemised liitumised: teeta, looduslik, EQUI
  2. Välimine liitumine: vasak, parem, täis

Vaatame neid üksikasjalikult:

Sisemine liitumine

INNER JOIN kasutatakse mõlema tabeli ridade tagastamiseks, mis vastavad antud tingimusele. See on kõige sagedamini kasutatav liitumisoperatsioon ja seda saab pidada vaikimisi ühendamise tüübiks

Sisemine liitumine ehk equijoin on võrdluspõhine liitmine, mis kasutab liitumispredikaadis võrdõiguslikkuse võrdlusi. Kui aga kasutate muid võrdlusoperaatoreid, näiteks ">", ei saa seda nimetada equijoiniks.

Sisemine liitumine jaguneb veel kolmeks alamtüübiks:

  • Theta liituda
  • Loomulik liitumine
  • EQUI liituvad

Theta Liitu

THETA JOIN võimaldab teil ühendada kaks tabelit teeta kujutatud tingimuse põhjal. Theta liitub kõigi võrdlusoperaatorite tööga. Seda tähistatakse sümboliga θ . JOIN-operatsiooni üldist juhtumit nimetatakse Theta-ühenduseks.

Süntaks:

A ⋈θ B

Teeta liitumisel saab valikukriteeriumides kasutada mis tahes tingimusi.

Mõelge järgmistele tabelitele.

Tabel A. Tabel B
1. veerg 2. veerg 1. veerg 2. veerg
1 1 1 1
1 2 1 3

Näiteks:

A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. veerg 2> B. veerg 2 (B)
1. veerg 2. veerg
1 2

EQUI Liitu

EQUI JOIN tehakse siis, kui Theta liitumine kasutab ainult samaväärsuse tingimust. EQUI liitumine on RDBMS-is kõige raskem tõhusalt rakendatav toiming ja üks põhjus, miks RDBMS-il on olulisi jõudlusprobleeme.

Näiteks:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. veerg 2 = B. veerg 2 (B)
1. veerg 2. veerg
1 1

Loomulik liitumine (⋈)

NATURAL JOIN ei kasuta ühtegi võrdlusoperaatorit. Seda tüüpi liitumisel peaksid atribuutidel olema sama nimi ja domeen. Rakenduses Natural Join peaks kahe suhte vahel olema vähemalt üks ühine atribuut.

See teostab valikut, moodustades võrdsuse nende tunnuste puhul, mis esinevad mõlemas suhetes, ja välistab duplikaatatribuudid.

Näide:

Mõelge järgmisele kahele tabelile

C
Num Ruut
2 4
3 9
D
Num Kuup
2 8
3 18
C ⋈ D
C ⋈ D
Num Ruut Kuup
2 4 8
3 9 18

Väline liitumine

Välimine liituda ei nõua iga kirje kahe liituda tabeleid kattuvat rekord. Seda tüüpi liitumisel säilitab tabel iga kirje, isegi kui muud sobivat kirjet pole.

Kolm tüüpi väliseid liitumisi on:

  • Vasakpoolne välimine liitumine
  • Õige välimine liitumine
  • Täielik väline liitumine

Vasakpoolne välimine liitumine (A B)

LEFT JOIN tagastab vasakul olevast tabelist kõik read, isegi kui paremal olevast tabelist pole ühtegi vastavat rida leitud. Kui paremal olevast tabelist ühtegi kirjet ei leitud, tagastatakse NULL.

Mõelge järgmisele 2 tabelile

A
Num Ruut
2 4
3 9
4 16
B
Num Kuup
2 8
3 18
5 75
A  B
A ⋈ B
Num Ruut Kuup
2 4 8
3 9 18
4 16 -

Parem välimine liitumine (A B)

RIGHT JOIN tagastab parempoolse tabeli kõik veerud, isegi kui vasakpoolses tabelis pole ühtegi vastavat rida. Kui vasakpoolses tabelis pole vasteid leitud, tagastatakse NULL. PAREM välimine liitumine on vastand vasakule liitumisele

Oletame, et meie näites peate hankima nende renditud liikmete nimed ja filmid. Nüüd on meil uus liige, kes pole veel ühtegi filmi rentinud.

A  B
A ⋈ B
Num Kuup Ruut
2 8 4
3 18 9
5 75 -

Täielik välimine liitumine (A B)

Ühes FULL välimine liituda kõik tuples nii suhted kuuluvad tulemus, sõltumata sobitamise seisukorras.

Näide:

A  B
A ⋈ B
Num Ruut Kuup
2 4 8
3 9 18
4 16 -
5 - 75

Kokkuvõte:

  • DBMS-is on peamiselt kahte tüüpi liitumisi: 1) sisemine liitumine 2) välimine liitumine
  • Sisemine ühendamine on laialt kasutatav liitumisoperatsioon ja seda saab pidada vaikimisi ühendamise tüübiks.
  • Sisemine liitumine jaguneb veel kolmeks alamtüübiks: 1) teetaühendus 2) loomulik liitumine 3) EQUI liitumine
  • Teetaühendamine võimaldab teil ühendada kaks tabelit teeta kujutatud tingimuse põhjal
  • Kui teetaühendus kasutab ainult ekvivalentsustingimust, muutub see ekviühenduseks.
  • Loomuliku ühendamise korral ei kasutata ühtegi võrdlusoperaatorit.
  • Väline liitmine ei nõua, et igal kahel liitumistabelis oleval kirjel oleks vastav kirje.
  • Välimine liitumine jaguneb veel kolmeks alamtüübiks: 1) vasakpoolne välimine liitumine 2) parem välimine liitumine 3) täielik välimine liitumine
  • VASAK Outer Join tagastab vasakul olevast tabelist kõik read, isegi kui paremal olevast tabelist pole ühtegi vastavat rida leitud.
  • Parempoolne välimine liitmine tagastab parempoolse tabeli kõik veerud, isegi kui vasakul olevast tabelist pole leitud ühtegi rida.
  • Täieliku välimise ühendamise korral kaasatakse tulemusse kõik mõlema suhte hulgad, sõltumata sobitamise tingimusest.