baze podataka biljeske 01

Upload: miljenko-mimi-kinderic

Post on 18-Jul-2015

88 views

Category:

Documents


0 download

TRANSCRIPT

Baze podataka i SQL biljeke s predavanja

1. UVOD U BAZE PODATAKA to su to baze podataka ? Neke definicije.Odgovor bi mogao glasiti: Baze podataka su organizirani skupovi podataka! Pojam organizirani znai da je skup podataka pripremljen tako da se moe jednostavno pregledavati, pretraivati, sortirati, usporeivati, mijenjati tj. aurirati. Jedna od definicija govori da su baze podataka kolekcija meusobno povezanih podataka, pri emu vrijedi slijedee: podaci se dijele izmeu razliitih aplikacija i korisnika postoji jedinstveni i kontrolirani pristup unosu, dohvaanju i auriranju podataka Krajnji korisnici i aplikacije koje pristupaju bazi podataka ne moraju poznavati detalje o fizikoj pohrani podataka i unutranjoj strukturi baze opdataka {John G. Huges: Database Technology, A software engineering approach } Baza podataka je skup podataka koji su pohranjeni i organizirani tako da mogu zadovoljiti zahtjeve korisnika { M. Vetter, 1981} Baza podataka je organizirana zbirka zapisa pohranjenih u raunalu na sustavni nain, takav da joj se raunalni program moe obratiti prilikom odgovaranja na problem. Europska direktiva za baze podataka (koja za baze podataka donosi prava za intelektualno vlasnitvo) ukljuuje i ne elektronske baze podataka u svoju definiciju. {http://hr.wikipedia.org/wiki/Baza_podataka} Uloga baze podataka Budui da poslovno okruenje trai brze i uinkovite reakcije u svakom trenutku , baze podataka i poslovna inteligencija ine danas temelje na kojima poslovni ljudi grade svoje strateke i taktike poslovne odluke. Koje su loe strane segmentiranog razvoja baza podataka? Redundancije podataka - podaci se (nepotrebno) dre na vie mjesta (datoteka), te kada ih je potrebno aurirati onda se to mora initi na vie mjesta.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Razmjena podataka je oteana - razlog nije samo dislociranost raunala, nego i format zapisa, drugaija struktura podataka . . . Nepotrebni razvoj algoritama - za svaku skupinu podataka razvijaju se posebno programi, i posebno se razvijaju algoritmi, iako svi oni rade na istim ili slinim principima. Programi su prilagoeni podacima koje sadre - to oteava prilagoavanje baze podataka novim stvarima, te zahtijeva ponovno reprogramiranje svih programa, ako se struktura baze podataka promijeni. U aplikacijama nisu razdvojene funkcije - fizike manipulacije s podacima (itanje i pisanje s diska) od funkcionalnog dijela aplikacije za koju je u stvari aplikacija i napisana. A to oteava promjene bilo na razvoju strukture baze, ali i na razvoju aplikacije. Sigurnost podataka - nije dobra , jer istovremeni rad i pristup do podataka od strane vie korisnika prelazi granice koje moe nadzirati jedan programer. Rast baze podataka - i njena kompleksnost postaje suvie sloena, kako za raunalne resurse, tako i za programere.

Svaki prikljuak na bazu podataka je obavljen za raun jednog korisnika. Pojmovi koji se ravnopravno koriste i koji ukazuju na korisnika baze podataka su : vlasnik tablice i korisnik. Vlasnik tablice (relacije) je istovremeno korisnik baze podataka koji, istina, posjeduje tablicu ali ostaje iznad svega korisnik.Korisnik baze podataka moe ne posjedovati podatke u bazi podataka i istovremeno imati pravo izvravanja upita i eventualno auriranja podataka drugih korisnika. Za

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

svaki podatak u bazi podataka, mora postojati korisnik koji ga posjeduje. Baza podataka je organizirana zbirka zapisa pohranjenih u raunalu na sustavni nain, takav da joj se raunalni program moe obratiti prilikom odgovaranja na problem. Sustav za upravljanje bazom podataka ( Database Menagment system - DBMS ) je software uveden kao suelje izmeu korisnika (korisnikih programa, aplikacija) i zapisa baze podataka na disku. Korisniki programi ne pristupaju podacima direktno, ve komuniciraju s ovim software-om (programom). Obino kada se govori SW za bazu podataka, onda se misli upravo na DBMS. (Oracle, DB2, MySQL, PostgreSQL, Ingres, MS-Sql, . . . )

Modeli podatakaPodaci su logiki organizirani po nekom modelu (eng. data model). Model ini osnovu sustava za osmiljavanje, definiranje i implementiranje baze podataka i veza meu podacima. Model podataka je formalni sustav koji mora imati barem slijedee 3 komponente: 1 Skup objekata koji su osnovni elementi baze podataka 2 Skup operacija kojima se mogu pretraivati, dobivati i mijenjati podaci 3 Skup opih pravila integriteta podataka

Dananji DBMS podravaju slijedee osnovne modele: Hijerarhijski model - ine hijerarhijski organizirani podaci u strukturu slinu drvu, a koriteni na prvim mainframe raunalima . Ta struktura dozvoljava ponavljanje informacija koritenjem relacije roditelj/dijete. Svaki roditelj moe imati vie djece, ali svako dijete ima samo jednog roditelja. Danas se rijetko koristi u modernim bazama podataka. Najea primjena je u LDAP (Lightweight Directory Access Protocol) modelu ili u datotenim sustavima UNIX-a. Takoer se koristi za Windows registry i za XML (Extensible Markup Language) dokumente. Ako se napusti veza 1 prema vie dobije se Mreni model. Mreni model - moe se predoiti usmjerenim grafom u kojem su vorovi podaci a lukovi meu vorovima definiraju veze meu

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

podacima. To je fleksibilniji nain prikaza objekata i veza meu njima. Autor modela je Charles William Bachman, roen 1924. godine u Kanzasu (USA). (Bachman je 1960. godine kreirao IDS (Integrated Data Store), kao jedan od prvih DBMS sustava u svijetu, koji se koristio u General Electricu. On je dobitnik prestine Turingove nagrade 1973. godine za svoj doprinos razvoju baza podataka.) Model je definiran i prezentiran kao standard 1969. godine od CODASYL (Conference on Data Systems Languages) konzorcija. Mreni model podataka: opi sluaj hijerarhijskog modela odnosi definirani eksplicitno aplikacija mora poznavati interni model baze podataka Relacijski model - je zasnovan na matematikom pojmu relacije. Podaci i veze meu podacima se prikazuju preko dvodimenzionalnih tablica. Veina suvremenih baza podataka slui se ovim modelom. Model je publiciran 1969. godine kroz radove britanskog matematiara Edgara Franka Codda (Codd je roen 1923. godine u Engleskoj. Diplomirao je matematiku i kemiju na Oxfordu. Za vrijeme II svjetskog rata bio vojni pilot. 1948. godine odlazi u New York i zapoljava se u IBM-u. U Kanadi boravio od 1953-1963. Doktorirao iz kompjuterskih znanosti 1963. u Michigenu, 1970. godine objavljuje rad "A Relational Model of Data for Large Shared Data Banks", na osnovu jednog svog internog rada objavljenog u IBM-u 1969. godine. Turingovu nagradu dobio 1981. Objavio knjigu: Codd, E.F. (1990). The Relational Model for Database Management, Version 2, Addison Wesley Publishing Company, a umro je na Floridi 2003. godine.). Prvi radovi koji su postavili matematike temelje za relacijski model su postavljeni 1874. godine od njemakog matematiara Georga Cantora (1845-1918) i 1968. godine od amerikog matematiara D.L.Childsa.

Relacijski model podataka: svi su podaci spremljeni u tablinom obliku svakom tipu podataka odgovara jedna tablica zapisima odgovaraju reci u tablici poljima odgovaraju stupci u tablici Temelj relacijskih baza podataka je povezivanje entiteta razliitog tipa. Redoslijed zapisa i redoslijed polja u tablici nisu vani. Relacija se uspostavlja preko primarnih kljueva. Ako je primarni klju atribut druge tablice, onda je to strani klju u osnovnoj tablici.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Objektni model 1985. godine. Primjena u telekomunikacijama, prostornim bazama, molekularnoj biologiji Koriste i OQL, objektni upitni jezik. Upiti su bri nego u relacijskom modelu jer se ne koristi JOIN, samo se slijede rute pokazivaa. Mane su ne postojanje standarda za backup i recovery, nema interoperabilnosti, podaci su vidljivi samo preko poznatih suelja (zbog enkapsulacije), rute pokazivaa postoje samo za poznate upite (zahtjeve) OBJEKT RAZRED (CLASS) hijerarhijska organizacija PROTOKOL - definiran skupom poruka PORUKA - nain komuniciranja medu objektima METODA

Ciljevi baze podataka Fizika nezavisnost podataka - razdvaja se logika definicija baze podataka od njene stvarne fizike grae. Promjena naina zapisivanja podataka na disku nee utjecati na aplikacije. Logika nezavisnost podataka - razdvaja se logika definicija cijele baze podataka od lokalnih logikih definicija za jednu aplikaciju. Uvoenje novih veza i vrsta podataka ne utjee na postojee aplikacije. uvanje integriteta - automatsko uvanje konzistencije i integriteta podataka. Posebno vano za viekorisnike baze podataka. Fleksibilnost pristupa - Doputa se korisniku slobodno prebiranje po podacima, dok je to u starijim DB do bilo ogranieno, te se je do podataka dolazilo strogo utvrenim redoslijedom. Efikasan rad - Operacije se moraju obavljati brzo, posebno za velike DB. Sigurnost - mora postojati zatita od unitenja baze, npr. zbog hardverskog kvara, ali i neovlatenog mijenjanja podataka. Podeavanje baze i kontrola - baze podataka trae stalnu brigu: rutinsko odravanje, praenje performansi i njihovo poboljanje radi efikasnosti, razvoj aplikacija, nadopunjavanje. Ovi se poslovi obavljaju centralizirano od osobe, administratora baze podataka.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Arhitektura baze podataka Lokalna logika razina - ine je aplikacijski programi. Aplikacijski programi se slue samo dijelom podataka koje postoje u BP. Taj dio koji oni vide ili se slue, zove se pogled (view). Globalna logika razina - Odnosi se na logiku predodbu o cijeloj bazi. To je ono to vidi administrator, ili projektant baze. Zapis logike definicije zove se shema (schema). To je tekst ili dijagram kojim se imenuju i definiraju svi podaci, veze meu podacima, te pravila kojima se uva integritet baze podataka. Fizika razina - To je fiziki prikaz i raspored podataka na diskovima, tj. vanjskoj memoriji gdje se podaci uvaju. S ovom razinom su upoznati samo programeri koji su napisali DBMS. Ova razina ima svoje podrazine: prostor na disku (cilindri i blokovi) te datoteke s zapisima. Raspored pohranjivanja opisuje kako se logike definicije preslikavaju na fizike ureaje.

Imamo 3 razine apstrakcije: fizika razina konceptualna (logika) razina korisnika razina Troslojna arhitektura dananjih baza podataka: sloj baze podataka (DB posluitelj) aplikativni sloj (Web posluitelj) korisniki sloj (Aplikativni programi na strani korisnika)

ivotni vijek BPSvaka baza podatak ima svoj ivotni vijek, poetak kada je projektirana, pa do njene implementacije i odravanja. Najee se to dijeli na slijedeih 5 faza: Analiza potreba Modeliranje podataka Implementacija Testiranje Odravanje

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Analiza potreba Potrebno je ustanoviti nain poslovanja , koji se podaci koriste, na koje naine, i gdje. Treba pronai veze meu podacima. Sve informacije o podacima treba objediniti i uskladiti, stvoriti konzistentnu sliku o njima. Ustanoviti kako e se ti podaci koristiti, koliko esto, i koje su vrste operacija potrebne nad podacima.

Modeliranje podataka Definiranje baze podataka: definiranje vrste podataka i veza meu njima (na osnovu informacija dobivenih analizom potreba). Takoer je potrebo provesti odreeno regrupiranje, kako e se podaci organizirati (normalizacija podataka) radi budueg efikasnijeg rada baze podataka. Na kraju se definiraju pogledi (view) za pojedine aplikacije.

Implementacija Prethodni koraci su bili vrsta planiranja - sve na raunalu (ili papiru), ovo je sada realizacija zamiljenog. Za tu svrhu nam slui DBMS. Implementacija sheme. Razvoj potrebnih aplikacija za rad. Inicijalno punjenje baze podataka s podacima potrebnim za poetak rada.

Testiranje Provjera onoga to je uraeno. Otkrivaju se greke u programiranju. Otkrivaju se logike pogreke.

Odravanje Baza je u upotrebi, ali se ispravljaju manje pogreke. Prilagoavanje novim zahtjevima korisnika uz ouvanje integriteta baze podataka.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Jezici za rad s bazom podatakaKomunikacija korisnika (aplikacija) s DBMS odvija se pomou posebnih jezika, koji se tradicionalno dijele na nekoliko kategorija. Jezik za opis podataka (Data Description Language - DDL) (opis objekata u bazi podataka, definiraju se podaci i veze meu njima) Jezik za manipuliranje podacima (Data Manipulation Language-DML) (uspostava veza izmeu aplikativnih programa i baze) Jezik za postavljanje upita (Query Language - QL) Za rad s relacijskim bazama podataka , koriste se neproceduralni upitni jezici. Jezik, koji je danas najvie u primjeni je SQL (Structured Query Language). Razvoj SQL-a poinje 1974. godine kada se pojavljuje lanak autora D.D.Chamberlaina i R.F.Boycea u kojem oni opisuju strukturni upitni jezik za pretraivanje podataka nazvan SEQUEL. Godine 1975. Boyce, Chamberlain i M.Hammer predstavljaju koncept jezika SQUARE koji je koristio matematike izraze, za razliku od engleskih termina koje je koristio SEQUEL. Uskoro SQUARE mijenja ime u SEQUEL2 i taj jezik je koriten u razvoju prvog prototipa RDBMS, nazvanog System R razvijenog u laboratorijima IBM-a. Kasnije jezik mijenja ime u SQL. Podjela SQL-a: Definicija podataka (Data Definition Language - DDL) (CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME) Manipuliranje podacima (Data Manipulation Language - DML) (SELECT, INSERT, UPDATE, DELETE) Kontrola podataka (Data Control Language - DCL) (GRANT, REVOKE) Kontrola transakcija (Transaction Control Language - TCL) (COMMIT, SAVEPOINT, ROLLBACK, SET TRANSACTION)

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

2. MODELIRANJE ENTITETA I VEZAPrije konane izrade sheme (detaljnog plana o bazi podataka) sluimo se pomonom fazom koja se zove modeliranje entiteta i veza (EntityRelationship Modelling). Cilj je izgraditi manje preciznu konceptualnu shemu (ER-shemu) koja je apstrakcija realnog svijeta. Izrada ER modela podataka je jedan od prvih i (najvanijih) koraka u oblikovanju novog informacijskog sustava. Krajnji produkt procesa modeliranja je ER dijagram, konceptualni ili semantiki model podataka. Autor ER dijagrama je dr. sc. Pin-Shan (Peter) Chen, 1976. godine; diplomirao elektrotehniku na Taiwanu 1968. godine, doktorirao raunarstvo i matematiku 1973. na Harvardu) ER modeli su danas temelj CASE alata i metodologija za sistemsku analizu i dizajn. Prvi korak je identifikacija: Entiteta - objekti, dogaaji koji nas zanimaju. Atributa - svojstva entiteta koja nas zanimaju. Veza - odnosi meu entitetima.

