Relatsioonialgebra andmebaasisüsteemides koos näidetega

⚡ Nutikas kokkuvõte

Andmebaasihaldussüsteemide relatsioonialgebra on protseduraalne päringukeel, mis võtab sisendiks relatsioonid ja loob väljundiks uued relatsioonid. See rühmitab operaatorid unaarseteks, hulgalisteks ja binaarseteks kategooriateks, pakkudes teoreetilise aluse, mille SQL-mootorid teisendavad käivitatavateks päringuplaanideks.

  • 🔍 Alustage unaarsete operaatoritega: SELECT, PROJECT ja RENAME abil saab ühe seose ridu filtreerida, veerge valida ja atribuute ümber nimetada.
  • 📚 Rakenda hulgateooriat: ÜHEND, RISTKUMUS, VAHEKORD ja CARTESIUSE KORUTISE abil saab moodustada uusi tulemusi.
  • 🔗 Liitu teadlikult: Theta, Equi ja Natural ühendused käsitlevad sisemisi vasteid, samas kui Left, Right ja Full Outer ühendused säilitavad vasteteta tuupleid nullväärtustega.
  • 📐 Kellade ühilduvus: Enne mis tahes määramis- või ühendamistoimingut veenduge alati, et atribuudinimed, atribuudid ja domeenid on joondatud.
  • 🤖 Kasutage tõlkimiseks tehisintellekti: Tehisintellekti assistendid teisendavad algebralised avaldised SQL-iks, selgitavad operaatorite eelistust ja märgistavad puuduvad liitumistingimused lihtsas inglise keeles.

Relatsioonialgebra DBMS-is

Mis on relatsioonialgebra?

Suhete algebra on protseduraalne päringukeel, mis võtab sisendina vastu relatsioonide eksemplare ja tagastab väljundina uued relatsioonide eksemplarid. See rakendab ühele või mitmele relatsioonile rekursiivselt fikseeritud operaatorite komplekti ning iga operaatori tulemus on ise relatsioon, mida saab sisestada järgmisse operatsiooni. SQL-mootorid toetuvad sellele algebrale päringute planeerimisel ja täitmisel.

Relatsioonialgebra põhitõed Operamine

Relatsioonalgebra operaatorid jagunevad kolme rühma.

Unaarne relatsioon Operamine

  • VALI (σ)
  • PROJEKT (π)
  • NIMETA ÜMBER (ρ)

Operahulgateooria

  • LIIT (∪)
  • RISTUMINE (∩)
  • VAH (−)
  • Cartesiuse korrutis (×)

Binaarne relatsioon Operamine

  • LIITU
  • DIVISION

Allolevates osades tutvustatakse iga operaatorit koos näidetega.

VALI (σ)

. SELECT operatsioon valib alamhulga tuupleid, mis vastavad antud predikaadile. Sigma sümbol σ tähistab seda:

σp(r)

kus σ on operaator, p on propositsiooniline tingimus ja r on seos (tabel). SELECT säilitab skeemi ja loobub read, mis predikaadile ei vasta.

Näiteks 1

σ topic = "Database" (Tutorials)

Valib tuupleid järgmistest allikatest: Tutorials kus teema võrdub „Andmebaasiga”.

Näiteks 2

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

Valib tuupleid järgmistest allikatest: Tutorials kus teema on „Andmebaas” ja autor on guru99.

Näiteks 3

σ sales > 50000 (Customers)

Valib tuupleid järgmistest allikatest: Kliendid mille müügiväärtus on üle 50 000.

Projektsioon (π)

. projektsioon operaator eemaldab sisendrelatsioonist kõik atribuudid peale loetletud atribuudid, luues vertikaalse alamhulga. Projektsioon kõrvaldab ka duplikaatread, mis tulenevad _drop_-i_ eemaldamisest.ping atribuudid. Pii-sümbol π tähistab seda.

Näide: kaaluge järgmist tabelit.

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

KliendiNime ja staatuse põhjal prognoosimine:

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

Nimeta ümber (ρ)

. ümber operaator on unaarne operatsioon, mis annab atribuudile (või tervele seosele) uue nime. Näiteks ρ(a/b) R atribuudi ümbernimetamine b suhtest R et aÜmbernimetamine on eriti kasulik siis, kui teil on vaja teha iseliitumist või ühendada kaks relatsiooni, millel on samad atribuudinimed.

Liit Operatsioon (∪)

