Upload
roki90
View
28
Download
1
Embed Size (px)
Citation preview
BAZE PODATAKA Predavanje 3/03/2010 6. Normalizacija
http://www.riteh.hr/zav_katd_sluz/zr/nastava/bp
Prola predavanja
Uvod u baze podataka DBMS Relacijski model Relacijska algebra Modeliranje podataka Model entiteti-veze (ER model) Preslikavanje ER-modela u relacije
Gdje smo sada
Analiza zahtjeva (requirements analysis) Projektiranje
Modeliranje podataka Projektiranje logike strukture Projektiranje fizike strukture
Implementacija Testiranje Odravanje
Sadraj predavanja
Operacija pridruivanja (Join) Normalizacija
Join
Join
join je sloena operacija izmeu dvije relacije kojom se kombiniraju polja iz tih tablica prema vrijednostima koja sadre moemo je prikazati kroz dva koraka:1. vri se Kartezijev produkt dviju relacija 2. izdvaja se podskup n-torki
zavisno od tipa join operacije moe se izvriti i trei korak:3. iz dobivene tabele izdvajaju se odreeni stupci
Razlikujemo sljedee tipove join operacije:
inner join (equi-join, natural join, cross join) outer join (left, right, full) self join
Joinprimjeri na ploi
Normalizacija
Redundancija
Redundantni podaci
isti podaci postoje u bazi na dva razliita mjesta (direktna redundancija) mogu se utvrditi iz ostalih podataka u bazi (indirektna redundancija)
Redundantni podaci mogu biti uzrok raznih problema. Izmeu ostalog stvaraju anomalije prilikom:
ubacivanja novih podataka (INSERT) auriranja podataka (UPDATE) brisanja podataka (DELETE)
Normalizacija
je proces kojime se nastoji eliminirati redundancija, ali tako da se sauva integritet podataka u bazi redundancija se izraava kroz pojam funkcijske zavisnosti definiraju se normalne forme (NF)
prva NF, druga NF itd. svaka normalna forma garantira da nema odreenog tipa zavisnosti svaka via NF ukljuuje prethodnu NF te dodatno ureuje model, tj. eliminira dodatne redundantnosti
Prva normalna forma
Relacija je u 1NF ako su sve domene atributa u relaciji skalari to to znai?
to znai da polja u tabeli trebaju sadravati jednu vrijednost, a ne skup sloenih objekata to znai da relacija ne treba sadravati ponavljajue grupe atributa Primjeri: nadnevak, razni sloeni kodovi, bitflag, itd. Primjeri: ponavljajue grupe atributa
Nije uvijek jasna situacija
Normalizacija u 1NF
relaciju pretvarimo u 1NF tako da podijelimo ne-skalarne vrijednosti
Prije normalizacije:
1NF
kolegij K1 K2 K3 K4 K5
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
udbenik U1,U2 U1,U3 U4 U1,U5 U6
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
Problemi sa 1NF
Ostaju neki problemi: Anomalija ubacivanja
1NF
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
ne mogu dodati kolegij bez udbenika da bi promijenio predavaa za kolegij K1 moram promijeniti 2 reda ako pobriem K3, briem i P2
Anomalija auriranja
Anomalija brisanja
Funkcijske zavisnosti
Redundancije su esto uzrokovane funkcijskim zavisnostima (FZ) Funkcijska zavisnost je veza izmeu dva skupa atributa u relaciji Relaciju moemo normalizirati tako da uklonimo neeljenu funkcijsku zavisnost Def: skup atributa B je funkcijski zavisan od skupa atributa A (A funkcijski odreuje B) ako svaki puta kada dva reda imaju iste vrijednosti za sve atribute u A, onda imaju iste vrijednosti za sve atribute u B.
Funkcijske zavisnosti Primjer
{ID, brKolegija} -> {Ime, Prezime, imeKolegija} {brKolegija} -> {imeKolegija} {ID} -> {Ime, Prezime}
ID 3 7
ime Ivo Ana
prezime Ivi Andri
brKolegija 61655 61651
imeKolegija BP OS
FZ i normalizacija
definira se skup normalnih formi
svaka normalna forma ima manje funkcijskih zavisnosti od prethodne poto funkcijske zavisnosti predstavljaju redundancije => svaka normalna forma ima manje redundancija od prethodne normalne forme uklanjaju one funkcijske zavisnosti koje su problem
nisu sve funkcijske zavisnosti problem
Svojstva FZ
u svakoj relaciji
primarni klju funkcijski odreuje sve skupove atributa u toj relaciji (K-klju, X-skup atributa)KX
isto vrijedi i za kandidantne kljueve svaki skup atributa je FZ o samom sebiXX
pravila:
Refleksivnost (reflexivity) Ako je XY onda: XY (trivijalno pravilo) Proirenje (augmentation) Ako vrijedi XY, onda: XZYZ Tranzitivnost (transitivity) Ako vrijedi XY i YZ, onda: XZ
Funkcijske zavisnosti Primjer1NF
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
Primarni klju je {kolegij, udbenik} pa je onda: {kolegij, udbenik} {zavod, predava}
Trivijalne funkcijske zavisnosti: {udbenik, zavod} {udbenik} {zavod} {zavod} {zavod, predava} {}
Funkcijske zavisnosti Primjer1NF
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
Ostale ne-trivijalne funkcijske zavisnosti: {kolegij} {predava} {kolegij} {zavod} {predava} {zavod}
Obratiti panju: lijeva strana navedenih FZ nije klju
Druga normalna forma
A je skup atributa i vrijedi A B
ako moemo skinuti neki atribut iz A da FZ i dalje vrijedi onda je FZ djelomina funkcijska zavisnost atribute koji su dio nekog kandidatnog kljua zovemo kljuni atributi a ostale ne-kljuni atributi
Relacija je u drugoj normalnoj formi (2NF) ako je u 1NF i ako ni jedan ne-kljuni atribut nije djelomino zavisan o kljuu
drugim rijeima nema CB gdje je C podskup od kandidatnog kljua, a B ne-kljuni atribut odnosno svi ne-kljuni atributi moraju zavisiti o cijelom kljuu
Druga normalna forma - primjer1NF
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
U ovom primjeru nismo u 2NF jer postoji FZ {kolegij, udbenik} {predava, zavod}
isto tako {kolegij} {predava, zavod}
predava i zavod djelomino zavise o kandidatnom kljuu !
Normalizacija u 2NF
Uklanjanje funkcijskih zavisnosti
recimo da A B gdje A i B nemaju zajednikih atributa ako su A atributi sa lijeve strane funkcijske zavisnosti, B atributi sa desne strane, a C svi ostali atributi, onda moemo podijeliti relaciju R na dva dijela: relaciju R1 koja sadri A U C relaciju R2 koja sadri A U B
Poetna relacija se uvijek moe ponovno dobiti operacijom JOIN izmeu relacija R1 i R2
Normalizacija u 2NF - primjer2NFa 1NF
kolegij K1 K1 K2 K2 K3 K4 K4 K5
zavod Z1 Z1 Z1 Z1 Z1 Z2 Z2 Z2
predava P1 P1 P1 P1 P2 P3 P3 P4
udbenik U1 U2 U1 U3 U4 U1 U5 U6
kolegij K1 K2 K3 K4 K52NFb
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
kolegij K1 K1 K2 K2 K3 K4 K4 K5
udbenik U1 U2 U1 U3 U4 U1 U5 U6
Problemi rjeeni u 2NF
Problemi u 1NF
ubacivanje: ne mogu dodati kolegij bez udbenika auriranje: da bi promijenio predavaa za kolegij K1 moram promijeniti 2 reda brisanje: ako pobriem K3, briem i P2
2NF rjeava prva dva problema, ali ne i trei2NFa
kolegij K1 K2 K3 K4 K5
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
Problemi koji ostaju
Anomalije ubacivanja:
ne mogu dodati predavaa koji ne predaje neki kolegij da bi promijenio zavod za predavaa P1 mora promijeniti 2 reda ako pobriem K3, briem i P22NFa
Anomalije auriranja:
Anomalije brisanja:
kolegij K1 K2 K3 K4 K5
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
Trea normalna forma
Tranzitivne funkcije zavisnosti
A C je tranzitivna FZ ako postoji neki skup B takav da su AB i BC ne-trivijalne FZ ABC
Relacija je u treoj normalnoj formi (3NF) ako je u 2NF i ako nema ne-kljunih atributa koji su tranzitivno zavisni o kandidatnom kljuu
Drugim rijeima svi ne-kljuni atributi su meusobno nezavisni
Trea normalna forma - primjer2NFa
kolegij K1 K2 K3 K4 K5
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
U ovom primjeru nismo u 3NF jer postoje FZ: {kolegij} {predava} {predava} {zavod}
postoji tranzitivna zavisnost zavoda od primarnog kljua !
Normalizacija u 3NF primjer2NFa 3NFa
kolegij K1 K2 K3 K4 K5
zavod Z1 Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
predava P1 P2 P3 P4
zavod Z1 Z1 Z2 Z2
3NFb
kolegij K1 K2 K3 K4 K5
predava P1 P1 P2 P3 P4
Problemi rjeeni u 3NF
Problemi u 2NF
ubacivanje: ne mogu dodati predavaa koji ne predaje neki kolegij auriranje: da bi promijenio zavod za predavaa P1 mora promijeniti 2 reda brisanje: ako pobriem K3, briem i P23NFb kolegij K1 K2 K3 K4 K5
3NF rjeava sve ove probleme
3NFa
u ovom primjeru, ali relacije u 3NF mogu imati i drugih anomalija!
predava P1 P2 P3 P4
zavod Z1 Z1 Z2 Z2
predava P1 P1 P2 P3 P4
Normalizacija i projektiranje
Baza podataka bi trebala biti barem u 3NF Ako to nije sluaj u naem projektu onda je potrebno:
identificirati problematine funkcijske zavisnosti razmisliti o anomalijama koje uvode ukloniti ih ako je mogue