Entiteti i atributi Entitet je neto o emu elimo spremati podatke.

Entitet moe biti: ivo bie - student, ptice, . . . objekat (vrsti entitet sustava) kua, auto, . . . dogaaj - nogometna utakmica, praznik, . . . Svaki entitet ima atribute (obiljeja ili svojstva) koje takoer elimo spremati. Ako je atribut dovoljno sloen tako da ima svoje dodatne atribute, moe ga se promovirati u entitet.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Tip entiteta Ime entiteta, zajedno s pripadnim atributima odreuje tip entiteta. Za svaki entitet postoji mnogo pojedinanih primjeraka (osoba, pojava, dogaaja) ije podatke elimo spremiti u bazu podataka. Za ime (naziv) entiteta se koristi imenica u jednini. Klju Atribut, ili skup atributa, ija vrijednost jednoznano odreuje primjerak entiteta je kandidat za klju. Dva razliita lana ili primjerka entiteta ne mogu imati isti klju. Klju je jedinstven za svakog lana entiteta. Tip entiteta moe imati vie moguih izbora za klju. Izmeu vie kandidata za klju, moemo se opredijeliti, te jednog proglasiti primarnim kljuem. Veze Veza je meusobni odnos entiteta. Objekti tvore veze.

Skup istovrsnih veza predstavljamo tipom veze. Matematiki reeno radi se o binarnoj ili n-arnoj relaciji izmeu primjeraka entiteta zadanih tipova. Funkcionalnost veze izmeu lanova entiteta moe biti: 1 prema 1 (ili 1:1), 1 prema vie (ili 1:N) vie prema vie (ili N:M)

