You are on page 1of 35

Projektovanje baza podataka i

informacionih sistema
Normalizacija
Druga normalna forma 2NF
Treća normalna forma 3NF
Boyce-Cood normalna forma BCNF
Šta ćemo naučiti:
• Naučićemo kako se orklanjaju neporpune (2NF) i
tranztivne funkcionalne zavisnosti.
• Kako se relacija dovodi do 3NF i da li u 3NF mogu
i pod kojim uslovima postojati anomalije (BCNF).
• Kada je relacija u 3NF.
• Kada je relacija u Boyce - Codd NF.
Potpune i nepotpune funkcionalne zavisnosti
atributa relacije
• Atribut Ocena potpuno funkcionalno zavisi od složenog
atributa BI, ŠPred
BI, ŠPred --> Ocena
BI -/->Ocena
ŠPred -/-> Ocena

• Atribut NazPred je nepotpuno funkcionalno zavistan od


složenog atributa BI, ŠPred, jer je funkcionalno zavistan i od
njegovog dela ŠPred
BI, ŠPred-->NazPred
BI -/->NazPred
ŠPred --> NazPred
Potpune i nepotpune funkcionalne zavisnosti
atributa relacije
• Atributi: Ime, Sem, ŠSmer, ImeRuk su nepotpuno funkcionalno
zavistni od složenog atributa BI, ŠPred, jer su funkcionalno
zavisni i od njegovog dela BI:
BI - -> Ime
BI - -> Sem
BI - -> ŠSmer
BI - -> ImeRuk
• Atributi BI i Špred su trivijalno funkcionalno zavistni od složenog
atributa BI, Špred:
BI, ŠPred --> BI i
BI, ŠPred --> ŠPred ;
Potpuna, nepotpuna i trivijalna
funkcionalna zavisnost
• Potpuna funkcionalna zavisnost:
Š
nepotpuna
BI,ŠPred --> Ocena
• Nepotpuna funkcionalna zavisnost:
Š BI,ŠPred --> Ocena
potpuna
ŠPred --> NazPred
• Trivijalna funkcionalna zavisnost:
BI, ŠPred --> BI
BI, ŠPred --> ŠPred
Nepotpuna zavisnost
• Nepotpune zavisnosti su posledica činjenice da
relacija u sebi sadrži objekte koji su povezani vezom
N:N.
• Relacija sa nepotpunim zavisnostima sadrži
objekat/objekte ali i vezu N:N.
• Objekti predstavljaju nepotpune zavisnosti, a ključ i
potpno zavisni atributi predstavljaju vezu N:N.
Tranzitivna funkcionalna zavisnost
• Data je relacija R sa atributima A,B i C (moguće složenim). Ako u
relaciji R važi:
A -> B
B -> C
A -> C
B -/->A
C -/->A
Atribut C je tranzitivno funkcionalno zavistan od atributa A.
Jednostavnije rečeno, atribut C je tranzitivno funkcionalno zavistan od
atributa A, ako je funkcionalno zavistan od A i ako je funkcionalno
zavistan od nekog atributa B, koji je sam funkcionalno zavistan od A.
Tranzitivna funkcionalna zavisnost
• Atribut B funkcionano zavisi od A
• Atribut C funkcionano zavisi od B
• Atribut C funkcionano zavisi od A preko B
Tranzitivna funkcionalna zavisnost
• Tranzitivna funkcionalna zavisnost nastaje zbog toga što
su u jednu relaciju objedinjene osobine dva (ili više)
objekata koji su povezani (najčešće vezom 1:N).
• Osobine objekata treba razdvojiti u posebne relacije
(dekompozicija).
• Atribut preko kojeg je ostvarena tranzitivna zavisnost
nalazi se u obe relacije, dekompozicija bez gubitaka
(prirodnim spajanjem se može dobiti polazna relacija):
R1(A,B), R2(B,C) su projekcije R(A,B,C) i R(A,B,C)= R1 [*B] R2
Stroga tranzitivna zavisnost

U definiciji tranzitivne zavisnosti ništa nije rečeno o zavisnosti atributa B od


atributa C.
Ona može biti bilo funkcionalna (C --> B), bilo višeznačna (C -/-> B).
Ako je ova zavisnost višeznačna (C -/-> B), tada se tranzitivna zavisnost C od A
naziva stroga tranzitivna zavisnost.
Stroga tranzitivna zavisnost dovodi do veće redundanse.

B --> C
Inverzno preslikavanje:
a) C --> B stroga tranzitivna zavisnost
b) C -/-> B tranzitivna zavisnost
Funkcionalna zavisnost
• Postoji jednostavan način od tri koraka koji rešava ovaj
problem:
1. Sve atribute koji zavise od podključa treba otkloniti i
staviti ih u novu šemu.
2. Duplicirani podključ u novoj tabeli postaje primarni
ključ.
3. Ostaviti kopiju ovog atributa u originalnoj šemi, gde
postaje spoljni ključ (ili deo složenog primarnog
ključa).
Druga normalna forma

• Relacija je u Drugoj normalnoj formi (2NF) ako je


u 1NF i svi njeni neključni atributi funkcionalno
zavise od čitavog primarnog ključa (potpuna
funkcionalna zavisnost).

(Neključni atributi su atributi koji nisu kandidati za


ključ, niti deo kandidata za ključ).
Druga normalna forma

• Relacija je u Drugoj normalnoj formi (2NF) ako je u


1NF i ako ne postoje njeni neključni atributi koji
funkcionalno zavise od dela primarnog ključa
(nepotpuna, parcijalna funkcionalna zavsnost).
• Samo relacije koje imaju složeni primarni ključ mogu
imati nepotpune zavisnosti.
• Relacija u 1NF koja ima prost primarni ključ
istovremeno je u 2NF.
Treća normalna forma
• Relacija R je u trećoj normalnoj formi akko je u
2NF i ako svi njeni neključni atributi
netranzitivno zavise od primarnog ključa.
• Relacija R je u trećoj normalnoj formi akko je u
2NF i ako ne postoji ni jedan njen neključni
atribut koji zavisi tranzitivno od primarnog ključa
(preko nekog neključnog atributa).
Normalizacija – 2NF
• StudentU(BI, Špred, Ime, Sem, Šsmer, ImeRuk, NazPred, Ocena)
• Zbog nepotpunih zavisnosti

BI, ŠPred -> NazPred BI, ŠPred -> Ime, Sem, ŠSmer,
ŠPred -> NazPred Imeruk
BI -> Ime, Sem, ŠSmer, ImeRuk
• nije u 2NF i dekomponuje se na sledeće projekcije:
Normalizacija – 2NF

STUDENT1 (BI, Ime, Sem, ŠSmer, Imeruk)

PREDMET (ŠPred, Nazpred)

PRIJAVA (BI, Špred, Ocena)

U relacijama PREDMET i PRIJAVA ne postoji ni parcijalna ni


tranzitivna funkcionalna zavisnost. One su u 3NF i nemaju anomalija.
Normalizacija – 3NF
STUDENT1 (BI, Ime, Sem, Šsmer, Imeruk)
U relaciji STUDENT1 postoji tranzitivna funkcionalna zavisnost:

BI -> ŠSmer
ŠSmer -> Imeruk
BI -> Imeruk
Š

Pa ona nije u 3NF i ima sve vrste anomalija:


Tranzitivna funkcionalna zavisnost

ŠSmer --> Imeruk


Inverzno preslikavanje:
a) Imeruk--> Šsmer
b) Imeruk-/-> Šsmer
Š

U definiciji tranzitivne zavisnosti ništa nije rečeno o zavisnosti atributa B od atributa C.


Ona može biti bilo funkcionalna (C --> B), bilo višeznačna (C -/-> B).
Ako je ova zavisnost višeznačna (C -/-> B), tada se tranzitivna zavisnost C od A naziva stroga
tranzitivna zavisnost. Stroga tranzitivna zavisnost dovodi do veće redundanse.
Anomalije održavanja – 3NF
– Anomalije u dodavanju - u bazu podataka nije moguće ubaciti neki logički skup
podataka, a da se pri tome, zbog strukture relacije, ne zahteva ubacivanje i
nekih drugih podataka.
• Na primer, ako je po novom nastavnom planu definisan novi smer, ne mogu se
ubaciti podaci o tom smeru dok ga neki student ne upiše.
– Anomalije u izbacivanju - izbacivanje nekog logičkog skupa podataka iz baze,
prouzrokuje i neželjeno izbacivanje nekih drugih podataka.
• Na primer, ako je student bio jedini na smeru i ispiše se, gube se sve informacije
o tom smeru.
– Anomalije u ažuriranju - promena jednog podatka zahteva i promenu nekih
drugih podataka u bazi.
• Na primer, ako se promeni rukovodilac nekog smera, to se mora učiniti na
onoliko mesta koliko je studenata upisano na dati smer.
Normalizacija – 3NF

STUDENT1 (BI, Ime, Sem, Šsmer, Imeruk)


Ova relacija nije u 3NF i dekomponuju se na više relacija.

STUDENT (BI, Ime, Sem, Šsmer)


SMER (Šsmer, Imeruk)
Ove relacije su u 3NF i ne dekomponuju se više.
NORMALIZACIJA – 3NF
STUDENT (BI, Ime, Sem, Šsmer)

SMER (Šsmer, Imeruk)

PREDMET (Špred, Nazpred)

PRIJAVA (BI, Špred, Ocena)

Ove relacije su u 3NF i ne dekomponuju se više.


Primena normalnih formi na projektovanje
baze podataka analizom relacija
 Dat je skup nenormalizovanih relacija,
 Poznajući strukturu podataka, tj. odnose između atributa, relacije se
prevode u 1NF definisanjem primarnog ključa odgovarajuće relacije
(ostali atributi relacije funkcionalno zavise od primarnog ključa),
 Na osnovu poznavanja semantike odnosa pojedinih atributa (polja
relacije) definišu se ostale zavisnosti (pre svega funkcionalne)
između atributa relacije,
 Na osnovu zavisnosti i definicije normalnih formi relacije se
normalizuju, primenjujuju se redom definicije 2NF, 3NF, ...
 Relacije sa istim ključem se spajaju (konsolidacija relacija).
Normalizacija: Boyce-Codd-ova
normalna forma (BCNF)

Boyce-Codd-ova (BCNF) normalna forma uklanja neke


nepreciznosti u definisanju 2NF i 3NF.
Ove definicije nisu dovoljno stroge, posebno u slučajevima
kada relacija ima tzv. "preklapajuće" kandidate za ključ (dva ili
više složenih kandidata za ključ koji imaju barem jedan
zajednički atribut).
Na primer: analizirajmo relaciju Prijava.
Prijava (BI, ŠPred, NazPred, Ocena)
Normalizacija: Boyce-Codd-ova
normalna forma (BCNF)
Pretpostavimo, da ne postoje dva različita predmeta koji se isto zovu.
To znači da je i kompozicija atributa <BI, NazPred> kandidat za ključ.
Ovo znači da postoje dva složena preklapajuća kandidata za ključ :
<BI, ŠPred> i <BI, NazPred> .
U relaciji Prijava, jedino je atribut Ocena neključni atribut, pa pošto
on potpuno funkcionalno zavisi od oba kandidata za ključ, relacija je
u 2NF. Relacija je takođe i u 3NF jer neključni atribut (ocena)
netranzitivno zavisi od oba kandidata za ključ.
Međutim, redundansa i anomalije ažururanja i dalje postoje. BCNF
uklanja nepreciznosti 2 i 3 NF.
Normalizacija: Boyce-Codd-ova
normalna forma (BCNF)
Za definiciju BCNF uvodi se i pojam determinante
relacije.
Determinanta relacije R je bilo koji atribut, prost ili
složen, od koga neki drugi atribut u relaciji potpuno
funkcionalno zavisi.
Relacija R je u Boyce-Codd-ovoj normalnoj formi (BCNF)
ako i samo ako su sve determinante u relaciji i kandidati
za ključ.
Normalizacija: Boyce-Codd-ova
normalna forma (BCNF)
Data je relacija prijava i njene funkcionalne zavisnosti
označene kao determinante (D) ili kandidati za ključ (K) :

PRIJAVA (BI, ŠPred, Nazpred, Ocena)

BI, ŠPred ---> Nazpred, Ocena (D) (KK)


BI, Nazpred ---> ŠPred, Ocena (D) (KK)
ŠPred ---> Nazpred (D)
Nazpred ---> ŠPred (D)

Sve determinante nisu kandidati za ključ, pa relacija nije u BCNF.


Normalizacija: Boyce-Codd-ova
normalna forma (BCNF)

Dekompozicijom relacije PRIJAVA (BI, ŠPred, Nazpred, Ocena) pri


kojoj se iz relacije izvlače projekcije sa onim determinantama koje
nisu kandidati za ključ (ŠPred, Nazpred), relacija se svodi na BCNF.
PRIJAVA1 (BI, ŠPred, Ocena)
Relacije u BCNF
PREDMET (ŠPred, Nazpred)

Napomena:
Složeni, "preklapajući" kandidati za ključ su signal da relacija možda nije u BCNF.
Četvrta normalna forma

Predmet Nastavnik Knjiga (autor)


matematika Milan Peric
Zoran Vasic
Jovan
istorija Nikola Jankovic
Petrovic
Četvrta normalna forma
• Očigledno je da se relacija mora prvo dovesti u 1NF:
Predmet Nastavnik Knjiga(autor)

matematika Milan Peric


matematika Milan Vasic
matematika Zoran Peric
matematika Zoran Vasic
matematika Jovan Peric
matematika Jovan Vasic
istorija Nikola Jankovic
istorija Nikola Petrovic

• ili u skraćenom obliku (intenzija):


Program (Predmet, Nastavnik, Knjiga)
Četvrta normalna forma
• Ova relacija je sada i u BCNF, međutim postoji redundansa podataka, a
takođe i anomalije u ažuriranju.
• Uzrok je postojanje višeznačnih relacija između atributa u relaciji.
• U relaciji Program postoje sledeće višeznačne zavisnosti:
Predmet -->--> Nastavnik
Predmet -->--> Knjiga
• Da bi se ovo izbeglo potrebno je da se relacija dekomponuje na dve nove
relacije:
Raspored (Predmet,Nastavnik)
Knjiga (Predmet,Knjiga)
• Relacija je u Četvrtoj normalnoj formi (4NF): ako u njoj nisu date dve (ili
više) nezavisnih višeznačnih činjenica.
Peta normalna forma
• Višeznačne zavisnosti predstavljaju uopštenje funkcionalnih zavisnosti.
• Opštija forma zavisnosti, koja u sebi uključuje prethodne dve zavisnosti, je
zavisnost spajanja.
• U prethodnom objašnjenju višeznačne zavisnosti, pretpostavljeno je da nije
važno koji nastavnik koristi koju knjigu. Ukoliko ova veza postoji, poznato je
koji nastavnik koristi koju knjigu, dekomponovanjem relacije Program na
relacije Raspored i Knjiga gubi se informacija o tome. Zbog toga je
dekompoziciju trebalo izvršiti na tri relacije, dve prethodne i treću:
Nastavnik-Knjiga (Nastavnik,Knjiga)
• Relacija nije u Petoj normalnoj formi (5NF) ako se njen informacioni sadržaj
ne može rekonstruisati iz relacija nižeg stepena koje imaju različite ključeve.
Normalna forma domena i ključeva (DK/NF)
• Relacija je u DK/NF ako je svako ograničenje na
vrednosti njenih atributa posledica definicije ključeva i
domena.
• Relacija Predmet:
Predmet (MLB, SPredmeta, Predmet, Ocena)
• nije u DK/NF jer je njome definisano da jedan predmet
ima jedan naziv, a to nije posledica definicije ključa ove
relacije.
• Ukoliko je neka relacija u DK/NF onda je ona i u svim
drugim normalnim formama.
Pitanja za proveru znanja
1. Kako se orklanjaju neporpune (2NF) i tranztivne funkcionalne
zavisnosti?
2. Kada je relacija u 3NF.
3. Kada je relacija u Boyce - Codd NF.
4. Kada je relacija u 2NF?
5. Kada je relacija u 3NF?
6. Kako se relacija dovodi do 3NF
7. Da li u 3NF mogu i pod kojim uslovima postojati anomalije (BCNF).
8. Kada je relacija u Boyce - Codd NF?
Najava sledećeg časa
• Projektovanje baza podataka postupkom
normalizacije,
• Primer: baza podataka Preduzeće.

You might also like