Normalizacija i denormalizacija relacijske sheme baze podataka 11. tjedan T. Carić, T. Erdelić Zavod za inteligentne transportne sustave Fakultet prometnih znanosti Sveučilište u Zagrebu Baze podataka T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)1/44
Pregled 1. poglavlja T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)2/44
Uvod Normalizacija je proces raščlambe i izmjene strukture relacijske tablice s ciljem Smanjenja zalihosti podataka (sve preslike zalihosnih podataka moraju biti jednake) i Smanjenja nepravilnosti u podacima (kod unosa, obnavljanja i brisanja) Normalne forme Boyce Coddova normalna forma (BCNF) T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)3/44
Uvod Strukturalno tablica u 2NF je urednija od tablice u 1NF, a 3NF je urednija od 2NF Vrijedi: viša forma manja zalihost Normalizacija predstavlja primjenu matematičkih i formalnih pravila Osigurava ispravno postavljanje modela podataka i njihovu logičku povezanost T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)4/44
1NF PRVA NORMALNA FORMA Relacijska shema je u 1NF ako: domena atributa sadrži samo jednostavne (nedjeljive) vrijednosti atribut ne sadrži skup podataka relacija nema ponavljajuće grupe stupaca i ako su neključni atributi funkcijski ovisni o primarnom ključu Shema relacijske baze podataka R = {R 1, R 2,..., R n } je u 1NF ako je svaka relacija R 1, R 2,..., R n u 1NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)5/44
Funkcijska zavisnost atributa DEF: Funkcijska zavisnost atributa Za tablicu R koja sadrži atribute X i Y koji mogu biti složeni vrijedi funkcijska zavisnost atributa Y o atributu X, tj. X Y, ako je svaka pojedina vrijednost atributa X povezana sa samo jednom vrijednošću atributa Y Može se reći da Y funkcijski ovisi o X (X Y ) ako u tablici R ne postoje dva reda sa istom vrijednošću atributa X, a različitim vrijednostima atributa Y pravilo je jednostavno i proizlazi iz definicije primarnog ključa naglašava transformacijsko pravilo prikaza viševrijednosnih atributa T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)6/44
Funkcijska zavisnost atributa prikaz viševrijednosnog atributa sport za entitet STUDENT koji ima head(student)={student id, Ime, Prezime, Dat.rodenja, Mj.rodenja, JMBG, Sport} card(ime, STUDENT)=(1,1), card(prezime, STUDENT)=(1,1), card(dat.rodenja, STUDENT)=(1,1), card(mj.rodenja, STUDENT)=(1,1), card(jmbg, STUDENT)=(1,1), card(sport, STUDENT)=(0,n) T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)7/44
Funkcijska zavisnost atributa Tablica je u skladu sa pravilom da nije dozvoljen unos više vrijednosti pojedinog atributa u jednom retku. Tablica nije u prvoj normalnoj formi, jer svi neključni atributi nisu funkcijski zavisni o ključu Student id Sport T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)8/44
Anomalije Osim posljedice da ne možemo na jedinstveni način doći do zapisa tj. da je povrijedena je jedinstvenost primarnog ključa javljaju se razne anomalije Problemi koji se javljaju pri unosu i manipuliranju podacima su: Anomalija unosa: za svaki sport kojim se bavi pojedini student, potrebno je ponovno unijeti vrijednost svih atributa vezanih za tog studenta: Ime, Prezime, itd. Anomalija ažuriranja/promjene podataka: kod promjene vrijednosti nekog atributa potrebno je taj atribut promijeniti u svim redovima T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)9/44
Anomalije problem viševrijednosnog atributa sada je u skladu sa transformacijskim pravilom, atribut je prikazan novom tablicom PK(SPORT)=(Student id,sport) tablica sadrži i atribut Dat.rodenja datum rodenja je vezan za studenta, neovisno o tome da li se bavi sportom ili ne vrijedi (Student id Dat.rodenja) Student id je podskup primarnog ključa u tablici SPORT T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)10/44
Anomalije Anomalije koje se javljaju kada neključni atributi ovise samo o dijelu ključa Anomalija unosa Ne može se unijeti datum rodenja za studenta koji se ne bavi sportom Anomalija promjene Promjena datuma rodenja uzrokuje promjenu u svim redovima koji su vezani za tog studenta. Anomalija brisanja Brisanjem posljednjeg sporta kojim se student bavi, gubi se i podatak o njegovom datumu rodenja T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)11/44
2NF DRUGA NORMALNA FORMA Relacijska shema je u 2NF ako: se tablica već nalazi u 1NF i ako su svi neključni atributi potpuno funkcijski zavisni o ključu Pravilo druge normalne forme vrijedi za složeni primarni ključ koji se sastoji od više atributa Shema relacijske baze podataka R = {R 1, R 2,..., R n } je u 2NF ako je svaka relacija R 1, R 2,..., R n u 2NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)12/44
Potpuna funkcijska zavisnost atributa DEF: Potpuna funkcijska zavisnost atributa U tablici R koja sadrži atribute X i Y koji mogu biti i složeni, kada vrijedi X Y, tada ne smije postojati niti jedan podskup Z(Z X)), za koji bi vrijedilo Z Y. T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)13/44
Potpuna funkcijska zavisnost atributa Problem se rješava na način : Atribut koji je funkcijski zavisan o podskupu primarnog ključa (student id), prebacuje se u drugu tablicu u kojoj je taj atribut-podskup primarni ključ to je u ovom slučaju tablica STUDENT T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)14/44
Potpuna funkcijska zavisnost atributa Anomalija unosa: Nije moguće unijeti mjesto rodenja za pojedinog studenta, dok se ne unese njegov upisni list. Anomalija ažuriranja podataka: Kod promjene mjesta rodenja pojedinog studenta, taj podatak treba mijenjati u svim upisnim listovima, koji su vezani za tog studenta. Anomalija brisanja: Brisanjem upisnog lista briše se podatak o mjestu rodenja T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)15/44
Potpuna funkcijska zavisnost atributa ulist id student id svaki upisni list vezan je samo za jednog studenta student id ulist id jedan student ima više upisnih listova student id Mj.rodenja student je roden u jednom odredenom mjestu Mj.rodenja student id u jednom mjestu može biti rodeno više studenata Kako vrijedi ulist id student id Mj.rodenja atribut mjesto rodenja je tranzitivno (posredno) funkcijski zavisan o primarnom ključu tablice (ulist id). T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)16/44
3NF TREĆA NORMALNA FORMA Relacijska shema je u 3NF ako: se tablica već nalazi u 2NF i ako niti jedan neključni atribut nije tranzitivno funkcijski zavisan o primarnom ključu Shema relacijske baze podataka R = {R 1, R 2,..., R n } je u 3NF ako je svaka relacija R 1, R 2,..., R n u 3NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)17/44
Tranzitivna funkcijska zavisnost atributa DEF: Tranzitivna funkcijska zavisnost atributa U tablici R koja sadrži atribute X, Y i A, vrijedi da je A tranzitivno funkcijski ovisan o atributu X, ako je X Y, Y X, Y A i A Y Simbolički tranzitivna zavisnost se prikazuje X Y A T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)18/44
Svodenja tablice na 3NF Svodenja tablice na treću normalnu formu rješava se tako da: atribut koji je tranzitivno zavisan o ključu, preseli u se tablicu, u kojoj je atribut koji posreduje u tranzitivnoj vezi (u ovom slučaju student id) primarni ključ. T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)19/44
Svodenja tablice na 3NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)20/44
Primjer normalizacije Upravljanje projektima Projekt opisan atributima (oznaka (broj) projekta, naziv projekta, popis suradnika) Suradnik je opisan atributima (Oznaka suradnika, naziv suradnika, zanimanje suradnika) Tvrtka naplaćuje usluge prema satu rada na projektu Naplata po satu je povezana s zanimanjem suradnika Periodički se objavljuje izvješće o radu na projektu Ukupni trošak je izvedeni atribut izračunat umnoškom cijene sata i broja sati rada T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)21/44
Prikaz početnog izvješća / tablice T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)22/44
Postupak normalizacije Cilj je ustrojiti tablicu sljedećih značajki Tablica sadrži sve značajne podatke o entitetu Niti jedan podatak se nepotrebno ne pohranjuje u više od jedne tablice Razlog je obnavljanje na jednom mjestu Obilježja tablice zavise samo o primarnom ključu POSTUPAK: 1.) Prva normalna forma (1NF) - Format tablice; nema grupa podataka koji se ponavljaju i utvrden je PK 2.) Druga normalna forma (2NF) - 1NF bez parcijalne zavisnosti 3.) Treća normalna forma (3NF) - 2NF bez tranzitivne zavisnosti T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)23/44
Pretvorba u 1NF... Brisanje grupa podataka Uz jedinstveni ključ se vezuje više podataka istog tipa (grupa) tablica POČETNI FORMAT Izbrisati NULL vrijednosti i njihova mjesta popuniti odgovarajućim vrijednostima T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)24/44
Pretvorba u 1NF... T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)25/44
Pretvorba u 1NF... Odredivanje primarnog ključa (PK) koji jedinstveno označuje preostale atribute retka u primjeru je to složeni ključ sastavljen od atributa OZN PROJ i OZN SURAD Odredivanje zavisnosti atributa odredivši PK odredena je zavisnost OZN PROJ, OZN SURA NAZ PROJ, NAZ SURAD, ZANIM SURAD, CIJENA SATA, BROJ SATI ostale zavisnosti OZN PROJ NAZ PROJ OZN SURAD NAZ SURAD, ZANIM SURAD, CIJENA SATA ZANIM SURAD CIJENA SATA prikaz dijagramom zavisnosti T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)26/44
Pretvorba u 1NF... Dijagram zavisnosti 1NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)27/44
Značajke dijagrama zavisnosti Obilježja primarnog ključa označena masno, podvučena i narančaste boje Strelice iznad atributa (poželjne zavisnosti) zavisnosti obilježja koje se vezuju uz primarni ključ OZN PROJ, OZN SURAD Strelice ispod atributa (nepoželjne zavisnosti) Parcijalne zavisnosti - zavisnosti atributa o dijelu složenog primarnog ključa Tranzitivne zavisnosti - zavisnosti jednog atributa koji nije primarni ključ o drugom T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)28/44
Prva normalna forma 1NF Tablični format za koji vrijedi utvrdena su svi ključni atributi u tablici nema grupa podataka koje se ponavljaju - svako polje tablice sadrži samo jednu vrijednost podatka svi atributi su zavisni o primarnom ključu T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)29/44
Pretvorba u 2NF... Zapisati svaki ključni atribut u poseban redak, a originalni (složeni) ključ u zadnji redak OZN PROJ OZN SURAD OZN PROJ OZN SURAD Svako tako napisani atributi postaje ključ u novoj tablici - originalna tablica se dijeli u tri tablice (PROJEKT, SURADNIK, PRIDRUŽI) T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)30/44
Pretvorba u 2NF... Korištenjem tablice zavisnosti utvrditi atribute entiteta koja zavise o drugim atributima: originalna tablica se dijeli u tri nove tablice PROJEKT (OZN PROJ, NAZ PROJ) SURADNIK(OZN SURAD, NAZ SURAD, ZANIM SURAD, CIJENA SATA) PRIDRUŽI (OZN PROJ, OZN SURAD, PRIDRU SATI) Primarni ili ključni atribut je atribut koje je najmanje dio složenog ključa - OZN PROJ i NAZ PROJ su primarni (ključni) atributi T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)31/44
Rezultati pretvorbe u 2NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)32/44
Druga normalna forma 2NF Tablični format za koji vrijedi: tablica se nalazi u 1NF ne uključuje parcijalne zavisnosti, tj. ne postoji atribut koji zavisi samo o dijelu složenog ključa tablica čiji je primarni ključ sastavljen od samo jednog atributa kada se nalazi u 1NF, istovremeno se nalazi u 2NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)33/44
Pretvorba u 3NF... Utvrditi svaku novu determinantu Za svaku tranzitivnu zavisnost, zapisati njezinu determinantu kao primarni ključ nove tablice determinanta je bilo koji atribut entiteta čija vrijednost odreduje ostale vrijednosti u retku Utvrditi zavisne atribute U primjeru: ZANIM SURAD CIJENA SATA Uočiti zavisne atribute iz tranzitivne zavisnosti CIJENA SATA iz SURADNIK nova tablica SURADNIK (OZN SURAD NAZ SURAD, ZANIM SURAD) T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)34/44
Rezultati pretvorbe u 3NF T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)35/44
Prednosti i nedostaci normalizacije Prednosti normalizacije Potpuno uklanjanje redundantnih podataka Minimiziranje prostora za skladištenje podataka Riješeni su problemi s anomalijama unosa, ažuriranja i brisanja podataka Nedostaci normalizacije Prestroga normalizacija može dovesti do narušavanja performansi sustava Pojava prevelikog broja entiteta u bazi dovodi do mnogostrukih spajanja, a to ima svoju cijenu kod kasnijeg procesiranja podataka T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)36/44
Treća normalna forma 3NF Tablični format za koji vrijedi tablica se nalazi u 2NF ne sadrži tranzitivne zavisnosti T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)37/44
Denormalizacija dupliciranjem atributa Denormalizacija dupliciranjem ključeva Pregled 2. poglavlja Denormalizacija dupliciranjem atributa Denormalizacija dupliciranjem ključeva T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)38/44
Denormalizacija dupliciranjem atributa Denormalizacija dupliciranjem ključeva Uvod je kontrolirano narušavanje normalnih formi u cilju poboljšanja performansi baze podataka Kada denormalizirati, a kada bazu držati u normalnim formama? Pravilo je da se baza tokom dizajna dovede u najmanje 3 normalnu formu, pa se po potrebi denormalizira ako se shvati da je cijena normalizacije preskupa po performanse sustava T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)39/44
Denormalizacija dupliciranjem atributa Denormalizacija dupliciranjem ključeva Denormalizacija dupliciranjem atributa Dupliciranjem atributa Cijena narušena je 3NF Mana 3NF je ako ažuriramo Cijenu proizvoda nećemo moći saznati kolika je bila cijena proizvoda na datum narudžbe, pa je ovo dobro rješenje iako ne poštuje 3NF Ovo može biti zahtjevna JOIN operacija nakon nekog vremena kada se skupi veći broj narudžbi i proizvoda u bazi T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)40/44
Denormalizacija dupliciranjem atributa Denormalizacija dupliciranjem ključeva Denormalizacija dupliciranjem ključeva Da bi saznali iz koje države je koji kupac trebaju se spojiti 3 tablice, a to zahtjeva dosta logičkih/fizičkih čitanja Ako nam u nekim sličnim scenarijima ovakav upit postane prespor u tablicu Kupac se može dodati atribut DrzavaId (strani ključ) koji će biti direktno povezan sa tablicom Drzava i kod upita iz koje je države korisnik imati ćemo direktnu vezu s tablicom Drzava T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)41/44
Usporedba Pregled 3. poglavlja Usporedba T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)42/44
Usporedba Usporedba Ako treba birati izmedu performansi i integriteta baze podataka uvijek je bolje izabrati integritet, a to nam nosi stroža normalizacija Prevelika denormalizacija baze loše utječe na skalabilnost i fleksibilnost baze podataka Previše denormalizirana baza podiže troškove održavanja baze podataka T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)43/44
Usporedba Pitanja T. Carić, T. Erdelić ITS::Baze podataka (11. tjedan)44/44