Svi primjerci nekog entiteta ne moraju sudjelovati u nekoj vrsti veze. Postoje veze koje su obavezne. Tada kaemo da neki tip entiteta ima obavezno lanstvo u nekoj vrsti veze s drugim entitetom. Inae se kae da je lanstvo neobavezno. Veze mogu imati atribute, a koje nije mogue pripisati niti jednom od entiteta.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Prikaz ER-sheme pomou dijagrama tipovi entiteta prikazani su kao pravokutnici veze kao romboidi a krakovi veza imaju oznaku "1" ili "N" zavisno od vrsti veze prema nekom entitetu

Sloene veze Involuirana veza (unarna, involucijska) povezuje jedan tip entiteta s tim istim tipom. Ovakva veza takoer moe biti 1:1, 1:N ili N:M. Podtipovi (sloeni tipovi) Entitet E1 je podtip nekog drugog entiteta, npr. E2, ako je svaki primjerak entiteta E1 takoer primjerak entiteta E2. Entitet E1 nasljeuje sve atribute od E2, ali E1 moe imati dodatne atribute koje E2 nema. Veza meu entitetima se oznaava s je (engleski is a). To je 1:1 veza, ali se moe pojaviti vie puta.

Ternarne veze (sloeni tipovi) Ternarne veze se uspostavljaju izmeu tri tipa entiteta. Ternarne veze mogu biti vrste N:M:P, 1:N:M, 1:1:M ili 1:1:1. Ternarna se veza uvodi onda kada je nije mogue rastaviti na dvije binarne veze. ER-model je dovoljno jednostavan da ga ljudi razliitih struka mogu razumjeti, pa zato slui za komunikaciju projektanta baze podataka i buduih korisnika i to u najranijoj fazi razvoja baze. Sadanje DBMS ne mogu direktno implementirati ER-shemu, pa je ovu shemu potrebno detaljnije razraditi, te modificirati u skladu s pravilima postojeih relacijskih, mrenih ili hijerarhijskih modela.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

