Relacijska algebra u DBMS-u s primjerima

โšก Pametni saลพetak

Relacijska algebra u DBMS-u je proceduralni jezik upita koji uzima relacije kao ulaz i proizvodi nove relacije kao izlaz. Grupira operatore u unarne, skupne i binarne kategorije, pruลพajuฤ‡i teorijsku osnovu koju SQL mehanizmi prevode u izvrลกne planove upita.

  • ๐Ÿ” Poฤnite s unarnim operatorima: SELECT, PROJECT i RENAME filtriraju retke, odabiru stupce i preimenuju atribute na jednoj relaciji.
  • ๐Ÿ“š Primijenite teoriju skupova: UNIJA, PRESJEK, RAZLIKA i KARTEZIJEV PROIZVOD kombiniraju relacije kompatibilne s unijom u nove rezultate.
  • ๐Ÿ”— Namjerno se pridruลพite: Theta, Equi i Natural spojevi obraฤ‘uju unutarnja podudaranja, dok Left, Right i Full Outer spojevi zadrลพavaju nepodudarne tuple s null vrijednostima.
  • ๐Ÿ“ Kompatibilnost sata: Uvijek provjerite da se arnost, nazivi atributa i domene poravnavaju prije bilo koje operacije skupa ili unije.
  • ๐Ÿค– Koristite umjetnu inteligenciju za prevoฤ‘enje: AI asistenti pretvaraju algebarske izraze u SQL, objaลกnjavaju prioritet operatora i oznaฤavaju nedostajuฤ‡e uvjete spajanja jednostavnim jezikom.

Relacijska algebra u DBMS-u

ล to je relacijska algebra?

Relacijska algebra je proceduralni jezik za upite koji prihvaฤ‡a instance relacija kao ulaz i vraฤ‡a nove instance relacija kao izlaz. Rekurzivno primjenjuje fiksni skup operatora na jednu ili viลกe relacija, a rezultat svakog operatora je sam po sebi relacija koja se moลพe unijeti u sljedeฤ‡u operaciju. SQL mehanizmi se oslanjaju na ovu algebru za planiranje i izvrลกavanje upita.

Osnovna relacijska algebra Operama

Operatori relacijske algebre spadaju u tri skupine.

Unarni relacijski Operama

  • ODABIR (ฯƒ)
  • PROJEKT (ฯ€)
  • PREIMENUJ (ฯ)

Operacije iz teorije skupova

  • UNIJA (โˆช)
  • SJEฤŒIล TE (โˆฉ)
  • RAZLIKA (โˆ’)
  • KARTEZIJEV PROIZVOD (ร—)

Binarna relacija Operama

  • PRIDRUลฝITE
  • PODJELA

U donjim odjeljcima prikazani su svi operatori s primjerima obrade.

ODABIR (ฯƒ)

The SELECT Operacija odabire podskup n-torki koje zadovoljavaju zadani predikat. Simbol sigme ฯƒ oznaฤava ga:

ฯƒp(r)

gdje ฯƒ je operater, p je propozicijski uvjet, i r je relacija (tablica). SELECT ฤuva shemu i odbacuje retke koji ne zadovoljavaju predikat.

Primjer 1

ฯƒ topic = "Database" (Tutorials)

Odabire n-torke iz Tutoriali gdje je tema jednaka โ€žBaza podatakaโ€œ.

Primjer 2

ฯƒ topic = "Database" AND author = "guru99" (Tutorials)

Odabire n-torke iz Tutoriali gdje je tema โ€žBaza podatakaโ€œ, a autor je guru99.

Primjer 3

ฯƒ sales > 50000 (Customers)

Odabire n-torke iz Kupci ฤija je prodajna vrijednost veฤ‡a od 50,000.

Projekcija (ฯ€)

The projekcija Operator uklanja svaki atribut iz ulazne relacije osim onih navedenih, stvarajuฤ‡i vertikalni podskup. Projekcija takoฤ‘er eliminira duplicirane retke koji nastaju zbog ispuลกtanjaping atributi. Simbol pi ฯ€ oznaฤava ga.

Primjer: razmotrite sljedeฤ‡u tablicu.

ID kupca Ime kupca Status
1 Google Aktivan
2 Amazon Aktivan
3 jabuka neaktivan
4 Alibi Aktivan

Projekcija na temelju imena i statusa kupca:

ฯ€ CustomerName, Status (Customers)
Ime kupca Status
Google Aktivan
Amazon Aktivan
jabuka neaktivan
Alibi Aktivan

Preimenuj (ฯ)

The preimenovati operator je unarna operacija koja daje novo ime atributu (ili cijeloj relaciji). Na primjer, ฯ(a/b) R preimenuje atribut b odnosa R do aPreimenovanje je posebno korisno kada trebate izvrลกiti samospajanje ili spajanje dviju relacija koje dijele nazive atributa.

Unija Operacija (โˆช)

