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 | aktiivne | |
| 2 | Amazon | aktiivne |
| 3 | õun | Passiivne |
| 4 | Alibaba | aktiivne |
Siin kuvatakse kliendinimi ja olek
Π CustomerName, Status (Customers)
| Kliendi nimi | olek |
|---|---|
| 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.
| veerg 1 | veerg 2 | veerg 1 | veerg 2 | |
|---|---|---|---|---|
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A ∪ B annab
| 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
| 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.

Näide:
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 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)
| 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)
| 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
| Sisse | ruut |
|---|---|
| 2 | 4 |
| 3 | 9 |
| Sisse | Kuubik |
|---|---|
| 2 | 8 |
| 3 | 27 |
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.
Mõelge järgmistele kahele tabelile
| Sisse | ruut |
|---|---|
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| Sisse | Kuubik |
|---|---|
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| 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.
AB
| 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.
AB
| 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 ( |
Vasakpoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid vasakpoolses seoses. |
| Parem välimine liitumine( |
Parempoolses välimises ühenduses võimaldab operatsioon hoida kõiki kortereid õiges suhtes. |
| Täielik välimine liitumine ( |
Täieliku välise liitumise korral kaasatakse tulemusesse kõik korteid mõlemast relatsioonist, olenemata sobivuse tingimusest. |