3. RELACIJSKI MODELRelacijski model podataka je teorijski zasnovao E.F. Codd 1969. godine, a baziran je na predikatnoj logici i teoriji skupova. Uz E.F. Codda, veliki doprinos relacijskom modelu podataka, dali su i Chris Date, roen 1941., britanski matematiar i programer u IBM-u, te Hugh Darwen, takoer britanski IBM programer. Darwen i Date su 1995. pokazali kako se relacijski model moe pretvoriti u objektno-orijentirani model podataka (The Third Manifesto). Prve realizacije na raunalu bile su suvie spore i neefikasne, ali razvojem raunala efikasnost relacijskih baza se znaajno poboljava, te u dananje vrijeme veina DBMS ova koristi relacijski model podataka. U relacijskom modelu baza podataka se sastoji od skupa pravokutnih tablica ili relacija. Svaka relacija ima ime po kojem se razlikuje od ostalih relacija u bazi podataka. Svakom stupcu u tablici, dodjeljuje se atribut koji opisuje podatke, koji se smjetaju u tom stupcu. Svaki redak u tablici predstavlja jedan zapis u bazi podataka. Atributi Svaki stupac relacije sadri vrijednost jednog atributa entiteta ili veze koji/koja se prikazuju relacijom (tablicom). Atribut ima svoje ime kojim se razlikuje od ostalih atributa. Vrijednost jednog atributa su podaci iste vrste ili tipa. Skup vrijednosti jednog atributa zovemo domenom atributa. Vrijednost atributa treba biti jednostruka i jednostavna ne smije se moi rastaviti na dijelove. Tolerira se ponekad da vrijednost atributa nije definirana ili upisana. Broj atributa je stupanj relacije.