. LIIDU operaator, mida tähistatakse kui , tagastab iga tuuple, mis esineb kas relatsioonis A või relatsioonis B, eemaldades automaatselt duplikaadid.

Result ← A ∪ B

Et liit oleks kehtiv:

  • A-l ja B-l peab olema sama arv atribuute (sama atribuutide arv).
  • Vastavad atribuudidomeenid peavad olema ühilduvad.
  • Topeltnumbrid eemaldatakse automaatselt.

Näide Mõelge neile kahele tabelile:

Tabel A. Tabel B
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 erinevus (−)

Miinusmärk tähistab seti vaheTulemus A − B on seos, mis sisaldab kõiki tuupleid, mis asuvad hulgas A, aga mitte hulgas B.

  • A ja B peavad olema ametiühinguga ühilduvad.
  • Atribuutide nimed ja domeenid peavad olema joondatud.

Näide: A − B

veerg 1 veerg 2
1 2

Ristmik (∩)

. ristmik operaator, mida tähistatakse kui , defineerib seose, mis sisaldab iga paari, mis esineb nii A-s kui ka B-s. A ja B peavad olema ühendusega ühilduvad.

Ristmiku visuaalne määratlus

Ristmiku visuaalne määratlus.

Näide: A ∩ B

veerg 1 veerg 2
1 1

Descartesi korrutis (×) andmebaasihaldussüsteemis

. Descartes'i toode ühendab ühe seose iga tuupi iga teise seose iga tuupiga, liites nende veerud. Tulemus iseenesest on harva kasulik, kuid kombineerituna SELECT-predikaadiga saab sellest JOIN-i alus. Seda nimetatakse ka ristkorrutiseks või ristliitumiseks.

Näide: σ veerg 2 = '1' (A × B)

Avaldis tagastab iga rea A × B kelle column 2 väärtus on 1.

veerg 1 veerg 2
1 1
1 1

Liitu Operamine

A liituma on Cartesiuse korrutis, millele järgneb valiku predikaat. Ühendusi tähistatakse kui sümbol ja võimaldavad teil erinevate relatsioonide seotud tuupleid mõtestatud viisil kombineerida.

Liitumistüübid:

  • Sisemised ühendused: Teetaliitumine, võrdväärne liitmine, loomulik liitmine.
  • Välised ühendused: Vasak-, parem- ja täielik välimine ühendus.

Sisemine liitumine

Aastal sisemine liitumine, kaasatakse ainult need paarid, mis vastavad sobivuskriteeriumidele; ülejäänud jäetakse kõrvale.

Teeta Liitu

JOIN-i üldine vorm on Teeta liituda, tähistatud kui θ. Teetaliit saab oma valikukriteeriumides kasutada mis tahes võrdlustingimust.

A ⋈θ B

Näiteks:

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

Equi Join

Kui teetaliit kasutab ainult võrdustingimusi, muutub see Equi-liitumine.

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

Equijoin on üks enimkasutatud liitmisstiile ja RDBMS Päringu optimeerija näeb tavaliselt märkimisväärselt vaeva, et see oleks tõhus.

Loomulik liitumine (⋈)

A Loomulik liitumine nõuab relatsioonide vahel ühist atribuuti (veergu). Jagatud atribuudil peab olema sama nimi ja domeen. Tulemuseks on üks koopia vastavast veerust.

Mõelge neile kahele tabelile.

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

C ⋈ D toodab:

Sisse ruut Kuubik
2 4 8
3 9 27

Väline liitumine

An välimine ühendus hoiab alles paarid, mis vastavad sobivuskriteeriumidele ja tuuplid, mis seda ei tee, täites puuduvad veerud NULL-iga.

Vasakpoolne välimine liitmik (A–B)

Vasakpoolne välimine ühendus hoiab iga tuupli vasakpoolses seoses. Kui rea A puhul ei ole B-s vastavat rida, täidetakse B poolt lisatud atribuudid NULL-iga.

Vasakpoolne välimine liitekoht

Vaatleme järgmisi tabeleid:

Tabel A.
Sisse ruut
2 4
3 9
4 16
Tabel B
Sisse Kuubik
2 8
3 18
5 75

A ⟕ B annab:

Sisse ruut Kuubik
2 4 8
3 9 18
4 16 NULL

Parempoolne välimine ühendus (A ⟖ B)

Parempoolne välimine ühendus hoiab iga tuupli õiges seoses. Kui B real pole A-s vastavat rida, täidetakse A poolt lisatud veerud NULL-iga.

