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.

ล 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 | Aktivan | |
| 2 | Amazon | Aktivan |
| 3 | jabuka | neaktivan |
| 4 | Alibi | Aktivan |
Projekcija na temelju imena i statusa kupca:
ฯ CustomerName, Status (Customers)
| Ime kupca | Status |
|---|---|
| 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.
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.
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.
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. |