n-torke

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Jedan redak relacije predstavlja primjerak entiteta ili biljei vezu izmeu dva ili vie primjeraka entiteta. Primjerak zovemo n-torka U jednoj relaciji ne mogu biti dvije jednake n-torke. Broj n-torki je kardinalnost relacije. Relacija ne propisuje redoslijed svojih n-torki ili atributa. Permutacijom stupaca ili redaka dobiva se drugi zapis, ali ista relacija.

Uvedena terminologija potjee iz matematike. Neka je R relacija stupnja n, a neka su domene njenih atributa D1, D2, D3 . . .Dn. Tada je relacija R podskup Kartezijevog produkta domena D1, D2, D3. . ., Dn. Relacija u bazi podataka odgovara n-narnoj relaciji u matematici. Klju relacije Klju K relacije R je podskup atributa od R, koji ima slijedea svojstva: 1. Vrijednosti atributa iz K jednoznano odreuju n-torku u R. 2. Ako izbacimo iz K bilo koji atribut, tada se naruava 1. svojstvo Budui da su sve n-torke u R meusobno razliite, K uvijek postoji, jer skup svih atributa zadovoljava 1. svojstvo. Izbacivanjem suvinih atributa dolazi se do podskupa koji zadovoljava svojstvo 2. Mogue je da postoji vie skupova atributa koji zadovoljavaju navedena svojstva (kandidati za klju), pa se tada jedan od njih proglaava primarnim kljuem. Skup atributa koji ine primarni klju zovu se primarni atributi. Vrijednost primarnog atributa ne bi ni u jednoj n-torki smjela biti neupisana (nedefinirana)!! NOT NULL

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Shema relacije Grau relacije kratko opisujemo shemom relacije, koja se sastoji od imena relacije i popisa imena atributa u zagradama. Pretvaranje ER sheme u relacijsku Entitet Svaki tip entiteta prikazuje se jednom relacijom. Atributi entiteta postaju atributi relacije. Pojedini primjerci entiteta prikazuju se n-torkama relacije. Primarni klju entiteta postaje primarni klju relacije. Postojanje veza s drugim entitetima moe zahtijevati dodavanje jo nekih atributa.

