Relatsioonialgebra DBMS-is: Operanäidetega

Suhete algebra

SUHEALGEBRA on laialdaselt kasutatav protseduuriline päringukeel. See kogub sisendiks suhete esinemisjuhte ja annab väljundina suhete esinemisjuhtumeid. Selle toimingu tegemiseks kasutatakse erinevaid toiminguid. SQL Relatsioonialgebra päringutoimingud tehakse relatsioonile rekursiivselt. Nende toimingute väljundiks on uus seos, mille võib moodustada ühest või mitmest sisendseosest.

Põhiline SQL-i relatsioonialgebra Operamine

Relatsioonialgebra on jagatud erinevatesse rühmadesse

Unaarne relatsioon Operamine

  • SELECT (sümbol: σ)
  • PROJEKT (sümbol: π)
  • NIMETA ÜMBER (sümbol: ρ)

Suhete algebra Operahulgateooriast

  • LIIT (υ)
  • RISTIK ( ),
  • VAHEND (-)
  • KARTESIAANI TOODE ( x )

Binaarne relatsioon Operamine

  • LIITU
  • DIVISION

Uurime neid üksikasjalikult lahendustega:

VALI (σ)

Operatsiooni SELECT kasutatakse korteeži alamhulga valimiseks vastavalt etteantud valikutingimustele. Sigma(σ)sümbol tähistab seda. Seda kasutatakse avaldisena, et valida valiku tingimusele vastavaid kortereid. Vali operaator valib korteid, mis vastavad antud predikaadile.

σp(r)

σ on predikaat

r tähistab seost, mis on tabeli nimi

p on eessõna loogika

Näiteks 1

σ topic = "Database" (Tutorials)

Väljund – Valib Tutorials'ist korteežid, kus teema = 'Andmebaas'.

Näiteks 2

σ topic = "Database" and author = "guru99"( Tutorials)

Väljund – Valib õpetuste hulgast korteid, mille teemaks on 'Andmebaas' ja 'autoriks' on guru99.

Näiteks 3

σ sales > 50000 (Customers)

Väljund – Valib korteid klientide hulgast, kelle müük on suurem kui 50000 XNUMX

Projektsioon (π)

Projektsioon kõrvaldab kõik sisendsuhte atribuudid, välja arvatud need, mis on mainitud projektsioonide loendis. Projektsioonimeetod määratleb seose, mis sisaldab relatsiooni vertikaalset alamhulka.

See aitab välja võtta määratud atribuutide väärtused, et välistada dubleerivad väärtused. (pi) sümbolit kasutatakse relatsioonist atribuutide valimiseks. See operaator aitab teil konkreetseid veerge relatsioonist eemal hoida ja jätab teised veerud kõrvale.

Projektsiooni näide:

Kaaluge järgmist tabelit

Kliendi ID Kliendi nimi olek
1 Google aktiivne
2 Amazon aktiivne
3 õun Passiivne
4 Alibaba aktiivne

Siin kuvatakse kliendinimi ja olek

Π CustomerName, Status (Customers)
Kliendi nimi olek
Google aktiivne
Amazon aktiivne
õun Passiivne
Alibaba aktiivne

Nimeta ümber (ρ)

Ümbernimetamine on ühekordne toiming, mida kasutatakse relatsiooni atribuutide ümbernimetamiseks.

ρ (a/b)R nimetab suhte atribuudi 'b' ümber "a"-ga.

Liidu operatsioon (υ)

LIIDU sümboliseerib sümbol ∪. See hõlmab kõiki tabelis A või B olevaid kortereid. Samuti kõrvaldab see duplikaatkortereid. Seega väljendatakse komplekti A LIIT komplekti B järgmiselt:

Tulemus <- A ∪ B

Et ametiühingu toiming kehtiks, peavad kehtima järgmised tingimused:

  • R ja S peavad olema samad atribuudid.
  • Atribuutide domeenid peavad ühilduma.
  • Duplikaatkorpused tuleks automaatselt eemaldada.

Näide

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

A ∪ B annab

Tabel A ∪ B
veerg 1 veerg 2
1 1
1 2
1 3

Määra vahe (-)

– Sümbol tähistab seda. A – B tulemus on seos, mis hõlmab kõiki kortereid, mis on A-s, kuid mitte B-s.

  • A atribuudi nimi peab ühtima B atribuudi nimega.
  • Kahe operandi seosed A ja B peaksid olema kas ühilduvad või liiduga ühilduvad.
  • See peaks olema defineeritud seos, mis koosneb korteežidest, mis on relatsioonis A, kuid mitte B.

Näide

A-B
Tabel A–B
veerg 1 veerg 2
1 2

Ristmik

Ristmik on määratletud sümboliga ∩

A ∩ B

Määratleb relatsiooni, mis koosneb kõigist nii A-s kui ka B-s olevate korteežide hulgast. Siiski peavad A ja B olema ühendusega ühilduvad.

Ristmik
Ristmiku visuaalne definitsioon

Näide:

A ∩ B
Tabel A ∩ B
veerg 1 veerg 2
1 1

Descartes'i toode (X) DBMS-is

Descartes'i toode DBMS-is on operatsioon, mida kasutatakse kahe seose veergude liitmiseks. Üldjuhul ei ole karteesiline toode kunagi mõtekas toiming, kui see toimib üksi. See muutub aga tähendusrikkaks siis, kui sellele järgnevad muud toimingud. Seda nimetatakse ka Cross Product või Cross Join.