The UNIJA operator, oznaฤen s โˆช, vraฤ‡a svaku n-torku koja se pojavljuje u relaciji A ili relaciji B, automatski uklanjajuฤ‡i duplikate.

Result โ† A โˆช B

Da bi sindikat bio valjan:

  • A i B moraju imati isti broj atributa (istu arnost).
  • Odgovarajuฤ‡e domene atributa moraju biti kompatibilne.
  • Duplikati se automatski uklanjaju.

Primjer. Razmotrite ove dvije tablice:

Tablica A Tablica B
stupac 1 stupac 2 stupac 1 stupac 2
1 1 1 1
1 2 1 3

A โˆช B daje:

stupac 1 stupac 2
1 1
1 2
1 3

Razlika skupova (โˆ’)

Simbol minus oznaฤava razlika u setovimaRezultat A โˆ’ B je relacija koja sadrลพi sve ntorke koje se nalaze u A, ali ne i u B.

  • A i B moraju biti kompatibilni sa unijom.
  • Imena atributa i domene moraju se poravnati.

Primjer: A โˆ’ B

stupac 1 stupac 2
1 2

Presjeciลกte (โˆฉ)

The kriลพanje operator, oznaฤen s โˆฉ, definira relaciju koja sadrลพi svaku n-torku koja se pojavljuje i u A i u B. A i B moraju biti kompatibilni s unijom.

Vizualna definicija raskriลพja

Vizualna definicija raskriลพja.

Primjer: A โˆฉ B

stupac 1 stupac 2
1 1

Kartezijev produkt (ร—) u DBMS-u

The Kartezijanski produkt kombinira svaku n-torku jedne relacije sa svakom n-torkom druge, spajajuฤ‡i njihove stupce. Sam po sebi rezultat rijetko je koristan, ali u kombinaciji s SELECT predikatom postaje temelj JOIN-a. Takoฤ‘er se naziva vektorski produkt ili kriลพni spoj.

Primjer: ฯƒ stupac 2 = '1' (A ร— B)

Izraz vraฤ‡a svaki redak od A ร— B ฤije column 2 vrijednost je 1.

stupac 1 stupac 2
1 1
1 1

Pridruลพite se Operama

A pridruลพi je Kartezijev produkt nakon kojeg slijedi predikat odabira. Spojevi su oznaฤeni s โ‹ˆ simbol i omoguฤ‡uju vam kombiniranje povezanih tuplesa iz razliฤitih relacija na smislen naฤin.

Vrste spajanja:

  • Unutarnji spojevi: Theta spajanje, Equi spajanje, Prirodno spajanje.
  • Vanjski spojevi: Lijevi, desni i potpuno vanjski spojevi.

Unutarnje pridruลพivanje

U unutarnji spoj, ukljuฤene su samo n-torke koje zadovoljavaju kriterije podudaranja; ostale se odbacuju.

Theta Pridruลพite se

Opฤ‡i oblik JOIN-a je Theta spoj, oznaฤeno s ฮธ. Theta spoj moลพe koristiti bilo koji uvjet usporedbe u svojim kriterijima odabira.

A โ‹ˆฮธ B

Na primjer:

A โ‹ˆ A.column 2 > B.column 2 (B)
stupac 1 stupac 2
1 2

Pridruลพi se

Kada Theta spoj koristi samo uvjete jednakosti, postaje Jednako pridruลพivanje.

A โ‹ˆ A.column 2 = B.column 2 (B)
stupac 1 stupac 2
1 1

Equi join je jedan od najฤeลกฤ‡e koriลกtenih stilova spajanja, a RDBMS Optimizator upita obiฤno ulaลพe znaฤajan trud kako bi bio uฤinkovit.

Prirodni spoj (โ‹ˆ)

A Prirodno spajanje Zahtijeva zajedniฤki atribut (stupac) izmeฤ‘u relacija. Zajedniฤki atribut mora imati isto ime i domenu. Rezultat sadrลพi jednu kopiju odgovarajuฤ‡eg stupca.

Razmotrite ove dvije tablice.

Tablica C
U Kvadratni
2 4
3 9
Tablica D
U Kocka
2 8
3 27

C โ‹ˆ D proizvodi:

U Kvadratni Kocka
2 4 8
3 9 27

Vanjsko pridruลพivanje

An vanjski spoj ฤuva ntorke koje zadovoljavaju kriterije podudaranja i n-torke koje to ne ฤine, popunjavajuฤ‡i nedostajuฤ‡e stupce s NULL.

Lijevi vanjski spoj (A โŸ• B)

Lijevi vanjski spoj zadrลพava svaku n-torku u lijevoj relaciji. Ako redak u A nema odgovarajuฤ‡i redak u B, atributi koje doprinosi B popunjavaju se s NULL.

Lijevi vanjski spoj

Razmotrite sljedeฤ‡e tablice:

Tablica A
U Kvadratni
2 4
3 9
4 16
Tablica B
U Kocka
2 8
3 18
5 75

A โŸ• B daje:

