You are on page 1of 167

SVEUILITEUZAGREBU

FAKULTETORGANIZACIJEIINFORMATIKE

Dr.sc.MirkoMalekovi
redovitiprofesor

TEORIJABAZAPODATAKA
skripta

Varadin,listopad2008.

SADRAJ
1.SIMBOLIKA(MATEMATIKA)LOGIKA......................................................................................1
1.1.PROPOZICIJSKALOGIKA..........................................................................................................1
1.2.LOGIKAPRVOGREDA...............................................................................................................9
1.3.OLOGIKOMREZONIRANJU.................................................................................................14
2.RELACIJSKEBAZEPODATAKA.....................................................................................................16
2.1.RELACIJSKAALGEBRA..........................................................................................................18
2.2.ZAVISNOSTIURELACIJSKIMBAZAMAPODATAKA........................................................27
2.3.FORMALNISUSTAVI................................................................................................................34
2.4.IMPLIKACIJSKIPROBLEM......................................................................................................40
2.5.NORMALNEFORME.................................................................................................................50
3.PARCIJALNAINFORMACIJA...........................................................................................................61
3.1.UVOD...........................................................................................................................................61
2.2.PARCIJALNARELACIJA...........................................................................................................62
3.3.RELACIJSKIOPERATORIZAPARCIJALNERELACIJE.......................................................67
2.4.TIPOVILOGIKIHPOSLJEDICA............................................................................................70
4.TEMPORALNEBAZEPODATAKA.................................................................................................73
4.1.UVOD...........................................................................................................................................73
4.2.TEMPORALNERELACIJE........................................................................................................73
4.3.RELACIJSKIOPERATORIZATEMPORALNERELACIJE...................................................75
5.DEDUKTIVNEBAZEPODATAKA..................................................................................................83
5.1.UVOD...........................................................................................................................................83
5.2.SINTAKSAISEMANTIKADEDUKTIVNEBAZEPODATAKA...........................................85
5.3.DATALOG....................................................................................................................................91
4.4.RAUNANJEPRAVILA.............................................................................................................96
4.5PROIRENJADATALOGA......................................................................................................105
6.POOPENERELACIJSKEBAZEPODATAKA(PORBP)............................................................123
6.1.UVOD.........................................................................................................................................123
6.2.PARTICIJSKANORMALNAFORMA(PNF).........................................................................125
6.3.RELACIJSKIOPERATORIZAPONFRELACIJE..................................................................126
7.OBJEKTNOORIJENTIRANEBAZEPODATAKA.........................................................................136
7.1.UVOD..........................................................................................................................................136
7.2.ODL............................................................................................................................................143
7.3.OQL............................................................................................................................................151
LITERATURA.......................................................................................................................................162

1.SIMBOLIKA(MATEMATIKA)LOGIKA
Simbolikulogikukoristimokaoformalnialatzasimboliziranjerezoniranjauraznimproblemskimili
aplikacijskimdomenama.
(A)PROPOZICIJSKALOGIKA(PL)
(B)LOGIKAPRVOGREDA(PREDIKATSKALOGIKA)(LPR)

1.1.PROPOZICIJSKALOGIKA
Temeljnielementpropozicijskelogikejepropozicija.
Propozicijajedeklarativnareenicakojajeistinitailineistinita(alineoboje,tj.propozicijanemoe
bitiistovremenoistinitaineistinita).
Pr.Zadanesureenice
R1:ZagrebjeglavnigradHrvatske.
R2:SplitjeglavnigradHrvatske.
R3:XjeglavnigradHrvatske.
R1jeistinitapropozicija;R2jeneistinitaililanapropozicija;R3nijepropozicija,jerbez
konkretizacijevarijableXnemoemoodreditiistinosnuvrijednostodR3.
PropozicijeemooznaavatislovimaP,Q,R,Suzmogueindeksiranje.
Pomoupropozicijaiskazujemoinjenice(svojstva)problemskedomene.Zatoemopropozicije
imenovatiidrugimsimbolimaosimprijespomenitih.
FORMULA
Koristeipropozicijeilogikeveznike:(negacija),
(konjunkcija),(disjunkcija),(implikacija)i
(ekvivalencija)gradimoizrazekojisenazivajuformule.
FormuleemooznaavatislovimaF,G,Huzmogueindeksiranje.
Formulesedefinirajurekurzivnokaotoslijedi:
(a)Svakapropozicijajeformula.
(b)(F),(FG),(FG),(FG),i(FG)su
formuleakosuFiGformule.
(c)Formulesegradejedinokonanimbrojemprimjenapravila(a)i(b).
Pr.IzrazF:((PQ)R)jeformula;
IzrazG:PQnijeformula.

Konvencijaoisputanjuzagrada:
1.Formulu(F#G)piemobez(vanjskih)zagrada;
Ovdjeje#bilokojilogikiveznik.
2.Koristimojainuvezanjalogikihveznika:
,,,,
Unavedenomnizujaeveeonajveznikkojije
vielijevo.
Pr.F:((PQ)R)moemopisatiuobliku
F:PQR;
G:((P)(RS))moemopisatiuobliku
G:P(RS)
Prijenavedenimpravilimadefiniralismosintaksupropozicijskelogike,tj.reklismokakosegrade
formuleuPL.
Znaenjeformula,tj.semantikaformula,jepostupakodreivanjaistinosnevrijednostiformula.
SaPR[F]oznaavamoskupsvihpropozicijaodkojihjeizgraenaformulaF.
INTERPRETACIJAFORMULE
InterpretacijaformuleFjepreslikavanje
I:PR[F]{0,1}
Pr.F=PR
JednainterpretacijaodFjeI:PR
====
10
Iztabliceitamo:I(P)=1,I(R)=0.
KaemodajePuinterpretacijiIistinito(PuIvrijedi),aRjeuIneistinito(RuInevrijedi).
UzadavanjuinterpretacijekoristseisimboliF,Tumjesto0,1respektivno.
Tvrdnja(propozicija)
NekajebrojelemenatauskupuPR[F], PR[F] ,jednakk.TadaformulaFima2krazliitih
interpretacija.
SEMANTIKAPRAVILA
Semantikapravilazanegacijudefiniramotablicom:

FF
======AkojeI(F)=0,ondajeI(F)=1
01AkojeI(F)=1,ondajeI(F)=0
10
Semantikapravilaza,,,idanasuutablici:
FGFGFGFGFG
000011
011010
101000
111111
Iztabliceitamo:
FGvrijediuIakobaremjednaodformulaF,G
vrijediuI;FGnevrijediuIakoobeformuleF,GnevrijedeuI.
FGvrijediuIakoobeformuleF,GvrijedeuI;
FGnevrijediuIakobaremjednaodformulaF,GnevrijediuI.
ImplikacijaFGvrijediuIusvimsluajevimaosimkadaFvrijediuIiGnevrijediuI.
EkvivalencijaFGvrijediuIsamoondakadaFiGimajuistuistinosnuvrijednostuI.
Pr.F=PQR,I:PQRI1:PR
============
11011
OdreditiI(F),I1(F).
I(F):110=10=0;prematome,I(F)=0,tj.,FuinterpretacijiInevrijedi.
I1(F)nijedefinirano,jerI1nijeinterpretacijazaF.
KadajeI(F)=1,ondakaemodajeFistinitouIilidaFvrijediuI;
KadajeI(F)=0,ondakaemodajeFneistinitouIilidaFnevrijediuI.
IstinosnatablicaodFsadrivrijednostiformuleFusvakojnjenojinterpretaciji.
Pr.F=PQPQPF
============
0010
0111
1000
1100

TAUTOLOGIJA
FormulaFjetautologijailivalidnaformulaakoFvrijediusvakojsvojojinterpretaciji,tj.
I(F)=1zasvakuinterpretacijuIodF.
Pr.F=PPjetautologija.
KONTRADIKCIJA
FormulaFjekontradikcijaakoFnevrijediusvakojsvojojinterpretaciji,tj.
I(F)=0zasvakuinterpretacijuIodF.
Pr.G=PPjekontradikcija.
SaF= oznaavamodajeFtautologija;
SaF=oznaavamodajeFkontradikcija.
InterpretacijanizaformulaF1,..,FnjepreslikavanjeI:PR[F1]..PR[Fn]{0,1}
I(Fi)raunamotakodauformuluFiuvrstimovrijednostipropozicijaizFikojesudefinirane
interpretacijomI.
InterpretacijaIformuleFjemodelzaFakoFvrijediuI.
InterpretacijaInizaformulaF1,..,FnjemodeldanognizaformulaakosvakaodformulaF1,..,Fn
vrijediuI.
ZanizformulaF1,..,Fnkaemodajekonzistentanakoimamodel;uprotivnome,kaemodajedani
nizkontradiktoran.
Pr.IspitatikonzistentnostformulaF=PQ,
G=Q
IspitujemodalinizF,Gimamodel.
LOGIKAPOSLJEDICA
ZaformuluGkaemodajeposljedicaformulaF1,..,FnakozasvakuinterpretacijuIformula
F1,..,Fn,Gvrijedi:
AkojeImodelzaF1,..,Fn,ondajeImodelizaG
Notacija:F1,..,FnG
DaGnijelogikaposljedicaodF1,..,Fnpiemoovako:F1,..,FnG
Pr.Ispitatidalivrijedi(PQ)PQ.

Propozicija
F1,..,FnGakoisamoakojeformula
H=(F1..Fn)Gtautologija.
(SEMANTIKA)JEDNAKOSTFORMULA
FormuleFiGsujednakeakovrijedi
FGiGF;PiemoF=G.
Napomena:JednakostF=Gznaijednakostpripadnihistinosnihtablica.

KATALOGPL
ZabilokojeformuleF,G,Hvrijedi:
1.F=Frefleksija
2.FG=GF;FG=GFkomutacija
3.(F$G)$H=F$(G$H)asocijacijaza
${,,}
4.F(GH)=(FG)(FH)distribucija
F(GH)=(FG)(FH)
6.
(F)=F
(FG)=FG
(FG)=FG
(FG=FG
6.FG=FG
FG=(FG)(GF)
7.FG=GFkontrapozicija
8.Jednakostisai
= =F=FF =
F=F =F
FF= FF=

ZADACI
1.F=(PQ)PR
NapiiteinterpretacijuIzaF,azatimodredite
I(F).
2.NapiiteistinosnutablicuzaF(iz1.).
3.IspitajtedalijeformulaF=P(P)tautolo
gija.
4.DalijeG=(PQ)Qkontradikcija?
5.Rijeiteimplikacijskiproblem
PR,PRP
6.Dokaitejednakost(PR)=PR
7.Dokaite(FG)=FG
8.LiteraljeizrazoblikaFiliF,gdjejeF
propozicijskisimbol;Klauzulajedisjunkcija
literala.Napiitenekolikoklauzula.
9.DokaitePM,PNMN(rezolucijskiprincip)
10.Konjukcijaklauzulajekonjunktivnanormalna
forma.KNF[F]jekonjunktivnanormalnaforma
odF.OdrediteKNF[G]akojeG=PQR.
11.OsobaAnudiosobiBnagraden1in2uz
sljedeiuvjet
U:OsobaBtrebareiizjavuF.AkoFvrijedi,ondaBdobivan1ilin2;AkoFnevrijedi,onda
Bnedobivanitijednunagradu.
KojuizjavuFtrebareiBdabidobion1?
Rj.N1:Dobitun1;N2:Dobitun2.
F=N2,tj.neudobitin2.
12.PonudaA:
ReiP;
AkoP=1,ondadobivate100Kn
AkoP=0,ondadobivateSKn,S 100
PonudaB:
ReiP;
BezobziranaistinitostodP,dobivateSKn,S>100
Kojajeponudabolja?
Rj.PonudaAosiguravaproizvoljandobitak
DKn.
P=Neudobiti100KnineudobitiDKn.

13.SvakistanovnikdraveXjesretan(uvijekgovoriistinu)ilinesretan(uvijekgovorineistinu),
alineoboje.PsihologPstestirabranipar
(B1,B2)takodapitaosobuB1ostanjupara.
OsobaB1jeodgovorila:
Akosamjasretan,ondajeB2sretan.
PsjenaosnoviodgovoraosobeB1tonozaklj
uioostanjuosobaB1iB2.Objasniterjeenje

1.2.LOGIKAPRVOGREDA
Logikaprvogredailipredikatnalogikaproirujepropozicijskulogikuomoguujuiiskazeosvojstvima
objekatailirelacijamaizmeuobjekata.
SINTAKSA
FormuleLPRgradeseodsljedihsimbola
Konstante:a,b,c,a1,...
Varijable:x,y,z,x1,...
Funkcije:f,g,h,f1,...
Predikati(relacije):P,Q,R,P1,...
Kvantifikatori: ,
Term
Konstanteivarijablesutermi;
f(t1,..,tk)jetermakosut1,..,tktermiifjefunkcijaodkargumenata.
Termioznaavajuobjekte,apredikatisurelacijenadobjektima.
Atomskaformula
IzrazP(t1,..,tm)jeatomskaformulaakosut1,..,tm
termiiPjepredikatodmargumenata.
Pr.R(a,g(y),z)jeatomskaformula.
Koristeiatomskeformuleilogikeveznike,,,,,tekvantifikatore ,gradimoformule:
1.Svakaatomskaformulajeformula.
2.F,FG,FG,FG,FGsuformuleako
FiGformule.
3. x(F),x(F)suformuleakojeFformulaix
varijabla.
KaemodajeFisvapojavljivanjavarijablexuFpoddjelovanjemnavedenihkvantifikatora xix.
Zagradamanaznaujemoprioritetoperacija.
ZATVORENAFORMULA
FormulaFjezatvorenaakosusvapojavljivanjavarijabliuFpoddjelovanjemnekogod
kvantifikatora.
Pr.F=x(P(x,a) y(R(f(y)))jezatvorena
G=x(P(x,a))R(b,f(x)nijezatvorena.
Gjeotvorenaformula.
Udaljempretpostavljamodajerijeozatvorenimformulama.
9

SLOBODNISIMBOLI
Konstante,funkcijeipredikateodkojihjeFizgraenozovemoslobodnimsimbolimaodF.
INTERPRETACIJAFORMULE
InterpretiratiformuluznaidatiznaenjenjenihslobodnihsimbolananepraznojdomeniobjekataD.
Pr.F= y(R(a,f(y))
I:D={3,5},a=5,f:DDT35
=========
f(T)55
R:D D{0,1}
(U,V)(3,3)(3,5)(5,3)(5,5)
==========================
R(U,V)0101
Predikat(relaciju)kraepiemouobliku
R(UV)
========
35NapisalismourelacijiRsamoone
55parove(U,V)zakojeRvrijedi.
ProcijenimoFuI,tj.izraunajmoI(F):
FormulomFsetvrdidapostojiyuDtakoda
R(a,f(y))vrijedizadaniaif.
y=3:I(F)=R(5,f(3))=R(5,5)=1
Kakozay=3R(5,f(y))vrijedi,imamoI(F)=1.Prematome,FvrijediuinterpretacijiI.

SEMANTIKAPRAVILA
FormuluFprocijenjujemounjenojinterpretacijiIpomoupravila:
(S1)NekaFnemavarijabliikvantifikatora.
I(F)raunamotakodauFuvrstimovrijed
nostikonstanti,funkcijaipredikatazadanih
uI.
(S2)AkojeF=xG,ondajeI(F)=1akojeI(G)=1zasvakixD;
Uprotivnome,tj.akojeI(G)=0zanekixD,ondajeiI(F)=0:
AkojeF= xG,ondajeI(F)=1akojeI(G)=1zanekixD;
Uprotivnome,tj.akojeI(G)=0zasvakixD,ondajeI(F)=0.
10

Uobasluaja,I(G)zax=draunamotakodasvakopojavljivanjexuGzamjenjujemosad,a
konstante,funkcije,ipredikateizGzamjenjujemovrijednostimadanimuI.
Pr.F= x(P(x,a))y(P(b,f(y))
I:D={2,3},a=2,b=3,
f:DDT23
=========
f(T)22
P:D D{0,1}P(UV)
========
22
32
RaunamoI(F):
NekajeH= xP(x,a)prva,aH1=yP(b,f(y))drugakomponentakonjunkcijeF.Raunamo
I(H)iI(H1),teI(F)=I(H)I(H1).
Pojmovi:tautologija,kontradikcija,logikaposljedica,jednakostformuladefinirajusenaistinain
kaouPL.
UmjestoK1(K2(F))pisatemokraeK1K2(F),gdjesuK1iK2kvantifikatori.

11

KATALOGLPR
ZabilokojeformuleFiGvrijedi:
1. xy(F)=yx(F), x y(F)= y x(F)
2. (x(F))= x((F)),( x(F))=x((F))
3. x(FG)=x(F)x(G)
4. x(FG)= x(F) x(G)
PostojeformulaFzakojuvrijedi
5. x y(F) yx(F)
PostojeformuleFiGzakojevrijedi
6. x(FG) x(F)x(G)
PostojeformuleFiGzakojevrijedi
7. x(FG) x(F) x(G)
KVANTIFIKATORIOGRANIENOGOPSEGA
(xD)(F)=x(xDF)
Formula(xD)(F)vrijediuinterpretacijiIako
jeI(F)=1zasvakixizD.
( xD)(F)= x(xDF)
Formula( xD)(F)vrijediuinterpretacijiIako
I(F)=1zanekixizD.
KatalogLPRostajenaznaziakoxi xzamijenimosa(xS)i( xS).

12

ZADACI
1.F=x[P(a,x)R(x,f(x))]
NapiiteIzaF,azatimodrediteI(F).
2.Dalivrijedix(F) x(F)?
3.Dalivrijedi(xS)(F)( xS)(F)?
4.Negirajteformulu
F=x y(P(y)R(x)P1(x))
5.NapiiteformuluLPRkojajetautologija;
NapiiteformuluLPRkojajekontradikcija.
6.Dalivrijedi xy(F)y x(F)?
7.ReenicuR1:Zasvakiprirodanbroj,osim
jedinice,postojimanjiprorodanbroj,izrazite
pomouformuleLPR.
8.ReeniciR2:SvezavisnostiizskupaSsu
trivijalne,izrazitepomouLPRformule.
9.ReenicuR3:PostojizavisnostuskupuSkoja
nijetranzitivna,izrazitepomouLPRformule.
10.KolikointerpretacijaimaformulaF=x(P(x))?

13

1.3.OLOGIKOMREZONIRANJU
1.Monotonostlogike
AkoF1,F2,..,F4,tadaF1,F2,..,Fk,H

GG
2.Logikanemonotonogrezoniranja
Nemoravrijeditimonotonostiz1.
(Uvodeseodgovarajuapraviladedukcije)
Difoltnalogika(defaultlogic)DL
Pravilo:F:GAkoFiakojekonzisten
tnopretpostavitiG,onda
HvrijediH.
Pr.
F1:Ptica(Ari)
F2:x[Ptica(x)Leti(x)]
G:Leti(Ari)
ImamoF1,F2:G
G
ProirimoF1,F2saF3:Pingvin(Ari)
ShemaF1,F2,F3:Gnijeprimjenjiva!
G
Prematome,GslijediizF1,F2,aneslijediiz
F1,F2,F3.

14

Abdukcija(formadefaultrezoniranja)
FG,G:F
F
Pr.
R1:Akojepacijentuplaen,ondajenjgovtlak
visok.
R2:Tlakpacijentajevisok.
Zakljuak:Pacijentjeuplaen.

Navedeni zakljuakmoebitipogrean.

15

2.RELACIJSKEBAZEPODATAKA
Uovomodjeljkukarakteriziramopojmovebazepodataka(DataBase)isustavazaupravljanjebazom
podataka(DatabaseManagementSystem).Popotrebikoristitemosljedeekratice:
Baza podataka (BP), Sustav za upravljanje bazom podataka (SUBP). Neformalno, bazu podataka
moemokarakteriziratinasljedeinain.

Baza podataka je kolekcija podataka, ogranienja i operacija koja reprezentira neke aspekte
realnogsvijeta.

ModeliranjemaplikacijskedomeneADdolazimodobazepodatakaBP.Prematome,BPjemodelza
AD.
ADBP

modeliranje

Svakabazapodatakatemeljisenaodgovarajuemmodelupodataka.Takoimamohijerarhijskebaze
podataka (temeljene na hijerarhijskom modelu podataka), mrene baze podataka (temeljene na
mrenom modelu podataka, relacijske baze podataka (temeljene na relacijskom modelu podataka),
deduktivne baze podataka (temeljene na deduktivnom modelu podata), temporalne baze podataka
(temeljene na temporalnom modelu podataka), objektno/relacijske baze podataka (temeljene na
poopenom relacijskom modelu podataka) i objektno orijentirane baze podataka (temeljene na
objektnommodelupodataka).Uovomprvompoglavljuopisujemoteorijurelacijskihbazapodataka.
Dvasurazlogazato.Prvo,relacijskebazepodatakasunajzastupljenijebazepodatakaukomercijalnom
smislu. Drugo, one su osnova za izgradnju naprednijih baza podataka (deduktivne baze podataka,
temporalne baze podataka, objektno/orijentirane baze podataka). Za kreiranje (ostvarenje) baze
podatakakoristiseposebansoftvertzv.sustavzaupravljanjebazompodataka(Access,Oracle,DB2,..).
Sustavzaupravljanjerelacijskombazompodatakanazivamo,krae,relacijskimsustavom.Analogno
vrijedizaostalesustave.Dakle,naprimjer,objektno/relacijskisustavjesustavzaupravljanjeobjektno/
relacijskombazompodataka.

16

MODELPODATAKA
Svakimodelpodataka,MP,sastojiseodtrikomponente,tj.,MP=(S,UI,O),gdjejeSstrukturalna
komponenta(kaeukojemoblikusuprikazanipodaci),UIjeintegritetnakomponenta(ogranienjana
dozvoljenastanjastrukture)iOjeoperativnakomponenta(operacijenadstrukturama).Zarelacijski
modelpodataka,RMP,imamosljedee:S jeskuprelacija(tablica),UIjeskupogranienjastanja
relacijai O jeskuprelacijskihoperatora.Vesmoistaklidaserelacijskebazepodatakatemeljena
relacijskommodelupodataka.Toznaidaepodaciurelacijskojbazipodatakabitiprikazaniuobliku
relacija(tablica)dokeuvjetiintegritetaUIpredstavljatiogranienjakojatrebajubitizadovoljenau
relacijamadabisedanabazapodatakamoglasmatrativaljanom.Udaljnjemizlaganju,prvoemo
opisati strukturalnu komponentu relacijskog modela (pojam relacije), zatim emo opisati relacijsku
algebra (relacijske operatore), a onda emo razmotriti zavisnosti u relacijskim bazama podataka
(specijalnaklasauvjetaintegriteta).Pravilarezoniranjaozavisnostimaurelacijskimbazamapodatakai
primjenazavisnostiuoblikovanjushemerelacijskebazepodatakabitedanaupreostalimodjeljcima
ovogpoglavlja.Upodrujubazapodatakapostojeterminolokerazlikeizmeuteorijebazapodatakai
njeneprimjene(sustavizaupravljanjebazompodataka).Vezaizmeupojmovajekaotoslijedi:
veza(TeorijaPrimjena)
===============================
relacijatablica
slogred
atributstupac

Prematome,umjestorelacijamoemoreitablica,umjestoslogared,teumjestoatributmoemorei
stupac.Iakoekasnijarazmatranjapokazatidajerelacijumogueprikazatinavietablinihnaina,mi
emo relaciju identificirati s tablicom (zapisom) kojom smo zadali danu relaciju. U daljnjem
razmatranjukoristitemo,ovisnookontekstu,prviilidrugitipnaziva.

17

2.1.RELACIJSKAALGEBRA

Relacijskaalgebrasastojiseodtemeljnihrelacijskihoperatora:unija,razlika,selekcija ,
projekcija ,preimenovanje ,prirodnospojiizvedenih(deriviranih)operatoratora,koji
sedefinirajuprimjenomnekihodtemeljnihoperatora.

Udaljnjem,indekseemopisatiunesputenomobliku;dakle,primjericeumjestoAipisatemoAi.
Relacija
Konaan,neprazanskupatributa,R={A1,..,Ak},nazivamorelacijskomshemom.
NekajeD=D1D2..Dk,gdjejeDom(Ai)=Dizai=1,..,k.
SlognadRjefunkcijat:RD,gdjejet(Ai)Di,i=1,..,k.
RelacijanadRjekonaanskupslogovanadR.
Notacijar(R)znaidajerrelacijanadrelacijskomshemomR.Kaemojodajeshemarelacijer
jednakaRipiemosh(r)=R.

NekajezadanarelacijarnadR,r={t1,..,tm},gdjejeslogtizadantablino
xA1A2..Ak
==============,i=1,..,k.
ti(x)ai1ai2..aik
Kraizapisislogatisu:tiA1A2..Ak
==============
ai1ai2..aik
ilisamoti(ai1,ai2,..,aik)kadajeizkontekstajasnotoznaisvakakomponentasloga(zasvakuod
komponentislogaznaseatrubutijavrijednostjedanakomponenta).
Relacijurreprezentiramouoblikutablice
r(A1A2..Ak)
============
a11a12..a1k
a21a22..a2k
......................
am1am2..amk

18

Akojer1praznarelacijanadR,ondajepripadnatablicaoblika
r1(A1A2..Ak)
=============

Primjer2.1
Nekajezadanarelacija dozvola={t1,t2,t3,t4},gdjesuslogovi t1,t2,t3it4 definiranikaoto
slijedi.
R={Pilot#,Tipaviona},D1=dom(Pilot#)=varchar(2),D2=dom(Tipaviona)=int,D=D1D2
t1:RDxPilot#Tipaviona
================
t1(x)P1707
t2:RDxPilot#Tipaviona
================
t2(x)P2707
t3:RDxPilot#Tipaviona
================
t3(x)P2747
t4:RDxPilot#Tipaviona
================
t4(x)P3727
Relacijudozvolapredstavljamouoblikutablice
dozvola(Pilot#Tipaviona)
===================
P1707
P2707.
P2747
P3727
Prematome,imerelacijepostajeimetablice,relacijskashemajedanauzaglavljutablice,aslogovisu
predstavljeni redovima tablice. injenicu da je red (P1, 707) u tablici dozvola piemo ovako
dozvola(P1,707).Openito,akojeredt=(x1,x2,..,xn)utablicir,ondatonaznaujemozapisom
r(x1,x2,..,xn).
Udaljnjememorelacijuzadavatitablino,adomeneatributaemonavoditisamousluajukadaje
razmatranjedomenskiovisno.Takoer,kadasemantikarelacijenijejasnaiznjenogtablinogprikaza,
upotrijebitemododatnikomentarzanjenupotpunukarakterizaciju.
19

Primjer2.2
Nekajezadanarelacijadozvolaizprologprimjera.
dozvola(Pilot#Tipaviona)
===================
P1707
P2707.
P2747
P3727
Moemo se upitati o semantici relacije dozvola, tj., moemo postaviti pitanje koja je informacija
tabeliranautablicidozvola.Semantikajesljedea.
Semantika(relacijedozvola)
dozvola(x,y)znaidapilotximadozvoluzatipavionay.
Prematome,zadnjiredutablicidozvolanamkaedavrijedidozvola(P3,727),atoznaidapilotP3
imadozvoluzatipaviona727.

Udaljnjempisanjukoristitemosljedeeoznake.

Oznake

Atributi:A,B,C,D,E,F,A1,B1,...
Skupoviatributa:X,Y,Z,R,S,X1,Y1,..
Relacije:r,s,r1,s1,..
Slogovi:t,u,v,t1,u1,..
Kratice:
{A1,A2,..,Ak}=A1,A2,..,Ak=A1A2..Ak.
XY=XY.

Jednakostrelacija

Relacijer(R)is(S)sujednakeakovrijedi:
(1)R=S,tj.sh(r)=sh(s)
(2) rissesastojeodistihslogova.
(3)

20

Primjer2.3
Nekasuzadanerelacije
r(AB)r1(AB)r2(BA)
=====================
122222
221221
Vrijedi:r=r1=r2,jerjeispunjeno:
(1)sh(r)=sh(r1)=sh(r2)i
(2)relacijer,r1ir2imajuisteslogove.
IzPrimjera1.3vidimodakodtablinogpredstavljanja(zadavanja)relacijeporedakatributauzaglavlju
tabliceiporedakredovautablicinisubitni.Dakle,svetablicekojeimajuistozaglavljeiisteredove
predstavljaju istu relaciju. Takoer, budui je relacija skup (nema ponavljanja elemenata skupa),
pripadnatablicanesadriponavljanjeredova.
Primjer2.4
r(ABC)s(AB)
==============

Zarelacijerisvrijedir s,jerrelacijerisnemajuistesheme.

Restrikcijasloga

NekajeXR;t[X]jerestrikcijaslogatnaskupatributaX.
Primjer2.5
r(ABC)
=========
100
101
Akosat1oznaimoprvislog(red)urelacijir,ondajerestrikcijaodt1naatributeBCdanasa
xBC
==============
t1[B,C](x)00
Dalje,zaslogovet1it2izrelacijervrijedit1[A,B]=t2[A,B].
21

Propozicija(jednakostslogovanapraznomskupuatributa)
Zabilokojeslogoveti,tjnadrelacijskomshemomRvrijediti[]=tj[].

Relacijskioperatori: , ,

Slijededefinicijerelacijskihoperatoraoperatora , ,.
Nekasuzadanerelacijer(R),s(R).
rs(R),rs={tnadRtrilits}
rs(R),rs={tnadR trits}
rs(R),rs={tnadR trits}

Projekcija

Zarelacijur(R)iXR,X imamo:
[X](r)(X), [X](r)={t[X] tr}
Umjesto [X](r)moemopisati X(r).
Prematome,projekcijurelacijernaskupatributaX,uoznaci [X](r),dobijemotakodaodredimo
skupkojisesastojiodrestrikcijasvihslogovaizrnaskupatributaX.
Primjer2.6
Nekajezadanarelacija
r(ABC)
========
123
223
312
Tadaje [BC](r)(BC)
============
23
12

22

Selekcija
Zarelacijur(R)iuvjet(formulu)F,selekcijarelacijerpouvjetuFjerelacijanadRkojase
sastojiodsvihslogovaizrkojizadovoljavajuF.
[F](r)(R), [F](r)={tr F(t)=T};saF(t)=Tnaznailismodaslogtzadovoljavauvjet
F,tj.,F(t)vrijedi.SaF(t)=oznaavamodaslogtnezadovoljavauvjetF.
Slinokaokodprojekcije,umjesto [F](r)moemopisati F(r).
NekajeAtr(F)skupsvihatributaodkojihjeizgraenaformulaF.KaemodajeFprimjenjivona
relacijur(R)akojeAtr(F)R.
UsluajukadaFnijeprimjenjivonar(R),onda [F](r)nijedefinirano.

Formulajedefiniranarekurzivno:

(1)AtomjeizrazoblikaAtopk,kopAt,AtopBt,gdjesuAtiBtbilokojiatributiiop
{=,<,>, , , }jearitmetikioperator.
Svakiatomjeformula.
(2)FormulajesvakiizrazoblikaF,FG,FG,FG,FG,
gdjesuFiGformule.
Primjer2.7
NekasuzadanirelacijadozvolaiupitU:
dozvola(Pilot#Tipaviona)
===================
P1707t1
P2707t2
P2747t3
P3727t4
U:odreditisveonepilotespripadnimtipomavionaizrelacijedozvolakojiimajudozvoluzatipaviona
747.
Rjeenjejedanorelacijom [F](dozvola),gdjejeF:Tipaviona=747.
RaunamoF(t),gdjetoznaavaslogove(redove)izrelacije(tablice)dozvola.
ZaizraunavanjeF(t)trebamovrijednostiatributauslogutuvrstitiumjestokorespondentniatributau
formuliF.

23

Nekasut1,t2,t3it4redoviutablicidozvola.Imamo:
F(t1)=(707=747)=,
F(t2)=(707=747)=,
F(t3)=(747=747)=,
F(t4)=(727=747)=.
Zato, [Tipaviona=747](dozvola)(Pilot#Tipaviona)
===================================
P2747

Prirodnospajanje
Nekasuzadanerelacijer(R),s(S).
rs(RS),rs={tnadRS t[R]rit[S]s}
Definicijaprirodnogspojakazedaseprirodnispojrelacijarisdobijetakodasespojeoniredoviiz
relacijariskojisepodudarajunazajednikimatributimaizrelacijskihshemaRiS.
Primjer2.8
Izraunatirs,gdjejer(ABC)s(BCD)
==================
abbaaa
baabab
Rjeenje:rs(ABCD)
=============
baaa

Preimenovanjeatributa

Zarelacijur(R)iA1A2..AmRteB1,B2,..BmRiDom(Ai)=Dom(Bi)zai=1,.m,
preimenovanjematributaA1,A2,..AmredomatributimaB1,B2,..,Bmurelacijir(R)dobivamo
relaciju
[ A1,A2,..,AmB1,B2,..,Bm](r)(S),gdjeje
S=(R{A1,A2,..,Am}){B1,B2,..,Bm};
Slogoviu suslogoviizr.

24

Primjer2.9
Akojer(AB),tadaje [ Ar.A](r)(r.AB)
======================
aaaa
bcbc

Produkt

Nekasuzadanerelacijer(R)is(S).Produktrelacijarisdefiniramoovako:
(1)AkojeRS=,ondajers=rs.
(2) AkojeRS ,ondaizvrimopreimenovanjeatributauRiStakodapostignemo
disjunktnost,azatimprimjenimo(1).

Aktivnikomplement

Nekajezadanarelacijar(A1,..,An).AktivnikomplementodrjerelacijaAC(r)definirana
jednakou:
AC(r)=[ A1(r).. An(r)]r

Kvocijent

Zarelacijer(R)is(S)takvedajeSR,kvocijentrelacijarisjerelacija
r s(T),gdjejeT=RS;
r s= T(r) T[( T(r)s)r]

Propozicija(temeljnioperatori)
Svakirelacijskiizrazmoesenapisatiuekvivalentnomoblikukojijeizgraensamoodoperatora,
, , ,, .

25

KATALOGRO
Zabilokojerelacijer(R),s(R)iFprimjenjivonarisvrijedi:
(1) F(rs)= F(r) F(s)
(2) F(rs)= F(r) F(s)
(3) F(rs)= F(r) F(s)
Zabilokojerelacijer(R),s(R)iXRvrijedi:
(4) X(rs)= X(r) X(s)
(5) X(rs)= X(r) X(s)
(6) X(r) X(s) X(rs)
Zabilokojerelacijer(R),s(S)vrijedi:
(7)rs=sr
(8) R(rs)r
Zabilokojurelacijur(R)vrijedi
(9)r X(r) Y(r),gdjejed(R):X,YdekompozicijaodR.
(10)r X(r)=r,gdjejeXR.
Zabilokojerelacijer(R),s(S)vrijedi:
(11) F(rs)= F(r)s,gdjejeFprimjenjivonar.
Zabilokojurelacijur(R),XRvrijedi:
(12) X( F(r))= F( X(r)),gdjejeFprimjenjivona X(r).

26

2.2.ZAVISNOSTIURELACIJSKIMBAZAMAPODATAKA
FUNKCIJSKEZAVISNOSTI
NekajeRrelacijskashema,X,YR.IzrazXYjefunkcijskazavisnostnadR.
FZ(R)={XY X,YR}jeskupsvihfunkcijskihzavisnostinadR.
KaemodaXYFZ(R)vrijediurelacijir(R)ako
t1,t2r(t1[X]=t2[X]t1[Y]=t2[Y])
Primjer2.10
IspitajmodalizavisnostACBvrijediurelaciji
r(ABCD)
==========
1223
2222
1323
Kakozaslogoveu1(ABCD)iu2(ABCD)izrelacijer
=======================
12231323
vrijediu1[AC]=u2[AC]iu1[B] u2[B],zakljuujemodafunkcijskazavisnostACBnevrijedi
urelacijir.
UistojrelacijirispitajmodalivrijedifunkcijskazavisnostAD.
Buduidazabilokojadvaslogat1,t2izrelacijervrijedi:akoset1it2podudarajunaA,ondaset1i
t2podudarajuinaD,moemozakljuitida
ADvrijediur.
VIEZNANEZAVISNOSTI
NekajeX,YR.VieznanazavisnostnadRjeizrazoblika
XY.
KaemodaXYvrijediur(R)ako
t1,t2r{t1[X]=t2[X] t3r(t3[XY]=t1[XY]
t3[RXY]=t2[RXY])}
SaVZ(R)oznaavamoskupsvihvieznanihzavisnostinadR.

27

Kakosuvieznanezavisnostiposebnezavisnostispoja(toesevidjetikasnije),ispitivanjedali
vieznana zavisnost vrijedi u relaciji bit izvreno tako da se vieznana zavisnost pretvori u
odgovarajuuzavisnostspoja,azatimseispitujedobivenazavisnostspojaudanojrelaciji.
ZAVISNOSTSPOJA
Nekasu R1,..,Rn R neprazniskupovitakvidajeR1 .. Rn=R. Izraz (R1,..,Rn)
zovemozavisnostspojanadR.
SkupsvihzavisnostispojanadRoznaavamosaZS(R).
Kaemodazavisnostspoja(R1,..,Rn)ZS(R)vrijediur(R)akoje
r= R1(r).. Rn(r).
Primjer2.11
Ispitajmozavisnostspoja(ABC,CD)urelaciji
r(ABCD)
==========
1223
2222
1323
Rjeenje
[ABC](r)(ABC) [CD](r)(CD)
==============================
12223
22222
132
[ABS](r) [CD](r)(ABCD)
===========================
1223
1222
2223
2222
1323
1322
Kakoje [ABS](r) [CD](r) r,zakljuujemodazavisnostspoja
(ABC,CD)nevrijediurelacijir.
28


NekajeFVS(R)=FZ(R)VZ(R)ZS(R).
ZaskupzavisnostiFFVS(R)kaemodavrijediurelacijir(R)akosvakazavisnostizF
vrijediur(R).

AkoFvrijediur,ondasernazivamodelomzaF.

NekajeRskupatributaiFskupzavisnostinadR.
Par(R,F)nazivaserelacijskashema.
FKAOSEMANTIKOOGRANIENJE(UVJETINTEGRITETA)
Specificirajui(R,F)iskazujemodaesevaljanim(validnim)relacijanadRsmatratisamoone
relacijenadRkojesumodelizaF.
r(A1A2..An)
r(A1,A2,..,An)F

modelzaF

Relacijar semijenjatijekomvremenakaoposljedicaauriranja.Dozvoljenasusamoonaauriranja
kojauvajuvaljanostrelacijer,tj.auriranjatrebajubitiuskladusazadinimuvjetimaintegritetaF.
Centralni pojam teorije baza podataka je pojam logike posljedice. Njegova vanost proizlazi iz
injenicedauosnovigotovosvihtemeljnihpojmova(njihovojkarakterizaciji)koristimopojamlogike
posljedice.
LOGIKAPOSLJEDICA
NekajeFFVS(R)ifFVS(R).
fjelogikaposljedicaodFakozasvakurelacijurnadRvrijedi:
AkojermodelzaF,ondajermodelizaf.
Oznaka:Ff

29

KATALOGFZ
NekasuX,Y,Z,Y1R.Tadavrijedi:
1.XYXZYZ(proirenje)
2.XY,YZXZ(tranzitivnost)
3.XY,XY1XYY1(unija)
4.XYXZ,akojeZY(projekcija)
5.FXY,gdjejeFbilokojiskupfunkcijskihzavisnostiiYX
(trivijalnost)
Dokaz
Kaoprimjer,dokazatemo1.izkataloga.
NekajerbilokojarelacijanadR.PretpostavimodaXYvrijediur.
TrebamodokazatidaXZYZvrijediur.
Nekasut1,t2bilokojadvaslogaizrtakvadajet1[XZ]=t2[XZ].Sadatrebamodokazatit1[YZ]=
t2[YZ].
Izt1[XZ]=t2[XZ]slijedit1[X]=t2[X]it1[Z]=t2[Z];
Izt1[X]=t2[X]ipretpostavkedaXYvrijediurzakljuujemodavrijedit1[Y]=t2[Y].Konano,
izt1[Y]=t2[Y]it1[Z]=t2[Z]dobivamo
t1[YZ]=t2[YZ].
Ostaletokeizkatalogadokazujuseanalogno.

30

KATALOGVZ
NekasuX,Z,ZR.Tadavrijedi:
1.XYX(RXY)(komplementiranje)
2.XYXWYV,gdjejeVWR(proirenje)
3.XY,YZX(ZY)(tranzitivnost)
4.XY,XZXYZ(unija)
5.XY,XZX(YZ)
XY,XZX(YZ)
XY,XZX(ZY)(projekcija)

31

KATALOGFVS
NekasuX,YR.Tadavrijedi:
1.XYXY(obratnevrijedi)
2.XY(XY,X(RXY))
3.XY(XY,X(RXY))

4.(XY,X(RXY))XY
Toke3.i4.ukataloguFVSkaudajevieznanazavisnostXYekvivalentnazavisnostispoja
(XY,X(RXY)).
Definiramo
FGakoFgzasvakuzavisnostgizG;
F GakoFGiGF.

32

PROPOZICIJA()
NekasuF,G,HFVS(R)skupovizavisnosti.Tada
1.FG,akojeGF.
2.FGiGHpovlaiFH.
Dokaz
Dokazatemo2.NekajerbilokojarelacijanadRtakvadaunjojvrijediF.Prepostavkaznaidajer
modelzaF.IzpretpostavkeFGslijedidajermodelzaG.Konano,izpretpostavkeGHslijedida
jermodelzaH.
Primjer2.12
R=ABCD,F:AB,BC;G:AB,BC,AC.
IspitatiF G.
Rjeenje
KakojeFG,zakljuujemo,temeljem1.izprethodnepropozicije(),davrijediGF.Preostaje
ispitatidalivrijediFG.
ZasvakuzavisnostgizGkojasenalaziiuFznamodavrijediFg.PreostajeispitatiFAC.
PrimjenompravilatranzitivnostidobivamodaFACvrijedi.MoemozakljuitidavrijediGF
iFG,toiznaidavrijediF G.
PROPOZICIJA( )
1.XY (XY,X(RXY))
2.(R1,..,Rk) (R1,..,Rk,S),gdjejeSRizanekii.
SaV(R,F)oznaavamoskupsvihvaljanihrelacijanadshemom(R,F).
Propozicija(istosemantikoogranienje)
NekavrijediF G.TadavrijediV(R,F)=V(R,G).

33

2.3.FORMALNISUSTAVI
Formalnisustavzazavisnostisastojiseodpravilakojaomoguujurezoniranjeozavisnostima.
Pravilozakljuivanja(dedukcije)zazavisnostiFVS(R)jeizrazoblika
f1,..,fkg,gdjesuf1,..,gFVS(R).
Pravilogpiemouoblikuginazivamoaksiom.
Formalnisustavzafunkcijskezavisnosti
Formalnisustavzafunkcijskezavisnostijekonaanskuppravilaoblika
f1,..,fkg,gdjesuf1,..,fk,gFZ(R).
Korektnostformalnogsustava
FormalnisustavFS:P1,..,PmjekorektanakojesvakopraviloPiizFSkorektno.
PraviloPi:f1,..,fkgjekorektnoakovrijedi
f1,..,fkg.
Napomena:udefinicijamakoristimoveznikakoiakomislimonaveznikakoisamoako.Toprimjerice
znaidaakonijef1,..,fkg,ondapravilof1,..,fkgnijekorektno.
Primjer2.13
Ispitajmokorektnostsljedeihpravila:
(a)lp:XYXZY
(b)dp:XYXYZ
Rjeenje
(a)PravilolpjekorektnoakovrijediXYXZY.
Rezoniranje,temeljemkatalogaFZizprologpoglavlja,jekaotoslijedi.
1.XYzadano
2.XZYZiz1.uzproirenjesaZ
3.YZYtrivijalnost
4.XZYiz2.i3.primjenomtranzitivnosti
Prematome,vrijediXYXZY,tj.pravilolpjekorektno.
(b)PravilodpjekorektnoakoXYXYZ.
NekajeR=ABC,X=A,Y=B,Z=Cir(ABC)
=======
123
122
34

LakoprovjerimodaABvrijediur,aABCnevrijediur.Prematome,
ABABC,tj.XYXYZ.Dobivenirezultatnamkaedapravilodpnijekorektno.

Notacija[FS]f1,..,fkgindiciradajezavisnostgderivabilnaizzavisnostif1,..,fkprimjenom
formalnogsustavaFS.Navedenoznai:
Postojinizzavisnostig1,..,gmsasvojstvima:
(a)gm=g
(b)Svakigijejednaknekomlanuunizuf1,..,fkilijedobivenizprethodnihgovaunizug1,..,
gmprimjenomnekogpravilaizFS.
Potpunostformalnogsustava
FormalnisustavFSjepotpunzafunkcijskezavisnostiako
(FFZ(R))(gFZ(R)[Fg[FS]Fg]
ArmstrongovformalnisustavAFS
AFSjeformalnisustavzafunkcijskezavisnosti,asastojiseodsljedeihpravila:
A1:XY,akojeYX(trivijalnost)
A2:XYXZYZ(proirenje)
A3:XY,YZXZ(tranzitivnost)
Propozicija(korektnostipotpunostAFS)
ArmstrongovformalnisustavAFSjekorektanipotpunzafunkcijskezavisnosti.
dokaz
Za dokaz korektnosti AFS trebamo dokazati da je svako od pravila iz AFS korektno, tj. trebamo
dokazatidavrijedesljedeelogikeposljedice:
A1k:XY,akojeYX(trivijalnost)
A2k:XYXZYZ(proirenje)
A3k:XY,YZXZ(tranzitivnost)
VidimodasmologikeposljediceA1k.A2kiA3kdobiliredomizA1,A2iA3zamjenomznakasa
znakom.
Dokazdadobivenelogikeposljedicevrijedeanaloganjedokazukojismodaliurazmatranjukataloga
FZuprolompoglavlju2.
35

Zadokazpotpunostipotrebannamjepojamzatvaraaskupaatributa.

Zatvaraskupaatributa

NekajeFFZ(R)iXR.ZatvaraskupaatributaXsobziromnaskupfunkcijskihzavisnosti
F,uoznaciXF+,definiramoovako:
XF+={AR[AFS]FXA}
Propozicija(logikaposljedicapomouzatvaraa)
[AFS]FXYakoisamoakoYXF+
AlgoritamzaraunanjeXF+koristipojamzatvaraprimjenjivostiilizprimjenjivosti.
ZavisnostX1Y1jezprimjenjivanaXakoje
X1XinijeY1X.
AlgoritamzaraunanjeXF+
Ulaz:FFZ(R),XR
Izlaz:XF+
Postupak:
1.StavitiX0=X
2.OdreditizavisnostizFkojajezprimjenjivanaX0.
Akotakvazavisnostnepostoji,ondaXF+=X0.
AkojeVWizabranazavisnostizF,kojajezpromjenjivanaX0,ondaizraunatiX1=X0
W
3.Primijenitikorak2.naX1.

NavedenipostupaktrebaponavljatisvedotledoknedobijemotakavskupatributaXizakojine
postojinitijednazavisnostuFkojaje

zprimjenjivanaXi.DobiveniXijeXF+.
Prvidiokoraka2.unavedenomalgoritmuprikazujemografikiusljedeemobliku:
X0

XF+=X0
36

GrafnamkaedatemeljemX0iinjenicedauFnemazprimjenjivihzavisnostinaX0dobivamoX F+
=X0.
Drugidiokoraka2.imasljedeigrafikiprikaz:

X0VW

X1=X0W
IzgrafaitamodatemeljemX0izavisnostiVWizFkojajezprimjenjivanaX0dobivamoX1=
X0W.
Primjer2.14
R=ABCD,F:AB,BCD,DA
Izraunajmo(a)AF+(b)BF+
Rjeenje
(a)RaunamoAF+
X0=AAB

X1=AB=AB

AF+=AB
(b)raunamoBF+
X0=B

BF+=B

37

Propozicija(korektnostXF+)
AlgoritamzaraunanjeXF+jekorektan.
Dokaz:
TrebadokazatiXi=XF+
XiXF+
PokazujemoindukcijompojdaakojeAstavljenuXj,ondajeAXF+.
j=0:AX0=X.ZatoXA(poA1),teAXF+.
Pretpostavimo,kadajeAXk,ondajeAXF+
NekajesadaAXk+1.LakosedokaedajetadaAXF+.

XF+Xi

Dokazujemoda[FS]FXYpovlaiYXj,gdjejej i.
DokazideindukcijompoduinidokazaXYizF.
d=1:gm=g1=XY.TadaXYFiliXYslijediizFpoA1.Uprvomsluajuimamo
YX1,audrugomsluajujeYX=X0.
Nekatvrdnjavrijedizasvedokaze,gdjejed k.
Dokazatemodatvrdnjavrijediizasvedokaze,gdjejed=k+1.
Nekajedokazoblikaf1,..,fk,XY.
Ako X Y F ili X Y slijediiz F potrivijalnosti(A1),ondazakljuakslijedikaoubazi
indukcije.
NekajeXYdobivenopotranzitivnostiiz
fi:XZ,fj:ZY,gdjejei<j k.
fiifjimajudokazeijajeduinad k.ZatoZXj.
Uzimajui Z=Xualgoritmu,zbogZY,imamoYZm.Dalje,izZ Xjslijedi Zm
Xj+m.Prematome,YXj+m.
Neka,nakraju,XYslijediizfj:VWproirenjemsaskupomZ,tj.X=VZiY=WZ.
Imamo,WVkXkiZXXk.Zato,Y=WZXk.
Propozicija(potpunostAS)
FormalnisustavASjepotpunzafunkcijskezavisnosti.
Dokaz:
TrebadokazatidaFXYpovlai[AFS]FXY.Navedenojeekvivalentno,pokontrapoziciji,
[AFS]FXYpovlaiFXY.
38

Nekajerelacijar(R)definiranaovako:
r(XF+RXF+)
===============
0..00..0
001..1
Relacijarimadvareda:prviredsadrisvenule,adrugiredimanulenaX F+ ijedinicenapreostalim
atributima.
Sadanijetekopokazati,koristeipretpostavku[AFS]FXYiinjenicu
[AFS]FXYakoisamoakoYXF+(Propozicija(logikaposljedicapomouzatvaraa)),daF
vrijediur,aXYnevrijediur.Prematome,vrijediFXY.
Formalnisustavzafunkcijskeivieznanezavisnosti
Formalnisustavzafunkcijskeivieznanezavisnosti,FS,sastojiseodsljedeihpravila:
FS:
1.A1
2.A2
3.A3
4.XYX(RXY)
5.XYXWYV,gdjejeVW
6.XY,YZX(ZY)
7.XYXY
8.XY,WZXZ,gdjejeZYiWY=.
Propozicija
FSjekorektanipotpunzafunkcijskeivieznanezavisnosti.
Korektnostznaizamjenuznakasa,apotpunostznaizamjenusa.

39

2.4.IMPLIKACIJSKIPROBLEM
CentralniproblemteorijebazapodatakajeImplikacijskiproblem(Iproblem):
IspitatidalivrijediFf,gdjejeFFVS(R)ifFVS(R).

PostupcirjeavanjaIproblema:
(Se)Semantiki(igra)
(Si)Sintaksni(igra)
(Al)Algoritamski(AlgoritmikojikoristeXF+,Bazuzavisnosti,Chasepostupak).

RjeavanjeIproblemazafunkcijskezavisnosti

Algoritam(A)
AlgoritamtestiraFf,gdjejeFFZ(R)ifFZ(R)
Ulaz:FFZ(R),f:XYFZ(R)
Izlaz:DAakoFf
NEakoFf

Postupak:
1.IzraunatiXF+.
2.AkoYXF+,ondaFf.
AkonijeYXF+,ondaFf

Primjer2.15
R=ABCD,F:AB,ACD,BA
RijeimoIproblemFBAD.
RaunamoBF+
40

X0=BBA

X1=BAACD

X2=BACD

BF+=BACD
BuduijeADBF+,zakljuujemodavrijediFBAD.
RjeavanjeIproblemzafunkcijskeivieznanezavisnosti
KoristiseBazazavisnosti.
NekajeFFVZ(R),XR.NekajeVskupvieznanihzavisnostidefiniranovako:
(a)SvakavieznanazavisnostizFjeuV.
(b)ZasvakufunkcijskuzavisnostXA1..AkizF,uVstavitivieznanezavisnostiXA1,..,
XAk.

BazazavisnostiodXsobziromnaV,BZ(X,V),jeparticijaodRX,dobivenasljedeim
algoritmom.
Algoritam(bazazavisnosti)
Ulaz:XR,VVZ(R).
Izlaz:BZ(X,V)
Postupak:
1.X0=RX
2.IzabratizavisnostVWVtakoda budeVX0=i
WX0 ..Akotakvazavisnostnepostoji,ondajeBZ(X,V)=X0,inae
3.X1=X0W,X2=X0W.
4.Primijeniti2.naX1iX2.
5.Navedenipostupakponavljatidoknedoemo
doskupova atributa T1,..,Tm kojevie
nije moguedekomponirati.
6.BZ(X,V)={T1,..,Tm}
41

Algoritam(B)
AlgoritamtestiraFf,gdjejeFFVZ(R),fFVZ(R).
Ulaz:FFVZ(R),f:XYilif:XY,
XY=.
Izlaz:DAakoFf
NEakoFf
Postupak:

gdjesuX,YR,

1.TransformiratiFuV.
2.IzraunatiBZ(X,V).
3.FXYakoisamoakoYjeunijanekihlanovaiz
BZ(X,V).
FXAakoisamoako
(a)ABZ(X,V)i
(b)PostojiXiYiuFtakvadaAXi=iAYi.
Napomena:XA1...Ak XA1,..,XAk
Primjer2.16
R=ABCDF:AB,BCD,BC
RijeimoIprobleme
(a)FAC(b)FAC
Rjeavamo(a)
RaunamoBZ(A,V),gdjeje
V:AB,BCD,BC
ParticioniramoRA=BCD

BCDAB

BCDB=BBCDB=CD
Dalje,dekomponiramokomponentuCD
CDBC

CDC=CCDC=D

42

Prematome,
BZ(A,V):B,C,D

ZaFACtrebajubitiispunjenadvauvjeta
(a)CBZ(A,V)i
(b)PostojifunkcijskazavisnostXYuFtako
dabudeCX=iCY.
Vidimodajeuvjet(a)ispunjen,aliuvjet(b)nije.
ZakljuujemoFAC.
RjeavamoFAC.
BZ(A,V):B,C,D(izraunatoupostupku(a)).
KakojeCunijanekihlanovabaze,jerjeClanbaze,
slijediFAC.
NapomenaRjeavajuiproliprimjer,koristilismokratice{A,B,C}=ABC,{A}=A;
BZ(A,V)={{B},{C},{D}}pisalismouobliku
BZ(A,V):B,C,D.
Dalje,kadapiemoBX,ondajeBpojedinaanatribut;kadapiemoBX=Y,ondaBtreba
shvatitikao{B}.Eto,tojeprimjerpolimorfneupotrebezapisaB(moebitiizbunjujue,zarne?)
Algoritam(C)
Algoritamjenajopenitiji;testiraFf,gdjejeFFVS(R)i
fFVS(R).KoristiseChasepostupak.
Nekajezadano:
(F,R),R=A1,..,Am,d(R):R1,..,Rn
DefiniramopoetnutablicuT0ovako
T0(A1A2...Am)
==============
R1ajakoAjRi
.TijTij=
RnbijakoAjRi
Prematome,tablicaT0sastojiseododgovarajuihsimbolaajibij.Simboleajzovemoistaknuti
simboli.
Redkojisesastojisamoodistaknutihsimbolazovemociljnired,tj.red
cr:a1a2...amjeciljnired

43

FZ,VZ,ZStransformacije(modifikacije)
(A)Transformacijatemeljemfunkcijskezavisnosti
Nekajef:XY;
ZapisTifTi+1znaidajetablica

Ti+1dobivenaizTitransformacijom
temeljenojnafunkcijskojzavistif.Transformacija
sesprovodiovako:
Zabilokojadvaredat1,t2Titakvadaje
t1[X]=t2[X]izjednaitet1[Y]sat2[Y]koristeipravilo(FZ)kojeradinasljedeinain:
nekajet1[Y]:a3b57b59
t2[Y]:b13b17a9

Novit1[Y]it2[Y]poprimajuoblik
t1[Y]:a3b17a9
t2[Y]:a3b17a9
Dakle,pravilo(FZ)nemijenjasimbolaj,asimbolbijsezamjenjujesaajilisabkj,gdjejek<i.
(B)Transformacijatemeljemzavisnostispoja
Nekajef:(R1,R2,..,Rm)
ZapisTifTi+1znaidajetablica

Ti+1dobivenaizTitransformacijom temeljenojnazavistispojaf.
Transformacijusprovodimokoristeipravilo(ZS):
Ti+1=[R1](Ti)[R2](Ti)..[Rm](Ti)
(C)Transformacijatemeljemvieznane zavisnosti
Nekajef:XY.
Kakojef (XY,X(RXY)),transformacijutemeljemfsprovodimoprimjenomzavisnosti
spoja(XY,X(RXY)).
Ftransformacija T0 dajetablicu Tf,kojasedobijeiz T0 serijskomprimjenomsvihmoguih
transformacijakoristeizavisnostiizF.
(TfjemodelzaF).

44

Algoritam(C)
TestiramoF(R1,..,Rm)(C1)
Postupak:
1.NapisatiT0zazadaniRid(R)=R1,..,Rm.
2.IzraunatiTf.
3.F(R1,..,Rm)akoisamoakocrTf.

TestiramoFXY(C2)
Postupak:
1.NapisatiT0zazadaniRid(R)=XY,X(RXY)
2.IzraunatiTf
3.FXYakoisamoakocrTf.

TestiramoFXY(C3)
Postupak:
1.NapisatiT0zazadaniRid(R)=X,R.
2.RaunatiTf.
3.FXYakoisamoakosusviYstupci ciljni,tj.sastojesesamoododgovarajuihsimbola
aj.

45

ZADACI
1.NekajeR=ABCD,F:AC,CB,(AB,C,BD).
RijeiteIprobleme:
(a)FAB(b)FBA(c)F(ABC,BD).
2.Nekasl(Al)znaisloenostalgoritmaAl.
Usporeditesloenostalgoritama(A),(B)i(C).
3.Temeljemrezultatauzadatku2.,definirajte
optimalnukombinacijupredloenihalgoritamazarjeavanjeIproblema.

46

Svojstvazavisnosti

XYjetrivijalnaakoYX.

XYjetrivijalnanadRakoYXiliXY=R.

R,d(R):R1,..,Rk
Zavisnostspoja(R1,..,Rk)jetrivijalnaakoRi=Rzaneki
i=1,..,k

Nekajezadanajeshema(R,F),FFVS(R).

XYFVS(R)jeparcijalnasobziromnaFako
ZX:FZY
XYFVS(R)jetranzitivnasobziromnaRako
ZR:FXZ,FZY,gdjejeZYnetrivijalnazavisnost,FZX.

injenicadaje X Y tranzitivnazavisnostznaimogunostkonstrukcijesljedeegtranzitivnog
dijagrama:

n.z.
XZY

Klju

KRjekljuza(R,F)ako
(k1)FKR(jedinstvenaidentifikacija)
(k2)NepostojiK1K:FK1R(minimalnost)
AtributARjekljuniatributakojelannekogkljuasheme(R,F);atributARjenekljuni
atributakonijelannitijednogkljuasheme(R,F).

47

Zadatak
Zadanajerelacijskashema(R,F),gdjejeR=ABCDE,F:ABD,CAD,
BD.
Odreditesvekljueveza(R,F);
JelizavisnostABDparcijalnasobziromnaF?
JelizavisnostCDtranzitivnasobziromnaF?
Postojiliparcijalnazavisnostnekljunogatributaodkljua?
Postojilitranzitivnazavisnostnekljunogatributaodkljua?
uvanjeinformacije
(R,F),d(R1,..,Rk)
DekompozicijaduvainformacijuakoF(R1,..,Rk)
Zadatak
R=ABCD,F:ABC,BADd(R):AC,CD,AB.
Ispitatidalidekompozicijad(R)uvainformaciju.
uvanjezavisnosti

(R,F),d(R):R1,..,Rk

DekompozicijaduvazavisnostiFakozasvakurelacijurnadRvrijedi:Akoje R1(r)
modelza R1(F)i... Rk(r)modelza Rk(F),ondajermodelzaF.
Raunanjeprojekcijeskupazavisnosti
1.ProjekcijaskupafunkcijskihzavisnostiF
Ri(F)={XY FXYiXYRi}
2.Projekcijaskupavieznanihzavisnosti
Ri(F)={XY ZR:FXZ,Y=ZRi),
XYRi}

Zadatak
R=ABCDE,R1=ACD,F:ABC,BDE,BC,
ACDE

48

Ispitatikojeodzavisnosti:ABC,ADE,ACDE,ACD,
CDpripadajuprojekciji R1(F).

Propozicija(uvanjefunkcijskihzavisnosti)
Nekajezadanashema(R,F),gdjejeFFZ(R).
Dekompozicijad(R):R1,..,RkuvazavisnostiFakoisamoako
R1(F).. Rk(F)F
Algoritamzatestiranjeuvanjafunkcijskihzavisnosti

RioperacijanaskupuatributaX

Ri(X,F)=X[(XRi)F+Ri]
Zadatak
R=ABCD,X=AC,R1=AB,F:AB,BC
IzraunatiR1(X,F)
Algoritam(uvanjezavisnosti)
TestiramoGF,gdjejeG= R1(F).. Rk(F).
Gseneeekspliciteraunati!!
Ulaz:(R,F),FFZ(R),d(R):R1,..,Rk
Izlaz:DaakoduvaF
NeakodneuvaF
Postupak:
1.Izabratizavisnostf:XYizFteispitatidaliduvaf;Ispitivanjekoristipostupak
P:
(1)X0=X
(2)Xi+1=Rj(Xi,F)zanekiRjd(R)
(3)PrviXkzakojivrijediRt(Xk,F)=Xk,zasvakiRtd(R),
jeXG+
(4)GXY,tj.duvaXYakoisamoakoYXG+.
2.duvaFakoisamoakoduvasvakuzavisnostizF.

Zadatak
R=ABCD,d(R):AB,BC,CD;F:AB,BC,CD,DA
IspitatidalidekompozicijaduvaF.
49

2.5.NORMALNEFORME
Primjer2.17(uvodni)
Nekajezadanarelacijskashema(R,F),gdjeje
R=Artikl#,Dobavlja#,Grad;F:Dobavlja#Grad.
Nekarelacijado(dobavlja)nadRunekomtrenutkuvremenaimasljedeioblik
do(Artikl#Dobavlja#Grad)
======================
a1d1Zagreb
a2d1Zagreb
a3d1Zagreb
a2d3Sisak
a4d2Rijeka
Semantika
do(a,d,g)znaidadobavljadlociranugradugdobavljaartikla.
Relacija do nema dobru strukturu (shemu) za predstavljanje navedenih podataka, jer sadri
redundantnoponavljanjegradadobavljaazasvakiartikl.
Karakterizacijaredundancije
Zamislimoda,poslijeupisivanjareda(a1,d1,Zagreb)urelacijudo,elimoudoupisati(parcijalni)
red(a2,d1,?).Navedenasituacijajeprikazanautablici
do(Artikl#Dobavlja#Grad)
=========================
a1d1Zagreb
a2d1?
Postavimo sljedeepitanje:jelimogueodrediti(deducirati)vrijednostatributa Grad u drugom
(parcijalnom)redunatemeljudanihpodatakaudoi
svojstavarelacijskesheme(R,F).
Nijetekozakljuitidatrebabiti ?=Zagreb,jerurelaciji do moravrijeditifunkcijskazavisnost
Dobavlja#Grad(semantikoogranienje).
Prematome,upisivanjeGrad=Zagrebudrugomredujesuvino(redundantno),jertainjenicaslijedi
iz danih podataka u do i propisanog semantikog ogranienja F. No, propisana shema od do
zahtijevaponavljanjelokacijedobavljaazasvakiartikl,tosamoznaidarelacijskadanarelacijska
shema(R,F)nijedobra.Zakljuimodaseredundancijamanifestiraponavljanjempodataka(kojiinae
slijedeizdanihpodataka),alidanijesvakoponavljanjepodatakaujednoiredundantnoponavljanje.
50

Naime,ukolikopojavljivanjenekogpodatkaneslijediizdanihpodataka,tadanjegovoponavljanjenije
redundantno(poslijeemovidjetiupravotakvusituaciju).
Kaoposljedicuredundancijeimamopotekoeuauriranjubazepodataka,tojepoznatopodnazivom
anomalijeauriranja,kojeemopojasnitinaprimjeruzadanerelacijedo.

Anomalije
(AB)Anomalijabrisanja:
Brisanjemredovazaartikle a1,a2,a3(kada d1 prestanedobavljatiartikle),gubimoinformacijuo
dobavljauipripadnomgradu(nepoeljanefekt)
(AU)Anomalijaupisivanja:
Nemogunostupisivanjadobavljaaipripadnoggradaakodanidobavljatrenutnonedobavljaneki
artikl.
(AM)Anomalijamodifikacije:
NemogunostnezavisnogauriranjavrijednostiatributaGrad.
Napomena:(AB)i(AU)nemoemorijeitipomouNULLznaka.
Zadatak
Objasnitenavedenunapomenu.
Uzrokpromlema
PostojiparcijalnazavisnostnekljunogatributaGradokljuu
K=Artikl#,Dobavlja#.Navedenoznaida(R,F)nijeu2NF.Karakterizacijenormalnihformidat
emoupreostalomdijeluovogpoglavlja,nakontoopiemoproblem oblikovanjashemerelacijske
bazepodataka.
Nastavimo razmatranjenaegprimjera.Problem redundancije, asamim tim ianomalijaauriranja,
moemorijeitieliminacijomparcijalnezavisnostinekljunogatributa Grad okljuu K=Artikl#,
Dobavljatakodaizvrimo2NFdekompozicijurelacijskesheme(R,F).
DekomponirajuiR,koristeifunkcijskuzavisnostDobavlja#Grad,dobivamo
d(R):R1=Dobavlja#,GradR2=Dobavlja#,Atrikl.
Shemarelacijskebazepodatakapoprimaoblik
SRBP:(R1, R1(F)),(R2, R2(F)).
SRBPjeu2NF,tj.,svakarelacijskashemaizSRBPjeu2NF.
Umjestorelacijedo,bazapodatakaBP,nadrelacijskomshemomSRBP,sastojiseodprojekcijado
naR1iR2.Takodobivamo
BP:do1,do2,gdjejedo1= Dobavlja#Grad(do)ido2= Dobavlja#Artikl#(do).
51

Relacijedo1ido2izgledajuovako:
do1(Dobavlja#Grad)do2(Dobavlja#Artikl#)
d1Zagrebd1a1
d3Sisakd1a2
d2Rijekad1a3
d3a2
d2a4
Uoitedaudobivenojbazipodataka BP= do1,do2 nemamoprijeopisaneanomalijeauriranja.
Takoer,primijetitedaponavljanjedobavljaa d1zasvakiodartikalakoje d1 dobavlja(urelaciji
do2)nijeredundantno,jerinaenebismoznalitonamsvedobavljad1.
Dekompozicijad(R):R1,R2imasljedeasvojstva:
(A)d(R)je2NFdekompozicija
(B)d(R)uvainformaciju(do=do1do2)
(C)d(R)uvaskupzavisnostiF,tj.,
R1(F) R2(F)F.
Problemlogikogoblikovanjashemerelacijskebazepodataka
Zadanurelacijskushemu(R,F)trebaodreditidekompoziciju
d(R):R1,..,Rm,tj.,shemurelacijskebazepodataka
SRBP:(R1, R1(F)),..,(Rm, Rm(F)),takodabudeispunjeno:
SRBPjeueljenojnormalnojformi,
d(R)uvainformaciju,
d(R)uvazavisnostiF.
Vrijediistaknutidaseu,nebanajboljoj,praksiproblemoblikovanjareduciranasintezu3NF.Naime,
nekikaudasevienormalneforme(>3)rijetkokoristeupraksi.Moglobiserei:togorepotui
takvu praksu. Dalje, neki kau da su vie normalne forme teke za razumijevanje i postizanje.
Navedenogovorivieoonima,nadamseneinformatiarima,koji,posvemusudei,neznajuonoto
rade.Nakraju,imaionih,nijerijetkostnitimeuprofesionalniminformatiarima,kojikau:toe
namnormalizacija,kadaitakomoramodenormaliziratizapotrebeskladitapodatakaitd..Iuovom
sluaju,moesereitojeveprijekazano,tj.rijejeoneznanju.
Prijesvega,koristisepojamdenormalizacije,adaodenormalizacijiuopenijerije.Drugo,mijeajuse
dvijerazine,tj.,dvarazliitakonteksta:rijejeooperativnimbazamapodataka(OLTP)iskladitu
podataka(DW),koji,naprosto,imajurazliiteciljeveuoblikovanju.Zakljuimo,daukolikojerijeo
(operativnim)bazamapodataka,trebapostiinajviumoguunormalnuformu.Svakako,tozahtijeva
suptilnopoznavanjeprincipaoblikovanjabazepodataka.

52

Normalneforme
NekajeA={a,b,c,..}skupatomskihobjekata.
Koristeikonstruktezaskupove,listeirelacije,dobivamoskupoveneatomskih(sloenih)objekata

Primjer2.18
A=AlfIRDatNovacGraf;
S={{a,b},,..};L={<a,b,a,c>,<>,..};
R={r1,r2,..};K={<r1,S1,{a}>,..}
Ajeskupatomskihobjekata(sadrialfanumerikitip,cjelobrojnitip,realnebrojeve,datumitd.)
S,L,R,iKsesastojeodsloenihobjekata:Sjeskupijielementisuskupovi,Ljeskupijielementi
suliste,Rjeskupkojisesastojiodrelacija,aKjeskupkojisesastojiodelemenatakojisuizgraeni
kombinacijomelemenataizskupovaS,LiR.

Atribut A jeatomski(jednostavan)atributakose Dom(A)sastojisamoodatomskihobjekata;u


protivnome,Ajesloenatribut.
(R,F)jeu1NFakosusviatributiizRatomskiatributi.
(R,F)jeupoopenojNFakojesvakiatributizRjednostavanilisloen.
Udaljempretpostavljamodaje(R,F)jeu1NF,gdjejeFFVS(R).
2NF:
(R,F)jeu2NFakosobziromnaFnepostojiparcijalnazavisnostnekljunogatributaodkljua.
3NF:
(R,F)jeu3NFakosobziromnaFnepostoji
tranzitivnazavisnostnekljunogatributaodkljua.
ZatvaraskupazavisnostiF:
F+={fFVS(R) Ff}
BCNF:
(R,F)jeuBCNFakozasvakunetrivijalnufunkcijskuzavisnost
XYF+vrijedi: LijevastranaXsadrikljuod(R,F).
4NF:
(R,F)jeu4NFakozasvakunetrivijalnuvieznanuzavisnost
XYF+vrijedi:LijevastranaXsadrikljuod(R,F).

53

5NF:
(R,F)jeu5NFakozasvakunetrivijalnuzavisnostspoja
(R1,..,Rk)F+vrijedi:svakakomponentaRisadrinekikljuod
(R,F).
Propozicija(odnosnormalnihformi)
Svakavianormalnaformapovlainiunormalnuformu.
Formalno,Akoje(R,F)uXNF,ondaje(R,F)uYNF,gdjejeY<X.
(Pretpostavljamoureaj:1<2<3<BCNF<4<5)
dokaz
dokazatemodiopropozicije
P23:Akoje(R,F)u3NF,ondaje(R,F)u2NF.
Dokazidepokontrapoziciji:
Prepostavimoda(R,F)nijeu2NF.Toznaidapostojiparcijalnazavisnostnekljunogatrubutaod
kljua.Nekajetaparcijalnazavisnostoblika
KA,gdjejeKkljuza(R,F)iAjenekljuniatribut.IzparcijalnostizavisnostiKAmoemo
zakljuitidapostojiYKtakavdavrijedi
FYA.Prematome,imamosljedeeinjenice:
(1)FKY
(2)FYA(YAjenetrivijalnazavisnost)
(3)FYK
Iz(1),(2)i(3)vidimodajenekljuniatributAtranzitivnozavisanodkljuaK.Znaida(R,F)nijeu
3NF.
Ostaliodnosidokazujuseanalogno.

Propozicija
Zasvakushemu(R,F),gdjejeFFZ(R),postoji
3NFdekompozicijakojauvainformacijuizavisnosti.
Dokaz:(algoritamsinteze3NFprekokanonskogpokrivaa).
Kanonskipokrivaod F, kp(F),dobijeseiz F primjenomsljedeatrikorakaunavedenom
redoslijedu:
(1)Desnadekompozicija
(2)Lijevaredukcija
Izbacivanjeredundantnih(suvinih)zavisnosti
F(1)(2)(3)kp(F)

Raunanje kanonskog pokrivaa i algoritam sinteze 3NF moete nai u popisu literature ili u
predavanjimaM.Malekovi:Bazepodataka.

54

Propozicija(BCNF)
Postojishema(R,F)zakojunepostojiBCNFdekompozicijakojauvainformacijuizavisnosti.
dokaz
Zadokazpropozicijerazmotriteshemu(R,F),gdjejeR=ABCi
F:ABC,CA.Pokaiteprvoda(R,F)nijeuBCNF,azatimzakljuitedase(R,F)nemoe
BCNFdekomponiratiukolikoelimodaBCNFdekompozicijauvainformacijuizavisnosti.

55

ZADACI
Zadataci[relacijskaalgebra]
1.ZadanesurelacijeiformulaF:
r(ABCD)s(BCE)

1102012
0001020
2110102
2211201
F:[(A<B)(D=C)][(B E)(A=B)].
IzraunajteAC[ ABD( F(sr))].
2.Zadanesurelacije
r1(ABCD)r2(BCDE)r3(CD)
1221221121
1111110011
12333120
iformulaG=(B>E)(C 1).
Izraunajtes= G{ BCE[(r1 D(r3))r2]}.
3.Dokaitejednakosti(1),(5),(10),(11)i(12)izkatalogaRO.
4.Dokaiterelacije(6),(8)i(9)izkatalogaRO.
Napomena:kaemodajer(R)s(S)akojeR=Sisvakislogkojijeurelacijirjesteiurelaciji
s.
5.Dokaitepropoziciju(jednakostslogovanapraznomskupuatributa)ipropoziciju(temeljnioperatori)

56

ZADACI[zavisnostiurelacijskimbazamapodataka]
1.IspitajtesvakuodzavisnostiizskupaF:ABD,BAC,
(AB,CD),(A,BCD)urelaciji
r(ABCD)
===========
1221
2111
1200
2.JelivrijediXYXZY(lijevoproirenje)?
3.VrijediliXYXYZ(desnoproirenje)?
4.Dokaite3.izkatalogaFZ.
5.Dokaite1.izkatalogaFVS.
6.Dokaitepropoziciju(istosemantikoogranienje)

57

ZADACI[formalnisustavi]
1.R=ABCDE,F:ABBC,CED,DAB
OdrediteBF+,ADF+
2.Jelivrijedi
[AFS]AB,ACABC?
Napomena:uzadatkutrebateizA BiA CdeduciratiA BC primjenompravilaformalnog
sustavaAFS.
3.Jelivrijedi
[AFS]ABABC?
4.DokaitepotpunostformalnogsustavaAFS.

58

ZADACI[implikacijskiproblem]
1.Zadanajerelacijskashema(R,F),gdjejeR=ABCDE,F:ABD,CAD,BE.Odredite
svekljueveza(R,F).
2.R=ABCDE,F:ACD,CBD,BE,ED
(a)JelizavisnostABDparcijalnasobziromnaF?
(b)JelizavisnostCEtranzitivnasobziromnaF?
3.R=ABCD,F:ACD,CBD,BA,AD
(a)Postojiliparcijalnazavisnostnekljunogatributaodkljua?
(b)Postojilitranzitivnazavisnostnekljunogatributaodkljua?
4.R=ABCDE,R1=ABD,F:ABC,BD,BA,
ACDE
Ispitatikojeodzavisnosti:AB,ADE,ABD,ACD,
BDpripadajuprojekciji R1(F).
5.R=ABCDE,d(R):AB,BCE,CD;
F:AB,BC,CDE,DA
IspitatidalidekompozicijaduvaF.
6.Dokazatikorektnostalgoritmazatestiranjeuvanjazavisnosti.

59

ZADACI[normalneforme]
1.R=ABCDE,F:ABC,CDA,BC
Jeli(R,F)u2NF?
Jeli(R,F)u3NF?
2.R=ABCD,F:ABC,CA
Jeli(R,F)uBCNF?
3.R=ABCD,F:AC,BA
Jeli(R,F)u4NF?
4.R=ABCD,F:AB,BC,(AB,BCD)
Jeli(R,F)u5NF?
5.R=ABCDE,F:ABC,BCD,DEB
Primijenitealgoritamsinteze3NF.

60

3.PARCIJALNAINFORMACIJA
3.1.UVOD
Reprezentacijaobjekta(pomouslogarelacije)moebitinepotpunatj.parcijalna.Tojeposljedica:
(A)Nepoznavanjavrijednostislogananekomodatributa(utrenutkuauriranjabazepodataka),
(B)Nedefiniranostislogananekomodatributa(utrenutkuauriranjabazepodataka).
Primjer3.1(A):
Nekajezadanarelacija nastavnik(N# Prezime Zvanje Predmet).Nekaje,takoer,zadanog
nastavnikaN1trenutnonepoznatatonjegovozvanje.
AtributZvanjejedefiniran(primjenjiv)zaN1,alijenjegovavrijednostnepoznata.
Primjer3.2(B):
Uistojrelaciji,nastavnik(N#PrezimeZvanjePredmet),zadanognastavnikaN2atributPredmet
nijedefiniran(natavnikN2trenutnonepredajenitijedanpredmet).
Navedenusituacijuizprimjera2.1(A)i2.2(B)prikazujemourelacijinastavnikovako:
nastavnik(N#PrezimeZvanjePredmet)
==============================
N1Singer?FizikaI
N2RadiDocent!

Znak?znaidefiniranu,alinepoznatuvrijednostsloga(uSQLutojenull);
Znak!znainedefiniranuvrijednostsloga.
Unastavkurazmatratemosamoparcijalnerelacijetipa?.

61

2.2.PARCIJALNARELACIJA

Parcijalnarelacijatipa?

R=A1,..,Am;Dom(Ai)=Di,i=1,..,m;
D=D1..Dm.D?=D{?}.
ParcijalanislognadRjefunkcijat:RD?takvadavrijedi:
(1)(AjR)[t(Aj)Djilit(Aj)=?]i
(2)( AkR)[t(Ak)Dk].
SlogtjepotpunakojeAiR:t(Ai)Di.
Vidimodajepotpunslogspecijalizacija(parcijalnog)sloga.Takoer,funkcija
f:RD?takvadaje(AjR)[f(Aj)=?]nije(parcijalni)slog
PotpunostParcijalnost
NemapojavljivanjaMoepostojati
znaka?pojavljivanjeznaka?
ParcijalnarelacijanadRjekonaanskupparcijalnihslogovanadR.
Relacijar(R)jepotpunaakosersastojisamoodpotpunihslogova.
Vidimodajeparcijalnarelacijapooenjepotpune(uobiajene)relacije.
Primjer3.3
Nekajezadanarelacija
radnik(Radnik#PrezimeOdjel#Plaa)
==============================
R1BencO11000
R2Mari?1200
R3MihaliO2?
Semantika:RadnikMariradiunepoznatomodjelu,imaifruR2iplau1200;RadnikMihali,
ifraR3,radiuodjeluO2,anjegovaplaajenepoznata.

62

Napomena:
Razliitapojavljivanjaznaka?udanomtrenutkuvremenamogupoprimitirazliitevrijednosti.

Upotpunjenjeparcijalnerelacije
Upotpunjenjeparcijalnerelacijerjepotpunarelacijakojasedobijezamjenomsvihpojavljivanjaznaka
?urvrijednostimaizD;oznakar*.
Primjer3.4
Napiimojednoupotpunjenjerelacijeradnikizprologprimjera.
radnik*(Radnik#PrezimeOdjel#Plaa)
==============================
R1BencO11000
R2MariO31200
R3MihaliO21300
Kolikoupotpunjenjaimarelacijaradnik?
Logikioperatori(trovalentnalogika)
Propozicijapjedeklarativnareenicakojaimajednuodsljedeihistinosnihvrijednosti:
v(p)=T(pjeistinito)
v(p)=F(pjeneistinito)
v(p)=N(istinitostodpjenepoznata)
Logikioperatorinegacija(),disjunkcija()ikonjunkcija()utrovalentnojlogicidefiniranisuu
sljedeojtablici
PQPPQPQ
========================
FFTFF
FNTNF
FTTTF
NFNNF
NNNNN
NTNTN
TFFTF
TNFTN
TTFTT
Implikacija()iekvivalencija()sudefiniranejednakostima:
63

PQ=PQPQ=(PQ)(QP)

Aritmetikioperatoriusporeivanjaiaritmetikeoperacije
Nekajeopbilokojioperatorizskupaaritmetikihoperatorausporeivanja
{<,>, , ,=,}.TadajeXopY=NakojeX=?iliY=?.
Dakle,rezultatusporeivanjajenepoznat(vrijednostN)imjedanodoperanadapoprimaznak?
Nekaje bilokojaodaritmetikihoperacijaizskupa{+,, ,/}.Tadaje
x y=?akojex=?iliy=?(pretpostavljamodanijerijeodijeljenjusa0).
Primjer2.5
Odredimoistinosnuvrijednostsljedeihpropozicija:
(a)0<0
(b)? 0
(c)1+?=1
(d)?=?
Rjeenje
(a)F(b)N(c)N(d)N

Jednakostparcijalnihslogova
Postojinekolikodefinicijajednakostiparcijalnihslogova.Svakaoddefinicijajepoopenjejednakosti
potpunihslogova,aizborsvakeodnjihvodinarazliiturelacijskualgebru.Navodimosljedeetri
definicijejednakostiparcijalnihslogova.
(J1)Zaparcijalneslogovet1,t2:RD kaemodasujednakiako
(AR)[t1(A)=t2(A)].
Dakle,jednakost(J1)zahtijevajednakostnasvakomatributuizR.
(J2)Zaparcijalneslogovet1,t2:RD kaemodasujednakiako
(AR)[t1(A)it2(A)suistisimbol].
Jednakost(J2)zahtijevapojavljivanjeistogsimbolazasvakiatributizR(simbolikajednakost).
(J3)Zaparcijalneslogovet1,t2:RD kaemodasujednakiako
(AR)[(t1(A)=t2(A)akojet1(A),t2(A)D)ili(t1(Ai)je?ilit2(Ai)je?)]i
(BR)[t1(B)=t2(B)it1(B),t2(B)D]

64

Primjer3.6
Nekajezadanarelacija
radnik(Radnik#PrezimeOdjel#Plaa)
==============================
R1BencO11000
R2Mari?1200
R3MihaliO2?
R4Mari??
R5Mihali?1100
R6?O31000
R7??900

Odredimo Prezime,Odjel#(radnik)primjenom
(a)jednakosti(J1)
(b)jednakosti(J2)
(c) jednakosti(J3)
(ci)
Rjeenje
(a)Dobivenuprojekcijuemooznaitisa (J1).
Prijeeliminacijeponavljanjaredovaineslogova(sastojesesamoodznakova?)dobivamotablicu
r1(PrezimeOdjel#)
===============
BencO1
Mari?
Mari?
MihaliO2
Mihali?
?O3
??
Konano, nakon eliminacije zadnjeg reda i budui da nema, temeljem (J1), jednakih redova u r1,
dobivamo
(J1)Prezime,Odjel#(radnik)(PrezimeOdjel#)
================================
BencO1
Mari?
Mari?
MihaliO2
Mihali?
?O3

65

(b)Uprvomkorakudobivamor1izdijela(a).Sadaizbacujemoneslogoveiponavljanja,temeljem(J2),
jednakihslogova.Rezultatje
(J2)Prezime,Odjel#(radnik)(PrezimeOdjel#)
================================
BencO1
Mari?
MihaliO2
Mihali?
?O3
(c)Nakoneliminacijeneslogovaiponavljanjatemeljem(J3),dobivamo
(J3)Prezime,Odjel#(radnik)(PrezimeOdjel#)
=================================
BencO1
Mari?
MihaliO2
?O3
Kodeliminacijeponavljanjatemeljem(J3),izr1smoizbacilimanjeinformativanslog(slogsvie
znakova?).Tojeujednoopepraviloeliminacijetemeljem(J3).
Dalje, nije teko vidjeti da su skupovi upotpunjenja relacija (J1), (J1) i (J3) razliiti. Zato
kaemodasuioperatoriprojiciranja (J1), (J2)i (J3)razliiti.Totakoerznaidasurelacijske
algebraRA(J1),RA(J2)iRA(J3)razliite.

66

3.3.RELACIJSKIOPERATORIZAPARCIJALNERELACIJE
U daljnjem razmatranjupretpostavljamodasurelacijskioperatoridefiniraniprimjenomsimbolike
jednakosti(J2).Naznaku(J2)unazivuoperatoraisputamozbogjednostavnosti.
Uvodimodvaoperatoraselekcije:

F(r)={tr F(t)=T}, NF(r)={tr F(t)=N}

Dakle,u F(r)suonislogoviizrkojizadovoljavajuF;
U NF(r)suonislogoviizrzakojeneznamodalizadovoljavajuuvjetF.
Primjer2.7
Zadanesurelacije
r1(ABC)r2(ABC)r3(CD)
=======================
22122111
3?11?1?2

Izraunati:r1r2,r1r2, BC(r2),

(r1), NA B(r1),r2r3.

A B

Rjeenje
r1r2(ABC)r1r2(ABC)
==========================
221221
3?1
1?1
BC(r2)(BC) A B(r1)(ABC)
==========================
21221
?1

67

NA B(r1)(ABC)r2r3(ABCD)
===============================
3?12211
1?11

Ureenje redova relacije SURBP (sustav za upravljanje relacijskom bazom podataka) ostvaruje
koristei:
Simbolikajednakost:X=X
Simbolikoureenje:x<?,gdjejexD.
Tautologije
FormulaFjetautologijaakousvakojsvojojinterpretacijiimavrijednostT.Navedenoznaidaje F(r)
=rzabilokojurelacijurnakojujeFprimjenjivo.Prematome,nemasmislaraunatiselekcijupo
formulikojajetautologija.
Gledetautologija,Coddpredlae:
(a)Korisnikueliminacijatautologija,tj.korisniknetrebakoristititautologijeuupitima(posaoza
nenaivnogkorisnika)
(b)Sistemskaeliminacijatautologija,tj.SURBPeliminiraupitekojisadretautologije.
ZbogsemiodluivostlogikeIredagledetautologija,poeljnorjeenje(b)nijemoguekaojedino
rjeenje.Zapravo,praktinopreostajekaonajboljerjeenjekombinacija(a)i(b).
Kod korisnike eliminacije tautologija, korisnik treba voditi rauna o injenici danoj u sljedeoj
propoziciji.
Propozicija
Postojiformulakojajetautologijaudvovalentnojlogici,anijetautologijautrovalentnojlogici.
dokaz
F=PP
PoznatojedajeFtautologijaudvovalentnojlogici.DaFnijetautologijautrovalentnojlogicislijediiz
injenicedauinterpretacijiI:P=?vrijedi
F(I)=??=??=?.
Dakle,zaboravimonanavikeizsvijetadvovalentnelogikekadasmousvijetutrovalentnelogike.Treba
priznatidatoinijebajednostavnokakosemoeuiniti.

68

Upravo zbog kazanog, neki autori (C. J. Date) smatraju primjenu vievalentnih logika ( > 2)
zbunjujuomzakrajnjekorisnike.Zato,dabisauvalijednostavnostrelacijskogmodela,predlau
ostanak u okviru dvovalentne logike uz primjenu odgovarajuih aplikacijskoprogramskih zahvata
(difoltnavrijednost)zatretiranjeparcijalnihrelacijskihbazapodataka.
E.F.Coddzastupaupravosuprotnupoziciju:predlaeizgradnjuSURBPsaugraenom4valentnom
logikom.Racionalajedaneebanaivnikorisnicikoristitisvesofisticiranemogunostirelacijske
tehnologije.Uostalom,punotogasemoeenkapsulirati,zarne?(dobraidejaobjektneorijentacije).

69

2.4.TIPOVILOGIKIHPOSLJEDICA

Usluajukonvencionalnih(potpunih)relacijskihbazapodataka(nemapojavljivanjaznaka?)definirali
smo:
FvrijediurakourvrijedisvakazavisnostizF.Kaemodajeunavedenomsluajurmodelza
F.
Udefinicijismokoristilisvojstvoaditivnostikojejekarakteriziranokaotoslijedi.

Aditivnost:AkoFvrijediuriGvrijediur,ondaiFGvrijediur

Strogovrijedi
Zavisnostfstrogovrijediuparcijalnojrelacijirakofvrijediusvakomupotpunjenjurelacijer,tj.
akofvrijediusvakomr*.

Slabovrijedi
Zavisnostfslabovrijediuparcijalnojrelacijirakofvrijediunekomupotpunjenjurelacijerifne
vrijediunekomdrugomupotpunjenjurelacijer,tj.akoposojeupotpunjenjar*1ir*2takvadaf
vrijediur*1ifnevrijediur*2.

Strogonevrijedi
Zavisnost f strogonevrijediu parcijalnojrelacijir ako f nevrijedinitiujednomupotpunjenju
relacijer,tj.,akofnevrijedinitiujednomr*.
Napomena:Rei''nijeistinadasrogovrijedi''i''strogonevrijedi''nijeistastvar.
Sadaprelazimonarazmatranjetritipalogikeposljedice.Pretpostavljamodaje
F:f1,f2,..,fkFZ(R);fFZ(R).

LP1:
f1,f2,..,fkf(uobiajeno''prekopotpunihrelacija'')

LP2:
f1,f2,..,fkstrf
Zasvakurelacijuparcijalnurelacijur:
akof1strogovrijediur,f2strogovrijediur,..,fkstrogovrijediur,ondafstrogovrijediur.

LP3:
f1,f2,..,fkslf
Zasvakurelacijur:
akof1slabovrijediur,f2slabovrijediur,..,fkslabovrijediur,ondafslabovrijediur.

70

Propozicija(odnostipovalogikihposljedica)
(A)LP1LP2
(B)NevrijediekvivalencijaLP1LP3
(A)namkaedasurezoniranjatemeljemLP1iLP2ekvivalentna,a(B)kaedatonevrijedizalogike
posljediceLP1iLP3.Iz(A)i(B)takoerslijedidarezoniranjatemeljemLP2iLP3nisuekvivalentna.
DanevrijediekvivalencijaLP1LP3,pokazujenamsljedeiprimjer.
Primjer2.8
R=ABC,F:AB,BC.
PoznatojedausvijetuLP1vrijediFAC.
Meutim,usvijetuLP3imamoFslAC,kaotopokazujesljedeiprimjer.
Nekajezadanaparcijalnarelacija
r(ABC)
========
1?1
1?2
LakoprovjerimodaABslabovrijediur,BCslabovrijediur,aACnevrijedislabou
r.
Problem
Dalivrijediaditivnostusluajuslabovrijedi?
Rjeenje
KaemodaFslabovrijediurakoFvrijediunekomupotpunjenjuodriFnevrijediunekom
upotpunjenjuodr.
Izprologprimjera6.6imamodaiakoABslabovrijediur,BCslabovrijediur,nijeistina
daF:AB,BCslabovrijediur.
ZakljuimousvijetuLP3nevrijediaditivnost.Dakle,potrebanjeoprezprilokomprelaskaizjednog
svijeta(konteksta)udrugisvijet(kontekst),topredstavljatemeljniprinciprezoniranjaoznanju.

71

ZADACI
1.Napiitenekolikoupotpunjenjaparcijalnerelacije
r(ABC)
========
ab?
b?c
2.Nekasuzadanerelacije
r(ABC)s(BCD)
================
1222?2
22?223
iformulaF:(AB)(C D).
Izraunajtetemeljem(J2)sljedeirelacijskeizraze:
(a)r1= F( ACD(rs)(b)r2= FN(r1)

3.Nekajerkaouzadatku1.Ispitajtejeli
(a)ABstrogovrijediur
(b)ABslabovrijediur
(c)ABstrogonevrijediur
4.Napiiterelacijur(ABC)ukojojBCslabovrijediiukojojnijeistinada
BCstrogovrijedi.
5.Napiiterelacijur(ABC)ukojojBCslabovrijediiukojojBCstrogonevrijedi.
6.PredloitepostupakzarjeavanjeIproblemausvijetuLP2.

72

4.TEMPORALNEBAZEPODATAKA
4.1.UVOD
Bazapodatakasadripodatkeoorganizacijiinjenimaktivnostima.Onajeosnovazarazneaplikacije
odinteresazadanuorganizaciju.Konvencionalnebazepodatakaoblikovanesutakodasadrenajnovije
podatke, tj. tekue podatke. Auriranjem baze podataka stare vrijednosti se eliminiraju iz baze
podataka. Prema tome, baza podataka je model tekueg stanja aplikacijske domene (snapshot of
reality).Temporalnebazepodatakaomoguujureprezentacijupovijestiobjekata.
Temporalnirelacijskimodelsastojiseod:
Temporalnihrelacija
Temporalnerelacijskealgebre
Temporalnihuvjetaintegriteta

4.2.TEMPORALNERELACIJE
Uovomodjeljkurazmatramointervalnoproirenjerelacijskogmodela,tj.opisujemointervalnerelacije.

Intervalnerelacije
Primjer4.1
Zadanajerelacija
plaa(Radnik#IznosVrijeme)
========================
R1100Kn[d2,d6>
R1100Kn[d9,d12>
R1120Kn[d15,>
R2130Kn[d9,d12>
Semantika
RadnikR1imaojeplau100Knuvremenskomrazdobljuodd2dod6;
Urazdobljuodd9dod12njegovaplaajebilaisto100Kn;Urazdobljuodd15do (zadnje
registriranovrijeme),plaaodR1jebila120Kn.PlaaodR1jenepoznata(ilinijedefinirana)u
intervalu[d6,d9>.
Intervali
Jednodimenzionalniprostor, ={d1,d2,..,dn},jeneprazankonaanskup,kojijepotpunoureens
obziromnarelaciju<.
Pretpostavljamo:d1<d2<..<dn,idisuatomskiobjekti,i=1,2,..,n.
73

Uvodimoskup *={d1,d2,..,dn,},gdjejedi<zasvakidi.
Definiramosljedeefunkcije:
Red: *{1,2,..,n,n+1},Red(di)=i,Red()=n+1;
IredjeinverznafunkodRed;Sljed(di)=di+1;Pret(di+1)=di
Nekasudi,dj *,di<dj.
[di,dj>={dk di dk<dj}jeinterval(poluotv.)nad .
I( )jeskupsvihintervalanad .
Propozicija(konanostskupaintervala)
I( )jekonaanskup.
dokaz
KonanostI( )slijediizkonanosti .
Jednakostintervala
I1,I2I( ),I1=[a,b>I2=[c,d>
I1=I2akoa=cib=d.

Viedimenzionalniintervali

Nekasu 1, 2,.., njednodimenzionalniprostori,te


I1 1,I2 2,..,In n.
I1 I2 .. In={(x1,x2,..,xn) xkIk}jendimintervalnad
T= 1 2 .. n;I(T)jeskupsvihintervalanadT.
Primjer4.2
1={0,1}, 2={4}.
Definiramo( 1)=2i( 2)=5.
I( 1)={[0,1>,[0,2>,[1,2>},I( 2)={[4,5>},I(T)=I( 1 2)={[0,1> [4,5>,[0,2>
[4,5>,[1,2> [4,5>}
Akoupotrijebimoidentifikaciju:di=[di,di+1>zai=1,2,..,n1;dn=[dn,>,
dobivamo I( ).
R=A1,..,Anjeintervalnarelacijskashemaakoje
Dom(Ai)=I( i)iliDom(Ai)= i,i.
AkojerrelacijanadR,ondakaemodajerintervalnarelacija.
Kodintervalnerelacije,vrijednostiatributasuatomnevrijednostiiliintervali.
Intervalnarelacijajepoopenjeobinerelacije(obinarelacijasadrisamoatomskevrijednosti).
74

4.3.RELACIJSKIOPERATORIZATEMPORALNERELACIJE
Opratori,,, ,,kaotosudefiniranizaobinerelacije,imajunepoeljnasvojstvaukoliko
seprimjenenaintervalnerelacije.Toemovidjetiizsljedeegprimjera.
Primjer4.3
Nekasuzadanerelacije
r1(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d5>
r2(Radnik#PlaaVrijeme)
========================
R1110Kn[d5,d10>
Tadaje
r1r2(Radnik#PlaaVrijeme)
===========================
R1110Kn[d2,d5>
R1110Kn[d5,d10>

Kompaktnijareprezentacijainformacijeiz r1 r2 jeuoblikurelacije r1 i r2,gdjesmoizvrili


unijuintervala[d2,d5>i[d5,d10>.r1ir2jeintervalnaunijarelacijar1ir2.
Dobivamo
r1ir2(Radnik#PlaaVrijeme)
===========================
R1110Kn[d2,d10>

Zatvaranje(fold)Zi

75

Primjer4.4
Nekaimamorelaciju
r(ABC)
===================
[1,5>[3,6>[2,12>
[1,5>[1,2>[2,12>
[3,4>[1,9>[2,12>
[1,5>[5,11>[2,12>
[3,4>[7,12>[2,12>
TadajezatvaranjerelacijerpoatributuBdanorelacijom
Zi[B](r)(ABC)
====================
[1,5>[1,2>[2,12>
[1,5>[3,11>[2,12>
[3,4>[1,12>[2,12>
Zi[B](r)jedobivenosljedeimpostupkom.
PostupakraunanjaZi[B](r):
1.Naigrupesvihslogovaizrkojise podudarajunaACiijeunijeintervalaizkorespondentnog
skupa[B](r)dajuinterval.
2.Zasvakugrupu{t1,..,tk}stavitislog
t1[A],t1[B]..tk[B],t1[C]uZi[B](r).
Formalizacijarelacijskihoperatorazahtijevadefiniranjepredikatanadintervalima.

NekasuzadaniintervaliI1=[a,b>,I2=[c,d>.
Definiratemo13predikatakaotoslijedi.
(1)I1PrijeI2akob<c
(2)I2DolaziI2akob=c
(3)I1LijevopreklapaI2akoa<c<b<d
(4)I1LijevopokrivaI2akoa<c,b=d
(5)I1PokrivaI2akoa<c,d<b
(6)I1DesnopokrivenI2akoa=c,b<d
(7)I1=I2akoa=c,b=d
(8)I1DesnopokrivaI2akoa=c,d<b
(9)I1PokrivenI2akoc<a,b<d
(10)I1LijevopokrivenI2akoc<a,b=d
(11)I1DesnopreklapaI2akoc<a,d<b
(12)I1OdlaziI2akob=d
(13)I1PoslijeI2akoc<a
76

Definiramodalje,I1UjedinjujeI2ako(2)(3)..(12).
Propozicija(ujedinjenjerezultiraintervalom)
I1I2jeintervalakoI1UjedinjujeI2.
Propozicija(raunanjeunije)
NekajeI1,I2I( ),I1=[a,b>I2=[c,d>.
TadajeI1I2=[e,f>,gdjejee=Min{a,c},f=Max{b,d}.
Dokazinavedenihpropozicijasujednostavniiostajukaozadacizasamostalnirad.
FormalizacijazatvaranjaZi
Nekajer(A1,..,Ak,B)(intervalna)relacija.ZatvaranjeodrpoatributuBdefiniramonasljedei
nain:
Zi[B](r)=r1:
(1)SH(r1)=(A1,..,Ak,B),gdjejeDom(B)= I( k+1)
(2)Slogoviizr1definiranisualgoritmom:
begin
r1:=r
whilepostojerazliitislogovit1,t2r1takvida
(Aj)(t1(Aj)=t2(Aj))i
(t1[B]Ujedinjujet2[B]do
r1:=(r1{t1,t2}){[t1[A1..Ak],t1[B]t2[B]]}
end
Zatvaranje,prvopoB,azatimpoA,definiramojednakou
Zi[A,B](r)=Zi[A](Zi[B](r))
Propozicija(zatvaranjeovisioporetku)
Zi[A,B] Zi[A,B]

77

Dokaz
Nekajezadanarelacija
r(AB)
============
[1,3>[1,5>
[3,7>[1,5>
[1,3>[5,7>
[1,3>[7,10>
[5,9>[3,7>
[8,10>[3,7>
Tadaje
Zi[A,B](r)(AB)Zi[B,A](r)(AB)
===================================
[1,3>[1,10>[1,7>[1,5>
[3,7>[1,5>[1,3>[5,10>
[5,10>[3,7>[5,10>[3,7>
VidimodajeZi[A,B](r) Zi[B,A](r).

Otvaranje(unfold)Oi

Primjer4.5
RelacijarinjenootvoranjepoatributuBdanojesljedeimtablicama
r(AB)Oi[B](r)(AB)
=======================
a[1,3>a1
a[5,6>a2
a5
Primijenilismosljedeepravilo:
Svakislog[x,y]rrezultiraskupomslogova{[x,y1]}Oi[B](r),gdjejey1y.
Slijediformalizacijaotvaranja.

FormalizacijaOi

Nekajezadanarelacijar(A1,..,Ak,B).OtvaranjerelacijerpoatributuBje
relacijaOi[B](r)kojaimasljedeasvojstva:
(1)SH(Oi[B](r))=(A1,,Ak,B),gdjejeDom(B)= k+1,
(2)[x1,..,xk,b]Oi[B](r)ako[x1,..,xk,X]ribX
78

Propozicija(Oi,Zi)
(1)Oi[B](Zi[B](r))=Oi[B](r)
(2)Zi[B](Oi[B](r))=Zi[B](r)
Propozicija(Oi,Zi)namkae:
(1)Zatvaranjerelacijer,azatimotvaranjedobivenerelacijedajeistirezultatkaootvaranjerelacijer;
(2)Otvaranjerelacijer,azatimzatvaranjedobivenerelacijedajeistirezultatkaozatvaranjerelacijer.
Otvaranje,prvopoB,azatimpoA,danojesa
Oi[A,B](r)=Oi[A](Oi[B](r))
Motivacijazauvoenjeoperatora i,i
Uovomodjeljkumotiviramouvoenjeoperatoraintervalneunijeiintervalnerazlike.
Primjer4.6
Akosuzadanerelacije,
r1(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d5>
r2(Radnik#PlaaVrijeme)
========================
R1110Kn[d3,d6>
tadaje
r1r2(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d5>
R1110Kn[d3,d6>

Izr1r2vidimodajeplaaradnikaR1,uvrijemed3id4zapisanadvaputa(redundancija).
Boljureprezentacijudobijemorelacijom
Zi[Vrijeme](Oi[Vrijeme](r1)Oi[Vrijeme](r2)).

79

Zadatak
IzraunajterelacijuZi[Vrijeme](Oi[Vrijeme](r1)Oi[Vrijeme](r2)).
Primjer4.7
Nekajezadanarelacija
r1(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d8>
Eliminirajmoizr1podatakdajeplaaradnikaR1bila110Knurazdoblju[d4,d7>.
Rjeenje1:Definirajmoprvorelaciju
r2(Radnik#PlaaVrijeme)
========================
R1110Kn[d4,d7>
Sadaraunamo
r1r2(Radnik#PlaaVrijeme)
==========================
R1110Kn[d2,d8>

Rjeenje1nijekorektnojersmodobilipolaznurelacijur1.Dakle,uobiajenomrazlikomrelacijanismo
ostvarilieljenicilj.Korektanrezultatdanjerelacijomurjeenju2.

Rjeenje2:
r3=Zi[Vrijeme](Oi[Vrijeme](r1)Oi[Vrijeme](r2))
r3(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d4>
R1110Kn[d7,d8>

Formalizacijai,i

Zarelacijer1(R),r2(R),XR,gdjejeatributXsintervalnimvrijednostimadefiniramointervalnu
unijuirazlikukaotoslijedi:
r1ir2=Zi[X](Oi[X](r1)Oi[X](r2))
r1ir2=Zi[X](Oi[X](r1)Oi[X](r2))
80

Dakle,prvorelacijer1ir2otvorimo,azatimizvrimoobinuunijuirazliku,tekonanoizvrimo
zatvaranjedobivenihrezultata.

Selekcija

[ F](r)={tr F(t)=T}
Definicijaformule F ukljuujeiintervalneoperatore(1),..,(13),teoperatorekojisudefiniranina
osnovinavedenihoperatora.
Primjer4.8
Nekajezadanarelacija
r(Radnik#PlaaVrijeme)
========================
R1110Kn[d2,d4>
R1110Kn[d7,d8>
R1120Kn[d10,>
R2140Kn[d9,d12>

iformulaF=(Radnik#=R1)(VrijemePrije[d8,d12>)

AkoprimijenimopostupakselekcioniranjapoformuliFdobitemosljedeirezultat
[ F](r)(Radnik#PlaaVrijeme)
==========================
R1110Kn[d2,d4>
Izdosadanjihrazmatranjajasnojedaseimplementacijaoperatoranaintervalnimrelacijamatemeljina
implementacijipredikata(1),(2),..,(12),(13)ioperatoraZi i Oi. Takoer,istaknimodaemou
poglavljuopoopenimrelacijskimbazamapodataka,ijispecijalnisluajsutemporalnebazepodataka,
karakteriziratiipreostalerelacijskeoperatore, i.

81

ZADACI
1.Zadanisu 1={0,1,2}, 2={4,6}.
Definirajte( 1)=i( 2),azatimnapiiteI( 1),I( 2),I(T)=I( 1 2).
2.Nekaje ={0,1,2,3,4,5}tenekasuzadanerelacije
r1(ABC)r2(ABC)
========================
12[1,3>22[2,4>
12[2,5>12[3,4>
OdrediteZi[C](r1),Zi[C](r2),Oi[C](r1),Oi[C](r2).
3.Nekasu irelacijer1ir2kaouzadatku2.
Odrediter1ir2,r2ir1,r1ir2.
4.Zarelacijur2izzadatka2.iformuluF:[(A=1)(B=2)](CLijevopreklapa[3,5>)odredite
[ F](r2).

82

5.DEDUKTIVNEBAZEPODATAKA
5.1.UVOD
Uovomuvodnomodjeljkukarakteriziramodeduktivnubazupodataka(DBP)kaoproirenjerelacijske
baze podataka deduktivnom komponentom. Na neformalan nain uvodimo temeljne pojmove
deduktivnihbazapodataka(bazaznanja)injihovprikazpomoulogikogjezikaDataloga.

DeduktivnabazapodatakaDBPsastojiseodtrikomponente:

(1)Eksplicitna(ekstenzijska)bazapodatakaEBP
(2)Implicitna(intenzijska)bazapodatakaIBP
(3)Uvjetiintegriteta(integritetnaogranienja)UI
Primjer5.1
NekajezadanadeduktivnabazapodatakaDBP:
EBP:r1(AB)r2(BC)
==============
1000
2111
21
IBP:UI:ABzaR1(A,B)
BCzaR2(B,C)

EkstenzijskabazapodatakaEBPsastojiseoddvijerelacijer1ir2;intenzijskabazapodatakaIBPje
prazna(nemapravila);uvjetiintegritetaUIsadrekaoogranienjafunkcijskezavisnostiABiB
CnadrelacijskimshemamaR1(A,B)iR2(B,C),respektivno.

DeduktivnabazapodatakajeureenatrojkaDBP=(EBP,IBP,UI).

Primjer5.2
ProirimodeduktivnubazupodatakaDBP,izprologprimjera,pogledomv:
EBP:r1(AB)r2(BC)
==============
1000
2111
21
83

IBP:v=r1r2
UI:ABzaR1(A,B)
BCzaR2(B,C)
Pogledvjerelacijakojajedefinirananatemeljur1ir2;zovemojederiviranailideduciranarelacija.

84

5.2.SINTAKSAISEMANTIKADEDUKTIVNEBAZEPODATAKA
Prikazdeduktivnebazepodataka
DBPemo prikazatipomoulogikogjezikaDataloga,kojijenastaointegracijomrelacijskihbaza
podatakailogikogprogramiranja.
Primjer5.3
DBPizprologprimjerareprezentiramousljedeemobliku:
EBP:R1(A,B)R2(B,C)
r1(1,0)r2(0,0)
r1(2,1)r2(1,1)
r2(2,1)
PretpostavljamodasurelacijskeshemeR1iR2ureene.injenicudajeslog
(x1,y1)rpiemouoblikur(x1,y1);x1(prvakomponenta)jeAvrijednost,a
y1(drugakomponenta)jeBvrijednost.EBPsesastojioddvijeinjenicezarelacijur1itriinjenice
zarelacijur2.
IBP:pv(x,y,z)r1(x,y),r2(y,z)
IBPsesastojiodpravilappomoukojegjedefiniranarelacijavnadrelacijskomshemomV(A,B,
C);vsedobijespajanjemrelacijar1ir2.
itanjepravilap:
(Zasvakix,y,z)[slog(x,y,z)jeurelacijivakoje
slog(x,y)urelacijir1islog(y,z)jeurelacijir2].
Akojeslogt=(x1,x2,..,xm),ondaemoumjestor(x1,x2,..,xm)pisatir(t).
Prematome, t rpiemouoblikur(t);kaemodajeslog(red)turelacijir,odnosnoda r(t)
vrijedi.
Drugoitanjepravilap:
(Zasvakix,y,z)[v(x,y,z)vrijediakovrijedir1(x,y)iakovrijedir2(y,z)].
Upravilu,p:v(x,y,z)r1(x,y),r2(y,z),definiranurelacijuvzovemoglavompravila,akonjunkciju
r1(x,y),r2(y,z)zovemotijelompravila.
Openito,svakopravilopimaoblik
p:GT,gdjejeGglavapravila,aTtijelopravila.
PreciznakarakterizacijapravilabitedanaupoglavljuukojememogovoritioDatalogu.
PreostajenamjoprikazfunkcijskihzavisnostiizUI.
UI:ABzaR1(A,B)
85

ZavisnostABznai[akor1(x,y)ir1(x,z),onday=z].Prikazzavisnosti
ABuoblikupravilapoprimasljedeioblik
z(AB): r1(x,y),r1(x,z),y z
itanjepravilaz(AB):nijemoguedabuder1(x,z)ir1(x,z)iy z.
Prematome,simbol itamo:nijemoguedabude.
Praviloz djelujekaozabrana(filter);Valjanimrelacijamanad R1 smatrajusesamoonerelacijeu
kojimavrijedizavisnostAB.
Analogno,funkcijskuzavisnostBCnadR2prikazujemouobliku
z(BC): r2(x,y),r2(x,z),y z
itanjepravilaz(AB):nijemoguedabuder1(x,z)ir1(x,z)iy z.
Udaljememousvojitisljedeepojednostavljenje:prilikomprikazadeduktivnebazepodatakaDBP=
(EBP, IBP, UI) pomou Dataloga, ekstenzijsku bazu podataka EBP predstavljat emo kao kod
relacijskih baza podataka (pomou tablica) uz pretpostavku ureenosti relacijskih shema;
pojednostavljenjeseogledauizbjegavanjuponavljanjaimenarelacijezasvakiredrelacije.
Semantikadeduktivnebazepodataka
Semantika (znaenje) deduktivne baze podataka karakterizirana je svojim deklarativnim dijelom
(deklarativnasemantika)iproceduralnimdijelom(proceduralnasemantika).Deklarativnasemantika
kaetojemodelDBPa,aproceduralnasemantikagovoriopostupcimaraunanjamodelaDBPa.
Primjer5.4
RazmotrimoDBP:EBP,IBP,UI
EBP:r1(AB)r2(BC)UI:ABzaR1(A,B
============BCzaR2(B,C)
1000
2111
21

IBP:V(A,B,C)
p:v(x,y,z)r1(x,y),r2(y,z)
Modeldeduktivnebazepodatakajetakvainterpretacijadeduktivnebazepodatakaukojojvrijedesve
injeniceizEBP,svapravilaizIBP,isvaogranienjaizUI.
LakosemoeprovjeritidajesljedeainterpretacijaMmodelzanauDBP.

86

M:r1(AB)r2(BC)v(ABC)
=====================
1000100
2111211
21
ProvjeritedajeinterpretacijaM1takoermodelzadaneDBP.

M1:r1(AB)r2(BC)v(ABC)
=====================
1000100
2111211
21012
M1jedobivenoizMproirenjemrelacijev.NijetekozakljuitidajesvakainterpretacijaMi,koja
sedobijeizMproirenjemrelacijev,modelzaDBP.
Proliprimjerukazujedadeduktivnabazapodatakamoeimativiemodela.
Zadatak
Postojilideduktivnabazapodatakakojanemamodel?
Reklismodaproceduralnasemantikakarakterizirapostupakraunanja(dedukcije)modela.
Svakimodeldeduktivnebazepodataka DBP=(EBP,IBP,UI) sadrivaljanu EBP,gdjeza EBP
kaemodajevaljanaakounjojvrijedesvaogranienjaizUI.Postupciraunanjamodelareducirajuse
naizraunavanje(valjane)IBP.Razlikujemotripostupkaraunanja:
BUpostupak(bottomup),TDpostupak(topdown)iHpostupak(kombinacijaBUiTD).Udaljem
emoiskljuivorazmatratitemeljnepostupkeBUiTD.
Primjer5.5
NekajezadanadeduktivnabazapodatakaDBP=(EBP,IBP,UI)
EBP:r1(AB)r2(BC)UI:ABzaR1(A,B
============BCzaR2(B,C)
1000
2111
21

IBP:V(A,B,C)
p:v(x,y,z)r1(x,y),r2(y,z)
NaprimjeruoveDBPpokazatemopostupkeBUiTD.

87

BUpostupak
KreemoodEBP(injenice)nakojuprimjenjujemopravilopizIBP,tetakodobivamorelacijuv,
kojajedefiniranapravilomp.
Raunanjeteeovako:
1. r1(1,0)zadano(EBP)
2. r2(0,0)zadano(EBP)
3. v(1,0,0)p,1.,2.
Sustavtrainovarjeenja:
4.r1(2,1)zadano(EBP)
5.r2(1,1)zadano(EBP)
6.v(2,1,1)p,4.,5.
Sustavtrainovarjeenja:
nemanovihrjeenja!
Prematome,
M:r1,r2,v,gdjejev(ABC)
========
100
211
TDpostupak
Kreemoodglavepravilap,tj.,rjeavamov(x,y,z).Rjeavanjev(x,y,z)reducirasenarjeavanje
relacijar1ir2(EBP)iztijelapravilap.
1. v(x,y,z)?
2. r1(x,y),r2(y,z)p,1
3. r1(1,0)EBP
4. r2(0,z)?
5. r2(0,0)EBP
6. v(1,0,0)p,3,5
7. r2(0,z)?(ponovnorjeavanjeuvjeta)
8. nemarjeenjaEBP
9. r1(x,y)?(ponovnorjeavanjeuvjeta)
10. r1(2,1)EBP
11. r2(1,z)?
12. r2(1,1)EBP
13. v(2,1,1)p,10,12
14. r2(1,z)?(ponovnorjeavanjeuvjeta)
15. nemarjeenjaEBP
16. r1(x,y)?(ponovnorjeavanjeuvjeta)
17. nemarjeenjaEBP

88

Prematome,
M:r1,r2,v,gdjejev(ABC)
========
100
211
Postavljanjeupita
Primjer5.6
NekajezadanaDBPizprethodnogprimjera.Rijeimosljedeiupit.
U:Naisveslogoveizvoblika(1,y,z).OdgovornaupitUoznaitemosao(U).
Rjeenje1:
1.OdreditirelacijuvM
2.o(U): [ A=1](v)(ABC)
===============
100
Rjeenje2:
Sustavtraisveslogove(1,y,z)takvedavrijediv(1,y,z).
1. v(1,y,z)?
2. r1(1,y),r2(y,z)p,1
3. r1(1,y)?
4. r1(1,0)EBP
5. r2(0,z)?
6. r2(0,0)EBP
7. v(1,0,0)p,4,6
8. r2(o,z)?(traisenovorjeenje,tj.rjeenjerazliitoodrjeenja6.)
9. nemarjeenjeEBP
10. r1(1,y)?(traisenovorjeenje,tj.rjeenjerazliitoodrjeenja4.)
11. nemarjeenjaEBP
Prematome,
o(U):v(ABC)
=========
100

89

Primjer5.7(rekurzivnapravila)
Razmotrimorelaciju
r(AB)
======
ab
bc
cd

Tranzitivnozatvorenjerelacijerjerelacijatz(r)kojaimasljedeasvojstva:
(1)rtz(r);
(2)tz(r)jetranzitivnarelacija,tj.akotz(r)(x,y)itz(r)(y,z),ondajeitz(r)(x,z);
(3)tz(r)jenajmanjarelacijasasvojstvima(1)i(2).
KarakterizirajmodeduktivnubazupodatakaDBP:r,tz(r).
Rjeenje:DBP=(EBP,IBP,UI),gdjeje

EBP:r
IBP:p1tz(r)(x,y)r(x,y)
p2tz(r)(x,y)r(x,z),tz(r)(z,y)
UI:.
Pravilop2jerekurzivnopravilo(tz(r)jerekurzivnarelacija);upravilup2tz(r)sepojavljujeuglavii
tijelupravila.
Zadatak
Izraunajterelacijutz(r)izprologprimjerainapiitebaremjedanmodelzadanuDBP.

NakrajuovogodjeljkaistaknimodaseBUpostupakimplementirapomourelacijskihoperatora.Zbog
rekurzivnihpravilapotrebanjekontrolnikonstrukt(koristisefiksnatoka).Detaljiimplementacijebit
edaniusljedeimpoglavljima.
TDpostupak se implementira pomou rezolucijske procedure (Prologsustavi); navedena
implementacijaneebitiobuhvaenauovojskripti.

90

5.3.DATALOG
UovomodjeljkuopisujemologikijezikDatalog,kojiemokoristitizaspecifikacijudeduktivnebaze
podataka.NeformalanuvoduDatalogvidjelismoupoglavlju2.

Sintaksa

Abecedasesastojiod:
1)Konstanti:a,b,c,..
2)Varijabli:x,y,z,..
3)Relacija(predikata):r,r1,r2,..(obinerelacije)
4)(Ugraene)relacijeusporeivanja:=,<, ,>, ,..
5)Logikiveznici:,,
6)Zagrade:(,[,{,),],}
Skupovi1)6)sukonani.
Pravila
Termjekonstantailivarijabla.
Atomjeizrazoblikar(t1,t2,..,tn),gdjejernmjesnarelacijait1,t2,..,tnsutermi.
Izraz(t1,t2,..,tn)jeslog.
Temeljniatomjeatombezvarijabli.
Primjer5.8
a,a1,y,y1,zsutermi;
(a,b,x)jeslog;
r(a,b,x)jeatom;r(a,b,c)jetemeljniatom.
Akojet=(t1,t2,..,tn),ondar(t1,t2,..,tn)piemokraeuoblikur(t).
Napomena:Upraksikoristimosimbole(imena)kojiprirodnoodgovarajuopisuaplikacijskedomene.
Koristeiatomegradimopravila:
Pravilo jeizrazoblika r(u) r1(u1),r2(u2),..,rn(un),gdjejen 0,rjeobinarelacija, ri su
relacije,au,u1,u2,..,unsuslogoviodgovarajuearnosti.
Relacijarjeglavapravila(zakljuak),ar1(u1)r2(u2)..rn(un)jetijelopravila(pretpostavke).
Pravilo
r(u)r1(u1),r2(u2),..,rn(un)jeHornovaklauzula.

91

Primjer5.9
Uovomprimjerudefiniratemorelacijeroditeljipredak.
roditelj(x,y):roditeljodxjey.
predak(x,y):predakodxjey.
p1roditelj(Marko,Ivana)
p2predak(x,y)roditelj(x,y)
p3predak(x,y)roditelj(x,z),predak(z,y)
Pravilop1(spraznimtijelom)zovemoinjenicom.Relacijapredakkarakteriziranajepravilimap2i
p3.
itanjepravila
p1:roditelj(MarkoIvana);
p2:x,y[predak(x,y)akoroditelj(x,y)]
p3:(A)x,y,z[predak(x,y)akoroditelj(x,z)ipredak(z,y)
ili
x,y[predak(x,y)ako z(roditelj(x,z)ipredak(z,y)]
Pravilop3ukazujenadvijevarijanteitanjapravila:
svevarijablesuuniverzalnokvantificirane;
varijableizglavesuuniverzalnokvantificirane,avarijablekojenisuuglavikvantificiranesu
egzistencijalno.
Zadatak
Pokaiteekvivalentnostitanja(A)i(B).

Rekurzivnopravilo
Pravilopjerekurzivnopraviloakojeoblikap:r..r..
Dakle,glavaodppojavljujeseiutijeluodp.
Datalogprogramjekonaanskuppravila;
DeduktivnubazupodatakaDBP:EBP,IBP,UIreprezentiramopomouDatalogprograma.
PostojimogunostpredstavljanjaDBPuobliku:
EBP:konvencionalno(relacijskabazapodataka);IBP,UI:Datalogpravila.
Relacije iz EBP zovemo temeljnim (baznim) relacijama, a relacije definirane u IBP zovemo
deriviranim(deduciranim)relacijama.

92

Primjer5.10
RazmotrimodeduktivnubazupodatakaDBP=(EBP,IBP,),gdjeje
EBP:roditelj(Ivana,Marko)
roditelj(Gorana,Ivana)
IBP:predak(x,y)roditelj(x,y)
DBPpredstavljamoovako:
EBP:roditelj(DiRo)
===================
IvanaMarko
GoranIvana
IBP:predak(x,y)roditelj(x,y).
Udaljem,deduktivnubazupodatakaDBP=(EBP,IBP,)piemouobliku
DBP=(EBP,IBP).SlinovrijediakojenekadrugakomponentaodDBPprazna.

Primjer5.11
NekajezadanadeduktivnabazapodatakaDBP
EBP:r(ABC)
========
101
120
IBP:s(2,3)
s(x,y)r(x,2,y)
Akobirelacijasbiladefiniranaspunoinjenica,ondabismoteinjenicemoglizapisatiuobliku
temeljnerelacije(tablice)s1,aIBPbipoprimiooblik:

IBP:s(x,y)s1(x,y)
s(x,y)r(x,2,y).

Semantika

InterpretacijaIsastojiseod:
(a)NepraznedomeneD,gdjejeDskupsvihkonstantikojesepojavljujuuEBPiIBP.
(b)InstancirelacijaizEBPiIBP.

93

Primjer5.12
OdredimojednuinterepretacijuIzaDBP
EBP:roditelj(DiRo)
===================
IvanaMarko
GoranIvana
IBP:predak(x,y)roditelj(x,y)
I:D={Ivana,Marko,Goran}
roditelj(DiRo)
===================
IvanaMarko
GoranIvana

predak(PoPr)
==================
IvanaMarko
I nijemodelza DBP,jerpraviloiz IBP nevrijediu I. Naime,konkretizacijompravilaiz IBP,
stavljajuix=Goran,y=Ivana,dobivamo
p:predak(Goran,Ivana)roditelj(Goran,Ivana).
Procjenakonkretiziranog(temeljnog)pravilapdajesljedeirezultatF T,tojejednako F.
Ovdjesmokoristilipokrate:Fzafalse,teTzatrue.Dalje,predak(Goran,Ivana)=F,jerred(Goran,
Ivana)nijeurelacijipredak;roditelj(Goran,Ivana)=T,jerred(Goran,Ivana)jeurelacijiroditelj.
Primjer5.13
Dajemonekolikomodeladeduktivnebazepodatakaizprologprimjera.
M:roditelj(DiRo)
====================
IvanaMarko
GoranIvana
predak(PoPr)
===================
IvanaMarko
GoranIvana

94

M1:roditelj(DiRo)
====================
IvanaMarko
GoranIvana
predak(PoPr)
===================
IvanaMarko
GoranIvana
GoranMarko

M2:roditelj(DiRo)
====================
IvanaMarko
GoranIvana
predak(PoPr)
===================
IvanaMarko
GoranIvana
GoranMarko
GoranGoran
MarkoMarko
NekasuzadanimodeliM1=<r1,r2,..,rk>iM2=<s1,s2,..,sk>deduktivnebazepodatakaDBP.
Tadadefiniramo:

M1 M2akkoi{1,2,..,k}[risi]
M1=M2akkoM1 M2iM2 M1

Konzistentnostdeduktivnebazepodataka
Nekaje M(DBP) skupsvihmodeladeduktivnebazepodataka DBP.Akoje M(DBP) ,onda
kaemodajeDBPkonzistentna.Uprotivnome,kaemodajenekonzistentna,tj.,kontradiktorna.
Minimalnimodel
Pretpostavimodaje DBP konzistentnainekaje Mm M(DBP).Kaemodaje Mm minimalan
modelzaDBPakonepostojimodelMiuM(DBP)takavdavrijediMi MmiMiMm.
Intendirani(namjeravani)ilikanonskimodelza DBP je minimalnimodel za DBP.Vidjetemo
poslije da minimalni model za DBP nije jedinstven. Postupkom tzv. stratifikacije odredit emo
'prirodni'minimalnimodelkaointendiranimodel.
ZasadamoemoreidajeminimalnimodeldeduktivnebazepodatakaDBPonajmodelkojegine
relacijeizEBPirelacijekojesedobijutemeljempravilaizIBP,initavie.
95

4.4.RAUNANJEPRAVILA
Ovo poglavljesadriraunanje(implementaciju)pravilaprimjenomrelacijskihoperatora.U prvom
dijeluopisujemoraunanjenerekurzivnihpravila,audrugomdijelurazmatramoraunanjerekurzivnih
pravila
Nerekurzivnapravila
Postupakraunanjapokazatemonanizuodgovarajuihprimjera.
Primjer5.14
RazmotrimodeduktivnubazupodatakaDBP
EBP:r(A,B)
IBP:ps(x,y)r(x,z),r(y,z),x y
Pretpostavljamodasurelacijskeshemeureene,tj.,atributisuodreenisvojompozicijomushemi.
Prematome,zapisr(2,4)kaedajeuslogu<2,4>ispunjenoA=2iB=4.Zaraunanjesubitne
shemerelacija;rezultatebitiodgovarajuirelacijskiizraz.
Izraunajmopravilop,tj.odredimorelacijus.
Postupak1:
1.r1= [ XA,ZB](r);r2= [ YA,ZB](r)
2.s(X,Y)=[X,Y]( [ X Y](r1r2))
Konkretizacijom(instanciranjem)relacije r,odnosnorelacija r1 i r2 dobivamokonkretizaciju
(instancu)relacijes
Postupak2:
1.r1(C,D)= [ CA,DB](r)
2.r2(A,B,C,D)= [ B=D](rr1);r3(A,C)=[A,C](r2)
s(X,Y)= [ XA,YC](r3).
Primjer5.15
NekajezadanadeduktivnabazapodatakaDBP
EBP:q(A,B),r(B,C,D),s(C,E)

IBP:p1p(x,y)q(a,x),r(x,z,x),s(y,z)

96

Izraunajmorelacijuppravilap1.
Postupak:
1.r1(A,X)= [ XB]( [ A=a](q))
2.r2(X,Z,X1)= [ XB,ZC,X1D]( [ B=D](r))
3.r3(Y,Z)= [ YC,ZE](s)
4.p(X,Y)=[X,Y](r1r2r3).
Primjer5.16
NekajezadanadeduktivnabazapodatakaDBP
EBP:q(A,B),r(C,D,E),s(F,G)

IBP:p1p(x,y)q(a,x),r(x,z,x),s(y,z)
Izraunajmorelacijuppravilap1.
Postupak:
1.r1(A,B)= [ A=a](q)
2.r2(C,D,E)= [ C=E](r)
3.r3(A,B,C,D,E)= [ B=C](r1r2)
4.r4(A,B,C,D,E,F)= [ D=G](r3s)
5.r5(B,F)=[B,F](r4)
6.p(X,Y)= [ XB,YF](r5).
Primjer5.17
RazmotrimoDBP
EBP:r1(A,B),r2(B,C)
IBP:s(x,y)r1(x,z),r2(y,x)
Izraunajmorelacijus.
Postupak:
1.r3(A,r1.B,r2.B,C)= [ A=C](r1r2)
2.r4(A,r2.B)=[A,r2.B](r3)
3.s(X,Y)= [ XA,Yr2.B](r4).

Popravljanje(rektifikacija)pravila
Popravljanjepravilajeunifikacijashemarelacijeizglavapravilakojadefinirajudanurelaciju.

97

Primjer5.18
Nekasuzadanapravila:
p1:p(a,x,y)r(x,y)
p2:p(x,y,x)r(y,x)
Pravilimap1ip2definiranajerelacijap.Pretpostavimodajeciljpreformulacijapravilap1ip2
takodaglaveudanimpravilimaimajuoblikp(x1,x2,x3)(glavepostajuunijskikompatibilne).
Popravljanjep1:
1.p(x1,x2,x3)r(x,y),x1=a,x2=x,x3=y
2.p(x1,x2,x3)r(x2,x3),x1=a
Popravljanjep2:
3.p(x1,x2,x3)r(y,x),x1=x,x2=y,x3=x
p(x1,x2,x3)r(x2,x1),x1=x3
Raunanjerelacijepizpravilap1svodisenaraunanjerelacijepiztoke2.;raunanjerelacijep
izpravila p2 reducirasenaraunanjerelacije p iztoke 4. Unijadobivenihrezultatapredstavlja
relacijupdefiniranupravilimap1ip2.
Primjer5.19
NekajezadanaDBP
EBP:r(A,B),s(B,C)
IBP:p1p(a,y)r(x,y)
p2p(x,y)s(x,z),r(z,y)
p3q(x,x)p(x,b)
p4q(x,y)p(x,z),s(z,y)
IzraunajmorelacijedefiniranepravilimaizIBP.
Postupak:
1.Popravljanjepravilap1:
1.1p(u,v)r(x,y),u=a,v=y
1.2p(u,v)r(x,v),u=a
2.Popravljanjepravilap2:
2.1p(u,v)s(x,z),r(z,y),u=x,v=y
2.2p(u,v)s(u,z),r(z,v)
3.Popravljanjepravilap3:
3.1q(u1,v1)p(x,b),u1=x,v1=x
3.2q(u1,v1)p(u1,b),u1=v1
98

4.Popravljanjepravilap4:
4.1q(u1,v1)p(u1,z),s(z,v1)
5.Raunamorelacijup:
5.1Kakojerelacijapdefiniranapravilimap1ip2,
raunamorelacijeT(p1),T(p2)zatijelapravila
p1ip2,respektivno.Tadajep=T(p1)T(p2).
5.2RaunamoT(p1):
5.2.1Polazimoodr(A,B);p1:p(u,v)r(x,v),u=a
5.2.2r(X,V)= [ XA,VB](r);r1(U)
=====
a
5.2.3T(p1)(U,V)=[U,V](r1r)
5.3RaunamoT(p2):
5.3.1Polazimoods(B,C),r(A,B);p2:p(u,v)s(u,z),r(z,v)
5.3.2s(U,Z)= [ UB,ZC](s);r(Z,V)= [ ZA,VB](r)
5.3.3.T(p2)(U,V)=[U,V](sr)
5.4p(U,V)=T(p1)(U,V)T(p2)(U,V)
6.Raunamorelacijuq,gdjejeq(U1,V1)=T(p3)(U1,V1)T(p4)(U1,V1):
6.1RaunamoT(p3):
6.1.1Polazimoodp3:q(u1,v1)p(u1,b),u1=v1;p(U,V)
6.1.2r1(U,V)= [ V=b](p)
6.1.3r2(U)=[U](r1);r3(V1)= [ V1U](r2)
6.1.4r4(U,V1)= [ U=V1](r2r3)
6.1.5T(p3)(U1,V1)= [ U1U](r4)
6.2RaunamoT(p4):
6.2.1Polazimoodp4:q(u1,v1)p(u1,z),s(z,v1);p(U,V),s(B,C)
6.2.2r1(U,V,B,C)= [ V=B](ps)
6.2.3r2(U,C)=[U,C](r1)
2. T(p4)(U1,V1)= [ U1U,V1C](r2).
6.3.Relacijaqjedanaizrazom:
q(U1,V1)=T(p3)(U1,V1)T(p4)(U1,V1).

99

Rekurzivnapravila
Uovomdijelurazmatramoraunanjerekurzivnihpravila.Reklismodajepraviloprekurzivnoako
imasljedeioblik:r..r..;dakle,glavapravilapojavljujeseiutijelupravila.
Primjer5.20
NekajezadanadeduktivnabazapodatakaDBP
EBP:roditelj(DiRo)
=================
AnaVlado
AnaMarija
VladoIvo
VladoEva
IvoPetar
EvaLucija
AnteVlado
IBP:p1predak(x,y)roditelj(x,y)
p2predak(x,y)roditelj(x,z),predak(z,y)
IBPsadridvapravilap1ip2kojimajedefiniranarelacijapredak,gdjepredak(x,y)znaidajex
predakody.Udefinicijirelacijepredakkoristimorelacijuroditelj(pravilop1ip2)irelacijupredak
(pravilop2);relacijapredakjerekurzivnarelacija,jerunjenojdefinicijiimamoirekurzivnopravilo
p2.
Odnoseizmeurelacijamoemoprikazatiuoblikugrafazavisnosti Gz,gdje Gz sadristrelicuiz
tokerutokur1akkojerelacijarparticipiraudefinicijirelacijer1.ZanauDBPgrafzavisnosti
izgledaovako:
Gz:

roditeljpredak
Ciklusutokipredakindicirarekurzivnostrelacijepredak.
Primjer5.21
OdredimomodeldeduktivnebazepodatakaDBPizprologprimjera.
Trebamoizraunatirelacijupredakdefiniranupravilima:
p1predak(x,y)roditelj(x,y)
p2predak(x,y)roditelj(x,z),predak(z,y)

100

PolazimoodEBP:roditelj(Di,Ro);uvodimosljedeepokrate:predak=pr,roditelj=ro.
Relacijskiizraz(jednadba) RJ: pr(1,3)=ro(1,3) [[1,3](ro(1,2) pr(2,3))] karakterizira
traenurelaciju pr,gdjesmo,jednostavnostiradi,atributeodgovarajuihrelacijskihshemaoznaili
pozicijski:1,2i3.
Daljepojednostavljenje(izostavljanjeatributa)izrazaRJdaje

RJ:pr=ro[(ropr)].
RJ jerekurzivnajednadba.Nazadataksesvodinaraunanjetakverelacije pr kojazadovoljava
rekurzivnujednadbuRJ.
JednadbuRJmoemopisatiuoblikuRJ:pr=F(pr).
RelacijasjefiksnatokazaFakos=F(s).Prematome,raunanjerelacijeprkojazadovoljava
jednadbuRJreducirasenaraunanjefiksnetokezaF.

Postupakrjeavanjajednadbepr=ro[(ropr)]:
NoviprStaripr

1.StavljamoStaripr=,azatimraunamoNovipr;
2.NoviprpostajeStaripr,teopetraunamoNovipr;
3.PostupakzavravakadbudeNovipr=Staripr,tj.
kadaprpostanefiksnatokazadanejednadbe.
Uoitedaenakonkoraka1.vrijeditiNovipr=ro.
NavedenipostupakrjeavanjajednadbeRJrealiziranjealgoritmom:

A:begin
pr:=ro
pr:=pr
while pr do
pr:=pr[(ropr)]
pr:=prpr
pr:=pr
end
end

101

PoboljanjealgoritmaAdanojealgoritmom
B:begin
pr:=ro
pr:=pr
while pr do
pr:=pr[(ro pr)]
pr:=prpr
pr:=pr
end
end

Zadatak
IzraunajterelacijuprprimjenomalgoritmaA.
IzraunajterelacijuprprimjenomalgoritmaB.
UemusesastojupoboljanjealgoritmaAostvarenoualgoritmuB?
NapiitemodelMzadanededuktivnebazepodatakaDBPizprologprimjera.
Primjer5.22
NekajeM:ro(DiRo),pr(PoPr)modeldeduktivnebazepodatakaDBPizprologzadatka.
U:OdredimoAntinepredke.
Rjeenjejedanoizrazomo(U)(Pr)=[Pr]( [ Po=Ante](pr)).
Sigurnostpravila
Razmotrimopravilop:r(x,y)x<y.
RelacijardefiniranapravilompjebeskonanaakoxDiliyD,iDjebeskonaanskup.
NekaimamodeduktivnubazupodatakaDBP
EBP:s
IBP:p1:r(x,y)s(y).
PretpostavljamodajerelacijasizEBPkonana.Iakojerelacijaskonana,relacijar,definirana
pravilomp1,jebeskonanaakojexDiDjebeskonaanskup.Sigurnoupravilaelimoizbjei
pravilakojakreirajubeskonanerelacije,neovisnooBPdomenama(domenemogubitiibeskonane).
Sigurnostpravilasepostieograniavanjemvarijabli.UdaljempretpostavljamodasurelacijeizEBP
konane(sastojeseodkonanoredova).

102

Ogranienostvarijabli

Varijablaxpravilap:GTjeogranienaako
1.xsepojavljujekaoargumentkonane,nenegiranerelacijeiztijelaT,ili
2.xsepojavljujeuTuoblikux=ailia=x,gdjejeakonstanta,ili
3.xsepojavljujeuTuoblikux=yiliy=x,gdjejevarijablayograniena.
Pravilopjesigurno(safe)akosusvenjegovevarijableograniene.
DBPjesigurnaakosusvapravilaizDBPsigurna.
Zakljuimo:akojeDBPsigurna,ondapravilaizDBPgeneriraju(kreiraju)jedinokonanerelacije.
Primjer5.23
Pravilop:r(x,y)x<ynijesigurno,jervarijablex,ynisuograniene.

Primjer5.24
Pravilop1:r(x,y)s(y)nijesigurno,jervarijablaxnijeograniena;varijablayjeograniena
akojerelacijaskonana.
Primjer5.25
Razmotrimopravilop2:r(x,y)x=2,s(y),x<y.Pretpostavimodajerelacijaskonana.
Pravilop2jesigurno,jersusvevarijableograniene.
Primjer5.26
Pravilop3:r(x,y)s(y),z=b,x=zjesigurno,jersusvevarijableograniene.Pretpostavljamo
konanostrelacijesiztijelapravila.

UpitUjesiguranakojeodgovoro(U)konanarelacija.

Primjer5.27
NekajezadanaDBP
EBP:s(A)
====
a
b
IBP:p1:r(x,y)s(y)
DBPnijesigurna,jerp1nijesigurnopravilo(varijablaxnijeograniena).
103

UpitU:r(x,y)nijesiguran,jero(U)moebitibeskonanarelacija(toebitiakoxDiDje
beskonaanskup).
UpitU1:x=2,r(x,y)jesiguran,jerjeo(U)konanarelacija.
Primjer5.28
RazmotrimosigurnudeduktivnubazupodatakaDBP
EBP:s(A)
====
a
b
PromotrimoupitU:Naisvex,ytakodavrijedis(y),x<1.
Unijesiguranupit,jerjeo(U)beskonanarelacija.

104

4.5PROIRENJADATALOGA
OvajodjeljaksadriproirenjaDataloga:negacijom,funkcijama,skupovima,formulamaiauriranjem.
Proirenjedataloganegacijom(Datalog[])
Dosadasmorazmatralideduktivnebazepodatakakojenisusadravalenegaciju.Uovomdijelu
uvodimodeduktivne
bazepodatakaijapravilamogusadravatinegacijuutijelupravila.
Primjer5.29
RazmotrimodeduktivnubazupodatakaDBP
EBP:o1(R#Prezime)o2(R#Prezime)
===========================
R1IviR1Ivi
R2PolimacR4Krei
R3TrajbarR5Singer
IBP:p:o1razo2(x,y)o1(x,y),o2(x,y)
Pravilopjesigurno,jersux,yogranienevarijable.
Pravilopitamoovako:
x,y[o1razo2(x,y)akoo1(x,y)inijeo2(x,y)]
Raunanjepravilap:
o1razo2=o1o2
o2(x,y)smointerpretiralikao(x,y)o2.

Primjer5.30
Pravilop1:s(x,y)o2(x,y)nijesigurno,jerx,ynisuogranieni.
Akopostavimoupit U: s(x,y),dobitemoda o(U) nijedefiniran.Toznaidasustavnemoe
odreditisvex,yzakojevrijedis(x,y).Naime,o2(x,y)nijedefinirano.
Imanekolikopristupa(ozbiljnom)problemunegacijeudeduktivnimbazamapodataka.Ovdjeemo
opisatipristupgdjesenegacijarelacijeraunakaokomplementrelacije(eksplikacijanegacije).

105

KomplementrelacijeC(r)

NekajeADOM=Adom(EBP)Adom(IBP),gdjesuAdom(EBP)iAdom(IBP)svekonstanteiz
EBPiIBP,respektivno.
Akojer(A1,A2,..,Ak),ondajeC(r)=(ADOMADOM..ADOM)r.
Definiramor=C(r).
Primjer5.31
Izraunajmopravilopdeduktivnebazepodatakaizprologprimjera.
DBP:o1(R#Prezime)o2(R#Prezime)
===========================
R1IviR1Ivi
R2PolimacR4Krei
R3TrajbarR5Singer
p:o1razo2(x,y)o1(x,y),o2(x,y)
Raunanjepravilap:
1.o2=C(o2)
o1razo2=o1C(o2)=o1C(o2)=o1o2
Prematome,o1razo2(R#Prezime)
===================
R2Polimac
R3Trajbar
UoitedasmouovomprimjeruizbjegliraunanjeC(o2);iskoristilismojednakostiiztoke2.
Zadatak
IzraunajteC(o2),azatimodrediteo1razo2koristeijednakosto1razo2=o1C(o2).
RaunanjerpomouC(r)moedovestidonekorektnihrezultata.Ciljnamjeograniitipravilana
takavnaindanedoedotakvesituacije.Sljedeiprimjerilustriranavedeniproblem.
Primjer4.32
Nekajezadanadeduktivnabazapodataka
DBP:muko(M)bpar(M)
====================
R1R2R7
R2R3R5
R3
106

p:neenja(x)muko(x),bpar(x,y)
itanje:
muko(M):Mjemuko;
bpar(M,):Misubranipar;
neenja(x):xjeneenja.
Pravilop,kojimjedefiniranarelacijaneenja,itaseovako:
p:xjeneenjaakojexmukoinepostojitakavydasuxiyubraku.
Intuitivno,pravilopjekorektno.Meutim,nijetako,kaotopokazujesljedeeraunanje.
Raunanjerelacijeneenja:
1. Raunamobpar=C(bpar)
1.1ADOM(A)ADOM(A)ADOM(B)(AB)
=============================
R1R1R1
R2R1R2
R3.
R5.
R7R7R7
1.2C(bpar)= [MA,B](ADOMADOM)bpar(M,).

2. neenja=[M](mC(bpar)).
Akokompletirateprorauneiztoaka1.2i2.,vidjetetedavrijedineenja(R2),tonijekorektno.
Naime,izmuko(R2)ibpar(R2,R7)slijedidaR2nijeneenja.
Zadatak
Izvritekompletiranjeprologprimjera.
Nastavljamosnaimprimjerom.Razlognekorektnostijeinjenicadapravilo p nijesigurno,jer
varijablaynijeograniena.
Pravilopmoemonapisatiusigurnomobliku:
p1:mu(x)bpar(x,y)
p2:neenja(x)muko(x),mu(x)

107

Raunanjep1,p2:
p1.mu=[M](bpar)
p2.neenja=mukomu.
Slijedeiproblemjepojavljivanjeurekurziji.
Primjer5.33
Nekajezadanadeduktivnabazapodataka

DBP:r(A)p1:p(x)r(x),q(x)
====p2:q(x)r(x),p(x)
1
IakojeDBPjesigurna,postojiproblem,kojiseogledautomedaDBPnemajedinstven,minimalan
model.Postavljasepitanje:tojeuovojsituacijiintendiranimodel('tojepjesnikhtiorei')?
DabismopokazalidaDBPnemajedinstven,minimalnimodel,trebamoizraunatipravilap1ip2,
tosereduciranarjeavanjejednadbi

p1:p=rq
p2:q=rp
LakomoemoprovjeritidajesvakaodinterpretacijaM1iM2minimalnimodelzaDBP.
M1:r(A)p(A)q(A)
==============
11
M2:r(A)p(A)q(A)
==============
11
Zadatak
Uprolomprimjeruprovjerite:
(a) M1iM2sumodelizaDBP,tj.,M1iM2surjeenjajednadbip1ip2.
(b) M1iM2suminimalnimodeli.
(c) M1iM2suneusporedivi,tj.,(M1 M2)i(M2 M1).
Nejedinstvenostminimalnogmodelaposljedicajepojavljivanjanegacijeuciklusugrafazavisnosti.Da
bismotovidjeli,prikaimografzavisnostirelacijaizDBP.Grafzavisnostiimaoblik:
108

Gz::rq

Znak nastreliciodpdoqznaidajerelacijaqdefiniranapomou p;analognotumaimo


pojavunastreliciodqdop.
Rjeenjeproblemanejedinstvenostiminimalnogmodela
Uskupuminimalnihmodela,biramojedanodnjihkaoprirodni(sobziromnaredosljedraunanja
propisanstratifikacijom)minimalnimodel;takoizabranmodelpredstavljaintendiranimodel.
Pojamstratifikacijeuvodimokaotoslijedi.

Negativniciklus

Nekajezadanadeduktivnabazapodataka
DBP:EBP
IBP:p1,..,pk.
KaemodaDBPnemanegativniciklusakokadgodpostojipravilopi:p..q..uIBP,tadase
qnedefiniraprekop,tj.nepostojiputodpdoqupripadnomgrafuzavisnostiGz.
Negativniciklusprepoznajemopopojavljivanjubaremjednogznaka.
Primjer5.34
RazmotrimoDBPijasupravila
pr
pq
qs
sp

109

OdredimografzavisnostiGz.Dobivamo:
Gz:r
s

pq

DBPimajedannegativniciklus:ciklus(psqp)imadvapojavljivanjaznakanegacije.
Iznegativnogciklusavidimodapqipostojiputodpdoq.Takoer,imamoqsi
postojiputodqdos.
Zadatak
IspitajteimalisljedeaDBPnegativnihciklusa.
DBP:r(A)s(A)
========
11
2
p1:p(x)r(x)
p2:p(x)p(x)
p3:q(x)s(x),p(x)
Zadatak
NekajezadanaDBPizprologzadatka.Jednadbezarjeavanjepravilap1,p2ip3glase
p=pr(dobivenoizpravilap1ip2)
q=sp(dobivenoizp3)
ProvjeritedasljedeiM1iM2zadovoljavajuzadanejednadbeiprematomepredstavljajumodeleza
DBP.
M1:EDB+p(A)q(A)
========
12

110

M2:EDB+p(A)q(A)
========
1
2
Zadatak
DokaiteminimalnostzaM1iM2izprologzadatka.
SlijedidefinicijastratificiranostiDBP.

StratificiranostDBP

StratificiranjeDBPjegrupiranjerelacijaustratume(slojeve)S1<S2<..<Sk,gdjesuSinajvei
skupovirelacijatakvihdavrijedi:
(1)Akop..q..,ondapnijeumanjemslojuodslojagdjejeq
(2)Akop..q..,ondajequmanjemslojuodslojagdjejep.
Algoritam*(testiranjeimaliDBPnegativnihciklusainalaenjestratifikacije)
Ulaz:DBP:EBP,IBP
Izlaz:OdlukaimaliDBPnegativnihciklusa.Akonema,ondaalgoritamproducirastratifikaciju.
Postupak:
1.StavitisverelacijeizDBPuS1.
2.Ponovljenoispitatipravila:
akop..q..,tepSi,qSj,i j,ondastavitipuSj;
akop..q..,tepSi,qSj,i j,ondastavitipuSj+1.
3.AkosedobiveniskupovirelacijaS1<S2<..<Sk
nemijenjajupomoutoke2.,tadaDBPnemanegativnihciklusa,astratifikacijaodDBPje
S(DBP):S1,S2,..,Sk.
AkoseikadadoedouvjetadajenekarelacijarSj,tej>brojarelacijauDBP,ondaDBP
imanegativniciklusinemoesestratificirati.

111

Primjer5.35(algoritam*)
Primjenimogorenavedenialgoritamna
DBP:r(A)s(A)
========
11
2
p1:p(x)r(x)
p2:p(x)p(x)
p3:q(x)s(x),p(x)
Postupak:
S1:r,s,p,q
S1:r,s,p(zbogqp)
S2:q
Daljepromjenenisumogue.Zato,
S(DBP):S1<S2.
Primjer5.36
RazmotrimoDBPijasupravila
pr
pq
qs
sp
IspitajmoDBPprimjenomalgoritma*.
Postupak:
S1:p,r,q,s

S1:r,q,s(zbogpq)
S2:p

3.S1:r,s(zbogqs)
S2:p,q
4.S1:r,s(zbogpq)
S2:q
S3:p
5.S1:r(zbogsp)
S2:q
S3:p,s
112

6.S1:r(zbogqs)
S2:
S3:p,s
S4:q
7.S1:r(zbogpq)
S2:
S3:s
S4:q
S5:p!!!
DobilismopetslojevaS1<S2<S3<S4<S5,aimamoetirirelacijep,q,r,s.Prematome,DBP
imanegativanciklusinemoesestratificirati.
Raunanjemodelaprimjenomstratificiranosti
NekajezadanastratifikacijadeduktivnebazepodatakaDBP
S(DBP):S1<S2<..<Sk
RaunanjeintendiranogmodelavriseraunanjemrelacijaizS(DBP).Dakle,prvoraunamorelacije
izS1,zatimrelacijeizS2,itd.svedoknedoemodorelacijaizSk.
Primjer5.37
Izraunajmointendirani,minimalnimodeldeduktivnebazepodataka
DBP:r(A)s(A)
========
11
2
p1:p(x)r(x)
p2:p(x)p(x)
p3:q(x)s(x),p(x)
Rjeenje:
Relacijepiqraunamoizjednadbi
p=pr(dobivenoizpravilap1ip2)
q=sp(dobivenoizp3)
Redoslijedraunanjaodreenjestratifikacijom
113

S(DBP):S1:r,s,p
S2:q
kojusmodobiliuPrimjeru(algoritam*):

p=pr
q=sp

Raunamo1.:
Rjeavanje1.sesvodinatraenjefiksnetokejednadbe1.
2. Stacvljamop=
3. novip=r=r
4. kakojerfiksnatokajednadbe1.,dobivamodajep=r,tj.,
p(A)
====
1
Raunamo2.:
4. q=sp=q(A)
====
2
Konano,traenimodelimaoblikM:r,s,p,q,tj.,
M:r(A)s(A)
========
11
2
p(A)q(A)
========
1
2
Pretpostavkazatvorenogsvijeta(closedworldassumptionCWA)
CWAjemetapravilo(pravilorezoniranjaopravilimakojaukljuujunegaciju).
Radiseoiplicitnompredstavljanjunegacije.PritomeimamosljedeukarakterizacijuCWA.
7.
CWApravilo:
r(t)vrijediakor(t)nevrijedi(ukontekstuDBP)
r(t)nevrijediakor(t)vrijedi(ukontekstuDBP)

114

Notacija
DBPr(t)indiciradar(t)vrijediuDBP;
DBPr(t)indiciradar(t)nevrijediuDBP.
Primjer5.38
RazmotrimodeduktivnubazupodatakaDBP=(EBP,IBP,UI),gdjeje
EBP:r(ABIBP:UI:.
=====
1 2
2 3
r(2,2)vrijedi,jerr(2,2)nevrijedi,tj.slog(2,2)r.
r(1,2)nevrijedi,jerr(1,2)vrijedi.
ProblemisaCWA
PrimjenaCWAmoedovestidoproblema,kojiilustriramousljedeemprimjeru.
Primjer5.39
Razmotrimodeduktivnubazupodataka
DBP:r(A)p1:p(x)r(x)
====p2:p(0)p(1)
2
DBPjeneodreena(indefinite)zbogpravilap2,kojeuglavisadridisjunkciju.
PrimjenomCWAdobivamoDBPp(0)iDBPp(1).
AkoDBPproirimosap(0)ip(1)dobivamo
DBP:r(A)p(x)r(x)
====p(0)p(1)
2p(0)
p(1)
DBPjeukontradiktornom(nekonzistentnom)stanju(nemamodel).
Propozicija(CWAiHornovapravila)
AkoseDBPsastojisamoodHornovihpravila,ondaprimjenaCWAnedovodidokontradikcije.

115

Proirenjedatalogafunkcijama(Datalog[funk])
Kaoargumentirelacijamogubitibilokojitermi,gdjesetermdefiniraovako:
termje(a)konstanta
(b)varijabla
(c)f(t1,..,tk),gdjesut1,..,tktermiifje
kmjesnafunkcija
Primjer5.39
Nekajezadana
DBP:r(AB)p:s(x,y+1)r(x,y),x<y+1
=====
12
20
31
Glavapravilapsastojiseodrelacijes,kojakaodrugiargumentsadrifunkciju+.Umjestoprefiks
notacije+(y,1)pisalismouobiajenoinfiksobliky+1.
OdgovornaupitU:s(x,y)danjerelacijom
o(U)(AB)
========
12
Primjer5.40
DefinirajmoskupN={1,2,..,n,n+1,...}.
NekaN(x)znaidajexprirodanbroj.Razmotrimodeduktivnubazupodataka
DBP:N(1)
N(x+1)N(x)),x 1.
DBPnijesigurna;upitU:N(2)jesiguran,gdjejeo(U)=DA.
Primjer5.41
Nekaje
DBP:r(AB)s(x,y)r(x,y),N(xy)
======
21
12
DBPjesigurna.OdgovornaupitU:s(x,y)danjerelacijom
116

o(U)(AB)
=========
21
Proirenjedatalogasaskupovima(Datalog[skup])
Upravilaukljuujemoskupove;potrebnajestratificiranost,tj.poredakizraunavanja.
Prijeopracijasaskupovima,skupovimorajubitiizraunati(konkretizirani).
Primjer5.42
DBP:uzgajiva(U#Pas)
=================
U1Bobi
U1Leo
U2Reks
U3Leo
uzskup(x,z)uzgajiva(x,y),z={y uzgajiva(x,y)}

U:uzskup(x,z)o(U)(U#PAS*)
=================
U1{Bobi,Leo}
U2{Reks}
U3{Leo}
AkojeUZ(x,y)uzskup(x,z),yz,ondajeUZ=uzgajiva.
U:Naisvex,y:uzskup(x,z),uzskup(y,z1),zz1=
o(U)(U1#U2#)
============
U1U2
U2U3
U2U1
U3U2

117

Proirenjedatalogasformulamautijelu(Datalog[F])
Primjer5.43
Razmotrimodeduktivnubazupodataka
DBP:S1(A),S2(A)
==========
ab
ba
c

p:podskup(X,Y)x1[X(x1)Y(x1)]
Pravilopsadriutijeluformulu x1[X(x1)Y(x1)].Navedenimpravilomdefiniralismorelaciju
podskup.PrimjenapravilapzahtijevadaskupoviXiYbuduzadani(konkretizirani).
NekajezadanupitU:podskup(X,S2).tojeodgovornaupitU?
Rjeenje
OdgovornaupitUnijedefiniran,jerupitUnijekorektan.Uoitedaprviargumentupita,X,nije
konkretiziran.
NekajezadanupitU1:podskup(S1,S2).
UpitU1jekorektan,aodgovornaupitjeo(U1):DA.
OdgovornaupitU2:podskup(S2,S1)jeo(U2):NE.

Proirenjedatalogaauriranjem(Datalog[a])
Pretpostavljamo da se auriranje deduktivne baze podataka DBP = (EBP, IBP, UI) reducira na
auriranjenjeneekstenzijeEBP.
Sa DBP[i] = (EBP[i], IBP[i], UI[i]) oznaavamo stanje deduktivne baze DBP u trenutku i
(pretpostavljamodiskretnovrijemeTizomorfnoskupuprirodnihbrojevaN).Dalje, (DBP[i])=
DBP[i+1]indiciradajeDBP[i+1]rezultatauriranjaDBP[i].
Nekasua1,..,akkonstante.Tada
+r(a1,..,ak)vrijediakoisamoakojeslog(a1,..,ak)upisanur;
r(a1,..,ak)vrijediakoisamoakojeslog(a1,..,ak)brisanizr.
Primjer5.44
Razmotrimo
DBP[1]:radnici(R#PrezimePlaaOdjel#)
==============================
R1Malovi2000KnO1
R2Singer2300KnO2
118

Nekasuzadanaauriranja
1:radnici(R1,Malovi,2000Kn,O1),
2:+radnici(R1,Malovi,2500Kn,O3).
Tadaje
1(DBP[1])=DBP[2]:radnici(R#PrezimePlaaOdjel#)
==============================
R2Singer2300KnO2
2(DBP[2])=DBP[3]:radnici(R#PrezimePlaaOdjel#)
==============================
R1Malovi2500KnO3
R2Singer2300KnO2
Primjer5.45
NekajeDBP:s(A)r(x)+s(x).
=====
a
b
UpitU:r(x)jenekorektant,jerxmorabitikonstanta.UpitU:r(a)jekorektan,arezultatupita
jeo(U):DA,uzdodavanjesloga(a)urelacijus.
Primjer5.46
Razmotrimo
DBP[0]:p(A)r(AB)p1:+p(x)r(x,y).
=========
121
233
LakovidimodaDBP[0]nijekonzistentna;respektirajuipravilop1,relacijaptrebalabisadravati
slog(3).AuriranjemDBP[0]pomou 1=p1dobivamo
1(DBP[0])=DBP[1]:p(A)r(AB)p1:+p(x)r(x,y).
===========
121
233
3
DBP[1]jekonzistentnabazapodataka.
Nekaje 2:r(2,1).Tadaje
119

2(DBP[1])=DBP[2]:p(A)r(AB)p1:+p(x)r(x,y).
===========
133
2
3
UoitedajeDBP[2]konzistentnabazapodataka.
Nekaje 3:+r(4,4).Tadaje
3(DBP[2])=DBP[3]:p(A)r(AB)p1:+p(x)r(x,y).
===========
133
244
3
DBP[3]nijekonzistentna.
Akodefiniramo 4=p1,ondadobivamokonzistentnostanje
4(DBP[3])=DBP[4]:p(A)r(AB)p1:+p(x)r(x,y).
===========
133
244
3
4
Prematome,svakoauriranjeEBPzahtjevadodatnoauriranjeprimjenomaurirajuegpravilap1.
OvajprimjerimaojezaciljpokazatisloenostsemantikeauriranjaDBP.Odravanjekonzistentnosti
DBP postajejosloenijeakodopustimoauriranje IBP i UI.Tarazmatranjasuizvansadraja
predvienihovomskriptom.
Problem(usporedbaekspresivnosti)
Uvedimosljedeeoznake:
DatalogistiDatalog(beznegacije);
Datalog[]Datalogproirensnegacijom;
Datalog[,fun,skup,F,a] Datalogproirensnegacijom,funkcijama,skupovima,formulamai
auriranjem;
RArelacijskaalgebra.
Usporediteekspresivnostnavedenihjezika!
120

ZADACI
1.ZadanajededuktivnabazapodatakaDBP
EBP:r(AB)s(BC)r1(D)
================
abaab
baba
UI:r(A,B),B b;s(B,C),BC
IBP:p1:p(x,a)r(x,y),s(y,z)
p2:q(x,c)s(x,a),r1(x)
(a)NapiiteinterpretacijuIzaDBP,azatimispitajtejeliImodelzaDBP.
(b)IzraunajtepomourelacijskihoperatoramodelzaBZ.
2.ZadanajeDBP
EBP:r(ABC)s(BCD)
================
abaabc
aacbab
aba
IBP:p1:p(b,y,y)r(x,y,z),s(z,y,x1)
(a)NadopuniteI:D={a,..},p(EFG),...
=======
bbb
acb
bba
takodaIbudeinterpretacijazaDBP,azatimispitajtedalijeImodelzaDBP.
(b)Izraunajtes(B,C,D)r(A,B,C).
3.NekajeDBP1deduktivnabazapodataka
EBP:r(AB)
=====
a2
b2
IBP:ps(x,y)r(x,z),r(y,z),x y
(a)Izraunajterelacijuspravilap.
(b)NapiiteminimalnimodelzaDBP1.
(c)NapiitedvarazliitamodelazaDBP1.
(d)Akosumodeliuzadatku3.(c)M1iM2,ondaispitajtedalivrijedi
M1 M2.DalivrijdiM2 M1?

121

4.DBP2=(EBP,,),gdjeje
EBP:
dozvola(Pilot#Tipaviona)
===================
P1707
P1727
P2707
P3747
dozvola(x,y)znai:Pilotximadozvoluzatipavionay.
(a)Napisatipravilopkojedajesvepiloteizrelacijedozvola.
(b)Napisatipravilop1kojedajesvepilotekojiimajudozvoluzatip
aviona707.
5.DBP3=(EBP,IBP,),gdjesuEBPiIBP:p,p1izzadatka3.
NapiitemodelzaDBP3.
6.DBP=(EBP,IBP,),gdjeje
EBP:q(A,B),r(B,C,D),s(C,E)
IBP:p1p(x,y)q(a,x),r(x,z,x),s(y,z)
SadrajrelacijaizEBPnijebitan.Izraunajtepravilop1tj.napiiterelacijskiizrazkojimseizraunava
relacijapizpravilap1.

7.ZadanajeDBP1
EBP:r1(A,B),r2(B,C)
IBP:p:s(x,y)r1(x,z),r2(y,x)
Izraunajtepravilop.
8.ZadanajeDBP2
EBP:r(A,B),s(B,C)
==========
1221
2322
IBP:p1p(a,y)r(x,y)
p2p(x,y)s(x,z),r(z,y)
p3q(x,x)p(x,b)
p4q(x,y)p(x,z),s(z,y)
NapisatimodelzaDBP2raunajuipravilapomourelacijskealgebre.
9.JeliDBP2izzadatka8.sigurna?
10.NapiiteDBPkojanijesigurna.
11.NapiiteDBPkojanijekonzistentna.
12.NapiiteDBPkojauIBPimabaremtripravilaipojavljivanjenegacijeubaremjednompravilu.
IspitajtedalipostojistratifikacijadeduktivnebazepodatakaDBP.
122

6.POOPENERELACIJSKEBAZEPODATAKA(PORBP)
6.1.UVOD
Ukonvencionalnomrelacijskommodelupretpostavljamodasurelacijskeshemeu 1NF.Navedeno
znaidasusviatributishemerelacijskebazepodatakajednostavni,tj.domeneatributasesastojeod
atomarnihobjekata. Zahtjevomzaboljomreprezentacijomdolazimodorelacijskihshemakojesuu
viimnormalnimformama(2NF,3NF,BCNF,4NF,5NF).
Aplikacije:(CADsustavi,procesiranjeteksta,temporalnebazepodataka)zahtijevajurelacijeijase
shemasastojiiodsloenihatributa;atributAjesloenakonjegovadomena,dom(A),sadribarem
jedansloeniobjekt(skup,lista,relacija,..).
UnastavkuemoshemuR={A1,A2,..,Ak}pisatiuoblikuR(A1,A2,..,Ak).
Poopenanormalnaforma

(R,F)jeupoopenojnormalnojformi(PONF)akojesvakiatributizRjednostavanilisloen.
(pretpostavljamodasuvrijednostisloenihatributarelacije).
ZarelacijurnadRkaemodajePONFrelacija.

LakovidimodajePONFpoopenje1NF.Udaljememokoristitisljedeukarakterizaciju.

Akoje (R,F)uXnormalnojformi(XNF),ondazarelaciju r nad R kaemodaje XNF


relacija.

Primjer6.1
NekajezadanarelacijarnadshemomR(Radnik#,Mentor),gdjejeRu1NF.
r(Radnik#Mentor)rje1NFrelacija.
===============
R1Murn
R2Murn
R3Murn
R4Lovri
R5Lovri
Informacijuizrmoguejeprikazatikompaktnijekoristeirelacijur1nadrelacijskomshemom
R1(Rad(Radnik#),Mentor),gdjejeR1uPONF.UoitedajeatributRadsloen.

123

r1(Rad(Radnik#),Mentor)r1jePONFrelacija.
=====================
R1Murn
R2
R3
R4Lovri
R5
Primjer6.2
RazmotrimoPONFrelaciju
r(AD(BC))
==========
122
12t1

311t2
Semantika
Shemarelacije r je SH(r)=R(A,D(B,C));atribut A jejednostavan,aatribut D jesloen;
vrijednostiodDsurelacijenad(B,C);vrijedi:
t1[A]=1,t1[D]=(BC),t1[D] t2[D].
=====
22
12

124

6.2.PARTICIJSKANORMALNAFORMA(PNF)
Primjer6.3
Nekajezadanarelacija
r(S#PrezimePredmet(PimeOcjena))
============================

S1MrakMat3
Fiz4
S1MrakBP3
UrnevrijedifunkcijskazavisnostS#,PrezimePredmet.
Intuitivno,boljareprezentacijaje:
r2(S#PrezimePredmet(PimeOcjena))
=============================
S1MrakMat3
Fiz4
BP3

Ur2vrijediS#,PrezimePredmet.
PNF
NekajezadanaPONFrelacijar(XY),gdjesuuXjednostavniatributi,auYsusloeniatributi.
KaemodajeruPNFakoXYvrijediur,i
(tR)(AY)[relacijat[A]jeuPNF].
Propozicija(1NF,PNF)
Svaka1NFrelacijajeuPNF.
Dokaz
Nekajer(R)u1NF.NavedenoznaidasusviatributiizrelacijskeshemeRjednostavni.Dakle,iz
definicijiPNFslijediX=R,Y=.KakoXvrijediusvakojrelaciji,zakljuujemodavrijediiu
relacijir(R).Prematome,rjeuPNF.

125

6.3.RELACIJSKIOPERATORIZAPONFRELACIJE
Uovomodjeljkurazmotritemodvanovaoperatora,grupiranje GrirastavljanjeRa,teproirenja
konvencionalnihrelacijskihoperatoranaPONFrelacije:
p,p,p,p, p, p, p.
KadasePONFreducirana1NF,proirenjaoperatorasereducirajunaodgovarajueoperatore,
,,, , , na1NFrelacijama.

GRUPIRANJEGr

Nekajezadanarelacija r(B1,..,Bk,Bk+1,..,Bn);nekajeCatributkojisenepojavljujeu SH(r).


GrupiranjerelacijerpoatributimaBk+1,..,BnagregiranimuC,jerelacijaGr[C(Bk+1,..,Bn)](r):
(a)SH(Gr[C(Bk+1,..,Bn)](r))=(B1,..,Bk, C(Bk+1,..,Bn))
(b)SlogoviuGrdobijuseizslogovaizragregiranjemslogovakojiimajujednakevrijednostina
B1,..,Bk.
Formalno,
tGr[C(Bk+1,..,Bn)](r)akoisamoako
(1) ur(t[B1,..,Bk]=u[B1,..,Bk]),i
(2)t[C]={v[Bk+1,..,Bn] vriv[B1,..,Bk]=t[B1,..,Bk]}
Primjer6.4
Nekajezadanarelacija
r(ABC)
========
211
201
312
Tadaje
Gr[D(B,C)](r)(AD(BC))
======================
211
01
312

126

RASTAVLJANJERa

Nejajezadanarelacijar(B1,..,Bm,B(A1,..,Ak)),gdjejeBsloeniatribut.Rastavljanjeodrs
obziromnaBjerelacijaRa[B](r)definiranaovako:
(1)SH(Ra[B](r))=(B1,..,Bm,A1,..,Ak)
(2)tRa[B](r)akoisamoako
ur(t[B1,..,Bm]=u[B1,..,Bm]it[A1,..,Ak]u[B])
Primjer6.5
Nekajezadanarelacija

r(ABC(DE(FG)))
================

12322
10

12422
11
01

OdredimoRa[E(F,G)](r).
Ra[E(F,G)](r)(ABC(DFG))
==========================
12322
310

12422
411
401
Propozicija(RainverzGr)
OperatorRajeinverzodGr,tj.r=Ra[A](Gr[A(Y)](r))

127

Propozicija(NijeGrinverzRa)
OperatorGrnijeinverzodRa,tj.postojirelacijartakvadaje
r Gr[A(Y)](Ra[A(Y)](r)).
Dokaz
Nekajezadanarelacija

r(IzletPosjeta(GradDan))
======================
I1Split1

I1Rijeka1
Pula2
I2Zadar3

IzraunajmoGr[Posjeta(GradDan)](Ra[Posjeta](r))Dobivamo
Ra[Posjeta(GradDan)](r)(IzletGradDan)
==================================
I1Split1
I1Rijeka1
I1Pula2
I2Zadar3
Gr[Posjeta(GradDan)](Ra(r))(IzletPosjeta(GradDan))
==========================================
I1Split1
Rijeka1
Pula2
I2Zadar3

VrijediGr(Ra(r)) r.

128

Propozicija(PNF,Gr,Ra)
Nekajer(XA(Y))uPNF,gdjejeXY=iAXY.Tada,
r=Gr[A(Y)](Ra[A(Y)](r)).
Propozicija(zatvorenostsobziromnaRa)
KlasaPNFrelacijajezatvorenasobziromnaRa.
Propozicija(nezatvorenostsobziromnaGr)
KlasaPNFnijezatvorenasobziromnaGr.
Dokaz
Razmotrimorelaciju
r(ABC(DE))RelacijarjeuPNF.
============
1222

1310
Izraunajmo
Gr[B1(B)](r)(AB1(B)C(DE))
========================
1222
1310

KakoAB1,CnevrijediuGr(r),zakljuujemodaGr(r)nijeuPNF.
Propozicija(PNF,Gr)
Nekajer(XYZ)takvarelacijagdjesuuXjednostavni,auYsloeniatributi.Tada,Gr[A(Z)](r)
jeuPNFakoisamoakoXYvrijediur.
Sada prelazimo na proirenje konvencionalnih relacijskih operatora tako da dobijemo relacijske
operatorezaPONFrelacijeidabudeispunjenosvojstvodajeklasaPNFrelacijazatvorenasobzirom
nadefiniranaproirenja.
129

Unijap

Primjer5.6
Nekasuzadanerelacijer1(R1),r2(R1)
r1(AB(CD))r2(AB(CD))
======================
122121
1010
211322

Uoitedar1r2neuvaPNF,tj.klasaPNFnijezatvorenasobziromnaoperator .Sada
raunamor1pr2:
r1pr2(AB(CD)
=================
122
10
21
211
322
Pravilo:pputujeodjednostavnihpremasloenimatributima.
Slijedidefinicijap.
Nekasuzadanerelacijer1(XY),r2(XY),gdjesuuXjednostavni,auYsloeniatributi.
(1)SH(r1pr2)=SH(r1)=SH(r2)
(2)tr1pr2akoisamoako
a)tr1i(t1r2)( AiX)(t[Ai] t1[Ai]),ili
b)tr2i(t1r1)( AiX)(t[Ai] t1[Ai]), ili
c)( t1r1)( t2r2)(AiX)(BjY):
t[Ai]=t1[Ai]=t2[Ai]i
t[Bj]=t1[Bj]pt2[Bj]
130

Presjekp

r1(XY),r2(XY),X={AR Ajejednostavanatr.},Y={BR Bjesloenatr.}


(1)SH(r1pr2)=SH(r1)=SH(r2)
(2)t(r1pr2)akoisamoako
( t1r1)( t2r2)(AiX)(BjY):
t[Ai]=t1[Ai]=t2[Ai]it[Bj]=t1[Bj]pt2[Bj]it[Bj] .
Dakle,slogovit1it2dajuupresjekutakoset1it2podudarajunasvimjednostavnimatributima
X,iimajuneprazanproirenipresjeknasvakomsloenomatributuizY.

Razlikap

r1(XY),r2(XY),X={AR Ajejednostavanatr.},Y={BR Bjesloenatr.}


(1)SH(r1pr2)=SH(r1)=SH(r2)
(2)t(r1pr2)akoisamoako
a)tr1i(t1r2)( AiX):t[Ai] t1[Ai],ili
b)( t1r1)( t2r2)(AiX)(BjY):
t[Ai]=t1[Ai]=t2[Ai]it[Bj]=t1[Bj]pt2[Bj]it[Bj] .
Dakle, u p suonislogoviiz r1 kojisenepodudarajunitisjednimslogomiz r2 naskupu
jednostavnihatributa X,iliakosepodudaraju,ondaimajunepraznu,proirenurazlikunasvakom
sloenomatributuizY.

Prirodnospajanjep

Operatorpdefiniramokaotoslijedi.
r1(R1),r2(R2),X={AR1R2 Ajesloenatr.},Y=R1X,Z=R2X.
(1)SH(r1pr2)=R1R2=(YXZ)
(2)t(r1pr2)akoisamoako
( ur1)( vr2):t[Y]=u[Y]it[Z]=v[Z]it[X]=u[X]pv[X]

131

Primjer6.7
Nekasuzadanerelacije
s1(ABC(DE))s2(FBC(DE))
==============================
e1b1c1d1a1b1c1d1
c1d3c2d2
c3d4c1d3
e3b2c3d2a2b1c3d1
c2d2
c1d1
e4b1c3d1
c4d2
a2b2c1d2
c3d2

Tadajerelacijas1ps2danasljedeomtablicom

s1ps2(ABFC(DE))
========================

e1b1a1c1d1
c1d3
e1b1a2c1d1

e4b1a2c3d1

e3b2a2c3d2

132

Projekcija p

Relacijskioperator pdefiniranjeovako:
r(R),VR,V .
(1)SH( p[V](r))=V
(2 p[V](r)=p(t),gdjet[V](r)

Primjer5.8
Izraunajmo p[F,C](s1ps2),gdjejes1ps2izprimjera5.7.Dobivamo
p[FC](s1ps2)(FC(DE))
==========================
a1c1d1
c1d3

a2c1d1
c3d1
c3d2
Definicija produkta p ostaje nepromijenjena, tj. p = , a definicija selekcije pF zahtijeva
proirenje skupa operatora usporeivanja operatorima usporeivanja vrijednosti sloenih atributa i
sukladnodefiniranjepojamaformuleF.

133

ZADACI
1.Nekajezadanarelacija
r(ABC)
========
111
201
012
(a)IzraunajteGr[D(A,C)](r).
(b)JeliruPNF?
2.Jelirelacijaizzadatka1.(a)uPNF?
3.Zarelaciju
r(ABC(DFG))
================
12322
310

12422
411
401
odredite
(a)Ra[C(D,F,G)](r).
(b)Gr[E(C(D,F,G))](r).
4.Jelirelacijarizzadatka3.uPNF?
5.Nekasuzadanerelacijer1(R1),r2(R1)
r1(AB(CD))r2(AB(CD))
======================
222121
1010
111222
2110
134

Odredite
(a)r1pr2
(b)r1pr2
(c)r1pr2
(d)r2pr1
6.Zarelacijer1ir2izzadatka5.odredite
(a)r1pr2]
(b) p[A](r1)
(c) p[B](r2)
(d)r1pr2
7.Nekasuzadanerelacijer1(izzadatka5.)irelacija
r(CD)
======
11
22
21
ZaformuluF:Brodredite p[B]( pF(r1)).

135

7.OBJEKTNOORIJENTIRANEBAZEPODATAKA
7.1.UVOD
Uuvodukarakteriziramomotivacijuzauvoenjeobjektnoorijentiranihbazapodataka(OOBP,OODB)
i njihova temeljnasvojstva.OsnovniciljjebiopostiiveistupanjslinostiizmeuBP (model) i
aplikacijskedomene(diorealnogsvijeta).
Tradicionalniimplementacijskimodeljedannasljedeojslici.

AD
Model podataka
analiza
modeliranje
Modelprocesa
dizajn

SemantikaekvivalencijaKodiranje,
[manjevie]generiranjeaplikacije

ProgramiAlati

BP

136

Zakljuimodautradicionalnomimplementacijskommodeluimamogubljenjesemantike.
Gubljenjesemantikeimazaposljedicudaseposlovneaplikacijetekoprihvaajuodstranekorisnika,
jer je kompjuterska realizacija aplikacije razliita od naina kako se posao odvijao (runo) prije
kompjuterizacije.
Radisezapravoorazliciizmeuaplikacijskedomeneimodelaaplikacijskedomene.
U sluaju modeliranja sve sloenijih aplikacijskih domena: (CAD (computeraided design), CASE
(computeraided systems)), raskorak izmeu aplikacijske domene i modela postaje sve izrazitiji.
Gubljenje semantike u postupku modeliranja (aplikacijska domena ERmodel relacijska baza
podataka)moemoprikazatiovako:
Gubljenjesemantike
AD

ERmodel

Relacijski
model

137

Prvikorakusmanjenjugubljenjasemantikebiojekreiranjeaplikacijskihspecifinihstruktura,koje
moguobuhvatitiviesemantike.
AD

Aplikacijskiprogram
Semantikibogat
aplikacijskispecifian
modelpodataka
[Surogat]

Preslikavanje
RM

Problemjeuogranienosti(jednostavnosti)relacijskogmodela(RM):
Tipovipodataka
[modeliranjeADzahtijevaapstraktnetipovepodataka,kojedefinirakorisnik]

Operacije
[reprezentacija poslovnih pravila nije mogua u RM i mora biti dana u aplikacijskom
programu].
138

Sljedei (logian)korakjepokuajugraivanjasemantikeusustavzaupravljanjebazompodataka
(SUBP,DBMS).
Timeseeliminirapreslikavanje(SurogatSUBP).

kreiranaiz

SUOOBPBP

139

Karakteristike sustava za upravljanje objektno orijentiranom bazom podataka (SUOOBP,


OODBMS)

Sloeni(apstraktni)tipovi
Uahurenje (enkapsulacija) kojim se postie nezavisnost od reprezentacije, tj., aplikacije se ne
morajumijenjatiakosemijenjareprezentacija.
Istomoemoreiitakodakaemodajespecifikacija(suelje)nezavisnaodimplementacije.
Visokstupanjakonzistencije;
sve aplikacijemogupozvati samooperacije,kojesudefiniranei uahurene unutar objekta.
Poslovnapravilasu,takoer,dioobjektainezavisevieoaplikaciji(uprotivnome,imamo
problemsinkronizacijekonzistencije).
Promjene u poslovnim pravilima vre se u definiciji objekta, a ne u proceduralnom
aplikacijskomkodu.
Redukcija cijene za novi aplikacijski razvoj kroz viekratnu upotrebu objekta (koda). Naime,
definicije, koje su registrirane u biblioteci klasa, mogu se ponovo upotrijebiti u razvoju novih
aplikacijailifunkcija.
Udaljemkoristitemosljedeepokrate:
Sustavzaupravljanjebazompodataka(SUBP,DBMS),
Sustavzaupravljanjerelacijskombazompodataka(SURBP,RDBMS),
Sustavzaupravljanjehibridnombazompodataka(SUHBP,HDBMS),
Sustavzaupravljanjeobjektnoorijentiranombazompodataka(SUOOBP,OODBMS),
Sustavzaupravljanjeproirenomrelacijskombazompodataka(SUPRBP,ERDBMS).
Opisraznihpristupaurazvojusustavazaupravljanjebazompodatakadanje(slikovito)kaotoslijedi.
(SUBP,DBMS)pristupi

(SURBP,RDBMS)[Relacijskosuelje,Relacijskistroj]

140

(SUHBP,HDBMS)[OOsuelje,Relacijskistroj]

(SUOOBP,OODBMS)[OOsuelje,OOstroj]

141

(SUPRBP,ERDBMS)[RelacijskosueljesOOekstenzijama,RelacijskistrojsOOekstenzijama]

Zadatak
Objasniteprikazaneslike.
Napomena:Iakoseslikamoeinterpretiratinapunonaina('slikavrijeditisuerijei',ukljuujuii
pogreneodnosnonejasne),temeljemkarakteriziranihsvojstavanavedenihsustava,pokuajte'pogoditi'
pravuinterpretaciju.

142

7.2.ODL
U ovom odjeljku karakteriziramo jezik ODL (Object Definition Language) za definiciju sheme
(strukture) objektno orijentirane baze podataka (OOBP). U sljedeem odjeljku upoznat emo se s
upitnimjezikomOQL(ObjectQueryLanguage)pomoukojegmanipuliramopodacimauOOBP.
Prvodefiniramopojamobjekta.
Objekt
Instancaklaseilibilotonatojeprimjenjivkonceptilitip.
KoristeiODLiOQL,upoznatemosesasljedeimkonceptimaOOBPa.
OOBPkoncepti
(1)Identitetobjekta(oi)
(2)Atributi

Veze
Metode
Klase
Hijerarhijaklasainasljeivanje

ODLkoristimozaspecifikacijusheme(strukture)OObazepodataka.Dobivenaspecifikacijaprevodi
seudeklaracijeSUOOBP.KakoSUOOBP(obino)koristiC++,JavuiliSmalltalkkaoprimarni
jezik,ODLspecifikacijasemoraprevestiudeklaracijejednogodovihjezika.BuduijeODLvrlo
slianovimjezicima,prevoenjejegotovodirektno.Prevoenjeudeklaracijekonvencionalnihsustava
zaupravljanjerelacijskombazompodataka(SURBP)jesloenije.
Aplikacijskadomena(AD)sastojiseodobjekata(entiteta),kojiimajujedinstveneidentifikatore(oi)
pomoukojihjedanobjektrazlikujemooddrugih.KreiranjeoijestvarSUOOBP.
Organizacijainformacijeprovodisegrupiranjemobjekatauklaseobjekata.Uklasuseukljuujuslini
objekti;objektinekeklaseimajuistasvojstva,gdjesusvojstvaklase:atributi,vezeimetode.
Deklaracijaklase
interface<name>{<listofproperties>}
Primjer7.1(deklaracijaklaseFilm)
1. interfaceFilm{
2. attributestringnaslov;
3. attributeintegergodina:
4. attributeintegerduljina;
5. attributeenumFil{boja,crnobijeli}tipfilma;
};
143

Komentar
(1)deklariraFilmkaoklasu;
(2)(4)deklarirajuatributeatomskih(temeljnih)tipova;
(5)deklariraatributtipfilmaijijetipenumeracijatj.
listaFil={boja,crnobijeli}.
Primjer7.2(deklaracijaklaseGlumac)
1. interfaceGlumac{
2. attributestringime;
3. attributeStructAddr{stringulica,stringgrad}adresa;
};
Komentar
Red (3) specificira(sloeni)atribut adresa ijijetip slog(record)kojisesastojioddvaatributa
(polja)tipastring.
Veze su svojstvaobjekatakojenamkaukakojenekiobjektpovezansdrugimobjektima iste ili
razliiteklase.
Primjer7.3(deklaracijeklasaFilm,Glumac,Studio)
(f1)interfaceFilm{
(f2)attributestringnaslov;
(f3)attributeintegergodina:
(f4)attributeintegerduljina;
(f5)attributeenumFil{boja,crnobijeli}tipfilma;
(f6)relationshipSet<Glumac>glumci
inverseGlumac::glumiU;
(f7)relationshipStudiovlasnitvoOd
inverseStudio::vlasnik;
};
(g1)interfaceGlumac{
(g2)attributestringime;
(g3)attributeStructAddr{stringulica,stringgrad}adresa;
(g4)relationshipSet<Film>glumiU
inverseFilm::glumci;
};
(s1)interfaceStudio{
(s2)attributestringime;
(s3)attributestringadresa;
(s4)relationshipSet<Film>vlasnik
inverseFilm::vlasnitvoOd;
};

144

Komentar
Redf6specificiravezuglumciuklasiFilmkojasvakomfilmupridruujeskupglumacakojiglume
udotinomfilmu;skupglumacamoebitiiprazan.VezaglumciimainverzglumiUuklasiGlumac;
glumiUpridruujesvakomglumcuskupfilmovaukojimadaniglumacglumi.
Uklasi Filmimamoivezu vlasnitvoOd kojasvakomfilmupridruujenajviejedanstudio ije
vlasnotvojedanifilm;inverzodvlasnitvoOdjevezavlasnikuklasiStudiokojasvakomstudiu
pridruujeskupfilmovakojisunjegovovlasnitvo.
Analognoseinterpretirajupreostalevezeudeklaracijamaklasa.

Mnogostrukostveze

Nekajezadanabinarnaveza(relacija)vK1 K2nadklasamaK1iK2.
Inverznavezavezev,inv(v),jevezanadklasamaK2iK1definiranaovako:
1.
2.

inv(v)K2 K1
(x,y)inv(v)akoisamoako(y,x)v.

ZavezuvK1 K2kaemodajemnogostrukosti11akojevezomvsvakomobjektuklaseK1
pridruennajvie1objektklaseK2iobrnutovezominv(v)jesvakomobjektuklaseK2pridruen
najviejedanobjektklaseK1.
ZavezuvK1 K2kaemodajemnogostrukostim1akojevezomvsvakomobjektuklase
K1pridruennajvie1objektklaseK2iobrnutovezominv(v)jesvakomobjektuklaseK2
pridruenovie(0,1,2,..)objekataklaseklaseK1.
ZavezuvK1 K2kaemodajemnogostrukostimnakojevezomvsvakomobjektuklaseK1
pridruenovieobjekataklaseK2iobrnutovezominv(v)jesvakomobjektuklaseK2pridrueno
vieobjekataklaseklaseK1.
Napomena
Mnogostrukost m 1 je poopenje mnogostrukosti 11, a mnogostrukost m n je poopenje
mnogostrukosti
m1.
Primjer7.4(mnogostrukostveze)
VezaglumciFilm Glumacjemnogostrukostimn;
vezavlasnikStudio Filmjemnogostrukosti1n;
vezavlasnitvoOdFilm Studiojemnogostrukostim1.
Napomena
UODLudefinirajusejedinobinarneveze;uERjezikumoemodefiniratiivezeviegreda(3,4,..).

145

TipoviuODLu

SkupS:{a,b};(nemaponavljanjaelemenata,ureajnijebitan)
multiskupilibagB:{a,b,b,c};(elementisemoguponavljati,ureajnijebitan)
listaL:(a,b,b,c).(elementisemoguponavljati,ureajjebitan)
Bazini(temeljni)tipoviuODLu
(B1)Atomskitipovi:integer,float,character,characterstring,boolean,enumeration;
(B2)Interfacetipovi;napr.Film,Glumac.

Strukturiranetipovegradimo(rekurzivnim)kombiniranjemprimjenjujuisljedeetipskekonstrukte:
(T1) Skup.Akoje T bilokojitip,ondaje Set<T> tipkojisesastojiodsvihkonanihskupova
elemenatatipaT.
(T2) Multiskup. Akoje T bilokojitip,ondaje Bag<T> tipkojisesastojiodsvihkonanih
multiskupovaelemenatatipaT.
(T3) Lista. Akoje T bilokojitip,ondaje List<T> tipkojisesastojiodsvihkonanihlista
elemenatatipaT.
(T4) Niz(Array).AkojeTbilokojitip,iN,ondajeArray<T,i>tipkojisesastojiodnizova
(duljinei)elemenatatipaT.
Pr.Array(char,5)jekarakternizduljine5.
(T5)Strukture.AkosuT1,T2,..,Tnbilokojitipovii
F1,F2,..,Fnimenapolja,ondaje
StructSt{T1F1,T1F2,..,TnFn}tipkojisesastojiodstruktura(slogovailirekorda)sanpolja.Ime
tipajeSt.
Pr.StructAddr{stringulica,stringgrad}jetipkojisesastojiodslogovasdvapoljaijitipjestring.
Tipove(T1)(T4)zovemokolekcijskimtipovima.
ODLogranienja
O1.Tipatributanemoebitiinterface;
O2.Tipvezenemoebiti:atomskitip,kolekcijaatomskihtipova,strukturalnitip;
O3. Tip atributa i tip veze ne moe ukljuivati kompoziciju vie kolekcijskih tipova. Na primjer,
Set<Array<Glumac>>nijedozvoljen.
Podklasa
Klasa K1 jepodklasaklase K2(klasa K2 jenadklasaklase K1)akojesvakiobjektklase K1
ujednoiobjektklaseK2.
146

Notacija:K1K2
Grafikiprikaz:K2

K1
Motivacijazauvoenjepodklase
NekaklasaK2moesadravatiobjektekojiimajuspecijalnasvojstvakojanemajusvilanoviklase
K2.
ZatoteobjektestavljamoupodklasuK1.ObjektipodklaseK1nasljeujusvasvojstvaobjekataiz
K2,aimajuisvojaspecijalnasvojstva.
Primjer6.5(deklaracijapodklaseCrtiklaseFilm)
(c1)interfaceCrti:Film{
(c2)relationshipSet<Glumac>glas;
};
Komentar
CrtinasljeujesvasvojstvanadklaseFilm;svojstvo(c2)imasmislasamozapodklasuCrti.
Hijerarhijaklasa(viekratnonasljeivanje)
Primjer7.6(hijerarhijaklasa)
Nekajegrafikizadanahijerarhijaklasa
Film

RomancaSudnica

RomancaSudnica
147

PodklasaRomancaSudnicaimadvijeneposrednenadklaseRomancuiSudnicuodkojihnasljeuje
svojstva;konfliktnasituacijajemoguausluajudaneposrednenadklasesadreistiatributA,gdjesu
tipoviTip(A)(uklasiRomanca)iTip(A)(uklasiSudnica)razliiti.
Problem
NekajeARomancaiTip(A)=enumK{sretan,alostan};nekajedaljeASudnicai
Tip(A)=enumE{kriv,nijekriv}.
KojiatributnasljeujepodklasaRomancaSudnica?
Rjeenjekonfliktnesituacije
R1.Specificiratikojejeoddvasvojstvaprimjenjivonapodklasu(boljeodgovarasituaciji).
Akosmoviezainteresiraniotomejelifilmzavriosretnoiline,ondaemoudefinicijipodklase
zahtijevatinasljeivanjeiznadklaseRomanca.
R2. Akosmozainteresiranizaobasvojstva,ondadanosvojstvoujednojodneposrednihnadklasa
preimenujemo.
R3.Zamijenitikonfliktnasvojstvaiznadklasanovimsvojstvompodklase.
Naprimjer,umjestosvojstva A=kraj(sodgovarajuimtipovimaunadklasama Romancai
Sudnica),definiramozapodklasuRomancaSudnicanovosvojstvoB=kraj,gdjejeTip(B)=
integer(stupanjzadovoljenjakrajemfilmadobivenanketomgledatelja).
Ogranienja(uvjetiintegriteta)
Primjer(klju)
interfaceFilm(key(naslov,godina))
{
};
Slabaklasa
KlasaK1jeslabaakojebaremjedanatributnjenogkljuadobivenizdrugeklaseK2.
Napomena
Slabe klase ne postoje u ODLu, jer svaki objekt ima svoj oi , tako da ne postoji potreba za
definiranjemkljua.

Sadrajklase(extent) jeskupobjekatadaneklaseudanomtrenutkuvremena.Tojeustvari
relacijaurelacijskommodelu.

148

Metodajefunkcijapridruenaklasi.Funkcijadjelujenadobjektimaklase(argumenti
funkcije);funkcijamoeimatiidrugeargumentetj.parametre.

Primjer7.7(proirenjeklaseFilmsadrajemimetodama)
(f1)interfaceFilm(extentFilmovikey(naslov,godina))
{
(f2)attributestringnaslov;
(f3)attributeintegergodina:
(f4)attributeintegerduljina;
(f5)attributeenumFil{boja,crnobijeli}tipfilma;
(f6)relationshipSet<Glumac>glumci
inverseGlumac::glumiU;
(f7)relationshipStudiovlasnitvoOd
inverseStudio::vlasnik;
(f8)floatduljinaUsatima()raises(noNaenaDuljina);
(f9)glumciImena(outSet<string>);
(f10)drugiFilmovi(inGlumac,outSet<Film>)
raises(notakavGlumac);
};
Komentar
UklasiFilmimamotrimetodetj.njihovesignature:
(M1)duljinaUsatima:Filmfloat;nemaulaznihiizlazniparametara.
Argument(prikriveni)jeobjektklase Film;formulakakoduljinaUsatimaradi, tj.
implementacijailikodnijedio ODLdeklaracije.Kodsedefinirakoristeidomainskijezik
(host). Mogua interpretacija metode duljinaUsatima: koristei svojstva objekta (duljina)
dobivase,pretvaranjemminutausate,duljinaUsatima.
Metodaimajedanizuzetak;usluajudaatributduljinaobjektaizklaseFilmnijedefiniranili
imanekorektnuvrijednost,ondajerezultatnoNaenaDuljina.
(M2)glumciImena:Film;
kodomena nije definirana, ali imamo jedan izlazni parametar tipa skup stringova.
Pretpostavljamodaseizlazniparametarraunatakodanamdajeimenaglumacadanogfilma.
(M3)drugiFilmovi:Film;
kodomenanijedefinirana,aliimamojedanulazniijedanizlazniparametar Glumac i
Set<Film>,respektivno.Moguaimplementacijaovefunkcijejekaotoslijedi.

149

FunkcijadrugiFilmovioekujedajedaniglumac(ulazniparametar)glumacdanogfilma;ako
nijetako,ondasepojavljujeizuzetak notakavGlumac.Akojedaniglumacujednoglumac
danog filma, onda se izlaznom parametar, iji je tip skup filmova, pridruuje kao njegova
vrijednostskupdrugihfilmovadanogglumca.

Poopenje(definicijasignaturemetode)

NekajeKklasa,Tip(in)=Ul,Tip(out)=Iz.SignaturametodemzaklasuKjeizraz
m:K UlKodomenaIz.
SkupoviUl,Kodomena,Izmogubitiiprazni(neistovremeno).

150

7.3.OQL

OQL (ObjectQueryLanguage)jejezikzamanipulacijupodacima.NotacijajeslinaSQLnotaciji.
PretpostavljasedaeOQLbitiupotrijebljenkaoekstenzijanekogOOdomainskog(host)jezika(C+
+,Smalltalk,Java,Python).ManipulacijaobjektimaostvarujesekombinacijomOQLupitai iskaza
domainskog jezika. Ovo mijeanje OQLupita i hostiskaza, bez eksplicitnog transformiranja
vrijednostiizmeudvajezika,prednostjeuodnosuna SQL ugraenudomainskijezik,gdjese,
upravosuprotno,navedenatransformacijamoraeksplicirati.
TipoviuOQLu
Tipoviseu OQLugradeslinokaou ODLu.Meutim,nemaogranienjanadubinuugraivanja
konstruktora.
VarijableuOQLuimajudeklaracijunasljeenuizODLa.
UOQLumoemotrebatiikonstante,kojesenedefinirajuuODLu,jerjeODLjezikzadefiniciju
strukture.
KonstanteuOQLukonstruiramoprimjenomsljedeihbazinih(temeljnih)itipskihkonstruktora:

Bazinitipovi

(B1)Atomskitipovi:integer,float,character,string,
boolean:
(B2)Enumeracije.VrijednostiuenumeracijisudeklariraneuODLu.Bilokojaodovihvrijednosti
moebitiupotrijebljenakaokonstanta.

Sloenitipovi

Sloenetipovegradimoprimjenomsljedeihtipskihkonstruktora:
(k1)Set(..)
(k2)Bag(..)kolekcijskitipovi
(k3)List(..)
(k4)Array(..)
(k5)Struct(..)

151

Primjer7.8(konstante)
Sljedeiizrazisukonstante:
2
Set(1,2)
3
Bag(1,2,2)
4
List(1,2,2)
5
Array(4;2,2,1,0)
6
Struct(A:Set(1,2),B:OK,C:List(1,2,Set(1,2))).
Reprezentacijaputa
NekajeoobjektklaseKisnekosvojstvoklaseK.
Tadajeo.srezultatprimjenesvojstvasnaobjekto.
Formalno,
vrijednostatributauoakojesatribut
o.s=kolekcijaobjekatauvezisaoakojesveza
rezultatprimjenesnaoakojesmetoda
ZailustracijuOQLakoristitemoOObazupodatakaOOBP:Film,Glumac,Studio.
Primjer7.9(specifikacijaputa)
NekajeFvarijablatipaFilm.
(p1)izrazF.naslovpredstavljanaslovfilmaF;akoje
F=f1,ondajeF.naslov=f1.naslovtj.rezultat
predstavljanaslovfilmaf1.
(p2)izrazomF.duljinaUsatima()danajeduljinafilma
Fusatima.
(p3)izrazomF.glumcidanjeskupglumacafilmaF;
skupglumacaodreenjevezomglumci.
(p4)IzrazF.glumciImena(x)predstavljaskupglumaca
filmaF;dobiveniskuppridruujeseizlaznoj
varijablix.
(p5)IzrazF.vlasnitvoOd.imeoznaavaimeonog
studijakojijevlasnikfilmaF.
SelectFromWhereizraziuOQLu
Primjer7.10
U:OdreditigodinufilmaABC.
OQL(U):Selectf.godina
FromFilmovif
Wheref.naslov=ABC
152

RA(U): [godina]( [naslov=ABC(Filmovi))jerjeenjeurelacijskojalgebriRA.


OperatoriusporeivanjailogikioperatorisuistikaouSQLu;umjesto<>piemo!=.
Primjer7.11
U:OdreditiimenaglumacafilmaABC.
OQL(U):Selectg.ime
FromFilmovif,f.glumcig
wheref.naslov=ABC
Eliminacijaponavljanja
Rezultat upita je multiskup tj. relacija s ponavljanjem (kao u SQLu). Eliminaciju ponavljanja
ostvarujemopomouDistinct.Tadajerezultatupitaskup.
Primjer7.12
U:OdreditiimenaglumacaufilmovimastudijaCroatia.
OQL(U):SelectDistinctg.ime
FromFilmovif,f.glumcig
Wheref.vlasnitvoOd.ime=Croatia
Sloenitipoviuizlazu
IzraziuSelectklauzulimogubitiizgraeniprimjenomtipskihkonstrukata.
Primjer7.13
U:Odreditiparoveglumacakojiimajuistuadresu.
OQL(U):
SelectDistinctStruct(glumac1:g1,glumac2:g2)
FromGlumcig1,Glumcig2
Whereg1.adresa=g2.adresaAndg1.ime<g2.ime
Tiprezultataupitaje
Set<StructG{Glumac:glumac1,Glumac:glumac2}>,
gdjejetippoljaglumac1iglumac2nasljeenodvarijablig1ig2,
kojesutipaGlumac.
153

Podupiti
Primjer7.14
Upituprimjeru6.12moemoizraziti,koristeipodupit,ovako:
OQL(U):
SelectDistinctg.ime
From
(Selectf
FromFilmovif
Wheref.vlasnitvoOd.ime=Croatia)c,c.glumcig
Ureenjerezultata
Rezultatupitajemultiskupiliskup(akokoristimoDistinct).Primjenom OrderBy dobivamokao
rezultatlistu.
Primjer7.15
U: Odrediti listu filmova studija Croatia; lista treba biti ureena po duljini trajanja i naslovima
filmova.
OQL(U):Selectf
FromFilmovif
Wheref.vlasnitvoOd.ime=Croatia
OrderByf.duljina,fnaslov
Ureenja:rastue(ASC),padajue(DESC);akonitanespecificiramo,pretpostavljaseASC.
Kvantifikatorii

ForAllxInS:P(x)
IzrazjeistinitakoisamoakozasvakixSvrijedisvojstvoP(x).

ExistsxInS:P(x)
IzrazjeistinitakoisamoakopostojixStakavdavrijedisvojstvoP(x).

154

Primjer7.16()
U:OdreditiglumcekojiglumejedinoufilmovimastudijaCroatia.
OQL(U):Selectg
FromGlumcig
WhereForAllfIng.glumiU:
f.vlasnitvoOd.ime=Croatia
Primjer7.17( )
U:OdreditiglumcefilmovastudijaCroatia.
OQL(U):Selectg
FromGlumcig
WhereExistsfIng.glumiU:
f.vlasnitvoOd.ime=Croatia
Zadatak
Jeliglumci,kojitrenutnoneglumeunitijednomfilmu(sobziromnaOOBP),pripadajurezultatima
primjeraiprimjera ?

Agregacijskioperatori
Avg,Count,Sum,Min,Max.
Domeneoperatorasukolekcijeodgovarajuegtipa.
Count:TInteger,gdjejeTproizvoljantip;
Avg,Sum:Afloat,gdjejeAaritmetikitip;
min,Max:AlfAlf,gdjejeAlfalfanumerikitiptj.
bilokojiureentip.
Primjer7.18
U:Odreditiprosjenuduljinusvihfilmova.
OQL(U):Avg(Selectf.duljina
FromFilmovif)

155

Zadatak
Komentirajteupit
OQL(U):Avg(SelectDistinctf.duljina
FromFilmovif)
Primjer7.19
U:Odreditinajduiodsvihfilmova.
OQL(U):Max(Selectf.duljina
FromFilmovif)
GroupByoperator
Primjer7.20
U:Odreditiukupnuduljinufilmovazasvakistudioisvakugodinu.
OQL(U):
Selects,g,sumduljina:Sum(Selectp.f.duljina
Frompartitionp)
FromFilmovif
GroupBys:f.vlasnitvoOd,g:f.godina
Komentar
Partitionsadrisvefilmovezadanistudioidanugodinu.
Havingklauzula
Postavljaseuvjetnagrupuobjekata.
Primjer7.21
U: Odreditiukupnuduljinufilmovazasvakistudioisvakugodinu,alipoduvjetomdajestudiote
godineproduciraobaremjedanfilmijajeduljinaveaod120minuta.
OQL(U):
Selects,g,sumduljina:Sum(Selectp.f.duljina
Frompartitionp)
FromFilmovif
GroupBys:f.vlasnitvoOd,g:f.godina
HavingMax(Selectp.f.duljina
Frompartitionp)>120

156

Skupovnioperatori
Union,Intersect,Except
Primjer7.22
U:OdreditisvefilmoveukojimaglumiR.Bai,akojinisuvlasnitvostudijaCroatia.
OQL(U):(Selectdistinctf
FromFilmovif,f.glumcig
Whereg.ime=R.Bai)
Except
(SelectDistinctf
FromFilmovif
Wheref.vlasnitvoOd.ime=Croatia)
DefinicijeUnion,Intersect,Exceptnamultiskupovima
NekasuM1iM2multiskupoviukojimaseobjektopojavljujen1,n2putarespektivno.Tada

oiman1+n2pojavljivanjauM1UnionM2;
oimaMin{n1,n2}pojavljivanjauM1IntersectM2;
oiman1n2>0pojavljivanjauM1ExceptM2;
akon1n1<0,ondaonemapojavljivanjauM1ExceptM2.

PridruenjeikreiranjeobjekatauOQLu
Uovomodjeljkupromatramovezu OQLa injegovogdomainskogjezika.Pretpostavljamodaje
domainskijezikC++.Varijabledomainskogjezikazvatemodvarijable.
Pridruenjevrijednostidvarijablama
Uprincipumoguejepridruitibilokojojdvarijabli,odgovarajuegtipa,vrijednostkojajerezultat
OQLizraza.
Primjer7.23
NekajeTip(noviFilmovi)=Set<filmovi>.
IzrazomnoviFilmovi=SelectDistinctf
FromFilmovif
Wheref.godina>=1950;
pridruilismovarijablinoviFilmoviskupsvihfilmovaproizvedenihposlije1950.godine.

157

NekajeTip(y)=Bag<Filmovi>.
IzraznoviFilmovi=SelectDistinctf
FromFilmovif
Wheref.godina>=1950;

nijekorektan(typeerror).
Izdvajanjeelemenatakolekcije
Primjer7.24
(a)
NekajeTip(x)=Filmovi.
Izrazomx=Element(Selectf
FromFilmovif
Wheref.naslov=ABC;
pridruujemovarijablifilmABC.
(b)Izrazx=Selectf
FromFilmovif
Wheref.naslov=ABC;
nijekorektan(typeerror).
Dobivanjesvihelemenatakolekcije
Primjer7.25
DobitilistusvihfilmovaklaseFilm.
Rjeenje
NekajeTip(flista)=List<Filmovi>.
Izrazomflista=Selectf
FromFilmovif
OrderByf.naslov,f.godina;
pridruilismolistufilmovavarijabliflista.

NapisatiC++funkcijukojatiskanaslov,godinuiduljinusvakogfilmaklaseFilm.

158

Rjeenje
(e1)flista=Selectf
FromFilmovif
OrderByf.naslov,f.godina;
(e2)brojfilmova=Count(Filmovi);
(e3)for(i=0;i<brojfilmova;i++){
(e4)film=flista[i];
(e5)print<<film.naslov<<<<film.godina<<
<<film.duljina<</n;
}.

Kreiranjenovihobjekata
Primjenom OQLizraza kreiralismonoveobjekte(rezultat)temeljempostojeihobjekata.Objekte
moemo kreirati i na eksplicitan nain tako da postavljamo konstante i druge izraze u kolekcije i
strukture.
Primjer7.26

NekajeTip(x)=Struct(A:integer,B:integer)
Izrazomx=Struct(A:3,B:5)kreiranjeobjekt
(slog)(A:3,B:5)ipridruenvarijablix.

NekajeTip(y)=Bag(T(x)).
Izrazomy=Bag(x,Struct(A:0,B:1))kreiranje
objekt(multiskup)
Bag(Struct(A:3,B:5),Struct(A:0,B:1)),koji
jepridruenvarijabliy.

Primjer7.27
Kreirajmoobjekt(film)[A,1960,220,Croatia],kojitrebadodatiklasiFilmipridruitivarijabli
x.

159

Rjeenje
NekajeTip(x)=Film,Tip(y)=string,y=Croatia.
Rjeenjejedanoizrazom
x=Film(naslov:A,godina:1960,duljina:220,
vlasnitvoOd:y)

160

ZADACI
1. Napiitesadrajklasaobjektnoorijentiranebazepodataka,kojusmorazmatraliuprimjerimaiz
odjeljka6.3,OOBP:Film,Glumac,Studio.
2.NekajeOOBPizzadatka1.Napiitesadrajeodgovoranaupiteizprimjera6.10,6.11,..,6.22.
3.Napiitenizupitakojisustrukturalnosliniupitimaizprimjera6.10,6.11,..,6.22,azatimodredite
sadrajeodgovorazadanihupita.

161

LITERATURA
[JDU]J.D.Ullman:PrinciplesofDatabaseandKnowledgeBaseSystems,vol.I,ComputerScience
Press,88.
[GMUW] H. GarciaMolina, J. D. Ullman, J. Widom, Database Systems: The Complete Book,
PrenticeHall,2002.
[AHV]S.Abiteboul,R.Hull,V.Vianu:FoundationsofDatabases,AddisonWesley,2002.
[ACPT] P. Atzeni, S.Ceri,S.Paraboschi,R.Torlone: Databasesystems:Concepts,Languageand
Architectures,McGrawHill,1999.
[CJD]C.J.Date:AnIntroductiontoDatabaseSystems,AddisonWesley,2004.
[DD] C. J. Date, H. Darwen: Foundation for Future Databases Systems: The Third Manifesto,
AddisonWesley,2000.
[DDL] C.J. Date,H.Darwen,N.A.Lorentzos:TemporalDataandtheRelationalModel,Morgan
Kaufman,2003.
[TC]R.A.MataToledo,P.K.Cushman:FundamentalsofRelationalDatabases,SchaumsOutline
Series,McGrawHill,2000.
Izvorinainternetu:
http://www.rational.com/uml,http://www.dbpd.com,http://www.BRCommunity.com,
http://www.dbdebunk.com,http://www.multiagent.com
asopisi

JournaloftheAssociationforComputingMachinery(ACM)
[DatabaseTheory,DeductiveSystem,ArtificialIntelligence,LogicinComputerScience,...]

ACMTransactionsonDatabaseSystems(TODS)
InformationSystems
[DataBases:TheirCreation,Management,andUtilization]

TheJournalofLogicProgramming
[LogicProgramming,DeductiveDatabases,Reasoning,..]

JournalofAutomatedReasoning
[AutomatedReasoning,DeductiveDatabases,Databasetheory,...]
162

DataMiningandKnowledgeDiscovery
[DataandKnowledgeRepresentation,DataModeling,DataWarehousing,OLAP,..]

JournalofIntelligentInformationSystems
[IntegratingArtificialIntelligenceandDatabaseTechnologies]

163

You might also like