Binarne veze Pravilo 1. Ako tip entiteta E2 ima obavezno lanstvo u N:1vezi s entitetom E1, tada relacija za E2 treba ukljuiti primarne atribute (primarni klju) od E1. Klju jedne relacije koji je prepisan u drugu relaciju zove se strani klju (FK). Pravilo 2. Ako tip entiteta E2 ima neobavezno lanstvo u N:1 vezi s entitetom E1, tada vezu moemo prikazati i) ii) na prethodni nain uvoenjem kljua, ili uvoenjem nove relacije iji su atributi primarni atributi (primarni kljuevi) od entiteta E1 i E2.

Pravilo 3. Ako je tipa N:M uvijek se prikazuju posebnom relacijom koja ukljuuje primarne atribute oba entiteta te jo moda dodatne koje sama veza ima. Pravilo 4. Involuiranu vezu tipa 1:1 prikazujemo posebnom relacijom. Pravilo 5. Involuiranu vezu tipa N:M prikazujemo posebnom relacijom. Pravilo 6. Involuiranu vezu tipa 1:N moemo prikazati dodatnim atributom.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Pravilo 7. Podtip se prikazuje posebnom relacijom koja sadri primarne atribute nadreenog tipa, te atribute specifine za taj podtip. Pravilo 8. Ternarna veza se prikazuje posebnom relacijom koja sadri primarne atribute svih triju entiteta, te mogue dodatne atribute specifine za vezu.

Prikaz pravila pretvaranja ER sheme u relacijsku shemu

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

4. NORMALIZACIJA RELACIJSKOG MODELA I NORMALNE FORMERelacijska sheme dobivena iz ER-sheme moe sadravati nedoreenosti koje treba ukloniti prije implementacija. Uklanjanje potrebe za viestrukim zapisivanjem istih podataka u bazi, zove se normalizacija podataka. Normalizacija baze podataka je postupak kojim se iz danog modela bez podataka nastoji otkloniti potreba za viestrukim ponavljanjem istih podataka. Naime, osim to (nekorisno) troi prostor, viestruko zapisivanje istog podatka oteava (i/ili onemoguava) mijenjanje sadraja baze podataka. S toga, naelni cilj normalizacije moemo izraziti rijeime: Baza podataka treba biti oblikovana tako da se svaki podatak upisuje samo jednom (ili: samo na jednom mjestu). (Wikipedija)

Cilj nam je postii da se svaki podatak zapie samo jednom ili samo na jednom mjestu. U relacijskim bazama podataka, atribute moemo zapisati i organizirati na razne naine, ali nam je cilj da postignemo strukturu, koja: spreava anomalije odravanja ima minimalnu potrebu za reorganizacijom baze podataka omoguava optimalno koritenje informacija u bazi U svrhu ostvarenja tih ciljeva, trebamo ukloniti nepoeljna svojstva relacija, a to su: Nekontrolirana redundancija: postoje nepotrebne kopije podataka u bazi. Anomalija odravanja: je posljedica redundancije. Uzrok joj je opisivanje svojstava razliitih entiteta u jednoj relaciji. Tu ubrajamo: Potencijalna inkonzistencija (ako imamo vie kopija nekog podatka, uvijek postoji mogunost da neku kopiju nismo aurirali) Anomalija dodavanja (informacije o svojstvu jednog entiteta su dio opisa drugog entiteta, nemogunost opisivanja tog entiteta dok nije poznat barem jedan entitet u okviru kojeg se ta svojstva opisuju) Anomalija brisanja (inverzni problem anomaliji dodavanja, ako obriemo zadnji entitet u okviru kojeg opisujemo drugi, gubimo informaciju o tom entitetu) Varijabilne duljine n-torki: relacijski model podataka ne doputa varijabilnu duljinu n-torki! Teorija normalizacije zasnovana je na pojmu normalnih formi u matematici. Danas govorimo o 6 normalnih formi: 1. normalna forma (1NF), 2. normalna forma (2NF), 3. normalna forma (3NF), Boyce-Coddova normalna forma (BCNF), 4. normalna forma (4NF) i 5. normalna forma (5NF).

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