Parempoolne ühendus

A ⟖ B annab:

Sisse Kuubik ruut
2 8 4
3 18 9
5 75 NULL

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

Täielik välimine ühendus eemaldab iga paarilise mõlemast relatsioonist, olenemata sellest, kas liitumistingimus vastas. Mõlemal poolel puuduvad väärtused muutuvad NULL-iks.

A ⟗ B annab:

Sisse ruut Kuubik
2 4 8
3 9 18
4 16 NULL
5 NULL 75

OperaTori viite kokkuvõte

Selle tabeli abil saate lühidalt meelde tuletada, mida iga operaator teeb.

Operatsioon (sümbol) Eesmärk
VALI (σ) Valib alamhulga tuupleid, mis vastavad antud predikaadile.
PROJEKT (π) Säilitab ainult loetletud atribuudid ja eemaldab duplikaatread.
LIIT (∪) Tagastab kõik A-s või B-s esinevad duplikaadid.
MÄÄRA VAH (−) Tagastab A-s olevad tuupled, mis ei kuulu B-sse.
RISTUMINE (∩) Tagastab nii A-s kui ka B-s esinevad tuupled.
Cartesiuse korrutis (×) Kombineerib iga A-duupli iga B-duupliga.
INNER JOIN Säilitab ainult need tuupled, mis vastavad liitumistingimusele.
TEETA LIITUMISE (θ) Üldvormis liitmine mis tahes võrdluspredikaadi abil.
EQUI LIITUMISE Teetaliitumine, mis kasutab ainult võrdusvõrdlusi.
LOODUSLIK LIITUMINE (⋈) Ühendab atribuutide alusel seoseid, millel on sama nimi ja domeen.
VASAK VÄLIMINE LIIT (⟕) Säilitab vasakpoolse seose kõik paarid, täidab parema NULL-iga.
PAREM VÄLIMINE LIIT (⟖) Hoiab iga paarilise õigest seosest, täidab vasaku NULL-iga.
TÄIELIK VÄLINE LIITUMINEN (⟗) Säilitab iga paarisarvu mõlemast relatsioonist, täites puuduvad väärtused NULL-iga.

KKK

Relatsioonialgebra on protseduraalne matemaatiline keel, mida kasutatakse relatsioonidega tehtavate toimingute defineerimiseks. SQL on deklaratiivne päringukeel, mille andmebaasimootorid tõlgivad sisemiselt algebralaadseteks täitmisplaanideks.

Kaks relatsiooni on liitumisühilduvad, kui neil on sama arv atribuute ja iga vastav atribuut jagab sama domeeni. UNION, INTERSECTION ja DIFFERENCE kõik nõuavad liitumisühilduvust.

Cartesiuse korrutis korrutab iga A rea iga B reaga, tekitades tohutud vaheseosed, millel pole suurt tähendust. Tavaliselt järgneb sellele SELECT-predikaat, mis muudab selle kasulikuks liitmiseks.

Ei. Puhas relatsioonalgebra käsitleb relatsioone hulkudena, seega eemaldatakse duplikaadid automaatselt pärast iga operatsiooni. SQL käitub teisiti – see töötab multihulkade puhul ja eemaldab duplikaadid ainult siis, kui kasutatakse funktsiooni DISTINCT.

DIVISION operaator vastab päringutele „kõigile” – näiteks leiab kliendid, kes tellisid kõik kataloogis olevad tooted. See tagastab ühe seose tuuplid, mis vastavad igale teise seose tuuplile.

Kasutage välimist ühendust, kui katmata ridadel on endiselt tähendus – näiteks iga kliendi loetlemine koos valikuliste tellimusandmetega. Sisemised ühendused eemaldavad need katmata read; välised ühendused säilitavad need NULL-täiteväärtustega.

Tehisintellekti assistendid tõlgivad algebralised avaldised SQL-i ja tagasi, selgitavad operaatorite eelistust samm-sammult ja märgistavad puuduvad liitumispredikaadid, mis muidu muudaksid päringu aeglaseks Cartesiuse korrutiseks.

Jah. Tehisintellekti tööriistad muudavad lihtsad inglise keele küsimused, näiteks „India kliendid, kes ostsid kõik tooted“, algebralisteks puudeks SELECT, PROJECT ja DIVISION operaatorite abil ning seejärel teisendavad need käivitatavaks SQL-iks.

Võta see postitus kokku järgmiselt: