Professional Documents
Culture Documents
3.relaciona Algebra I Racun
3.relaciona Algebra I Racun
3.relaciona Algebra I Racun
ta je algebra
Algebra je formalni matematiki sistem koji
se sastoji od skupa objekata i operacija nad
tim objektima.
Primer: Bulova algebra, algebra skupova, ...
Za definiciju formalnog sistema je potrebno
prikazati sintaksu
dati semantiku
dati pravila izvoenja dokaza
Relaciona algebra
Relacioni operatori
CODD je originalno predloio 8 operatora
1.
2.
3.
4.
Restrikciju (selekciju)
Projekciju
Proizvod
Uniju
5.
6.
7.
8.
Presek
Razliku
(Prirodno) Spajanje
Deljenje
Rename
Semijoin
11. Extend
12. Summarize
restrikciju (selekciju)
projekciju
proizvod
uniju
razliku
Sintaksa
Relacioni izraz je izraz oblika
ROP arg1 arg2 ... argn
gde su
ROP relacioni operator
argi relacije koje su argumenti relacionog
operatora
(formalna definicija u knjizi Date-IDB, deo 6.3)
Semantika
U opisu semantike se koristi
da su relacije matematiki zasnovane i da
predstavljaju skupove torki
u pitanju su operacije nad skupovima koje
predstavljaju preslikavanje domena relacija u
novi domen
Relaciono zatvorenje
Osobina da su i argumenti i rezultat primene bilo kog
relacionog operatora takoe relacije se naziva relaciono
zatvorenje.
Zatvorenje znai da mogu da se piu ugnedeni relacioni
izrazi, tj. relacioni izrazi iji su operandi takoe relacioni
izrazi
Treba obezbediti da i novodobijene relacije imaju
odgovarajue zaglavlje (sa jedinstvenim nazivima atributa) i
odogovarajue telo, bez obzira da li su u pitanju osnovne ili
izvedene relacije
Restrikcija
Proizvod
a
b
c
(Prirodno) Spajanje
x
a
a
b
b
c
c
x
y
Proizvod
Deljenje
z w
a1 b1
a2 b1
a3 b2
b1 c1
b2 c2
b3 c3
R1
R2
a1 b1 c1
a2 b1 c1
a3 b2 c2
R1
R2
y=z
x
a1
a1
a1
a2
.
.
.
y
b1
b1
b1
b1
.
.
.
z
b1
b2
b3
b1
.
.
.
R1 x R2
x
y
x
y
x
y
w
c1
c2
c3
c1
.
.
.
a
b
c
a
a
a
b
c
x
y
z
x
y
x
z
Presek
Razlika
Restrikcija (selekcija)
Traenje
torki
koje
zadovoljavaju
postavljeni
uslov
Restrikcija (nastavak)
Neka relacija A ima bar atribute X i Y i
neka je operator (obino '=', '<', itd.)
takav da je uslov X Y dobro definisan i
da se izraunava kao istinitosna vrednost
(tana ili netana).
Tada je restrikcija relacije A na atribute
X i Y relacija koja ima isto zaglavlje kao i A
i telo koje sadri sve torke t iz A za koje je
vrednost uslova X Y tano.
Restrikcija (nastavak)
Primer: Prikazati sve torke iz tabele dosijea za koje
je vrednost atributa prezime jednaka 'Petrovi'
dosije WHERE prezime = ' Petrovi '
Projekcija
Izdvajanje
eljenih
atributa
Projekcija (nastavak)
Neka relacija A ima bar atribute X, Y, ...,Z.
Tada se projekcija relacije A na X, Y, ...,Z
oznaava sa A {X, Y, ..., Z} i predstavlja
relaciju ije
zaglavlje je izvedeno iz A uklanjanjem svih
Projekcija (nastavak)
Ako su u listi navedeni svi atributi relacije A
tada je projekcija identitet.
Primer: Prikazati imena studenata i nazive
mesta u kojima su roeni:
dosije{ime, mesto_rodjenja}
U daljem tekstu bie navedene opisne ali ne i formalne definicije
ostalih operatora
Prirodno spajanje
(Prirodno) Spajanje
a1 b1
a2 b1
a3 b2
b1 c1
b2 c2
b3 c3
a1 b1
a2 b1
a3 b2
c1
c1
c2
Prirodno spajanje
(nastavak)
Semantika: Neka relacije A i B imaju sledea
zaglavlja
A: {X1, X2, , Xm, Y1, Y2, , Yn}
B: {Y1, Y2, , Yn, Z1, Z2, , Zp}
Prirodno spajanje
(nastavak)
Primer: Prirodno spajanje relacija dosije i
ispit
dosije JOIN ispit
Postoji i spajanje za torke iji atributi
zadovoljavaju uslov X Y. Ako je = '='
tada se ovo spajanje naziva jednakosno
spajanje (ako se jedan od atributa X ili Y
eliminie dobija se prirodno spajanje)
Deljenje
A Divided by B per C
B
C
a x
x
Deljenje (nastavak)
Sintaksa: A DIVIDEBY B PER C
Semantika: pretpostavimo da naredne tri relacije
imaju sledea zaglavlja:
A: {X1, X2, , Xm}
B: {Y1, Y2, , Yn}
C: {X1, X2, , Xm, Y1, Y2, ., Yn}
Unija
Sintaksa
A UNION B
Semantika
A B = {t | t A t B}
Presek
Sintaksa:
A INTERSECT B
Semantika:
A B = {t | t A t B}
Razlika
Sintaksa:
A DIFFERENCE B
Semantika:
A - B = {t | t A t B}
Dekartov proizvod
Sintaksa: A TIMES B
Semantika: neka relacije A i B
A
a
b
c
proizvod
x
y
B
x
a
b
b
c
c
x
y
x
y
x
y
i vai A TIMES B = {t t| t A
t B}
Relaciona kompletnost
Jezik je relaciono kompletan ako je moan
isto kao i algebra, tj. ako bilo koja relacija
predstavljiva u algebri moe da se predstavi
i u jezika.
SQL je relaciono kompletan jer postoje SQL
izrazi za svaki od 5 primitivnih operatora
relacione algebre
Relaciona kompletnost
(nastavak)
Algebra
A
A
A
A
A
A
WHERE P
{x, y, , z}
TIMES B
UNION B
MINUS B
RENAME x AS y
SQL
SELECT * FROM A WHERE P
SELECT DISTINCT x, y, , z FROM A
A CROSS JOIN B
SELECT * FROM A UNION SELECT * FROM B
SELECT * FROM A EXCEPT SELECT * FROM B
SELECT x AS y FROM A
Algebarski zakoni
Zakon asocijacije
(A UNION B) UNION C = A UNION (B UNION C)
(A INERSECT B) INTERSECT C =
A INTERSECT (B INTERSECT C)
(A TIMES B) TIMES C = A TIMES (B TIMES C)
(A JOIN B) JOIN C = A JOIN (B JOIN C)
Algebarski zakoni
Zakon komutacije
A UNION B = B UNION A
A INERSECT B = B INTERSECT A
A TIMES B = B TIMES A
A JOIN B = B JOIN A
Dodatni operatori
RENAME promena naziva relacije
SEMIJOIN Spajanje relacija A i B projektovano
na atribute relacije A
EXTEND proirivanje relacije novim atributom
SUMMARIZE omoguava sabiranje po kolonama
Detaljan opis operatora je dat u knjizi Date-IDS u 6.7
Relacioni raun
Relacioni raun
Opisan, neproceduralan jezik
Logiki ekvivalent relacione algebre ako se
posmatra deo relacionog modela podataka
za obradu podataka
Zasnovan na predikatskom raunu
Dve varijante:
Raun orijentisan ka torkama
Raun orijentisan ka domenima osnova za
QBE
Predikatski raun
Predikat
je istinitosno vrednosna funkcija sa
argumentima
kada se argumenti zamene vrednostima funkcija
daje izraz koji se naziva predlog koji moe da
bude taan ili netaan
Predikatski raun
(nastavak)
Opseg promenljivih
Promenljiva torki ima opseg iz skupa navedenih
relacija i doputene vrednosti koje pripadaju
torkama iz tih relacija
Promenljiva domena ima opseg iz skupa
navedenih domena i doputene vrednosti koje
pripadaju tim domenima.
Predikatski raun
(nastavak)
Neka je x predikat. Tada se skup svih x
takav da je P tano za x oznaava sa {x
| p(x)}
Postoje dva kvantifikatora:
: 'za svaki'
: 'postoji'
Relacioni raun
+
SQL
Rekurzija
Tema za razgovor: u relacionoj algebri
irelacionom raunu ne postoji operator
rekurzije. Zato?
Dodatak: tabele u
bazi studenata
Baza studenata
Relvar DOSIJE oznaava dosijea studenata
INDEKS oznaava (jedinstveni) broj indeksa studenta
(ukljuuje i godinu upisa)
IME oznaava ime studenta
PREZIME oznaava prezime studenta
GOD_RODJENJA oznaava godinu rodjenja studenta
MESTO_RODJENJA oznaava mesto rodjenja studenta
http://www.matf.bg.ac.rs/~nenad/rbp/tabele.std2011.sql
Baza studenata(izgled)
Tabela dosijea
INDEKS
----------20100021
20100022
20100023
20100024
20100025
20100026
IME
----------Milos
Marijana
Sanja
Nikola
Predrag
Zorica
PREZIME
-------------Peric
Savkovic
Terzic
Vukovic
Popovic
Miladinovic
GOD_RODJENJA
-----------1992
1993
1991
1992
1991
1993
MESTO_RODJENJA
---------------
Baza studenata(izgled)
Tabela predmeta
ID_PREDMETA
----------1001
1002
1003
1021
1101
1102
2001
2002
2003
2004
3001
3002
4001
4002
SIFRA
-------------------M111
M112
M113
M131
M105
M106
P101
P102
P103
P104
S1
S2
R101
R102
NAZIV
KREDITI
----------------------------------------- ------Analiza 1
6
Analiza 2
6
Analiza 3
6
Geometrija
6
Diskretne strukture 1
6
Diskretne strukture 2
6
Programiranje 1
8
Programiranje 2
8
Objektno orijentisano programiranje
6
Algoritmi i strukture podataka
6
Engleski jezik 1
5
Engleski jezik 2
5
Uvod u organizaciju racunara
5
Uvod u Veb i Internet tehnologije
5
Baza studenata(izgled)
Tabela ispitnih rokova
GODINA_ROKA
----------2011
2011
2011
2011
2011
2011
OZNAKA_ROKA
-------------------jan
feb
apr
jun
sep
okt
NAZIV
--------------Januar 2011
Februar 2011
April 2011
Jun 2011
Septembar 2011
Oktobar 2011
Baza studenata(izgled)
Tabela ispita
INDEKS
ID_PREDMETA GODINA_ROKA OZNAKA_ROKA OCENA
----------- ----------- ----------- ----------- -----20100021
1001
2011 jan
9
20100022
1001
2011 jan
8
20100023
1001
2011 jan
8
20100024
1001
2011 jan
10
20100025
1001
2011 jan
6
20100026
1001
2011 jan
5
20100021
2001
2011 jan
10
20100022
2001
2011 jan
9
20100023
2001
2011 jan
8
20100024
2001
2011 jan
7
20100025
2001
2011 jan
5
20100021
3001
2011 jan
7
20100023
3001
2011 jan
5
20100024
3001
2011 jan
6
20100026
3001
2011 jan
6
20100026
1001
2011 feb
7
20100025
2001
2011 feb
6
20100026
2001
2011 feb
7
20100021
1021
2011 apr
7
20100022
1021
2011 apr
5
20100023
1021
2011 apr
10
20100024
1021
2011 apr
6
20100026
1021
2011 apr
8
DATUM_ISPITA
-----------01/20/2011
01/20/2011
01/20/2011
01/20/2011
01/20/2011
01/20/2011
01/25/2011
01/25/2011
01/25/2011
01/25/2011
01/25/2011
01/27/2011
01/27/2011
01/28/2011
01/28/2011
02/10/2011
02/10/2011
02/10/2011
04/03/2011
04/03/2011
04/03/2011
04/03/2011
04/03/2011