Näide – Descartes'i toode

σ veerg 2 = "1" (AXB)

Väljund – ülaltoodud näide näitab kõiki relatsiooni A ja B ridu, mille veeru 2 väärtus on 1

σ veerg 2 = '1' (AXB)
veerg 1 veerg 2
1 1
1 1

Liitu Operamine

Ühinemisoperatsioon on sisuliselt ristkoormustoode, millele järgneb valikukriteerium.

Ühendusoperatsioon, mida tähistab ⋈.

JOIN-operatsioon võimaldab ka ühendada erinevatest suhetest erinevalt seotud kortereid.

LIITUMISE tüübid:

Erinevad liitumisoperatsiooni vormid on:

Sisemised ühendused:

  • Teeta liituda
  • EQUI liitumine
  • Loomulik liitumine

Väline ühendus:

  • Vasakpoolne välimine liitekoht
  • Parempoolne ühendus
  • Täielik väline liitumine

Sisemine liitumine

Sisemises liitumises kaasatakse ainult need korteežid, mis vastavad sobitamiskriteeriumidele, ülejäänud jäetakse välja. Uurime erinevaid siseühenduste tüüpe:

Teeta Liitu

JOIN operatsiooni üldist juhtumit nimetatakse teeta liitumiseks. Seda tähistatakse sümboliga θ

Näide

A ⋈θ B

Teeta liitumine võib valikukriteeriumides kasutada mis tahes tingimusi.

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 liitumine

Kui teeta-ühendus kasutab ainult samaväärsuse tingimust, muutub see võrdsusühenduseks.

Näiteks:

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

EQUI liitumine on kõige keerulisem toimingud, mida RDBMS-is SQL-i abil tõhusalt rakendada ja üks põhjus, miks RDBMS neil on olulisi jõudlusprobleeme.

LOODUSLIK LIITUMINE (⋈)

Loomulikku liitumist saab teostada ainult siis, kui seoste vahel on ühine atribuut (veerg). Atribuudi nimi ja tüüp peavad olema samad.

Näide

Kaaluge kahte järgmist tabelit

C
Sisse ruut
2 4
3 9
D
Sisse Kuubik
2 8
3 27
C ⋈ D
C ⋈ D
Sisse ruut Kuubik
2 4 8
3 9 27

VÄLIS LIITUMINE

Välises liitumises kaasame koos sobitamiskriteeriumitele vastavate korteežide hulka ka mõned või kõik korteežid, mis kriteeriumidele ei vasta.

Vasakpoolne välimine liitmik (A–B)

Vasakpoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid vasakpoolses seoses. Kui aga õiges relatsioonis sobivat korteeži ei leidu, täidetakse õige seose atribuudid liitmise tulemuses nullväärtustega.

Vasakpoolne välimine liitekoht

Mõelge järgmistele kahele tabelile

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 -

Parem välimine liitmik (A ⟖ B)

Parempoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid õiges suhtes. Kui aga vasakpoolses relatsioonis ei leidu sobivat korteeži, täidetakse vasakpoolse seose atribuudid liitmise tulemuses nullväärtustega.

Parempoolne ühendus

A Right Outer Join B
A ⋈ B
Sisse Kuubik ruut
2 8 4
3 18 9
5 75 -

Täielik välimine liitmik (A⟗B)

Täieliku välise liitumise korral kaasatakse tulemusesse kõik mõlema relatsiooni kordused, olenemata sobitustingimusest.

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

kokkuvõte

Operating (sümbolid) Eesmärk
Vali (σ) Operatsiooni SELECT kasutatakse korteeži alamhulga valimiseks vastavalt etteantud valikutingimustele
Projektsioon (π) Projektsioon kõrvaldab kõik sisendsuhte atribuudid, välja arvatud need, mis on mainitud projektsioonide loendis.
Liit Operasioon (∪) LIIDU sümboliseerib sümbol. See hõlmab kõiki tabelis A või B olevaid kortereid.
Määra vahe (-) – Sümbol tähistab seda. A – B tulemus on seos, mis hõlmab kõiki kortereid, mis on A-s, kuid mitte B-s.
Ristmik (∩) Ristmik defineerib seose, mis koosneb kõigist nii A-s kui ka B-s olevate korteežide hulgast.
Descartes'i toode (X) Descartes'i operatsioonist on abi kahe seose veergude liitmisel.
Sisemine liitumine Sisemine liitumine, sisaldab ainult neid kortereid, mis vastavad sobitamiskriteeriumidele.
Teeta liitumine (θ) JOIN operatsiooni üldist juhtumit nimetatakse teeta liitumiseks. Seda tähistatakse sümboliga θ.
EQUI Liitu Kui teeta-ühendus kasutab ainult samaväärsuse tingimust, muutub see võrdsusühenduseks.
Loomulik liitumine (⋈) Loomulikku liitumist saab teostada ainult siis, kui seoste vahel on ühine atribuut (veerg).
Väline liitumine Välimises ühenduses koos sobitamiskriteeriumitele vastavate korteežidega.
Vasakpoolne ühendus (Vasakpoolne välimine liitekoht) Vasakpoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid vasakpoolses seoses.
Parem välimine liitumine(Parempoolne ühendus) Parempoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid õiges suhtes.
Täielik välimine liitumine (Täielik väline liitumine) Täieliku välise liitumise korral kaasatakse tulemusesse kõik korteid mõlemast relatsioonist, olenemata sobivuse tingimusest.

Võta see postitus kokku järgmiselt: