Robert Manger - Baze podataka

Embed Size (px)

Citation preview

Sveuciliste uZagrebuPrirodoslovnoMatematicki Fakultet-Matematicki odjelRobertMangerBAZEPODATAKAskriptaKorigiranoprvoizdanjeZagreb,veljaca 2008.Sadrzaj1 UVOD U BAZEPODATAKA 31.1 Osnovni pojmovi vezani uz baze podataka. . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.1 Baza podataka, DBMS, model podataka. . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Ciljevi koji se nastoje postici koristenjem baza podataka. . . . . . . . . . . . . . 41.1.3 Arhitektura baze podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.4 Jezici za rad s bazama podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.5 Poznati softverski paketi za rad s bazama podataka . . . . . . . . . . . . . . . . 61.2Zivotni ciklus baze podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.1 Analiza potreba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.2 Modeliranje podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.3 Implementacija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.4 Testiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.5 Odrzavanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 MODELIRANJEPODATAKA 92.1 Modeliranje entiteta i veza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.1 Entiteti i atributi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.2 Veze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.3 Prikaz ER-sheme pomocu dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.4 Slozenije veze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Relacijski model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.1 Relacija, atribut, n-torka, kljuc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.2 Pretvaranje ER-sheme u relacijsku . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.3 Usporedba relacijskog modela s mreznim i hijerarhijskim . . . . . . . . . . . . . . 152.3 Normalizacija relacijske sheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.1 Funkcionalna ovisnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.2 Druga normalna forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.3 Treca normalna forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.4 Boyce-Codd-ova normalna forma . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.5 Viseznacna ovisnost i cetvrta normalna forma. . . . . . . . . . . . . . . . . . . . 192.3.6 Razlozi zbog kojih se moze odustati od normalizacije . . . . . . . . . . . . . . . . 203 JEZICIZARELACIJSKEBAZEPODATAKA 213.1 Relacijska algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1.1 Skupovni operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.2 Selekcija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.3 Projekcija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.4 Kartezijev produkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.5 Prirodni spoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.6 Theta-spoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.7 Dijeljenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.8 Vanjski spoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2 Relacijski racun. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.1 Racun orijentiran na n-torke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.2 Racun orijentiran na domene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2812 SADRZAJ3.3 Jezik SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3.1 Postavljanje upita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3.2 Azuriranje relacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4 Optimizacija upita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4.1 Odnos izmedu relacijske algebre i racuna . . . . . . . . . . . . . . . . . . . . . . . 323.4.2 Osnovna pravila za optimizaciju . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 FIZICKAGRADA BAZEPODATAKA 354.1 Elementi zicke grade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1.1 Vanjska memorija racunala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1.2 Datoteke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1.3 Smjestaj datoteke u vanjskoj memoriji . . . . . . . . . . . . . . . . . . . . . . . . 364.1.4 Pointeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.5 Fizicka grada cijele baze. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Pristup na osnovu primarnog kljuca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2.1 Jednostavna datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2.2 Hash datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2.3 Datoteka s indeksom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2.4 B-stablo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3 Pristup na osnovu drugih podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3.1 Invertirana datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3.2 Visestruke vezane liste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3.3 Podijeljena hash funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 IMPLEMENTACIJARELACIJSKIHOPERACIJA 475.1 Implementacija prirodnog spoja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.1.1 Algoritam ugnijezdenih petlji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.1.2 Algoritam zasnovan na sortiranju i sazimanju. . . . . . . . . . . . . . . . . . . . 485.1.3 Algoritam zasnovan na indeksu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.1.4 Algoritam zasnovan na hash funkciji i razvrstavanju . . . . . . . . . . . . . . . . 495.2 Implementacija selekcije, projekcije i ostalih operacija . . . . . . . . . . . . . . . . . . . 505.2.1 Implementacija selecije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.2.2 Implementacija projekcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.2.3 Implementacija ostalih operacija. . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.3 Optimalno izvrednjavanje algebarskog izraza . . . . . . . . . . . . . . . . . . . . . . . . 516 INTEGRITETISIGURNOST PODATAKA 536.1Cuvanje integriteta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.1.1 Ogranicenja kojima se cuva integritet domene. . . . . . . . . . . . . . . . . . . . 536.1.2 Ogranicenja kojima se cuva integritet unutar relacije . . . . . . . . . . . . . . . . 536.1.3 Ogranicenja kojima se cuva referencijalni integritet . . . . . . . . . . . . . . . . . 546.2 Istovremeni pristup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.2.1 Transakcije i serijalizabilnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.2.2 Lokoti i zakljucavanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.2.3 Dvofazni protokol zakljucavanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.2.4 Vremenski zigovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.3 Oporavak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576.3.1 Rezervna kopija baze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.3.2Zurnal datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.3.3 Neutralizacija jedne transakcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.3.4 Ponovno uspostavljanje baze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.4 Zastita od neovlastenog pristupa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.4.1 Identikacija korisnika. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.4.2 Pogledi kao mehanizam zastite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.4.3 Ovlastenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601UVODUBAZEPODATAKA1.1 OsnovnipojmovivezaniuzbazepodatakaBazepodatakapredstavljajuvisurazinuradaspodacimauodnosunaklasicneprogramskejezike.Rijecjeotehnologiji kojajenastalas namjeromdase ukloneslabosti tradicionalneautomatskeobrade podataka iz 60-tih i 70-tih godina 20. stoljeca. Ta tehnologija osigurala je vecu produktivnost,kvalitetu i pouzdanost u razvoju aplikacija koje se svode na pohranjivanje i pretrazivanje podataka uracunalu.1.1.1 Bazapodataka,DBMS,modelpodatakaBazapodataka je skup medusobno povezanih podataka, pohranjenih u vanjskoj memoriji racunala.Podaci su istovremeno dostupni raznim korisnicima i aplikacijskimprogramima. Ubacivanje, promjena,brisanje i citanje podataka obavlja se posredstvomzajednickog softvera. Korisnici i aplikacije pritomne moraju poznavati detalje zickog prikaza podataka, vec se referencirajuna logicku strukturu baze.Sustav za upravljanje bazom podataka (Data Base Management System - DBMS) je posluzitelj(server) bazepodataka. Onoblikujezicki prikazbazeuskladustrazenomlogickomstrukturom.Takoder,onobavlja uimeklijenatasveoperacijespodacima. Dalje,onjeustanjupodrzati raznebaze, od kojih svaka moze imati svoju logicku strukturu, no u skladu s istim modelom.Isto tako, brinese za sigurnost podataka, te automatizira administrativne poslove s bazom.Podaci u bazisu logicki organizirani uskladu snekim modelompodataka. Model podataka jeskup pravila koja odreduju kako moze izgledati logicka struktura baze. Model cini osnovu za koncipi-ranje, projektiranje i implementiranje baze. Dosadasnji DBMS-i obicno su podrzavali neki od sljedecihmodela:Relacijskimodel. Zasnovannamatematickompojmurelacije. I podaci i veze medupodacimaprikazuju se pravokutnim tabelama.Mreznimodel. Baza je predocenausmjerenim grafom.Cvorovi su tipovi zapisa, a lukovi denirajuveze medu tipovima zapisa.Hijerarhijskimodel. Specijalni slucaj mreznog. Baza je predocenajednim stablom ili skupom sta-bala.Cvorovi su tipovi zapisa, a hijerarhijski odnos nadredeni-podredeniizrazava vezemedutipovima zapisa.Objektni model. Inspiriranjeobjektno-orijentiranimprogramskimjezicima. Bazajeskuptrajnopohranjenih objekata koji se sastoje od svojih internih podataka i metoda (operacija) za ruko-vanjestimpodacima. Svakiobjektpripadanekoj klasi. Izmeduklasaseuspostavljajuvezenasljedivanja, agregacije, odnosno medusobnog koristenja operacija.Hijerarhijski i mrezni model bili su u uptrebi u 60-tim i 70-tim godinama 20. stoljeca.Od 80-tih godinapasvedodanasnjih danaprevladava relacijski model. Ocekivaniprijelaz naobjektnimodelzasadasenije desio, tako da danasnje baze podataka uglavnom jos uvijek mozemo poistovjetiti srelacijskimbazama.34 1. UVODUBAZEPODATAKA1.1.2 CiljevikojisenastojeposticikoristenjembazapodatakaSpomenuli smodabazepodatakapredstavljajuvisurazinuradaspodacimauodnosunaklasicneprogramskejezike. Ta visarazinaradaocitujeseutome stotehnologija bazapodatakanastoji(iuvelikoj mjeri uspijeva) ispuniti sljedece ciljeve.Fizickanezavisnost podataka. Razdvaja selogicka denicijabazeodnjenestvarnezickegrade.Znaci, ako se zicka grada promijeni (na primjer, podaci se prepisu u druge datoteke na drugimdiskovima), to nece zahtijevati promjene u postojecim aplikacijama.Logickanezavisnost podataka. Razdvajase globalnalogickadenicijacijele baze podatakaodlokalne logicke denicije za jednu aplikaciju. Znaci, ako se logicka denicija promijeni (na primjeruvedesenovizapisili veza), tonecezahtijevatipromjeneupostojecimaplikacijama. Lokalnalogicka denicijaobicnosesvodinaizdvajanjesamonekihelemenataizglobalnedenicije,uzneke jednostavne transformacije tih elemenata.Fleksibilnostpristupa podacima. U starijim mreznim i hijerarhijskim bazama, stazepristupanjapodacima bile su unaprijed denirane, dakle korisnik je mogao pretrazivati podatke jedino onimredoslijedomkoji jebiopredvidenuvrijemeprojektiranjai implementiranjabaze. Danassezahtijeva da korisnik moze slobodno prebirati po podacima, te po svom nahodenju uspostavljativeze medu podacima.Ovom zahtjevu zaista zadovoljavaju jedino relacijske baze.Istovremeni pristup dopodataka. Baza mora omoguciti da veci broj korisnika istovremeno koristiistepodatke. Pritomtikorisnicinesmiju ometatijedandrugoga,tesvakiodnjihtrebaimatidojam da sam radi s bazom.Cuvanjeintegriteta. Nastoji se automatski sacuvati korektnost i konzistencijapodataka, i tousituaciji kad postoje greske u aplikacijama, te koniktne istrovremene aktivnosti korisnika.Mogucnost oporavkanakon kvara. Morapostojatipouzdanazastitabazeuslucajukvarahard-vera ili gresaka u radu sistemskog softvera.Zastitaodneovlastenog koristenja. Morapostojatimogucnostdasekorisnicima ogranicepravakoristenjabaze,dakledasesvakom korisnikuregulirajuovlastenja stoonsmijea stonesmijeraditi s podacima.Zadovoljavajuca brzina pristupa. Operacije s podacima moraju se odvijati dovoljno brzo, u skladus potrebama odredene aplikacije. Na brzinu pristupa moze se utjecati odabirom pogodnih zickihstruktura podataka, te izborom pogodnih algoritama za pretrazivanje.Mogucnost podesavanja ikontrole. Velika baza zahtijeva stalnu brigu:pracenje performansi, mi-jenjanje parametara u zickoj gradi, rutinsko pohranjivanje rezervnih kopija podataka, reguliranjeovlastenja korisnika. Takoder, svrhabazesevremenommijenja, pa povremenotrebapodesiti ilogickustrukturu. Ovakvi poslovi morajuseobavljaticentralizirano. Odgovornaosobazoveseadministrator bazepodataka. Administratoru trebajustajati na raspolaganju razni alati ipomagala.1.1.3 ArhitekturabazepodatakaArhitekturabazepodataka sastoji seod tri sloja i sucelja medu slojevima, kao stoje prikazano naSlici 1.1.Rijec je o tri razine apstrakcijeFizickarazinaodnosi se na zicki prikaz i raspored podataka na jedinicama vanjske memorije.To jeaspekt kojeg vide samo sistemski programeri (oni koji su razvili DBMS). Sama zicka razina mozese dalje podijeliti na vise pod-razina apstrakcije, od sasvim konkretnih staza i cilindara na disku,do vec donekle apstraktnih pojmova datoteke i zapisa kakve susrecemo u klasicnim programskimjezicima. Raspored pohranjivanja opisuje kako se elementi logicke denicije baze preslikavajuna zicke uredaje.Globalnalogickarazinaodnosi se na logicku strukturucijele baze. To je aspekt kojeg vidi projek-tant baze odnosno njen administrator.Zapis logicke denicije naziva se shema (engleski takoderschema). Shema je tekst ili dijagram koji denira logicku strukturu baze, i u skladu je sa zadanim1.1. OSNOVNIPOJMOVIVEZANIUZBAZEPODATAKA 5modelom.Dakle imenuju se i deniraju svi tipovi podataka i veze medu tim tipovima, u skladus pravilimakoristenogmodela. Takoder, shemauvodi i ogranicenjakojimsecuvaintegritetpodataka.Lokalnalogickarazinaodnosi se na logicku predodzbu o dijelu baze kojeg koristi pojedina aplikacija.To je aspektkojeg vidi korisnik ili aplikacijski programer. Zapisjednelokalne logicke denicijezove se pogled (engleski view) ili pod-shema.To je tekst ili dijagramkojimse imenuju i denirajusvi lokalni tipovi podataka i veze medu tim tipovima, opet u skladu s pravilima koristenog modela.Takoder, pogled zadaje preslikavanje kojim se iz globalnih podataka i veza izvode lokalni.Aplikacijskiprogram 1Aplikacijskiprogram 2Aplikacijskiprogram 3```Pogled 1 Pogled 2 Pogled 3

`

Shema`Rasporedpohranjivanja

Datoteke DatotekeLokalnalogickarazinaGlobalnalogickarazinaFizickarazinaSlika 1.1:Arhitektura baze podatakaZastvaranjebazepodatakapotrebnojezadati samoshemui poglede. DBMStadaautomatskigenerira potrebni raspored pohranjivanja i zicku bazu. Administrator moze samo donekle utjecati nazicku gradu baze, podesavanjem njemu dostupnih parametara.Programi i korisnici ne pristupaju izravno zickoj bazi, vec dobivaju ili pohranjuju podatke posred-stvom DBMS-a.Komunikacija programa odnosno korisnika s DBMS-om obavlja se na lokalnoj logickojrazini.1.1.4 JezicizaradsbazamapodatakaKomunikacija korisnika odnosno aplikacijskog programa i DBMS-a odvija se pomocu posebnih jezika.Ti jezici tradicionalno se dijele na sljedece kategorije.Jezikzaopis podataka(Data Description Language - DDL). Sluzi projektantu baze ili administra-toruu svrhuzapisivanja shemeili pogleda. Dakle tim jezikom deniramo podatke i vezemedupodacima, i to na logickoj razini.Koji puta postoji posebna varijanta jezika za shemu, a posebnaza poglede.Naredbe DDL obicno podsijecaju na naredbe za deniranje slozenih tipova podatakau jezicima poput COBOL, PL/I, C, Pascal.Jezikzamanipuliranje podacima(DataManipulationLanguage- DML). Sluzi programeruzauspostavljanje vezeizmedu aplikacijskog programa i baze. NaredbeDML omogucuju manevri-ranje po bazi, te jednostavne operacije kao sto su upis, promjena, brisanje ili citanje zapisa. Unekim softverskim paketima, DML je zapravo biblioteka potprograma: naredba u DML svodise na poziv potprograma.U drugim paketima zaista se radi o posebnom jeziku:programer tadapiseprogramukojemsuizmijesanenaredbedvajujezika,patakavprogramtrebaprevoditisdva prevodioca (DML-precompiler, obicni compiler).6 1. UVODUBAZEPODATAKAJezikzapostavljanje upita(QueryLanguage - QL). Sluzi neposrednomkorisniku za interaktivnopretrazivanje baze. To je jezik koji podsijeca na govorni (engleski) jezik Naredbesu neprocedu-ralne, dakle takve da samo speciciraju rezultat kojeg zelimo dobiti, a ne i postupak za dobivanjerezultata.Ovakva podjela natrijezika danasjevecprilicno zastarjela. Naime, kodrelacijskih bazapostojitendencijadasesvatri jezikaobjedineujedansveobuhvatni. Primjertakvogintegriranogjezikazarelacijske bazeje SQL: on sluzi zadeniranje podataka, manipuliranje i pretrazivanje. Integriranijezik semoze koristiti interaktivno (prekoon-line interpretera)ili seon mozepojavljivati uklopljen uaplikacijske programe.Naglasimo da gore spomenutevrstejezika nisu programski jezici. Dakle ti jezici sunam nuzni dabi se povezali s bazom, no oni nam nisu dovoljni za razvoj aplikacija koje ce nesto raditi s podacima izbaze.Tradicionalni nacin razvoja aplikacija koje rade s bazom je koristenje klasicnih programskih jezika(COBOL, PL/I, C, Pascal . . . )s ugnijezdenim DML-naredbama.U 80-timgodinama 20. stoljeca bili sudosta popularni i tzv. jezici 4. generacije (4-th Generation Languages - 4GL): rijec je o jezicima kojisu bili namijenjeni iskljucivo za rad s bazama, te su zato u tom kontekstu bili produktivniji od klasicnihprogramskih jezika opce namjene. Problem s jezicima 4. generacije je bio u njihovoj nestandardnosti:svaki odnjihjeupravilubiodionekogodredenogsoftverskogpaketazabazepodataka, tesenijemogao koristiti izvan tog paketa (baze).U danasnje vrijeme, aplikacije se najcescerazvijaju u standardnim objektno orijentiranim pro-gramskim jezicima (Java,C++,. . . ). Zainterakcije sbazomkoristeseunaprijed pripremljeneklaseobjekata. Ovakva tehnika je dovoljno produktivna zbogkoristenja gotovih klasa, arezultirajucipro-gram se lako dotjeruje, uklapa u vece sustave ili prenosi s jedne baze na drugu.1.1.5 PoznatisoftverskipaketizaradsbazamapodatakaBaze podataka se u pravilu realiziraju koristenjem nekog od provjerenih softverskih paketa. Tabelarniprikaz 1.1 daje pregled softvera koji u ovom trenutkupredstavljaju tehnoloski vrh teimaju znacajanudjel na svjetskom trzistu.Gotovo svi danasnji softverski paketi podrzavaju relacijski model i SQL. Svaki od njih sadrzi svojDBMS,uobicajeneklijente(naprimjerinteraktivniinterpreterSQL),tebibliotekeialatezarazvojaplikacija.Svaki paket isporucuje se u verzijama za razne racunalne platforme (operacijske sustave).Konkurencija medu proizvodacima softvera za baze podataka je izuzetno velika, tako da je posljed-njih godina cesto dolazilo do njihovog nestanka, spajanja ili preuzimanja.Lista relevantnih softverskihpaketazatojesvakegodinesvekraca. Jedinoosvjezenjepredstavljanedavnapojava public-domainsotvera poput MySQL.1.2ZivotniciklusbazepodatakaUvodenjebaze podataka u neko poduzeceili ustanovu predstavlja slozeni zadatak koji zahtijeva tim-ski radstrucnjakaraznihprola. Tojeprojektkojisemozepodijelitiupetfaza: analizapotreba,modeliranje podataka, implementacija, testiranje i odrzavanje.1.2.1 AnalizapotrebaProucavaju se tokovi informacija u poduzecu. Uocavaju se podaci koje treba pohranjivati i veze medunjima. Uvelikompoduzecima, gdjepostojeraznegrupekorisnika,pojavit ceseraznipogledinapodatke. Te poglede treba uskladiti tako da se eliminira redundancija i nekonzistentnost. Na primjer,treba u raznim pogledima prepoznati sinonime i homonime, te uskladiti terminologiju.Analiza potreba takoder treba obuhvatiti analizu transakcija (operacija) koje ce se obavljati nadbazompodataka, buduci datomozeistoimatiutjecajanasadrzaj i konacnioblikbaze. Vaznojeprocijeniti frekvenciju i opseg pojedinih transakcija, te zahtjeve na performanse.Rezultatanalizejedokument(pisanneformalnouprirodnomjeziku)koji sezovespecikacijapotreba.1.2.ZIVOTNICIKLUSBAZEPODATAKA 7Proizvodac Produkt Operacijski sustav JeziciIBM Corporation DB2 Linux, UNIX (razni), SQL,MS Windows NT/2000/XP, COBOL,VMS, MVS, VM, OS/400 Java, . . .Oracle Corporation Oracle MS Windows (razni), SQL,Mac OS, UNIX (razni), Java iLinux i drugi drugiIBM Corporation Informix UNIX (razni), Linux, SQL,(prije : Informix MS Windows NT/2000/XP Java iSoftware Inc.) drugiMicrosoft MS SQL Server MS Windows NT/2000/XP SQL,C++, . . .MySQL AB MySQL Linux, UNIX (razni), SQL,MS Windows (razni), Mac OS C, PHP, . . .Sybase Inc. Sybase MS Windows NT/2000, OS/2, SQL,SQL Server Mac, UNIX (razni), UNIXWare COBOL, . . .Hewlett Packard Co. Allbase/SQL UNIX (HP-UX) SQL,4GL, C, . . .Cincom Supra MS Windows NT/2000, Linux, SQL,Systems Inc. UNIX (razni), VMS, MVS, VM COBOL, . . .Microsoft Corporation MS Access MS Windows (razni) AccessBasic,SQLTabelarni prikaz 1.1:Poznati softverski paketi za rad s bazama podataka1.2.2 ModeliranjepodatakaRazliciti pogledi na podatke, otkriveni u fazi analize, sintetiziraju se u jednu cjelinu - globalnu shemu.Precizno se utvrduju tipovi podataka.Shema se dalje dotjeruje (normalizira) tako da zadovolji nekezahtjeve kvalitete.Takoder, shema se prilagodava ogranicenjima koje postavlja zadani model podataka,te se dodatno modicira da bi bolje mogla udovoljiti zahtjevima na performanse. Na kraju se iz shemeizvode pogledi (pod-sheme) za pojedine aplikacije (grupe korisnika).1.2.3 ImplementacijaNaosnovushemei pod-shema, teuzpomocdostupnogDBMS-a, zicki serealizirabazapodatakanaracunalu. UDBMS-uobicnopostojeparametri kojimasemozeutjecati nazickuorganizacijubaze. Parametri se podesavaju tako da se osigura ekasan rad najvaznijih transakcija.Razvija se skupprograma koji realiziraju pojedine transakcije te pokrivaju potrebe raznih aplikacija. Baza se inicijalnopuni podacima.8 1. UVODUBAZEPODATAKA1.2.4 TestiranjeKorisnici pokusnoradesbazomi provjeravajudali onazadovoljavasvimzahtjevima. Nastojeseotkriti greske koje su se mogle potkrasti u svakoj od faza razvoja:dakle u analizi potreba, modeliranjupodataka, implementaciji.Greske u ranijim fazama imaju teze posljedice. Na primjer, greska u analizipotreba uzrokuje da transakcije mozda korektno rade, no ne ono sto korisnicima treba vec nesto drugo.Dobrobi bilokadbi takvepropuste otkrili prije implementacije. Zatose unovijevrijeme, prijeprave implementacije, razvijaju i priblizni prototipovi baze podataka, te se oni pokazuju korisnicima.Jeftinu izradu prototipova omogucuju jezici 4. generacije i objektno-orijentirani jezici.1.2.5 OdrzavanjeOdvija se u vrijeme kad je baza vec usla u redovnu upotrebu. Sastoji se od sljedeceg: popravak gresakakoje nisu bile otkrivene u fazi testiranja; uvodenje promjena zbog novih zahtjeva korisnika; podesavanjeparametara u DBMS u svrhu poboljsavanja performansi. Odrzavanje zahtijeva da sestalno prati radsbazom,i to tako da topracenjeneometa korisnike. Administratorubazepodataka trebajustajatina raspolaganju odgovarajuci alati (utility programi).2MODELIRANJEPODATAKA2.1 ModeliranjeentitetaivezaBavimo se pitanjem: kako oblikovati shemu za bazu podataka, uskladenu s pravilima relacijskog modela.Ustvarnimsituacijamadostajeteskodirektnopogoditirelacijskushemu. Zatosesluzimojednompomocnom fazom koja se zove modeliranje entiteta iveza (Entity-Relationship Modelling). Rijecje o oblikovanju jedne manje precizne, konceptualne sheme, koja predstavlja apstrakciju realnog svijeta.Ta tzv. ER-shema sedalje, vise-manje automatski, pretvara urelacijsku. Modeliranje entitetai vezazahtijeva da se svijet promatra preko tri kategorije:entiteti: objekti ili dogadaji koji su nam od interesa;veze: odnosi medu entitetima koji su nam od interesa;atributi: svojstva entiteta i veza koja su nam od interesa.2.1.1 EntitetiiatributiEntitet je nesto o cemu zelimo spremati podatke, nesto sto je u stanju postojati ili ne postojati, te semoze identicirati.Entitet moze biti objekt ili bice (na primjer kuca, student, auto), odnosno dogadajili pojava (na primjer nogometna utakmica, praznik, servisiranje auta).Entitet je opisan atributima (na primjer atributi kuce su: adresa, broj katova, boja fasade, . . . ).Ukoliko neki atribut i sam zahtijeva svoje atribute, tada ga radije treba smatrati novim entitetom (naprimjermodelauta). Istopravilo vrijediiakoatributmozeistovremenoimativisevrijedenosti(naprimjer kvar koji je popravljen pri servisiranju auta).Imeentiteta, zajednosapripadnimatributima, zapravoodredujetipentiteta. Mozepostojatimnogoprimjeraka(pojava)entitetazadanogtipa(naprimjerSTUDENTjetipciji primjerci suPetrovic Petar, Markovic Marko, . . . ).Kandidatzakljuc je atribut, ili skup atributa, cijevrijednosti jednoznacnoodreduju primjerakentitetazadanogtipa. Dakle, nemogupostojati dvarazlicitaprimjerkaentitetaistogtipasistimvrijednostimakandidatazakljuc. (NaprimjerzatipentitetaAUTO,kandidatzakljucjeatributREGBROJ).Ukolikojedantipentitetaimavisekandidatazakljuc,tadabiramojednogodnjihiproglasavamo ga primarnim kljucem. (Na primjer primarni kljuc za tip entiteta STUDENTmogaobi biti atribut BROJ INDEKSA.2.1.2 VezeVezeseuspostavljajuizmedudvaili visetipovaentiteta(naprimjervezaIGRAZAizmedutipovaentitetaIGRACi TIM). Zapravojerijecoimenovanojbinarnoj ili k-narnoj relaciji izmeduprim-jerakaentitetazadanihtipova. Zasadacemoseogranicitinavezeizmedutocnodvatipaentiteta.Funkcionalnost veze moze biti:Jedan-naprama-jedan (1 : 1). Jedan primjerak prvog tipa entiteta moze biti u vezi s najvise jednimprimjerkomdrugogtipaentiteta, te takoder jedanprimjerakdrugogtipamoze biti uvezi snajvise jednim primjerkom prvog tipa.Na primjer veza JE PROCELNIKizmedu tipova entitetaNASTAVNIKi ZAVOD(na fakultetu).910 2. MODELIRANJEPODATAKAJedan-naprama-mnogo (1 : N). Jedan primjerak prvog tipa entiteta moze biti u vezi s 0, 1 ili viseprimjeraka drugog tipa entiteta,no jedanprimjerak drugog tipa mozebiti u vezis najvisejed-nim primjerkog prvog tipa. Na primjer vezaPREDAJEizmedu tipova entitetaNASTAVNIKiKOLEGIJ.Mnogo-naprama-mnogo (M: N). Jedanprimjerakprvogtipaentitetamozebitiuvezis0,1iliviseprimjeraka drugog tipa entiteta, tetakoderjedan primjerak drugog tipa mozebiti u vezi s0, 1 ili vise primjeraka prvog tipa. Na primjer veza UPISAOizmedu tipova entiteta STUDENTi KOLEGIJ.Veza moze imati i svoje atribute koje ne mozemo pripisati ni jednom od tipova entiteta (na primjerveza UPISAOmoze imati atribut DATUM UPISA).Ako svaki primjerak entiteta nekog tipa mora sudjelovati u zadanoj vezi, tada kazemo da tip entitetaima obavezno clanstvo u toj vezi. Inace tip entiteta ima neobavezno clanstvo. (Na primjer izmedutipovaentitetaISPITiKOLEGIJzadanajevezaIZ,kojaima funkcionalnost(N: 1). ISPITimaobaveznoclanstvouvezi IZ, jer svaki ispitmorabiti iznekogkolegija.) Odlukadali jeclanstvoobavezno ili neobavezno koji put je stvar dogovora odnosno projektantove odluke (na primjer clanstvoza KOLEGIJu vezi PREDAJE).2.1.3 PrikazER-shemepomocudijagramaObicajje da seER-shemanacrta kao dijagram ukojem pravokutnici predstavljaju tipove entiteta,arombovi veze. Vezesu povezane bridovima s odgovarajucim tipovima entiteta. Imena tipova entitetai veza, te funkcionalnost veza, uneseni su u dijagram.Posebno se prilaze lista atributa za svaki entitetodnosno vezu. U toj listi mozemo specicirati obaveznost clanstva u vezama.STUDENT

UPISAOKOLEGIJ

PREDAJE NASTAVNIK

NUDI

JEPROCELNIK

JE UZAVOD>>>>>

MNNN 1111N1Slika 2.1:ER-shema baze podataka o fakultetuKaoprimjer,pogledajmodijagram naSlici 2.1koji prikazujebazupodatakaofakultetu. Tipovientiteta su:1. ZAVOD, s atributima IMEZAVODA, ADRESA, . . .2. KOLEGIJ, s atributima BRKOLEGIJA, NASLOV, SEMESTAR, . . .3. STUDENT, s atributima BRINDEKSA, IME STUDENTA, ADRESA, SPOL, . . .2.1. MODELIRANJEENTITETAIVEZA 114. NASTAVNIK, s atributima IMENASTAVNIKA(pretpostavljamo da je jedinstveno), BRSOBE,. . .Podvuceni atributi cine primarni kljuc. Veze su:1. JE PROCELNIK, bez atributa.ZAVODima obavezno clanstvo.2. JE U, bez atributa. NASTAVNIKima obavezno clanstvo.3. NUDI , bez atributa. KOLEGIJima obavezno clanstvo.4. UPISAO, s atributom DATUM UPISA.5. PREDAJE, bez atributa. KOLEGIJima na primjer obavezno clanstvo.2.1.4 SlozenijevezeUstvarnimsituacijamapojavljujuseislozenijevezeodonihkojesmodosadapromatrali. Navestcemo neke od njih.Involuirana veza povezuje jedan tip entiteta s tim istim tipom. Dakle rijec je o binarnoj relacijiizmedu raznih primjeraka entiteta istog tipa.Funkcionalnost takve veze opet moze biti (1 : 1), (1 : N),odnosno (M: N).DIO PROIZVODA

SADRZI

NMSURADNIK

JESEFZA

.1NOSOBA

UBRAKUS

11Slika 2.2:Primjeri za involuirane vezeSlika 2.2 sadrzi primjere za involuirane veze s razlicitim funkcionalnostima.Prvi dijagram na Slici2.2 napravljen je pod pretpostavkom da su prosli brakovi osobe zaboravljeni, a poligamija zabranjena.Clanstvouuvezi U BRAKUS jeneobavezno. Drugi dijagramnaSlici 2.2imaucrtanustrelicukoja pokazuje smjer tumacenja veze JESEFZA. Mozemo uzeti da je clanstvo u toj vezi neobavezno,jerpostoji baremjedansuradnikkojinemasefa. Treci dijagramnaSlici 2.2odnosi senadijeloveproizvoda koji se proizvode u nekoj tvornici.Pritom jedan slozeniji dio sadrzi vise jednostavnijih.Istijednostavniji dio pojavljuje se u vise slozenih.Pod-tipovi. TipentitetaE1jepodtiptipaentitetaE2akojesvakiprimjerakodE1takoderiprimjerakodE2. E1nasljedujesveatributeodE2,noE1mozeimati idodatneatribute. Situacijuopisujemopomocuspecijalne(1:1)vezeJE(engleskiISAkojasemozepojaviti viseputaunutarER-sheme.Slika 2.3 sadrziprimjer ER-shemes pod-tipovima i nad-tipovima. Rijec je o tipovima entiteta zaosobe koje se pojavljuju na fakultetu. NASTAVNIKukljucuje profesore, docente i asistente.12 2. MODELIRANJEPODATAKASTUDENT

JEOSOBAPROFESOR

JENASTAVNIK

JE>>>>`

111 11 1Slika 2.3:Primjer ER-sheme s pod-tipovima entitetaPROIZVOD

IZVOZIZEMLJAKOMPANIJA

````P NMSlika 2.4:Primjer ternarnevezeTernarne veze uspostavljaju se izmedu tri tipa entiteta. Znaci rijec je o ternarnoj relaciji izmeduprimjeraka triju tipova entiteta. Postoje brojne mogucnosti za funkcionalnost ternarne veze, na primjer(N: M: P), (1 : N: M), (1 : 1 : N) ili cak (1 : 1 : 1).PrimjerternarnevezesaSlike2.4odnosi senapodatkeokompanijama,proizvodimakojeoneproizvode i zemljama u koje one izvoze svoje proizvode. Funkcionalnost ove vezeje mnogo-naprama-mnogo-naprama-mnogo, dakle (N: M: P), jer na primjer za zadani par (kompanija, proizvod) postojimnogo zemalja u koje ta kompanija izvozi taj proizvod, itd.Ternarnuvezuuvodimosamoondakadseonanemozerastavitinadvijebinarne. UzmimodauprimjerusaSlike2.4vrijedipravilo: akokompanija izvoziunekuzemlju,tadaonaodmahizvozisve svoje proizvode u tu zemlju. Uz ovo pravilo, razmatrana ternarnaveza moze se zamijeniti s dvijebinarne, u skladu s dijagramom na Slici 2.5.ER model dovoljno je jednostavan da ga ljudi razlicitih struka mogu razumjeti.Zato ER shema sluzizakomunikaciju projektantabazepodataka i korisnika, i to unajranijoj fazi razvoja baze. PostojeciDBMSnemogudirektnoimplementiratiERshemu, veczahtijevajudaseonadetaljnijerazradi,temodicira u skladu s pravilima relacijskog, mreznog, odnosno hijerarhijskog modela.2.2. RELACIJSKIMODEL 13PROIZVOD

RADIZEMLJA

PRODAJEKOMPANIJA>>>>

M MN NSlika 2.5:Rastavljanje ternarne veze na dvije binarne2.2 RelacijskimodelRelacijski modelbiojeteoretski zasnovanjoskrajem60-tihgodina20.stoljeca, uradovima E.F.Codd-a. Modelsedugopojavljivao samouakademskim raspravama iknjigama. Prverealizacijenaracunalubilesusuvisesporeineekasne. Zahvaljujuci intenzivnomistrazivanju,tenapretkusamihracunala, ekasnostrelacijskihbazapostepenosepoboljsavala. Sredinom80-tihgodina20.stoljecarelacijski model je postao prevladavajuci.I danas vecina DBMS koristi taj model.2.2.1 Relacija,atribut,n-torka,kljucRelacijskimodelzahtijevadasebazapodataka sastojiodskupapravokutnihtabela-tzv. relacija.Svakarelacijaimasvojeimepokojemjerazlikujemoodostalihuistojbazi. Jedanstupacrelacijeobicno sadrzi vrijednost jednog atributa (za entitet ili vezu) - zato stupac poistovjecujemo s atributomi obratno.Atribut ima svoje ime po kojem ga razlikujemo od ostalih u istoj relaciji.Vrijednosti jednogatributa su podaci istog tipa. Dakle, deniran je skup dozvoljenih vrijednosti za atribut, koji se zovedomenaatributa. Vrijednostatributamorabiti jednostrukai jednostavna(nedaserastaviti nadijelove). Podnekimuvjetimatoleriramosituacijudavrijednostatributanedostaje(nijeupisana).Jedanredakrelacijeobicnopredstavljajedanprimjerakentiteta, ilibiljezivezuizmedudvailiviseprimjeraka.Redak nazivamo n-torka.U jednoj relaciji ne smiju postojati dvije jednake n-torke. Brojatributa je stupanj relacije, a broj n-torki je kardinalnost relacije.Kaoprimjer, navodimouTabelarnomprikazu2.1relacijuAUTO, s atributimaREGBROJ,PROIZVODAC, MODEL, GODINA. Relacija sadrzi podatke o automobilimakoji se nalaze na popravkuu nekoj radionici.AUTOREGBROJ PROIZVODAC MODEL GODINAZID654 Ford Fiesta 1997BXI930 Volkswagen Golf 1996COI453 Nissan Primera 1997ZXI675 Ford Escort 1995RST786 Fiat Punto 1993TXI521 Ford Orion 1995HCY675 Volkswagen Jetta 1997Tabelarni prikaz 2.1:Relacija s podacima o automobilima.Relacija nepropisujenikakav redoslijedsvojihn-torkiiatributa. Dakle,permutiranjemredakaistupaca tabele dobivamo drukciji zapis iste relacije.Uvedena terminologija potjece iz matematike.Naime, neka je R relacija stupnja n i neka su domenenjenihatributaredomD1, D2, . . . , Dn. Tadase Rmozeinterpretirati kaopodskupKartezijevogproduktaD1 D2 . . . Dn. Znaci, naspojamrelacijeodgovaramatematickompojmun-narne14 2. MODELIRANJEPODATAKArelacije. Ukomercijalnim DBMS,umjestomatematickih termina(relacija,n-torka, atribut), cescesekoristeneposredni termini(tabela, redak,stupac)iliterminiiztradicionalnihprogramskihjezika(datoteka, zapis, polje).KljucKrelacijeR je podskup atributa odR koji ima sljedeca vremenski neovisna svojstva:1. Vrijednosti atributa iz Kjednoznacno odreduju n-torku uR. Dakle ne mogu u R postojati dvijen-torke s istim vrijednostima atributa izK.2. Ako izbacimo izKbilo koji atribut, tada se narusava svojstvo 1.Buduci dasusve n-torkeuRmedusobnorazlicite, Kuvijekpostoji. Naime, skupsvihatributazadovoljavasvojstvo1. Izbacivanjemsuvisnihatributadoci cemodopodskupakoji zadovoljavaisvojstvo 2.Desava sedarelacija ima visekandidata zakljuc. Tada jedanonnjih proglasavamo primarnimkljucem. Atributi koji sastavljaju primarni kljuc zovu seprimarni atributi. Vrijednost primarnogatributa ne smije ni u jednoj n-torki ostati neupisana.Gradu relacije kratko opisujemo tzv. shemom relacije, koja sesastoji od imena relacije i popisaimena atributa u zagradama.Primarni atributi su podvuceni. Na primjer, za relaciju o automobilima(Tabelarni prikaz 2.1), shema izgleda ovako:AUTO ( REGBROJ, PROIZVODAC, MODEL, GODINA ) .2.2.2 PretvaranjeER-shemeurelacijskuUnastavkuobjasnjavamokakosepojedini elementi ER-shemepretvarajuurelacije. Nataj nacinpokazat cemo kako se iz cijele ER-sheme dobiva relacijska shema.Pretvorba tipova entiteta. Svaki tip entitetaprikazuje se jednom relacijom. Atributi tipa postajuatributi relacije. Jedanprimjerakentitetaprikazanjejednomn-torkom. Primarni kljucentitetapostajeprimarni kljuc relacije. Na primertip STUDENTiz nasefakultetskebazepodataka sa Slike2.1 prikazuje se relacijom:STUDENT ( BRINDEKSA, IMESTUDENTA, ADRESA, SPOL, . . . ).Doduse, sudjelovanje entiteta u vezama moze zahtijevati da se u relaciju dodaju jos neki atributi kojinisu postojali u odgovarajucem tipu entiteta.Pretvorba binarnih veza.Ako tip entiteta E2 ima obavezno clanstvo u (N: 1) vezi s tipom E1, tadarelacija zaE2trebaukljuciti primarne atribute odE1. Na primjer ako u ER-shemi sa Slike 2.1 svakikolegij mora biti ponudenod nekogzavoda, tada sevezaNUDI svodi nato daurelaciju KOLEGIJubacimo kljuc relacije ZAVOD:KOLEGIJ ( BRKOLEGIJA, IMEZAVODA, NASLOV, SEMESTAR,. . . ) .Kljuc jedne relacije koji je prepisan u drugu relaciju zove se strani kljuc (u toj drugoj relaciji).Ako tip entiteta E2 ima neobavezno clanstvo u (N: 1) vezi s tipom E1, tada vezu mozemo prikazatina prethodni nacin, ili uvodenjem nove relacije ciji atributi su primarni atributi odE1 iE2.POSUDIVAC

POSUDBA KNJIGA1 NSlika 2.6:ER-shema za dio baze podataka o knjizniciKaoprimjer,promotrimovezunaSlici2.6kojaprikazujeposudivanjeknjigauknjiznici. Odgo-varajuce relacije za prikaz te veze i pripadnih entiteta mogle bi biti:POSUDIVAC ( BRISKAZNICE, PREZIMEIME, ADRESA,. . . ) ,KNJIGA ( REGBROJ, BRISKAZNICE, NASLOV, . . . ).Ovdje smourelacijuKNJIGAdodali BRISKAZNICEosobekojajeposudilaknjigu. Vrijednostatributa BR ISKAZNICEbit ce prazna u mnogim n-torkama relacije KNJIGA, tj. za sve knjige kojetrenutno nisu posudene. Drugo rjesenje zahtijeva tri relacije:2.2. RELACIJSKIMODEL 15POSUDIVAC ( BRISKAZNICE, PREZIMEIME, ADRESA,. . . ) ,KNJIGA ( REGBROJ, NASLOV, . . . ) ,POSUDBA( REGBROJ, BRISKAZNICE ) .Samo one knjige koje su trenutno posudenepredstavljene su n-torkom u relaciji POSUDBA. Posebnarelacija za prikaz veze je pogotovo preporucljiva ako relacija ima svoje atribute. Na primjer u relacijuPOSUDBA mogli bi uvesti atribut DATUM VRACANJA.(N: M) veza se uvijek prikazuje posebnom relacijom, koja se sastoji od primarnih atributa za obatipa entiteta zajedno s eventualnim atributima veze. Na primjer veza UPISAOiz fakultetske bazesaSlike 2.1 prikazuje se relacijom:UPISAO ( BRINDEKSA, BRKOLEGIJA, DATUM UPISA ) .Cinjenicadajejedan studentupisao jedankolegij prikazujesejednom n-torkom urelaciji UPISAO.KljuczaUPISAOjeocitoslozenodatributaBRINDEKSAiBRKOLEGIJA, jerni jedanodovihatributa sam nije dovoljan da jednoznacno odredi n-torku u toj relaciji.Pretvorba involuiranih veza. Obavlja se slicno kao za binarne veze. Posluzit cemo se primjerima saSlike 2.2. Tip entitetaOSOBA i (1 : 1) vezuU BRAKU Snajbolje je (zbog neobaveznosti)prikazatipomocu dvije relacije:OSOBA ( JMBG, PREZIMEIME, ADRESA, . . . ),BRAK( JMBG MUZA, JMBGZENE, DATUM VJENCANJA ) .Tip entiteta SURADNIKi (1 : N) vezu JESEFZA prikazujemo jednom relacijom:SURADNIK( ID BR, IDBRSEFA, PREZIMEIME, . . . ).Ovoneceuzrokovatimnogopraznihvrijednostiatributa,buduci davecinasuradnikaima sefa. Tipentiteta DIO PROIZVODA i (N: M) vezu SADRZI moramo prikazati pomocu dvije relacije:DIOPROIZVODA ( BRDIJELA, IME DIJELA, OPIS, . . . ) ,SADRZI( BR DIJELASLOZENOG, BRDIJELA JEDNOSTAVNOG, KOLICINA ) .Dodali smo i atribut KOLICINA koji kaze koliko jednostavnih dijelova ulazi u jedan slozeni.Pretvorba pod-tipova. Pod-tipse prikazuje posebnomrelacijomkojasadrzi primarne atributenadredenog tipa i atribute specicne za taj pod-tip.Na primjer hijerarhija tipova sa Slike 2.3 prikazujese sljedecim relacijama.OSOBA ( JMBG, . . . atributi zajednicki za sve tipove osoba. . . ) ,STUDENT ( JMBG, . . . atributi specicniza studente . . . ) ,NASTAVNIK ( JMBG, . . . atributi specicniza nastavnike . . . ),PROFESOR( JMBG, . . . atributi specicniza profesore . . . ) .Veza JEuspostavlja se na osnovu pojavljivanja istog JMBGu raznim relacijama.Pretvorba ternarnih veza. Ternarnavezaprikazujeseposebnomrelacijom,kojasadrzi primarneatributesvihtrijutipovaentitetazajednos eventualnimatributimaveze. Zaprimjer saSlike2.4imamo:KOMPANIJA ( IME KOMPANIJE, . . . ),PROIZVOD( IMEPROIZVODA, . . . ) ,ZEMLJA( IME ZEMLJE, . . . ) ,IZVOZI( IMEKOMPANIJE, IME PROIZVODA, IMEZEMLJE) .Cinjenica dasejedanproizvod jednekompanije izvozi ujednuzemlju prikazana je jednomn-torkomu relaciji IZVOZI . Kod ternarnih veza cija funkcionalnost nije (M: N: P) broj primarnih atributa jemanji.2.2.3 UsporedbarelacijskogmodelasmreznimihijerarhijskimMrezni i hijerarhijski model su prilicno slicni.Ustvari, hijerarhijski model mozemo smatrati specijalnomvrstommreznog. Sdrugestrane,relacijski model sepo svom pristupubitno razlikuje odostala dva.Osnovna razlika je u nacinu prikazivanja veza medu entitetima, te nacinu koristenja tih veza.16 2. MODELIRANJEPODATAKAUmreznom ili hijerarhijskom modelumogucejeizravnoprikazativezu. Doduse,postojeogra-nicenjanafunkcionalnost veze,tena konguraciju svihvezaushemi. Vezasematerijalizirapomocupointera, tj. ujednomzapisupiseadresadrugog(vezanog)zapisa. Mrezni odnosnohijerarhijski DMLomogucujesamojednostavne operacijes jednimzapisom(upis, promjena,brisanje, citanje), temanevriranjekrozshemuputemveza(dohvatprvogzapisa, koji jeuzadanoj vezi sa zadanimzapisom, dohvat iduceg zapisa, . . . ).Ovakav pristup ima svoje prednosti imane.Prednost je da je rad s bazom u tehnickom pogledu brz i ekasan.Mana je da korisnik mozeupotrijebiti samo one veze koje su predvidene shemom pa su u skladu s time i materijalizirane.Urelacijskom modeluvezesusamoimplicitno naznacenetime stoseistiilislicanatributpo-javljuje u vise relacija. Veza nije materijalizirana, vecsedinamicki uspostavlja za vrijeme radas podacima, usporedbom vrijednosti atributa u n-torkama raznih relacija.Relacijski DML, osimjednostavnihoperacijasjednomrelacijom, mora omoguciti slobodno kombiniranje podataka izraznihrelacija. I ovaj pristupima svojeprednostii mane. Manajeda sevezasvaki putmoraiznova uspostavljati; potrebnoje pretrazivanjepodataka, a to trosi vrijeme. Prednostjeda ko-risnik moze uspostaviti i one veze koje nisu bile predvidene u fazi modeliranja podataka.Stovise,kao kriterij zapovezivanje,osim jednakosti zavrijednostatributa, mogu posluziti i raznidrugi(slozeniji) kriteriji.To jos vise povecava eksibilnost koristenja baze.Izupravorecenogvidisedajeurelacijskommodelutezistebacenonadinamicki aspekt(manjepohranjivanjaavisemanipuliranja). ZatoupotrebljivostrelacijskogDBMSbitnoovisioizrazajnimmogucnostima njegovog jezikazaradspodacima. Pozeljnojetakoderdatajjezikbudeu stovecojmjeri neproceduralan i razumljiv neposrednim korisnicima.U Poglavlju 3 upoznat cemo neke relacijskejezike. Njih treba smatrati sastavnim dijelom relacijskog modela.2.3 NormalizacijarelacijskeshemeRelacijska shema, dobivena iz ER-sheme na osnovu prethodnih uputa, moze sadrzavati nedorecenostikoje treba otkloniti prije implementacije.Proces daljnjeg dotjerivanja sheme zove se normalizacija.Teorija normalizacije zasnovanajenapojmunormalnih formi. Relacije dobiveneuskladuspot-poglavljem 2.2 morale bi u najmanju ruku biti u prvoj normalnoj formi (1NF). Naime, relacija je u1NF ako je vrijednost svakog atributa jednostruka i nedjeljiva - to svojstvo vec je bilo ukljuceno u nasudenicijurelacije. Usvojimradovima(1970-1974. godina)E.F.Coddjenajprijedeniraodrugu itrecu normalnu formu (2NF, 3NF), a zatim i poboljsanu varijantu 3NF koja se zove Boyce-Codd-ovanormalnaforma(BCNF).R.Faginje1977.i1979.uveo cetvrtui petunormalnuformu(4NF,5NF).Upraksijelakonaicinarelacijekojeodstupajuod2NF,3NF,BCNF,novrlorijetkosesusrecurelacijeuBCNFkojenisuu4NFi5NF.Zatosuvisenormalneformeprvenstvenoodteorijskog znacaja.Teorija normalizacijenijenistadrugonegoformalizacija nekihintuitivnoprihvatljivih principaozdravom oblikovanju sheme. Ukoliko vec na pocetku dobro uocimo sve potrebne entitete, atribute iveze,tada nam nikakva daljnja normalizacija necebiti potrebna. No ako je polazna relacijska shemabila lose oblikovana, tada ce postupak normalizacije ispraviti te greske.2.3.1 FunkcionalnaovisnostZa zadanu relacijuR, atributBodR je funkcionalno ovisan o atributuA odR (oznaka: A B)akovrijednostodAjednoznacnoodredujevrijednostodB. DakleakouistovrijemepostojeuRdvije n-torke s jednakom vrijednoscuA, tada te n-torke moraju imati jednaku vrijednostB. Analognadenicija primjenjuje se i za slucaj kad suA iBslozeni atributi (dakle skupovi atributa).Kao primjer, promotrimo sljedecu (lose oblikovanu) relaciju:IZVJESTAJ ( BRINDEKSA, BRKOLEGIJA, NASLOV KOLEGIJA, IMENASTAVNIKA,BR SOBENASTAVNIKA, OCJENA ) .Pretpostavimo da svaki kolegij ima jednog nastavnika, a svaki nastavnik jednu sobu. Navodimo nekeod funkcionalnih ovisnosti:(BRINDEKSA, BRKOLEGIJA) OCJENA ,BRKOLEGIJA NASLOV KOLEGIJA ,2.3. NORMALIZACIJARELACIJSKESHEME 17BRKOLEGIJA IMENASTAVNIKA ,BRKOLEGIJA BRSOBENASTAVNIKA ,IMENASTAVNIKA BRSOBENASTAVNIKA .ZazadanurelacijuR,atributBodRjepotpunofunkcionalnoovisano(slozenom)atributuA odR ako vrijedi: Bje funkcionalno ovisan oA, noBnije funkcionalno ovisan ni o jednom pravompodskupu odA.Svaki atribut relacije je funkcionalno ovisan o kljucu, no ta ovisnost ne mora biti potpuna.Na prim-jer OCJENA je potpuno funkcionalno ovisna o primarnom kljucu (BRINDEKSA, BRKOLEGIJA). Sdruge strane, NASLOV KOLEGIJA, IME NASTAVNIKA i BRSOBENASTAVNIKA su parcijalnoovisni o kljucu, buduci da su ovisni samo o BR KOLEGIJA, a ne i o BRINDEKSA.ZaBRSOBENASTAVNIKA sekazedajetranzitivnoovisanoBRKOLEGIJA,buduci dajeovisan o IMENASTAVNIKA, koji je opet ovisan o BR KOLEGIJA.Parcijalne i tranzitivneovisnosti mogu uzrokovati problemekod manipuliranja spodacima, pa ihje pozeljno ukloniti.2.3.2 DruganormalnaformaRelacija je u drugoj normalnoj formi (2NF) ako je u 1NF i ako je svaki ne-primarni atribut potpunofunkcionalno ovisan o primarnom kljucu.Malo prije denirana relacija IZVJESTAJnije u 2NF, i to dovodi do anomalija:Akoubazuzelimounijetipodatkeonovom kolegiju,tonemozemoucinitisvedokbarjedanstudent ne upise taj kolegij (naime ne smijemoimati praznuvrijednost primarnogatributaBRINDEKSA). Slicno,ako zelimounijetipodatkeonovomnastavnikuinjegovojsobi, tonemozemo uciniti dok nastavnika ne zaduzimo sbar jednim kolegijem i dok barjedan studentneupise taj kolegij.Akozelimopromijenitinaslovkolegija361izLinearnaalgebrauVektorskiprostori, tadamoramo naci sve n-torke koje sadrzetu vrijednost za BRKOLEGIJA, te promijeniti vrijednostza NASLOV KOLEGIJA u svim takvim n-torkama. Bit ce onoliko promjena koliko ima studenatakoji su upisali kolegij 361.Ako zaboravimo izvrsiti neku od promjena, imat cemo kontradiktornepodatke.Pretpostavimo da svi studenti koji su upisali kolegij 361 odustanu od tog kolegija. Ako shodnotome pobrisemo odgovarajuce n-torke, iz baze ce nestati svi podaci o kolegiju 361.Ove anomalije rjesavamo svodenjem relacije u 2NF. Polaznu relaciju razbijamo u dvije, tako da izstare relacije prebacimo u novu sve one atribute koji su parcijalno ovisni o kljucu:IZVJESTAJ ( BRINDEKSA, BRKOLEGIJA, OCJENA ) ,KOLEGIJ ( BRKOLEGIJA, NASLOV KOLEGIJA, IMENASTAVNIKA,BR SOBENASTAVNIKA ) .Objerelacije susada u 2NF. No relacija KOLEGIJzahtijeva daljnju normalizaciju; naime u njoj josuvijek postoji tzv. tranzitivna ovisnost, gdje srednji atribut nije kandidat za kljuc:BRKOLEGIJA IMENASTAVNIKA BR SOBENASTAVNIKA .2.3.3 TrecanormalnaformaRelacijajeutrecoj normalnoj formi (3NF)akojeu2NFi akonesadrzi tranzitivneovisnosti.Preciznije, relacijaR je u 3NF ako za svaku funkcionalnu ovisnostX A uR, takvu daA nije uX,vrijedi: Xsadrzi kljuc zaR ili jeA primarni atribut.Prije navedena relacija KOLEGIJnije u 3NF jer imamo ovisnostIMENASTAVNIKA BRSOBENASTAVNIKA ,i pritom IMENASTAVNIKA nije kljuc, a BRSOBENASTAVNIKA nije primarni atribut.Ova tranz-itivna ovisnost moze dovesti do anomalija:18 2. MODELIRANJEPODATAKANemozemounijeti podatkeonovomnastavnikui njegovoj sobi, svedokganismozaduzili skolegijem.Da bi promijenili broj sobe nastavnika, moramo izvrsiti promjenu u svakoj n-torki koja odgovaranekom kolegiju kojeg predaje taj nastavnik.Akonastavnik (privremeno)nepredajeni jedankolegij, tadaiz bazenestajusvi podacio tomnastavniku i njegovoj sobi.Dabi relacijuKOLEGIJ prebacili u3NF, razbijamoje udvije, i timeprekidamotranzitivnuovisnost. Konacna relacijska shema koja zamjenjuje polaznu relaciju IZVJESTAJizgleda ovako:IZVJESTAJ ( BRINDEKSA, BRKOLEGIJA, OCJENA ) ,KOLEGIJ ( BRKOLEGIJA, NASLOV KOLEGIJA, IMENASTAVNIKA ) ,NASTAVNIK ( IMENASTAVNIKA, BRSOBENASTAVNIKA ) .Relacije su sada do kraja normalizirane.Primijetimo da bi konacnu shemu odmah dobili da smo u fazimodeliranjaentitetapostupiliispravno,testudente, kolegije inastavnikeodmahprikazali posebnimtipovima entiteta.2.3.4 Boyce-Codd-ovanormalnaformaDeterminanta je atribut (ili kombinacija atributa) o kojem je neki drugi atribut potpuno funkcionalnoovisan.RelacijajeuBoyce-Codd-ovojnormalnojformi(BCNF)akojesvakanjezinadeterminantaujedno i kandidat za kljuc.Ocito je relacija koja je u BCNF takoder i u 2NF i 3NF. No postoje relacije koje su u 3NF, no nisuuBCNF. Primjer za to mozemo konstruirati tako da gledamo relaciju u kojoj postoje dva kandidataza kljuc, oba kljuca su slozena, i preklapaju se u bar jednom atributu.Na primjer neka na fakultetu jedan kolegij predaje vise nastavnika, ali svaki nastavnik predaje samojedankolegij. Svakistudentupisujevisekolegija, noima samojednognastavnikazazadanikolegij.Situacija se moze opisati relacijom:UPISAO ( BRINDEKSA, IMENASTAVNIKA, BRKOLEGIJA ) .Relacija nije ni u 2NF, jer postoji parcijalna ovisnost:IMENASTAVNIKA BRKOLEGIJA.No mi mozemo drukcije izabrati primarni kljuc:UPISAO ( BRINDEKSA, BRKOLEGIJA, IMENASTAVNIKA ) .Sad je relacija u 3NF, no ne i u BCNF jer postoji ovisnost:IMENASTAVNIKA BRKOLEGIJAi pritom IMENASTAVNIKA nije kandidat za kljuc.ZbogodstupanjaodBCNFnastajuslicneanomalijekaokododstupanjaod3NF. Ne mozemoevidentirati cinjenicuda zadani nastavnik predajezadani kolegij, svedok barjedan studentneupisetaj kolegij kod tog nastavnika.Takoder, veza nastavnika i kolegija je zapisana s velikomredundancijom,onoliko puta koliko ima studenata, sto otezava azuriranje.Ako svi studenti odustanu, brise se evidencijada zadani nastavnik predaje zadani kolegij.Rjesenjeproblema je,kao i prije, razbijanjerelacije nadvije. Prekidasenepozeljnafunkcionalnaovisnost.KLASA ( BRINDEKSA, IMENASTAVNIKA ) ,PREDAJE( IMENASTAVNIKA, BRKOLEGIJA ) .Sad su obje relacije u BCNF.Problemi s relacijom UPISAOizbjegli bi se da smo vec u fazi modeliranja entiteta i veza uocili dazapravo imamo posla s dvije nezavisne binarne veze: (N: M) veza izmedu STUDENTi NASTAVNIK,te (1 : N) veza izmedu KOLEGIJi NASTAVNIK. Ternarna veza je tada suvisna.2.3. NORMALIZACIJARELACIJSKESHEME 192.3.5 ViseznacnaovisnosticetvrtanormalnaformaCetvrtunormalnuformunajlaksejeopisatipomocuprimjera. Promatrajmorelacijukojaprikazujevezu izmedu kompanija, proizvoda i zemalja:IZVOZI( KOMPANIJA, PROIZVOD, ZEMLJA ) .Jedna n-torka oznacava da zadana kompanija zadani proizvod izvozi u zadanu zemlju.Relacija moze ujednom trenutku izgledati kao na Tabelarnom prikazu 2.2.Lagano je provjeriti da je relacija u BCNF.IZVOZIKOMPANIJA PROIZVOD ZEMLJAIBM Desktop FrancuskaIBM Desktop ItalijaIBM Desktop Velika BritanijaIBM Mainframe FrancuskaIBM Mainframe ItalijaIBM Mainframe Velika BritanijaHP Desktop FrancuskaHP DesktopSpanjolskaHP Desktop IrskaHP Server FrancuskaHP ServerSpanjolskaHP Server IrskaFujitsu Mainframe ItalijaFujitsu Mainframe FrancuskaTabelarni prikaz 2.2:Relacija koja nije u cetvrtoj normalnoj formi.U nastavku uzimamo da vrijedi pravilo: cim kompanija izvozi u neku zemlju, ona odmah izvozi svesvojeproizvodeutuzemlju. Tada relacijaocitosadrziveliku dozuredundancije. Naprimjer,dabidodali novi proizvod IBM-a, moramo upisati n-torku za svaku zemlju u koju IBM izvozi. Slicno, akoHP pocne izvoziti u Kinu, morat ce se ubaciti posebna n-torka za svaki njegov proizvod.Redundancija ce se eliminirati ako zamijenimo polaznu relaciju IZVOZIs dvije manje relacije RADIi PRODAJE:RADI( KOMPANIJA, PROIZVOD ) ,PRODAJE( KOMPANIJA, ZEMLJA) .Podacima iz prethodnog Tabelarnog prikaza 2.2 tada odgovaraju podaci iz Tabelarnog prikaza 2.3.RADIKOMPANIJA PROIZVODIBM DesktopIBM MainframeHP DesktopHP ServerFujitsu MainframePRODAJEKOMPANIJA ZEMLJAIBM FrancuskaIBM ItalijaIBM Velika BritanijaHP FrancuskaHPSpanjolskaHP IrskaFujitsu ItalijaFujitsu FrancuskaTabelarni prikaz 2.3:Svodenje na cetvrtunormalnu formu.Dosadasnja pravila normalizacije nam ne pomazu da eliminiramo redundanciju u relaciji IZVOZI .Toje zatostoredundancijanijebilauzrokovanafunkcionalnimovisnostima, vec tzv. viseznacnimovisnostima:20 2. MODELIRANJEPODATAKAKOMPANIJA PROIZVOD,KOMPANIJA ZEMLJA.ZadanajerelacijaR(A, B, C). ViseznacnaovisnostA Bvrijediako: skupB-vrijednostikoje se uR pojavljuju uz zadani par (A-vrijednost,C-vrijednost) ovisi samo oA-vrijednosti, a ne i oC-vrijednosti.Ista denicija primjenjuje se i kad suA,B i C slozeni atributi (dakle skupovi atributa).Ugornjemprimjeru,skupzemaljaukojezadanakompanija izvozizadaniproizvodovisisamookompaniji a nei o proizvodu. Slicno, skupproizvoda kojezadana kompanija izvozi u zadanuzemljuovisi samo o kompaniji a ne o zemlji.Relacija R je u cetvrtoj normalnoj formi (4NF) ako vrijedi:kad god postoji viseznacna ovisnostuR, na primjerA B, tada su svi atributi odR funkcionalno ovisni oA.Ekvivalentno,R jeu 4NFako jeu BCNFi sveviseznacneovisnosti uRsu zapravofunkcionalneovisnosti.Unasoj relaciji IZVOZI , ni jednaoduocenihviseznacnihovisnosti nijefunkcionalnaovisnost.Znaci, IZVOZI nije u 4NF i zato je treba rastaviti na RADI i PRODAJE(koje jesu u 4NF).Odstupanje od 4NF opetmozemo tumaciti kao greskuu modeliranju entiteta i veza. Promatranarelacija IZVOZInastala je zbog pokusaja da se odnos triju tipova entiteta KOMPANIJA, PROIZVOD,ZEMLJA tretira kao ternarna veza. Zapravo se ovdje radi o dvije nezavisne binarne veze.Postoje, naravno,ipraveternarneveze. Naprimjerakoskupproizvodakojezadanakompanijaizvozi varira od zemlje do zemlje, tada prije uocene viseznacne ovisnosti ne vrijede, relacija IZVOZI jeu 4NF i ne mozemo je rastaviti na dvije manje relacije.2.3.6 RazlozizbogkojihsemozeodustatiodnormalizacijeZavecinuprakticnihprimjeradovoljno jerelacijenormaliziratido3NF.Kojiputjepotrebnonekurelaciju i dalje normalizirati do BCNF ili 4NF. Peta normalna forma, koja se takoder navodi u literaturi,nije od prakticnog znacaja.Postoje razlozi zbog kojih iznimno mozemo odustati od pune normalizacije.Navesti cemo dva takvarazloga.Slozeniatribut. Desava seda nekoliko atributa u relaciji cine cjelinu koja seu aplikacijama nikadne rastavlja na sastavne dijelove.Na primjer, promatrajmo relacijuKUPAC ( PREZIMEIME, POSTANSKI BROJ, GRAD, ULICA ) .Strogo govoreci, GRADje funkcionalno ovisan o POSTANSKI BROJ, pa relacija nije u 3NF. Nomi znamo da POSTANSKI BROJ, GRADi ULICA cine cjelinu koja se zove adresa. Buduci dase podaci iz adresekoriste i azuriraju u paketu, ne moze doci do prije spominjanih anomalija.Nije preporucljivo razbijati ovu relaciju na dvije.Ekasno citanje podataka. Normalizacijomsevelikerelacijerazbijajunamnogomanjih. Kodcitanja je cesto potrebno podatke iz malih relacija ponovo sastaviti u vece n-torke.Uspostavljanjevezamedu podacima u manjim relacijama trajeznatno dulje nego citanje podataka koji su vecpovezani i upisani u jednu veliku relaciju.Projektantbazepodataka trebaprocijeniti kada trebaprovesti normalizaciju dokraja a kada ne.Za tu procjenu je vazno razumijevanje znacenja podataka i nacina kako ce se oni koristiti.3JEZICIZARELACIJSKEBAZEPODATAKA3.1 RelacijskaalgebraRelacijskualgebruuveojeE.F. Coddusvojimradovimaiz70-tihgodina20. stoljeca. Rijecjeoteorijskoj (matematickoj) notaciji, a ne o prakticnom jeziku kojeg bi ljudi zaista neposrednokoristili.Zato niti ne postoji standardna sintaksa.Relacijska algebra se svodi na izvrednjavanje algebarskih izraza, gradenih od relacija te unarnih i bi-narnih operatora (ciji operandi su relacija a rezultat je opet relacija).Svaki algebarski izraz predstavljajedan upit (pretrazivanje).U ovom i iducin poglavljima, kao primjer cesluziti pojednostavnjena(engleska) verzija nasebazeo fakultetu:STUDENT ( SNO, SNAME, LEVEL ) ,COURSE ( CNO, TITLE, LNAME ) ,REPORT( SNO, CNO, MARK ) ,LECTURER ( LNAME, ROOMNO ) .Uzimamo da relacije sadrze n-torke koje se vide u Tabelarnom prikazu 3.1.STUDENTSNO SNAME LEVEL876543 Jones 2864532 Burns 1856434 Cairns 3876421 Hughes 2COURSECNO TITLE LNAME216 Database Systems Black312 Software Engineering Welsh251 Numerical Analysis Quinn121 Compilers HoltREPORTSNO CNO MARK876543 216 82864532 216 75864532 312 71856434 121 49876421 312 39876543 251 70864532 251 69864532 121 78LECTURERLNAME ROOMNOBlack 1017Welsh 1024Holt 2014Quinn 1010Tabelarni prikaz 3.1:Demo-baza o fakultetu.Relacija STUDENTpopisuje studente, COURSEnabraja kolegije, a LECTURERsadrzi podatkeo nastavnicima. Student je jednoznacno odreden svojim brojem iz indeksa SNO, kolegij je jednoznacno2122 3. JEZICIZARELACIJSKEBAZEPODATAKAodreden svojomsifrom CNO, a nastavnici se razlikuju po svojim imenima LNAME. Za svakog studentapamtimo njegovo imeSNAMEigodinu studijaLEVEL.Zakolegij sepamti njegovnaslov TITLEiime(jednog)nastavnika koji gapredajeLNAME.Zasvakog nastavnika poznatnamjebrojnjegovesobeROOMNO. Relacija REPORTbiljezi koji je student upisao koji kolegij i koju ocjenu MARKjedobio.3.1.1 SkupovnioperatoriRelacije su ustvari skupovi n-torki.Zato na njih mozemo primjenjivati uobicajene skupovne operatore.NekaR iSoznacavaju relacije. Tada je:R union S. . . skup n-torki koje su uR ili uS(ili u obje relacije).R intersect S. . . skup n-torki koje su uR i takoder uS.R minus S. . . skup n-torki koje su uR no nisu uS.Dabi seoperatorimogli primijeniti, relacijeR iSmoraju biti kompatibilne, tojestmoraju imatiisti stupanj i iste atribute (ista imena i tipove). Primijetimo da uvijek vrijedi:R intersect S=R minus (R minus S) .Znaci, intersect nije nuzan.Za primjer, promatramo relaciju NEWSTUDENT, gradenu kao STUDENT, u kojoj se nalaze n-torkepopisane uTabelarnom prikazu 3.2. Tada primjenom skupovnihoperatoradobivamo rezultateiz Tabelarnog prikaza 3.3.NEW STUDENTSNO SNAME LEVEL876342 Smith 3865698 Turner 2875923 Murphy 2856434 Cairns 3871290 Noble 1Tabelarni prikaz 3.2:Relacija kompatibilna sa STUDENT.STUDENT union NEW STUDENTSNO SNAME LEVEL876543 Jones 2864532 Burns 1856434 Cairns 3876421 Hughes 2876342 Smith 3865698 Turner 2875923 Murphy 2871290 Noble 1STUDENT intersect NEWSTUDENTSNO SNAME LEVEL856434 Cairns 3STUDENT minus NEW STUDENTSNO SNAME LEVEL876543 Jones 2864532 Burns 1876421 Hughes 2Tabelarni prikaz 3.3:Rezultati skupovnih operacija.3.1. RELACIJSKAALGEBRA 233.1.2 SelekcijaSelekcijajeunarnioperatorkojiizvlaciizrelacijeonen-torkekojezadovoljavaju zadaniBooleovskiuvjet. Selekciju na relacijiR uskladu sBooleovskim uvjetom Boznacavamo sR where B. Uvjet Bje formula koja se sastoji od:operanada koji su ili konstante ili atributi,operatora za usporedivanje =,, , , =,logickih operatora and, or, not.Navest cemo nekoliko primjera od kojih svaki sadrzi jedan upit sa selekcijom i odgovarajuci izraz urelacijskoj algebri.Izracunate vrijednosti izraza (odgovori na upite) vide se u Tabelarnom prikazu 3.4.Upit 1: Pronadi sve studente na stupnju (godini) 1.RESULT1:= STUDENTwhere LEVEL = 1 .Upit 2: Pronadi sve kolegije s naslovom Database Systems.RESULT2:= COURSEwhere TITLE= Database Systems .Upit 3: Pronadi sve studente koji su iz kolegija 216 dobili ocjenu vecu od 70.RESULT3:= REPORTwhere ((CNO=216) and (MARK>70)) .RESULT1SNO SNAME LEVEL864532 Burns 1RESULT2CNO TITLE LNAME216 Database Systems BlackRESULT3SNO CNO MARK876543 216 82864532 216 75Tabelarni prikaz 3.4:Rezultati selekcije.3.1.3 ProjekcijaProjekcija je unarni operator koji iz relacije izvlaci zadane atribute, s time da se u rezultirajucoj relacijieliminiraju n-torke duplikati.Projekciju relacijeR na njene atributeA1,A2, . . . ,Amoznacavat cemosR[A1, A2, . . . , Am].Smatrat cemo da projekcija ima visi prioritet od ostalih operacija.Navest cemo dva primjera koji se sastoje od upita s projekcijom i odgovarajuceg izraza u relacijskojalgebri. Izracunate vrijednosti izraza (odgovori na upite) vide se u Tabelarnom prikazu 3.5.Upit 1: Pronadi brojeve soba od svih nastavnika.RESULT1:= LECTURER[ROOMNO] .Upit 2: Pronadi ime nastavnika koji predaje kolegij 312.RESULT2:= ( COURSEwhere CNO= 312 )[LNAME] .24 3. JEZICIZARELACIJSKEBAZEPODATAKARESULT1ROOMNO1017102420141010RESULT2LNAMEWelshTabelarni prikaz 3.5:Rezultati projekcije.3.1.4 KartezijevproduktNeka su R i S relacije stupnja n1 odnosno n2.Tada algebarski izraz R times S daje Kartezijev produktodR iS, dakle skupsvih (n1 + n2)-torki cijih prvihn1komponenti cinen1-torku uR, a zadnjihn2komponenti cinen2-torku uS.Atribut u R times S ima isto ime kao odgovarajuci atribut u R odnosno S, s time da se po potrebito ime prosiruje imenom polazne relacije (slicno kao za komponentu zapisa u C-u).Kao primjer koristenja Kartezijevog produkta, ispisat cemo za svakog studenta sve kolegije koje onnije upisao:ALLCOMB:= STUDENT[SNO] times COURSE[CNO] ,DONOT TAKE:= ALLCOMBminus REPORT[SNO, CNO] .Drugi primjer pronalazi sve parove studenata koji su na istom stupnju (godini).Za to nam je potrebnonapraviti KartezijevproduktrelacijeSTUDENTsasamomsobom. Danebi doslodopometnjesimenimaatributa. specijalnimoperatoromaliasesuvodimopseudonim(drugoime, nadimak)zarelaciju STUDENT:TEMPaliases STUDENT,PAIRS:= ( (TEMPtimes STUDENT)where ( (TEMP.LEVEL = STUDENT.LEVEL)and (TEMP.SNO< STUDENT.SNO)) )[TEMP.SNAME, STUDENT.SNAME] .Rezultati za oba upita vide se u Tabelarnom prikazu 3.6.DONOT TAKESNO CNO876543 312876543 121856434 216856434 312856434 251876421 216876421 251876421 121PAIRSTEMP.SNAME STUDENT.SNAMEHughes JonesTabelarni prikaz 3.6:Rezultati primjene Kartezijevog produkta.3.1.5 PrirodnispojPrirodni spoj (natural join) je binarni operator primjenjiv na dvije relacije R i Skoje imaju bar jedanzajednicki atribut. R join S sastoji se od svih n-torki dobivenih spajanjem jedne n-torke iz R s jednomn-torkom iz S koja ima iste vrijednosti zajednickih atributa.U rezultirajucoj relaciji zajednicki atributse pojavljuje samo jednom.Primjer za prirodni spoj vidi se u Tabelarnom prikazu 3.7.Pretpostavlja se da su zajednicki atributidviju relacija tocno oni koji imaju ista imena.Prirodni spoj omogucuje nam da u nasoj fakultetskoj bazi podataka odgovorimo na slozenije upitekoji zahtijevaju uspostavljanje veza izmedu podataka u raznim tablicama.3.1. RELACIJSKAALGEBRA 25RA B Ca1b1c1a2b1c1a3b2c2a4b2c3SB C Db1c1d1b1c1d2b2c3d3Rjoin SA B C Da1b1c1d1a1b1c1d2a2b1c1d1a2b1c1d2a4b2c3d3Tabelarni prikaz 3.7:Primjer prirodnog spoja.Upit 1: Pronadi imena svih studenata koji su upisali kolegij 251.RESULT1:= ( (REPORTwhere CNO= 251) join STUDENT) [SNAME] .Upit 2: Pronadi broj sobe nastavnika koji predaje kolegij 351.RESULT2:= ( (COURSEwhere CNO= 351) join LECTURER ) [ROOMNO] .Upit 3: Pronadi imena nastavnika koji predajukolegije koje je upisao bar jedan studentna stupnju(godini) 2.RESULT3:= ( ( (STUDENTwhere LEVEL=2) join REPORT) join COURSE) [LNAME] .U Tabelarnom prikazu 3.8 nalazi se detaljnije izvrednjavanje Upita 3.STUDENTwhere LEVEL = 2SNO SNAME LEVEL876543 Jones 2876421 Hughes 2(STUDENTwhere LEVEL=2) join REPORTSNO SNAME LEVEL CNO MARK876543 Jones 2 216 82876543 Jones 2 251 70876421 Hughes 2 312 39( (STUDENTwhere LEVEL=2) join REPORT) join COURSESNO SNAME LEVEL CNO MARK TITLE LNAME876543 Jones 2 216 82 Database Systems Black876543 Jones 2 251 70 Numerical Analysis Quinn876421 Hughes 2 312 39 Software Engineering WelshRESULT3LNAMEBlackQuinnWelshTabelarni prikaz 3.8:Izvrednjavanje Upita 3 s prirodnim spojem.Prirodni spoj uvijek semoze izraziti preko ostalih operatora. Na primjer, za relacijeR(A, B, C) iS(C, D) vrijedi:R joinS= ( (R times S) whereR.C=S.C) [A,B,C,D].26 3. JEZICIZARELACIJSKEBAZEPODATAKA3.1.6 Theta-spojTheta-spoj relacijaR iS, pisanoR join(A B) S, je skup onih n-torki Kartezijevog produktaR saSza koje je predikatR.AS.Bistina. Simbol predstavlja jedan od operatora za usporedbu(=, >,