Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Normalizacija baze podataka - Letna kola

Normaliziramo bazu podataka kako bi se reili redundancije i anomalija:


- anomalija upisivanja
- anomalija modifikacije
- anomalija brisanja
Normalne forme
Kada je (R, F) u 1NF? Ako su svi atributi atomski atributi!
Kada je (R, F) u 2NF? Ako obzirom na F ne postoji parcijalna zavisnost
nekljunog atributa o kljuu.
Kada je (R, F) u 3NF? Ako obzirom na F ne postoji tranzitivna zavisnost
nekljunog atributa o kljuu.
Kada je (R, F) u BCNF? Ako za svaku netrivijalnu funkcijsku zavisnost X
Y F+ vrijedi da lijeva strana X sadri klju od (R, F).
Kada je (R, F) u 4NF? Ako u F+ ne postoji vieznana zavisnost X Y
ija lijeva strana X ne sadri klju.
Kada je (R, F) u 5NF? Ako u F+ ne postoji ne postoji netrivijalna zavisnost
spoja oo(R1, ..., Rn) takva da neka od komponenti Ri ne sadri klju.
Algoritam 3NF sinteze
Algoritam 3NF sinteze (R, F) pri emu je F iz skupa FZ(R) te daje
dekompoziciju d(R) : R1, ..., Rk takvu da je svaka od komponenti u 3NF te
takvu da uva informaciju i zavisnosti.
Koraci ovog algoritma su sljedei:
[1] Izraunati kanonski pokriva KP(F)
[2] Sinteza komponenti R1, ..., Rk
[3] (Eventualno) dodavanje kljua uz smanjenje broja komponenti
dekompozicije
Prikaimo ovaj pristup na realnoj aplikacijskoj domeni (Gradska Kavana)
koju oslikava sljedea slika.

Vidimo da su podaci o kojima trebamo voditi rauna sljedei:


A - #rauna
B - #artikla
C naziv artikla
D cijena artikla
E jedinina mjera
F koliina
G vrijeme izdavanja
H iznos rauna (ukupno)
I - #konobarice
J ime konobarice
Te moemo rei da vrijede sljedee funkcijske zavisnosti:
Vrijede sljedee funkcijske zavisnosti
#rauna vrijeme izdavanja, iznos rauna, #konobarice
#artikla naziv artikla, cijena artikla, jedinina mjera
#konobarice ime konobarice
Za funkcijsku zavisnost X Y kaemo da vrijedi u nekoj relacijskoj shemi R
ako svakoj instanci skupa atributa X odgovara tono jedna instanca skupa
atributa Y.

Potrebno je oblikovati bazu podataka koja e biti u 3NF (i dakako uvati


zavisnosti i informaciju). Dakle imamo sljedei problem:
R : ABCDEFGIJ
F:
A GHI
B CDE
IJ
Pronaimo klju za (R, F). Pri tome se moemo posluiti kljunim trikom koji
kae da se svaki atribut iz R kojeg nema na desnoj strani svih funkcijskih
zavisnosti iz F mora biti dio kljua za (R, F). U naem sluaju to su atributi
ABF. Izraunajmo zatvara od ABF kako bi provjerili je li moda ABF klju
za (R, F).
ZAT(ABF) : ABCDEFGHIJ = R K1 = ABF
Dakle moemo zakljuiti da je ABF jedini klju za (R, F).
Pristupimo algoritmom 3NF sinteze:
[1] Kanonski pokriva KP+F
(i)Desno razbijanje
AG
AH
AI
BC
BD
BE
IJ
(ii)Lijeva redukcija
Nemamo to reducirati jer na lijevoj strani funkcijskih zavisnosti nemamo
viekomponentnih skupova atributa!
(iii)Izbacivanje redundantnih zavisnosti
Nema redundantnih zavisnosti! Dokaite to za vjebu!
[2] Sinteza komponenti:
AG

AH
AI
BC
BD
BE
IJ
d(R): AGHI, BCDE, IJ
[3] (Eventalno) dodavanje kljua uz smanjenje broja komponenti
dekompozicije
d(R): AGHI, BCDE, IJ, ABF
tj. imamo sljedee relacije:
r1( #rauna, vrijeme izdavanja, iznos rauna (ukupno), #konobarice )
r2( #artikla, naziv artikla, cijena artikla, jedinina mjera )
r3( #konobarice, ime )
r4( #rauna, #artikla, koliina )

You might also like