1. normalna forma (1NF): Relacija je u 1NF, ako je vrijednost svakog atributa jednostruka i nedjeljiva, tj. ako su svi nekljuni atributi funkcijski ovisni o kljuu relacije R. 2. normalna forma (2NF): Relacijska shema je u 2NF ako je u 1NF i ako je svaki nekljuni atribut potpuno funkcijski ovisan o svakom kljuu iz relacije. Relacije se dovode u 2NF razbijanjem na dvije ili vie manjih relacija. 3. normalna forma (3NF): Relacijska shema je u 3NF ako je u 1NF i ako niti jedan nekljuni atribut u relaciji nije tranzitivno ovisan o bilo kojem kljuu iz relacije. Alternativna definicija je: Svaki ne kljuni atribut mora zavisiti o kljuu i to o cijelom kljuu i ni o emu drugom nego kljuu. 3NF podrazumijeva 1NF i 2NF. 3NF se postie tako da se loe definirane relacije rastave na vie manjih, ali dobro definiranih relacija. BCNF normalna forma (BCNF): Uvodimo pojam: Determinanta je atribut (ili kombinacija atributa) o kojem je neki drugi atribut potpuno funkcionalno ovisan. Relacijska shema je u BCNF ako je u 3NF i ako je svaka determinanta atributa, kandidat za klju, tj. sve funkcijske zavisnosti proizlaze iz njezinog kljua. BCNF se ne poziva na 2NF, a niti na 3NF kao svoj preduvjet. To nije niti potrebno, jer ih ona u svojoj definiciji obuhvaa. BCNF je neto jaa formulacija 3NF, jer ona obuhvaa neke situacije koje nisu bile uzete u obzir u Coddovoj formulaciji 3NF.

Ako je relacija u BCNF, onda je ona takoer u i 2NF i 3NF. Ali postoje relacije koje jesu u 3NF a nisu u BCNF. Zbog toga kaemo da je to neto stroa verzija 3NF. Codd je u svojim radovima od 1970-1974 definirao drugu i treu normalnu formu (2NF & 3NF), a zatim i poboljanu varijantu 3NFa koja se zove BoyceCoddova normalna forma (BCNF), 1974. godine.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

3NF i BCNF otklanjaju tranzitivno zavisne atribute. 3NF nije dobro rjeavala problem sloenih primarnih kljueva, to je rijeeno BCNF. Kod 3NF svaka netrivijalna funkcijska zavisnost proizlazi iz kljua ili zavrava u kljuu, dok kod BCNF svaka netrivijalna funkcijska zavisnost iskljuivo proizlazi iz kljua. Norme 4NF i 5NF su prvenstveno od teorijskog znaaja, jer je teko u praksi nai relacije koje jesu u BCNF, a nisu u 4NF i 5NF. Relacijska shema koja je u vioj (strooj) normalnoj formi, istovremeno je i u niim normalnim formama. to je normalna forma via, to je tee postii da relacijska shema udovoljava uvjetima te forme. Zbog toga se u praksi se najee baza podataka normalizira do 3NF. Ukoliko ve na poetku uoimo sve potrebne entitete, atribute i veze, tada njihova pretvorba prirodno producira shemu koja zadovoljava sve potrebne norme. Ako je polazna shema loe dizajnirana, tada e postupak normalizacije ispraviti greke. Postupak transformiranja relacijske sheme iz jedne normalne forme u drugu, nazivama normalizacijom.

Tehnike normalizacije podatakaTehnike normalizacije se bave postupcima projektiranja logike strukture relacijske baze podataka. Nisu ograniene samo na relacijski model, nego su openitijeg znaenja te se primjenjuje i na druge modele, kao to su mreni i hijerarhijski model podataka. Ovdje emo govoriti samo o tehnikama normalizacije relacijskog modela. Vana osobina normalizacije je reverzibilnost , to znai da ne smije doi do gubitka informacija sadranih u polaznoj relaciji. Polazei od skupa normaliziranih relacija, mora biti mogua rekonstrukcija polazne nenormalizirane relacije. Osnovne tehnike normalizacije su horizontalna i vertikalna normalizacija.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Postupkom horizontalne normalizacije relacija se rastavlja na podskupove n-torki koje zadovoljavaju odreene uvjete. Ove podskupove zovemo fragmenti relacije. Transformacijom domena na kojima su zadani pojedini atributi, uvodimo dodatna ogranienja. Ta metoda je jo u razvoju i veliku primjenu pronalazi u distribuiranim bazama podataka. Vertikalna normalizacija se dijeli na normalizaciju: Dekompozicijom Sintezom Starija metoda je normalizacija dekompozicijom. U svakom koraku relaciju prevodimo u neto viu normalnu formu. U svakom koraku operacijom projekcije izdvajamo one atribute, koji su u nedoputenim odnosima s nekim drugim atributima. Od tih izdvojenih atributa formiramo novu relaciju. Sve veu primjenu dobiva novija tehnika, koju nazivamo normalizacija sintezom. Polazite joj je skup atributa i skup ovisnosti zadan na tom skupu. Dosad su razvijeni postupci za postizanje 3NF, ali ne i viih normalnih formi na taj nain. Danas ne moemo sa sigurnou tvrditi koji je postupak bolji. Za normalizaciju sintezom se trae pouzdani algoritmi i matematike formulacije, koje bi danas uz koritenje raunala, trebale osigurati to bolje rezultate. Koju metodu danas odabrati ovisi o raspoloivim resursima: vrijeme, kadrovi, novac, raunala, itd. ivotni vijek ne normalizirane baze podataka: 1. Od samog poetka javlja se velika redundancija 2. Nakon odreenog vremena baza postaje jako spora 3. Anomalije dodavanja, brisanja i auriranja rezultiraju nekonzistentnom bazom. 4. Baza postaje neupotrebljiva.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

Razlozi za odstupanje od normalizacije Za veinu praktinih situacija je dovoljno relaciju normalizirati do 3NF, te tek ponekad treba ii i na BCNF. Ponekad postoje praktini razlozi zbog kojih se moe odustati od pune normalizacije. Npr. Vie atributa relacije ine cjelinu i kao takvi se uvijek pojavljuju zajedno. (ime i prezime, adresa: ulica, kuni broj i grad, grad i potanski broj, . . . ) Pretraivanje puno malih relacija, nastalih normalizacijom, moe znatno produiti produljiti vrijeme potrebno da bi se dolo do rezultata.

Projektant baze podataka mora procijeniti da li provesti potpunu normalizaciju ili ne. Vano poznavanje situacije, podataka, te kako e se ti podaci koristiti. Relacijska algebra osnovne operacije Relacijsku algebru je uveo E.F. Codd u svojim radovima iz 70-tih godina. Na njenim temeljima je stvorena Relacijska baza podataka i SQL, za kojeg kaemo da je relacijski potpun. Osnovni skup standardnih operacija relacijske algebre se dijeli na slijedeih 8 operacija: Kartezijev produkt Unija Razlika Presjek Dijeljenje Prirodno spajanje Projekcija Restrikcija

Obino te operacije dijelimo na 2 podskupa: Unija, Presjek, Razlika, Kartezijev produkt Dijeljenje, Spajanja, Projekcija, Restrikcija

Zajedniko svojstvo tih operacija je da djeluju na relacijama i da , kao rezultat daju novu relaciju.

Veleuilite u Varadinu

Baze podataka i SQL biljeke s predavanja

To svojstvo relacijskog modela podataka zovemo zatvorenost , zbog ega kaemo da je relacijski model zatvoren u odnosu na operatore (operacije) relacijske algebre. Najvanije (za naa razmatranja) od navedenih, su projekcija, restrikcija i prirodno spajanje. Operacije projekcije i restrikcije su unarne operacije, dok je operacija prirodnog spajanja, binarna operacija. Operacijom projekcije se selektiraju odreene kolone relacije R koje pripadaju nekom podskupu atributa, te se iz njega eliminiraju jednake ntorke. Operacijom restrikcije se eliminiraju zadovoljavaju postavljeni uvjet. oni redovi tablice koji ne

Operacijom spajanja dobiva se nova tablica koja ima onoliko stupaca, koliko iznosi unija atributa (stupaca) iz prethodnih tablica. Uvjet za to je da vrijednosti presjeka atributa iz prethodnih tablica budu iste! Operacijama projekcije i spajanja, dobivamo nove tablice, koje su opisane novim relacijskim shemama, dok je kod restrikcije sauvana relacijska shema. Moe se zakljuiti da su operacije projekcije i spajanja vrlo vane u postupku modeliranja baze podataka. (normalizacija podataka!) Relacijska algebra svodi se na vrednovanje algebarskih izraza graenih od relacija i unarnih, odnosno binarnih operatora. Rezultat algebarskih operacija je opet relacija. Svaki od algebarskih izraza je jedan upit ili pretraivanje.

Veleuilite u Varadinu