U Kvadratni Kocka
2 4 8
3 9 18
4 16 NULL

Desni vanjski spoj (A โŸ– B)

Desni vanjski spoj odrลพava svaku n-torku u desnoj relaciji. Ako redak u B nema odgovarajuฤ‡i redak u A, stupci koje doprinosi A popunjavaju se s NULL.

Desni vanjski spoj

A โŸ– B daje:

U Kocka Kvadratni
2 8 4
3 18 9
5 75 NULL

Potpuni vanjski spoj (A โŸ— B)

Potpuni vanjski spoj zadrลพava svaku n-torku iz obje relacije, bez obzira na to je li uvjet spajanja ispunjen. Nedostajuฤ‡e vrijednosti na bilo kojoj strani postaju NULL.

A โŸ— B daje:

U Kvadratni Kocka
2 4 8
3 9 18
4 16 NULL
5 NULL 75

OperaSaลพetak reference Tora

Pomoฤ‡u ove referentne tablice moลพete se na prvi pogled prisjetiti ลกto svaki operator radi.

Operacija (Simbol) Svrha
ODABIR (ฯƒ) Odabire podskup tupleova koji zadovoljavaju zadani predikat.
PROJEKT (ฯ€) Zadrลพava samo navedene atribute i uklanja duplicirane retke.
UNIJA (โˆช) Vraฤ‡a svaku n-torku koja se pojavljuje u A ili B bez duplikata.
POSTAVI RAZLIKU (โˆ’) Vraฤ‡a n-torke u A koje nisu u B.
SJEฤŒIล TE (โˆฉ) Vraฤ‡a n-torke koje se pojavljuju i u A i u B.
KARTEZIJEV PROIZVOD (ร—) Kombinira svaku torkicu A sa svakom torkicom B.
INNER JOIN Zadrลพava samo n-torke koje odgovaraju uvjetu spajanja.
THETA SPOJ (ฮธ) Opฤ‡enito spajanje pomoฤ‡u bilo kojeg predikata usporedbe.
EQUI PRIDRUลฝI SE Theta spajanje koje koristi samo usporedbe jednakosti.
PRIRODNI SPOJ (โ‹ˆ) Spaja relacije na atributima koji dijele isto ime i domenu.
LIJEVI VANJSKI SPOJ (โŸ•) Zadrลพava svaku n-torku iz lijeve relacije, a desnu popunjava s NULL.
DESNI VANJSKI SPOJ (โŸ–) Zadrลพava svaku n-torku iz desne relacije, a lijevu popunjava s NULL.
POTPUNI VANJSKI SPOJ (โŸ—) Zadrลพava svaku n-torku iz obje relacije, popunjavajuฤ‡i nedostajuฤ‡e vrijednosti s NULL.

Pitanja i odgovori

Relacijska algebra je proceduralni matematiฤki jezik koji se koristi za definiranje operacija nad relacijama. SQL je deklarativni jezik upita koji mehanizmi baza podataka interno prevode u planove izvrลกenja u algebarskom stilu.

Dvije relacije su unijski kompatibilne kada imaju isti broj atributa i svaki odgovarajuฤ‡i atribut dijeli istu domenu. UNION, INTERSECTION i DIFFERENCE sve zahtijevaju unijski kompatibilnost.

Kartezijev produkt mnoลพi svaki redak skupa A sa svakim retkom skupa B, stvarajuฤ‡i ogromne meฤ‘urelacije s malo znaฤenja. Obiฤno ga slijedi predikat SELECT kako bi postao koristan spoj.

Ne. ฤŒista relacijska algebra tretira relacije kao skupove, pa se duplikati automatski uklanjaju nakon svake operacije. SQL se ponaลกa drugaฤije - radi na multiskupovima i uklanja duplikate samo kada se koristi DISTINCT.

Operator DIVISION odgovara na upite "za sve" - โ€‹โ€‹na primjer, pronalazi kupce koji su naruฤili svaki proizvod u katalogu. Vraฤ‡a skupove jedne relacije koji odgovaraju svakom skupu drugog.

Koristite vanjski spoj kada neusklaฤ‘eni retci joลก uvijek imaju znaฤenje - na primjer, navoฤ‘enje svakog kupca zajedno s opcionalnim podacima o narudลพbi. Unutarnji spojevi odbacuju te neusklaฤ‘ene retke; vanjski spojevi ih zadrลพavaju s NULL punilima.

AI asistenti prevode algebarske izraze u SQL i natrag, korak po korak objaลกnjavaju prioritet operatora i oznaฤavaju nedostajuฤ‡e predikate spajanja koji bi inaฤe upit pretvorili u spori Kartezijev produkt.

Da. Alati umjetne inteligencije pretvaraju jednostavna pitanja poput โ€žkupci iz Indije koji su kupili svaki proizvodโ€œ u algebarska stabla s operatorima SELECT, PROJECT i DIVISION, a zatim ih pretvaraju u SQL koji se moลพe izvesti.

Saลพmite ovu objavu uz: