You are on page 1of 50

Fakultet strojarstva i raunarstva FSR

Diplomski studij

RELACIJSKA ALGEBRA

Prof. dr.sc. Draena Gapar

14.02.2013.
RELACIJSKA ALGEBRA

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe


Slide 6- 3
PRIMJER
Slide 6- 4
PRIMJER
OPERACIJE RELACIJSKE ALGEBRE IZ TEORIJE
SKUPOVA: KARTEZIJEV PROIZVOD

CARTESIAN - KARTERZIJEV PROIZVOD operacija


Koristi se za kombiniranje ntorki iz dvije relacije na
nain kombinatorike
Oznaava se s R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm)
Rezultat je relacija Q sa stupnjem n + m atributa:
Q(A1, A2, . . ., An, B1, B2, . . ., Bm), u tom redosljedu.
Rezultirajua relacija ima jednu ntorku za svaku
kombinaciju ntorkijedne iz R i druge iz S.
Dakle, ako R ima nR ntorki (oznaeno kao |R| = nR ), i
S ima nS ntorki, onda e R x S imati nR * nS ntorki.
Dva operanda NE moraju biti "tip kompatibilni
OPERACIJE RELACIJSKE ALGEBRE IZ TEORIJE
SKUPOVA: KARTEZIJEV PROIZVOD

Openito, Kartezijev proizvod nije operacija koja


ima znaenje
Moe imati znaenje kada je slijede druge operacije
Primjer (nema znaenje):
FEMALE_EMPS SEX=F(EMPLOYEE)
EMPNAMES FNAME, LNAME, SSN
(FEMALE_EMPS)
EMP_DEPENDENTS EMPNAMES x
DEPENDENT
EMP_DEPENDENTS e sadravati sve
kombinacije EMPNAMES i DEPENDENT
Bez obzira jesu li one i stvarno povezane
OPERACIJE RELACIJSKE ALGEBRE IZ TEORIJE
SKUPOVA: KARTEZIJEV PROIZVOD
Da se zadre samo kombinacije gdje je
DEPENDENT povezan s EMPLOYEE, dodaje se
SELECT operacija kako slijedi
Primjer (ima znaenje):
FEMALE_EMPS SEX=F(EMPLOYEE)
EMPNAMES FNAME, LNAME, SSN
(FEMALE_EMPS)
EMP_DEPENDENTS EMPNAMES x
DEPENDENT
ACTUAL_DEPS
SSN=ESSN(EMP_DEPENDENTS)
RESULT FNAME, LNAME, DEPENDENT_NAME
(ACTUAL_DEPS)
RESULT e sadravati imena enskih djelatnica i
njihovih podreenih.
PRIMJER
KARTEZIJEV
PROIZVOD

Slide 6- 8
BINARNE RELACIJSKE OPERACIJE: JOIN

JOIN operacija (oznaena s )


Niz KARTEZIJEVIH PROIZVODA koje slijedi
SELECT se obino koristi za identificiranje i
selekciju redaka iz dvije relacije
Posebna operacije, nazvana SPAJANJE - JOIN
kombinira sekvencu u jednu operaciju
Ova operacija je iznimno znaajna za bilo koju
relacijsku BP jer dozvoljava kombiniranje povezanih
ntorki iz razliitih relacija
Opi oblik operacije spajanja za dvije relacije R(A1,
A2, . . ., An) and S(B1, B2, . . ., Bm) je:
R <uvjet spajanja>S

Gdje R i S mogu biti bilo koje relacije koje su


rezultat opih izraza relacijske algebre.
BINARNE RELACIJSKE OPERACIJE: JOIN

Primjer: Pronai ime menadera za svako odjeljenje.


Da bi se pronalo ime menadera potrebno je kombinirati
svaku ntorku iz DEPARTMENT s ntorkom iz EMPLOYEE
ija SSN vrijednost odgovara MGRSSN vrijednosti u
ntorki odjeljenja.
To se radi koritenjem join operacije.

DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE


MGRSSN=SSN je uvjet spajanja
Kombinira svaki slog odjeljenja s djelatnikom koji upravlja
odjeljenjem
Uvjet spajanja se moe specificirati kao

DEPARTMENT.MGRSSN= EMPLOYEE.SSN
PRIMJER JOIN OPERACIJE
NEKA SVOJSTVA SPAJANJA - JOIN

Razmotriti sljedeu JOIN operaciju:


R(A1, A2, . . ., An) S(B1, B2, . . ., Bm)
R.Ai=S.Bj
Rezultat je relacija Q sa stupnjem n + m atributa:
Q(A1, A2, . . ., An, B1, B2, . . ., Bm), u tomredosljedu.
Rezultirajua relacija ima jednu ntorku za svaku
kombinaciju ntorkir iz R i s iz S, ali samo ako one
ispunjavaju uvjet spajanja r[Ai]=s[Bj]
Ako R ima nR ntorki, i S ima nS ntorki, onda e
rezultat spajanja openito imati manje od nR * nS
ntorki.
Samo povezane ntorke (bazirno na uvjetu spajanja) e
se pojaviti u rezultatu
NEKA SVOJSTVA SPAJANJA - JOIN

Opi sluaj JOIN operacije naziva se


Theta-join: R S
theta
Uvjet spajanja se naziva theta
Theta moe biti bilo koji opi boolean izraz na
atributima iz R i S; na primjer:
R.Ai<S.Bj AND (R.Ak=S.Bl OR R.Ap<S.Bq)
Veina uvjeta spajanja ukljuuje jedan ili vie
uvjeta spajanja AND zajedno; na primjer:

R.Ai=S.Bj AND R.Ak=S.Bl AND R.Ap=S.Bq


BINARNE RELACIJSKE OPERACIJE:
EQUIJOIN

EQUIJOIN Operacija
Najea uporaba spajanja ukljuuje uvjet
spajanja samo s poreenjem po jednakosti

Spajanje, gdje se koristi samo operator poreenja


= naziva se EQUIJOIN.
U rezultatu EQUIJOIN uvijek postoji jedan ili vie
parova atributa (iji nazivi ne moraju biti identini)
koji imaju identine vrijednosti u svakoj ntorki.
BINARNE RELACIJSKE OPERACIJE:
NATURAL JOIN

NATURAL JOIN operacija


Druga varijanta JOINa naziva se NATURAL JOIN
oznaava s * je kreirana kako bi se rijeilo
drugog (suvinog) atributa u EQUIJOIN uvjetu.
Poto je jedan od svakog para atributa s identinim
vrijednostima suvian
Standardna definicija prirodnog spajanja trai da
dva atributa koja se spajaju, ili svaki par
odgovarajuih atributa spajanja, imaju isti naziv u
obje relacije
Ako to nije sluaj, prvo se provodi operacije
reimenovanja.
BINARNE RELACIJSKE OPERACIJE:
NATURAL JOIN
Primjer: Za primjenu prirodnog spajanja atributa DNUMBER iz
DEPARTMENT i DEPT_LOCATIONS, dovoljno je napisati:
DEPT_LOCS DEPARTMENT * DEPT_LOCATIONS
Jedini atribut s istim nazivom je DNUMBER
Implicitni uvjet spajanja se kreira na osnovu tog atributa:
DEPARTMENT.DNUMBER=DEPT_LOCATIONS.DNUMBER

Drugi primjer: Q R(A,B,C,D) * S(C,D,E)


implicitni uvjet spajanja ukljuuje svaki par atributa s istim
nazivom, AND zajedno:
R.C=S.C AND R.D.S.D
Rezultat uva samo jedan atribut za svaki takav par:
Q(A,B,C,D,E)
PRIMJER NATURAL JOIN
POTPUNI SKUP RELACIJSKIH OPERACIJA

Skup operacija ukljuujui SELECT , PROJECT


, UNION , DIFFERENCE - , RENAME , i
KARTEZIJEV PROIZVOD X naziva se kompletni
ili potpuni skup zato to se bilo koji drugi izraz
relacijske algebre moe dobiti kombinacijom ovih
pet operacija.
Na primjer:
R S = (R S ) ((R - S) (S - R))
R <join condition>S = <join condition> (R X S)
BINARNE RELACIJSKE OPERACIJE:
DIVISION - DIJELJENJE
DIVISION operacija
Operacija dijeljenja se primjenjuje na dvije relacije
R(Z) S(X), gdje je X podskup Z.
Neka je Y = Z - X (i onda Z = X Y); tj. neka je Y
skup atributa iz R koji nisu atributi u S.

Rezultat DIVISION je relacija T(Y) koja ukljuuje


ntorku t ako se ntorke tR pojavljuju u R s
tR [Y] = t, i s tR [X] = ts za svaku ntorku ts u S.

Da bi se ntroka t pojavila u rezultatu T od


DIVISION, vrijednosti iz t se moraju pojaviti u R u
kombinaciji sa svakom ntorkom u S.
PRIMJER DIVISION-DIJELJENJE
REKAPITULACIJA OPERAIJA
RELACIJSKE ALGEBRE
Dodatne relacijske operacije:
Agregatne funkcije i grupiranje

Vrsta pretraivanja/upita koja se ne moe izraziti osnovnom


relacijskom algebrom su agregatne funkcije.

To su:
SUM, AVERAGE, MAXIMUM, MINIMUM i COUNT

Primjeri: pronai prosjenu ili ukupnu plau za sve djelatnike


ili ukupan broj djelatnika

COUNT funkcija se koristi za brojanje ntorki.


Agregatne Funkcije operacije

Koriste agregatnu funkcijsku operaciju

MAX Salary (EMPLOYEE) pronalazi maksimalnu vrijednost za plau


(Salary) u relaciji EMPLOYEE
MIN Salary (EMPLOYEE) pronalazi minimalnu vrijednost za plau
(Salary) u relaciji EMPLOYEE
SUM Salary (EMPLOYEE) pronalazi ukupan zbroj plaa (Salary) za
relaciju EMPLOYEE
COUNT SSN, AVERAGE Salary (EMPLOYEE) izraunava broj (count)
djelatnika i njihovu prosjenu plau

Napomena: count samo broji retke, ne eliminirajui duplikate


Koritenje grupiranja s agregacijama

Raniji primjeri svi agregiraju jedan ili vie atributa za skup ntorki
Maximalna plaa (Salary) ili Count (broj) Ssn

Grupiranje se kombinira s agregatnim funkcijama


Primjer: Za svako odjeljenje pronai DNO, COUNT SSN, i AVERAGE
SALARY
Varijacija agregatne operacije dozvoljava sljedee:
Smjetanje atributa grupiranje s lijeve strane simbola
Agregatna funkcija s desne strane simbola
DNO COUNT SSN, AVERAGE Salary (EMPLOYEE)

Gornja operacija grupira djelatnike po DNO (ifra odjeljenja) i


izraunava broj djelatnika i prosjenu plau po odjeljenju.
Primjeri primjene agregatnih funkcija i grupiranja
Prikaz agregatnih funkcija i grupiranja
Dodatne relacijske operacije

Rekurzivno zatvaranje
Drugi tip operacija koje se openito ne mogu
specificirati osnovnom relacijskom algebrom je
rekurzivno zatvaranje.
Ova operacija se primjenjuje na rekurzivnu
relaciju.
Primjer rekurzivne operacije:
Pronai sve nadreene (SUPERVISEES) djelatnika
(EMPLOYEE) e na svim razinama tj. sve djelatnike
(EMPLOYEE) e izravno podreene e; sve djelatnike
e izravno podreene svakom djelatniku e; sve
djelatnike e izravno podreene svakom djelatniku e
.
Dodatne relacijske operacije

Iako je mogue pronai djelatnike na svakoj


razini i onda napraviti uniju, ne moe se openito
specificirati upit kao to je pronai nadreene
James Borg-a na svim razinama bez koritenja
mehanizma petlje.

SQL3 standard sadri sintaksu za rekurzivno


zatvaranje.
Dodatne relacijske operacije

Dodatne relacijske operacije

OUTER JOIN operacije


Kod NATURAL JOIN i EQUIJOIN, ntorke bez
odgovarajue (ili povezane) ntorke se eliminiraju iz
rezultata spajanja.
Ntorke s vrijednou null za atribute spajanja se
takoer eliminiraju
To dovodi do gubitka informacija.

Skup operacija, nazvan OUTER join, moe se koristiti kada


se eli zadrati sve ntorke u R, ili sve one u S, ili sve one u
obje relacije u izlaznom rezultatu spajanja, bez obzira
imaju li in ne odgovarajue ntorke u drugoj relaciji.
Dodatne relacijske operacije

Lijevi (left) outer join zadrava svaku ntorku u prvoj


ili lijevoj relaciji R u R S; ako se nijedna
odgovarajua ntorka ne nae u S, onda se atributi iz S
u rezultatu spajanja popunjavaju null vrijednostima.
Slina operacija, desni (right) outer join, zadrava
svaku ntorku u drugoj ili desnoj relaciji S u rezultatu
R S.
Trea operacija, potpuni outer join, oznaava se s
zadrava sve ntorke u obje, i lijevoj i desnoj relaciji
kada niti jedna odgovarajua ntorka nije pronaena,
popunjavajui ih s null vrijednostima gdje je potrebno.
Dodatne relacijske operacije
Dodatne relacijske operacije

OUTER UNION operacija

Outer union je razvijen kako bi se napravila unija


ntorki iz dvije relacija ako relacije nisu tip
kompatibilne.
Ova operacija e napraviti uniju ntorki dvije relacije
R(X, Y) i S(X, Z) koje su parcijalno kompatibilne,
to znai da je samo dio njihovih atributa, recimo
X,tip kompatibilno.
Atributi koji su tip kompatibilni predstavljaju se
samo jedanput u rezultatu, a oni atributi koji nisu tip
kompatibilni iz bilo koje relacije, takoer se
zadravaju u rezultatu relacije T(X, Y, Z).
Dodatne relacijske operacije

Primjer:
Outer unija se moe primijeniti na dvije relacije ije su
sheme:
STUDENT(Name, SSN, Department, Advisor) i
INSTRUCTOR(Name, SSN, Department, Rank).
Ntorke iz ove dvije relacije su odgovarajue za istu
kombinaciju vrijednosti dijeljenih atributa Name, SSN,
Department.
Ako je student takoer instruktor, i Advisor i Rank e imati
vrijednost; inae jedan od tih atributa e biti null.
Rezultirajua relacija STUDENT_OR_INSTRUCTOR e imati
sljedee atribute:
STUDENT_OR_INSTRUCTOR (Name, SSN,
Department, Advisor, Rank)
Primjeri upita u relacijskoj algebri

U1: Pronai ime i adresu svih djelatnika koji rade u odjeljenju Research.
RESEARCH_DEPT DNAME=Research (DEPARTMENT)
RESEARCH_EMPS (RESEARCH_DEPT DNUMBER= DNOEMPLOYEE EMPLOYEE)
RESULT FNAME, LNAME, ADDRESS (RESEARCH_EMPS)

U2: Pronai imena svih djelatnika koji nemaju podreenih.


ALL_EMPS SSN(EMPLOYEE)
EMPS_WITH_DEPS(SSN) ESSN(DEPENDENT)
EMPS_WITHOUT_DEPS (ALL_EMPS - EMPS_WITH_DEPS)
RESULT LNAME, FNAME (EMPS_WITHOUT_DEPS * EMPLOYEE)
ULOGA RELACIJSKE ALGEBRE U DBMS

36
RELACIJSKI RAUN
Relacijski raun

Izrazi relacijskog rauna kreiraju novu relaciju


koja je posebna u odnosu na varijable s opsegom
preko redaka u pohranjenoj relaciji baze
podataka (u raunu ntorki) ili preko stupaca
pohranjenih relacija (u raunu domene).

U izrazu rauna, nema redosljeda operacija koji


specificira kako doi do rezultata upita izraz
rauna specificira samo koje bi informacije
rezultat trebao sadravati.
To je osnovna razlika izmeu relacijske algebre i
relacijskog rauna.
Relacijski raun

Relacijski raun se smatra neproceduralnim


jezikom.

Razlikuje se od relacijske algebre, gdje se mora


napisati redoslijed operacija kako bi se specificirao
upit; pa se relacijska algebra smatra proceduralnim
nainom prikaza upita.
Relacijski raun ntorki

Relacijski raun ntorki je baziran na odreivanju broja


varijabli ntorki

Svaka varijabla ntorki se obino protee preko odreene


relacije baze podataka, to znai da varijabla moe uzeti za
vrijednost bilo koju pojedinanu ntorku iz te relacije.
Jednostavni relacijski raun ntorki je oblika

{t | COND(t)}

Gdje je t varijabla ntorke i COND (t) je uvjetni izraz koji


ukljuuje t.
Rezultat ovakvog upia je skup svih ntorki t koje ispunjavaju
COND (t).
Relacijski raun ntorki

Primjer:
Pronai ime i prezime svih djelatnika ija je plaa iznad $50,000,
moe se napisati u obliku sljedeeg izraza rauna ntorki:

{t.FNAME, t.LNAME | EMPLOYEE(t) AND


t.SALARY>50000}

Uvjet EMPLOYEE(t) definira da je opseg relacije varijabla ntorke t


EMPLOYEE.
Ime i prezime (PROJECTION FNAME, LNAME) svake EMPLOYEE
ntorke t koje ispunjava uvjet SALARY>50000 (SELECTION
SALARY >50000) e biti pronaeno.
Egzistencijski i univerzalni kvantifikatori

Dva specijalna simbola nazvana kvantifikatori mogu se


pojaviti u formulama:
- univerzalni kvantifikator () i
- egzistencijalni kvantifikator ().
Neformalno, varijabla ntorke t je ograniena ako je
kvantificirana, to znai da se pojavljuje u ( t) ili ( t)
reenici, inae je slobodna.
Ako je F formula, onda su i ( t)(F) i ( t)(F), gdje je t
varijabla ntorke.
Formula ( t)(F) je istinita ako je formula F istinita za
neke (najmanje jednu) ntorke dodjeljenje slobodnoj pojavi t
u F; inae ( t)(F) je la.

Formula ( t)(F) je istinita ako je formula F istinita za


svaku ntorku (u svemiru) dodijeljenu slobodnoj pojavi t u
F; inae je ( t)(F) la.
Egzistencijski i univerzalni kvantifikatori

se naziva univerzalni ili za sve kvantifikator


zato to svaka ntorka u svemiru ntorki mora
initi F istinitim kako bi napravilo kvantificiranu
formulu istinitom.

se naziva egzistencijalnim ili ovdje egzistira


kvantifikator zato to bilo koja ntorka koja
postoji u svemiru ntorki moe uiniti F istinitim
kako bi kvantifikacijska formula bila istinita.
Primjer upita koji koristi egzistencijalni kvantifikator

Pronai ime i adresu svih djelatnika koji rade u Research odjeljenju.


Upit se moe izraziti kao :

{t.FNAME, t.LNAME, t.ADDRESS | EMPLOYEE(t) and ( d)


(DEPARTMENT(d) and d.DNAME=Research and
d.DNUMBER=t.DNO) }

Jedine slobodne varijable u izrazu relacijskog rauna trebale bi biti


one koje se pojavljuju lijevo od oznake ( | ).
U gornjem upitu, t je jedina slobodna varijabla; ona se onda sukcesivno
ograniava za svaku ntorku.
Ako ntroka ispunjava uvjete specificirane u upitu, atributi FNAME,
LNAME, i ADDRESS se prikazuju za svaku takvu ntorku.
Uvjeti EMPLOYEE (t) i DEPARTMENT(d) definiraju opseg relacije za
t i d.
Uvjet d.DNAME = Research je selekcijski uvjet i odgovara SELECT
operaciji relecijske algebre, dok je uvjet d.DNUMBER = t.DNO uvijet
spajanja (JOIN).
Primjer upita koji koristi univerzalni kvantifikator

Pronai imena djelatnika koji rade na svim (all) projektima kontroliranim od


strane odjeljenja 5. Upit se moe prikazati kao:

{e.LNAME, e.FNAME | EMPLOYEE(e) and ( ( x)(not(PROJECT(x)) or


not(x.DNUM=5)
OR ( ( w)(WORKS_ON(w) and w.ESSN=e.SSN and
x.PNUMBER=w.PNO))))}

Iskljuuje iz univerzalne kvantifikacije sve ntorke za kojima ne postoji interes


na nain da se provjerava uvjet na istinito za sve takve ntorke.
Prve ntorke za iskljuivanje (inei da se automatski provjeravaju na istinito) su one
koje nisu u relaciji od intersea - R.
U gornjem upitu, uporaba izraza not(PROJECT(x)) unutar formule
univerzalnog kvantifikatora provjerava na istinito sve ntorke x koje nisu u
relaciji PROJECT.
Zatim se iskljuuju ntorke iz relacije R koje nisu od interesa. Izraz not(x.DNUM=5)
provjerava na istinito sve ntorke x koje su u relaciji Project ali nisu kontrolirane od
strane odjeljenja 5.
Konano, specificira se uvjet koji se mora ispuniti za sve prostale ntorke u R.

( ( w)(WORKS_ON(w) and w.ESSN=e.SSN and x.PNUMBER=w.PNO)


Jezik baziran na relacijskom raunu ntorki

Jezik SQL je baziran na raunu ntorki. SQL koristi osnovnu


blok strukturu za izraavanje upita u obliku rauna ntorki:

SELECT <lista atributa>


FROM <lista relacija>
WHERE <uvjeti>

SELECT dio navodi atribute dobivene projekcijom,


FROM dio navodi sve potrebne relacije u upitu,
WHERE dio navodi selekciju, kao i uvjete spajanja.
Domenski relacijski raun

Druga varijacija relacijskog rauna naziva se domenski relacijski


raun.
Domenski raun je ekvivalnt za raun ntorki i relacijsku algebru.
Jezik QBE (Query-By-Example) koji se odnosi na domenski raun
razvijen je gotovo istovremeno kad i SQL u IBM Research, Yorktown
Heights, New York.
Domenski raun je promatran kao nain kako pojasniti to radi QBE.

Domenski raun se razlikuje od rauna ntroki po tipu varijabli koje


koristi u formulama:
Umjesto rangiranja varijabli preko ntorki, variable se rangiraju preko
jedne vrijednosti iz domene atributa.

Za formiranje relacije stupnja n za rezultat upita, mora postojati n


domenskih varijabli jedna za svaki atribut.
Domenski relacijski raun

Izraz domenskog rauna je oblika


{ x1, x2, . . ., xn |
COND(x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m)}

Gdje su x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m domenske


varijable koje se rangiranju preko domena (atributa)
a COND je uvjet ili formula domenskog relacijskog
rauna.
Primjer upita koji koristi domenski raun

Pronai datum roenja i adresu djelatnika s imenom John B.


Smith.
Upit:
{uv | ( q) ( r) ( s) ( t) ( w) ( x) ( y) ( z)
(EMPLOYEE(qrstuvwxyz) and q=John and r=B and
s=Smith)}
Potrebno je deset varijabli za relaciju Employee, po jedna koja se
protee domenom svakog atributa u slijedu.
Od deset varijabli q, r, s, . . ., z, samo u i v su slobodne.
Specificiranje traenih atributa, BDATE i ADDRESS, pomou
slobodnih domenskih varijabli u za BDATE i v za ADDRESS.
Specificiranje uvjeta za odabir ntorki slijedei ( | )
naime, koji e slijed vrijednosti dodijeljen varijablama qrstuvwxyz
biti ntorka relacije Employee i koja vrijednost za q (FNAME), r
(MINIT), i s (LNAME) e biti John, B, i Smith.
Pitanja..

You might also like