You are on page 1of 152

LOGIKO OBLIKOVANJE BAZA PODATAKA

ZAVISNOSTI U RELACIJSKIM BAZAMA


PODATAKA
U ovom dijelu govorimo o funkcijskim zavisnostima i
zavisnostima spoja.
Zavisnosti predstavljaju odreena semantika
ogranienja (uvjeti integriteta) na sadraj relacija u
bazi podataka.
Baza podataka smatra se valjanom (konzistentnom)
ako relacije baze podataka zadovoljavaju specificirana
ograninja.

Funkcijske zavisnosti
Normalne forme : 1NF, 2NF, 3NF, BCNF
Vieznane zavisnosti
Normalna forma : 4NF
Zavisnosti spoja
Normalna forma: 5NF, 6NF
FUNKCIJSKE ZAVISNOSTI
Uvodni primjer:

Pr. R = {Radnik#, Odjel#, Poslovoa#}
r(Radnik# Odjel# Poslovoa#)
========================
R1 O1 P1
R2 O1 P1
R3 O2 P2
Semantika: (x, y, z) e r znai da radnik x radi u
odjelu y iji je poslovoa z .
U relaciji r vrijedi:
svakom radniku odgovara tono jedan odjel.
Kaemo da funkcijska zavisnost Radnik# Odjel#
vrijedi u relaciji r .
U relaciji r ne vrijedi funkcijska zavisnost
Odjel# Radnik# , jer svakom odjelu ne odgovara
tono jedan radnik; odjelu O1 odgovaraju radnici
R1 i R2 .

FORMALIZACIJA

Neka je R relacijska shema, X, Y _ R . Izraz
X Y je funkcijska zavisnost nad R .
Pr. R = ABC Izrazi A B, AB B, C AC,
C C
su funkcijske zavisnosti nad relacijskom shemom
R .

Sa FZ(R) oznaavamo skup svih funkcijskih
zavisnosti nad R .

Propozicija

Skup FZ(R) je konaan .
Podskupove od FZ(R) oznaavamo sa F, G, H,
F1,..
Funkcijske zavisnosti oznaavamo sa f, g, h, f1,..
U r vrijedi funkcijska zavisnost
Radnik#, Odjel# Poslovoa , jer svakom radniku i
pripadnom odjelu odgovara tono jedan poslovoa
(svakoj Radnik#, Odjel# vrijednosti odgovara tono
jedna Poslovoa vrijednost)
U relaciji r ne vrijedi funkcijska zavisnost
Odjel#, Poslovoa# Radnik# , jer svakoj
Odjel#, Poslovoa vrijednosti ne odgovora jedna
Radnik# vrijednost; naime,
Vrijednosti O1, P1 odgovaraju vrijednosti R1 i R2

Semantika
Funkcijska zavisnost X Y e FZ(R) vrijedi u
relaciji r nad R , r(R), ako
svakoj X vrijednosti odgovara jedna Y vrijednost;

X Y ne vrijedi u r(R) ako postoji barem jedna
X vrijednost kojoj odgovaraju barem dvije Y
vrijednosti.


Ekvivalentna formulacija:
X Y e FZ(R) vrijedi u r(R) ako
t1, t2 e r (t1|X| = t2|X| t1|Y| = t2|Y|)
X Y ne vrijedi u r ako
-t1, t2 e r (t1|X| = t2|X| . t1|Y| = t2|Y|)
Relacija r je model za X Y ako
X Y vrijedi u r
Pr. R = ABC , F: A B, BC B, C AB
r(A B C)
========
2 1 0
2 2 2
1 1 0
1 2 2

Ispitati koje zavisnosti iz F vrijede u relaciji r
1. Ispitujemo f: A B
Kako za prva dva sloga t1 i t2 iz r vrijedi:
t1|A| = t2|A| i t1|B| = t2|B| ,
zakljuujemo da f ne vrijedi u r .
t1
t2
Slikovito:

A vrijednosti B vrijednosti

2 1
1 2

2. Ispitujemo f1: BC B

Neka su u i v bilo koja dva sloga iz r.
Implikacija u|BC| = v|BC| u|B| = v|B|
vrijedi, jer kad god se dva sloga podudaraju na
na nekom skupu atributa X , onda se ti isti slogovi
podudaraju i na bilo kojem podskupu od X.

Prema tome, f1 vrijedi u r .
3. Ispitujemo f2: C AB .
Prvi i trei slog iz r , u oznaci t1 i t3 , imaju
svojstvo:
t1|C| = t3|C| i t1|AB| = t3|AB| .
Zakljuujemo da f2 ne vrijedi u r .
Za zavisnost X Y e FZ(R) kaemo da je
primjenjiva na relaciju r(R1), gdje je R1 _ R,
ako vrijedi XY _ R1.

U protivnome, kaemo da X Y nije primjenjivo na
r(R1).
Pr. r(A, B, C) G: AB C, B AD, B C
Koje su zavisnosti iz G primjenjive na r ?
(Primjenjivost smo pretpostavili u definiranju
X Y vrijedi u r).
Kaemo da skup zavisnosti F _ FZ(R) vrijedi u
relaciji r(R) ako svaka zavisnost iz F vrijedi u r .

Ako F vrijedi u r , onda kaemo da je r model za
F.

Neka je R skup atributa i F skup zavisnosti nad R.
Par (R, F) zovemo relacijskom shemom.

Shema baze podataka, SH(BP), je skup relacijskih
shema
SH(BP) : (R1, F1), (R2, F2),.., (Rk, Fk)

Baza podataka nad SH(BP) je skup relacija
BP: r1(R1), r2(R2),.., rk(Rk) .

BP je valjana baza podataka ako F1 vrijedi u r1,
F2 vrijedi u r2,.., Fk vrijedi u rk .

Kaemo jo da je BP u valjanom ili konzistentnom
stanju.
Pr. SH(BP) : R1 = ABC , F1: A C
R2 = BCD , F2: B C, D B

Napisati jednu valjanu BP nad SH(BP).
SH(BP): (R1, F1), (R2, F2),.., (Rk, Fk)

BP: r1(R1) r2(R2) rk(Rk)

F1, F2,.., Fk su uvjeti integriteta.
LOGIKA POSLJEDICA
Neka je F _ FVS(R) i f e FVS(R) .
f je logika posljedica od F ako za svaku relaciju r
nad R vrijedi:
Ako je r model za F , onda je r model i za f
.
(Ako F vrijedi u r , onda f vrijedi u r )
Oznaka: F f
KATALOG FZ
Neka su X, Y, Z, Y1 _ R . Tada vrijedi:

1. X Y XZ YZ (proirenje)

2. X Y, Y Z X Z (tranzitivnost)

3. X Y, X Y1 X YY1 (unija)

4. X Y X Z , ako je Z _ Y (projekcija)

5. F X Y , gdje je F bilo koji skup funkcijskih
zavisnosti i Y _ X (trivijalnost)
Dokaz

d1.
Neka je r bilo koja relacija nad R. Neka u r vrijedi
X Y.
Treba dokazati da XZ YZ takoer vrijedi u r .
.
.
Implikacijski problem (I-problem):

Ispitati da li vrijedi F f
Pr. (primjena kataloga FZ)

(a)A B AD BD vrijedi po pravilu proirenja

(b) A D, D C A C (tranzitivnost)

(c) BD A, BD B BD AB (unija)

(d)F ACD AC (trivijalnost)

(e)Specijalno, C ACD AC , to krae piemo u

obliku ACD AC , gdje kaemo da
ACD AC vrijedi po pravilu trivijalosti
Za zavisnost X Y kaemo da je trivijalna ako je
Y _ X.
Propozicija
Trivijalna zavisnost X Y vrijedi u svakoj relaciji
na koju je primjenjiva.
Pr. Rijeimo I-problem X Y XZ Y (l. pro)
1. X Y zadano
2. XZ YZ 1., proirenje
3. YZ Y trivijalnost
4. XZ Y 2., 3., tranzitivnost
Neka su F, G _ FZ(R)

Kaemo da je G logika posljedica od F, ili da F ima
za logiku posljedicu G ako

F g za svaku zavisnost g iz G

Notacija F G

F G znai da G nije logika posljedica od F .
Propozicija
Neka su F, G, H _ FZ(R) bilo koji skupovi
funkcijskih zavisnosti. Tada vrijedi:

1. F G ako je G _ F
2. F G i G H povlai F H
RJEAVANJE I-PROBLEMA

Postupci:
(Se) Semantiki (koristi se definicija logike
posljedice, tj. radi se u kontekstu relacija i slogova)
(Si) Sintaksni (koriste se pravila o rezoniranju o
zavisnostima, tj. koristimo Katalog FZ).
(Al) Algoritamski (koristi se zatvara skupa atributa).
((Al) ima linearnu sloenost)
ZATVARA SKUPA ATRIBUTA
F _ FZ(R) , X _ R

Zatvara skupa atributa X s obzirom na skup
funkcijskih zavisnosti F oznaavamo sa ZAT(X, F).

Definicija je:
ZAT(X, F) = {A e R F X A}

ZAT(X, F) piemo i u obliku XF
+

Algoritam za raunanje ZAT(X, F) koristi pojam
zatvara primjenjivosti ili z-primjenjivosti.
Kaemo da je X Y primjenjivo na skup atributa W
ako
X _ W i nije Y _ W

Pr. W = ABC , F: AB C, A BD, CD A

Odrediti koje zavisnosti iz F su z-primjenjive na W
Dogovor: Skup zavisnosti F = {X1 Y1, .., Xk Yk}
pisat emo u obliku F: X1 Y1,.., Xk Yk ili

F: X1 Y1
.
Xk Yk
ALGORITAM |ZAT(X, F)|
Ulaz: F _ FZ(R) , X _ R .
Izlaz: ZAT(X, F) .

Postupak:
1. Staviti X0 = X
2. Odrediti zavisnost iz f iz F koja je z-primjenjiva
na X0.
Ako takva zavisnost ne postoji, onda je
ZAT(X, F) = X0.
Ako je U V izabrana zavisnost iz F, koja je
z-primjenjiva na X0, onda treba izraunati
X1 = X0 V.
3. Primjeniti korak 2. na X1.
Navedeni postupak treba ponavljati sve dotle dok
ne doemo do takvog skupa atributa Xk za koji ne
postoji niti jedna zavisnost u F koja bi bila
z-primjenjiva na Xk. Dobiveni Xk je ZAT(X, F).
Zato navedeni postupak terminira ?
F je konaan i svaka zavisnost iz F moe se
primijeniti najvie jedan put
Pr. R = ABCD , F: AB C, C AC, AC D .
Odrediti:
(a) ZAT(A, F)

X0 = A C (nema z-primjenjivi zav)




ZAT(A, F) = X0 = A


(b) ZAT(AC, F)

Xo = AC AC D


X1 = AC D = ACD C




ZAT(AC, F) = X1 = ACD

Propozicija

X _ ZAT(X, F)

ZAT(ZAT(X, F), F) = ZAT(X, F)
Krai zapis: koristimo operator zatvaranja Za .
Za(Y, U V) = YV , gdje je U V z-primjenjivo
na Y.
Za(Yk, C) = Yk (indikator da nema z-primjenjivih
zavisnosti na Yk)
ZAT(X, F):
X0 = X; X1 = Za(X0, fo); ..; Xi+1 = Za(Xi, fi);
ZAT(X, F) = Za(Xk, C) = Xk.

Pr. R = ABCDE , F: AB CD, B A, C DE
Izraunati ZAT(BD, F)
Xo = BD, Za(BD, B A) = BDA,
Za(BDA, AB CD) = BDAC,
Za(BDAC, C DE) = BDACE = R,
Za(R, C) = R = ZAT(BD, F).
ALGORITAM(rjeavanje I-problema)
Ulaz: F _ FZ(R) , f = X Y e FZ(R)
Izlaz: Odgovor je li f logika posljedica od F .

Postupak:
1. Raunati ZAT(X, F)
2. Ako Y _ ZAT(X, F), onda F f
Ako nije Y _ ZAT(X, F), onda F f
Pr. R = ABCD , F: A B, B C, f = A C
Rijeimo I-problem F f .
ZAT(A, F) = ?
Xo = A, Za(A, A B) = AB, Za(AB, A C) = ABC,
Za(ABC, C) = ABC = ZAT(A, F).

Kako je C _ ZAT(A, F), vrijedi F A C

Pr. F X Z , gdje je F proizvoljan skup
zavisnosti i Z _ X.
Rjeenje:
Z _ X _ ZAT(X, F)

EKVIVALENCIJA SKUPOVA ZAVISNOSTI
Za skupove zavisnosti F, G _ FZ(R) kaemo da su
ekvivalentni, u oznaci F G, ako vrijedi
F G i G F .

Pr. R = ABCD, F: A B G: A B
B C B C
A C
Ispitati F G .

Ekvivalentni skupovi zavisnosti predstavljaju isto
semantiko ogranienje (filter)

Sa V(R, F) oznaavamo skup svih valjanih relacija
nad R. (modeli za F)
Propozicija
Neka su (R, F) i (R, G) relacijske sheme i F G.
Tada je V(R, F) = V(R, G).

R
R
F
G
r
r
Izmeu dva ekvivalentna skupa zavisnosti prednost
dajemo jednostavnijem skupu zavisnosti.
ARMSTRONGOVA RELACIJA
Pr. R = ABC, F: A B, C B g: B C
Vrijedi F g
Napisati r(R) za koju vrijedi:
r je model za F i F nije model za g
Rjeenje:
Konstruirat emo eljenu relaciju koja ima samo dva
sloga. B A C
ZAT(B, F) = B r( ZAT(B, F) R ZAT(B, F))
=======================
a a a
a b b

Pr. R = ABCD, F: A B, BC D, D A
Napisati dvije zavisnosti f, g e FZ(R) koje ne slijede
iz F, a zatim napisati relaciju r(R) koja je model za
F, a nije model niti za f niti za g .
Rjeenje:
ZAT(B, F) = B , ZAT(C, F) = C
f: B A, g: C D
rf( A B C D) rg( A B C D)
=========== ============
0 0 0 0 2 2 2 2
1 0 1 1 3 3 2 3

Novi simboli
r = rf rg
r( A B C D)
==========
0 0 0 0
1 0 1 1
2 2 2 2
3 3 2 3

F+
F _ FZ(R), F+ = {f e FZ(R) F f}, F- = FZ(R) F+

FZ(R) = F+ F-
F
F-
Armstrongova relacija je relacija r nad R koja je
model za F (time i za F+), a nije model niti jedne
zavisnosti iz F- .
Konstrukcija:
F _ FZ(R), F- : f1, f2,.., fk

1. Napisati rf1, rf2,.., rfk (uz uvoenje novih sim.)

2. r(R) = rf1 rf2 . . rfk

KLJU
(R, F) , K _ R .
K je klju za (R, F) ako

(1) F K R (K je dedinstven identifikator)
(2) Ne postoji K1 c K : F K1 R (minimalnost)
Postupci odreivanja kljua:

(a) odozgo prema dolje;
(b) odozdo prema gore
(c) kljuni trik
Pr. R = ABCD, F: AB C, B D, CD B

Nai sve kljueve za (R, F)

(a) Xk = ABCD, odmah vrijedi (1), tj.
F Xk R
Dalje smanjujemo Xk da zadovoljimo (2) uz
uvanje (1)
(c) Atributi koji nisu u desnoj strani zavisnosti iz F:
to je atribut A.
A je element bilo kojeg kljua K za (R, F) .
Pogledajmo da li je A klju:
F A R ?
ZAT(A, F) = A, R A. Prema tome, A nije klju.
(b) Proirujemo A dok ne dobijemo klju

Rezultat: K1 = AB, K2 = ACD .
Propozicija(kljuni trik)

Neka je Xk _ R skup atributa koji nisu u desnoj
strani zavisnosti od F. Tada svaki klju K za (R, F)
sadri Xk, tj. Xk _ K za bilo koji K.
Ako je Xk klju za (R, F), onda je to jedini klju.

Kljuni, nekljuni atributi:
A e R je kljuni atribut ako je A element nekog
kljua za (R, F);
Ako A nije element niti jednog od kljueva za
(R, F) , onda je A nekljuni atribut.
Pr. R = ABCDE, F , K1 = AC, BC
Napisati kljune i nekljune atribute
Rjeenje:
KA: A, B, C ; NA: D, E

U kreiranju BP jedan od kljueva se specificira kao
primarni klju PK.
KANONSKI POKRIVA
F
pojednostavljenje
|1|, |2|, |3|
kp(F)
|1|: Desno razbijanje
X ABC X A, X B, X C, X D
Desno zazbijanje od F dobije se desnim razbijanjem
svake zavisnosti iz F .
Pr. F: A BC Draz(F): A B
AB D A C
AC AD AB D
AC A
AC D

Propozicija
F Draz(F)
|2|: Lijeva redukcija
Izbacivanje suvinih atributa iz lijeve strane zavisnosti.
X Y je lijevo reducirana s obzirom na F ako u X
nema suvinih atributa, tj. ne postoji

X1 c X : F X1 Y
Pr. F: A B, B CD, AC B, A D

a) Ispitujemo da li je A B lijevo reducirano s
obzirom na F.

F C B ?
ZAT(C, F) = C, B C ; Znai F C B

Prema tome, A B je lijevo reducirano.
b)Ispitijemo lijevu reduciranost AC B

Traimo X1 c AC tako da bude F X1 B

C
AC A F A B ?
C

ZAT(A, F):
X0 = A, Za(A, A B) = AB,..
B _ AB _ ZAT(A, F).

Zato, F A B , te AC B nije lijevo reducirano.
C je suvino u lijevoj strani zavisnosti AC B
X Y , X1 Y e FZ(R), X1 _ X

Lijeva redukcija od X Y je X1 Y ako je
X1 Y lijevo reducirano s obzirom na F.

Piemo:
Lred(X Y) = X1 Y
Ako je F: f1, f2,.., fk , onda je lijeva redukcija od F
Lred(F): Lred(f1), Lred(f2),.., Lred(fk)
Dokaz:

F Lred(F) po definiciji Lred;

Lred(F) F po pravilu lijevog proirenja, tj.
X Y XX1 Y
Propozicija
F Lred(F)

Zavisnosti oblika C Y zovu se nestandardne
funkcijske zavisnosti.
Kako izgledaju modeli r(R) od C Y ?

Propozicija
Neka F ne sadri nestandardne zavisnosti.
Tada je svaka funkcijska zavisnost, ija je lijeva
strana jednolana, lijevo reducirana s obzirom na F
|3|: Izbacivanje suvinih zavisnosti
f e F je suvina(redundantna) u F ako f slijedi
iz preostalih zavisnosti u F, tj.

F {f} f
F je redundantan skup ako ima suvinih zavisnosti.
F je neredundantan skup ako nema suvinih zav.
F |3| Neredundantan skup Nrs(F)

Pr. F: A B Smjer ispitivanja suvinosti
B C
P B D P A B ?
A B
A D P A B , jer A B e P.
F1: B C .. Ns(F): B C
B D B D
A B A B
A D

Propozicija
F Nrs(F)
Propozicija
F moe imati vie kanonskih pokrivaa;

kp1(F) kp2(F) za bilo koje kanonske pokrivae kp1,
kp2 od F
Napisati F koji ima dva razliita kanonska pokrivaa.
Pr. F: A C, AB C, C DI, CD I, EC AB
EI I

kp1(F) = kp2(F).



Redoslijed |1|, |2|, |3| je bitan.
Na primjer, poredak |3|, |2| moe zahtijevati
ponovno izvrenje |3|
Pr. F: B A, D A, BA D

F je neredundantan skup; poslije |2| dobivamo
redundantan skup, te treba korak |3|.
Pr. F: A BC, B C

F je neredundantan skup; poslije |1| dobivamo
redundantan skup.
Pr. F: AB CD, A C
F je lijevo reduciran skup; poslije |1| dobivamo
skup koji nije lijevo reduciran.
Poredak [1], [2], [3] garantira izvrenje svakog koraka
samo jedanput
Za skup zavisnosti F kaemo da je desno reduciran
ako je svaka zavisnost iz F desno reducirana;
X Y e F je desno reducirana ako u desnoj strani
Y nema suvinih atributa, tj. ne postoji Y1 c Y :

F |F {X Y}| {X Y1}
F |1|, |3| Dred(F)

Pr. R = ABCDE, F: A BC, AC BD, CD A,
DE B, D AC .
Nai kp(F).
Odnos broja zavisnosti u F i u kp(F) ?
KLJU
(R, F) , K _ R .
K je klju za (R, F) ako

(1) F K R (K je dedinstven identifikator)
(2) Ne postoji K1 c K : F K1 R (minimalnost)
Postupci odreivanja kljua:

(a) odozgo prema dolje;
(b) odozdo prema gore
(c) kljuni trik
Pr. R = ABCD, F: AB C, B D, CD B

Nai sve kljueve za (R, F)

(a) Xk = ABCD, odmah vrijedi (1), tj.
F Xk R
Dalje smanjujemo Xk da zadovoljimo (2) uz
uvanje (1)
(c) Atributi koji nisu u desnoj strani zavisnosti iz F:
to je atribut A.
A je element bilo kojeg kljua K za (R, F) .
Pogledajmo da li je A klju:
F A R ?
ZAT(A, F) = A, R A. Prema tome, A nije klju.
(b) Proirujemo A dok ne dobijemo klju

Rezultat: K1 = AB, K2 = ACD .
Propozicija(kljuni trik)

Neka je Xk _ R skup atributa koji nisu u desnoj
strani zavisnosti od F. Tada svaki klju K za (R, F)
sadri Xk, tj. Xk _ K za bilo koji K.
Ako je Xk klju za (R, F), onda je to jedini klju.

Kljuni, nekljuni atributi:
A e R je kljuni atribut ako je A element nekog
kljua za (R, F);
Ako A nije element niti jednog od kljueva za
(R, F) , onda je A nekljuni atribut.
Pr. R = ABCDE, F , K1 = AC, BC
Napisati kljune i nekljune atribute
Rjeenje:
KA: A, B, C ; NA: D, E

U kreiranju BP jedan od kljueva se specificira kao
primarni klju PK.
TIPOVI FUNKCIJSKIH ZAVISNOSTI
TRIVIJALNA ZAVISNOST
X Y je trivijalna ako je Y _ X .
Pr. Trivijalne zavisnosti: AB A, B C .
Netrivijalne zavisnosti: AB BC, C A
Propozicija
Neka je X Y e FZ(R) trivijalna f.z.
Tada X Y vrijedi u svakoj relaciji r nad R
PARCIJALNA FUNKCIJSKA ZAVISNOST
Neka je (R, F) relacijska shema, X Y e FZ(R).
X Y je parcijalna s obzirom na F ako
-X1 c X : F X1 Y
X
X1
Y
Pr. R = ABC, F: A B, AC B
AC B je parcijalna, jer F A B
A B nije parcijalna, jer F C B
Zadatak

Pr. R = ABC, F: A B, AC B

Da li je BC A parcijalna f.z. s obzirom na F ?
Postoji li parcijalna zavisnost nekljunog atributa od
kljua ?
Postoji li netrivijalna funkcijska zavisnost ija lijeva
strana ne sadri klju ?
TRANZITIVNA FUNKCIJSKA ZAVISNOST
(R, F) , X Z e FZ(R) .
X Z je tranzitivna funkcijska zavisnost s obzirom
na F ako -Y _ R :
(1) F X Y,
(2) F Y Z i Y Z je netrivijalna f.z.,
(3) F Y X
Tranzitivni dijagram:
X
Y
Z
nfz
Zadatak:

R = ABCD, F: A B, B C

(a) Je li A B tranzitivna f. z. s obzirom na F ?
(b) Je li A C tranzitivna f.z. ?
(c) Je li B D tranzitivna f.z. ?
(d) Postoji li tranzitivna zavisnost nekljunog
atributa od kljua ?
(e) Postoji li netrivijalna funkcijska zavisnost ija
lijeva strana ne sadri klju ?
ZAVISNOSTI SPOJA

Dekompozicija skupa atributa R , u oznaci d(R), je
skup d(R) = {R1,.., Rk}, gdje je
(1) Ri _ R za svaki i = 1,.., k ,
(2) Ri = C za svaki i = 1,.., k ,
(3)R1 R2 .. Rk = R

Izraz (R1,.., Rk) zovemo zavisnost spoja nad R .
Pr. R = ABCD
Zavisnosti spoja nad R : (AB, BCD), (ABCD, C)
Nije zavisnost spoja nad R : (AB, C), (AB, E)
Sa ZS(R) oznaavamo skup svih zavisnosti spoja
nad R .

Zavisnost spoja (R1,.., Rm) e ZS(R) vrijedi u
relaciji r nad R ako

r = H|R1|(r) .. H|Rm|(r)
r se dobije prirodnim spojem svojih projekcija na
komponente dekompozicije, tj. komponente
zavisnosti spoja
Pr. R = ABCD r(A B C D)
==========
a a c a
a b b c
b b a c

Ispitati (AB, CD), (ABC, B, CD), (AC, ABCD)
u relaciji r
Zavisnost spoja (R1,..,Rn) e ZS(R) je trivijalna
zavisnost spoja ako je Ri = R za neko i e {1,.., n}.
Pr. R = ABCD; (AB, ABCD, A) je trivijalna z.s.
(A, BC, BCD) ne netrivijalna z.s.
IMPLIKACIJSKI PROBLEM ZA FUNKCIJSKE
ZAVISNOSTI I ZAVISNOSTI SPOJA
FZS(R) je skup svih funkcijskih zavisnosti i
zavisnosti spoja nad R, tj.

FZS(R) = FZ(R) ZS(R)
I-problem:
F _ FZS(R), f e FZS(R)

Testirati F f ?

Neka je R = A1, A2,.., Am i d(R): R1,.., Rn
dekompozicija od R.
Konstruiramo tablicu
T0(A1 A2 .. Aj .. Am)
=================
R1 . . .

Ri . . Tij .. .

Rm . . .
aj ako Aj e Ri

Tij =
bij ako Aj e Ri
Pr. R = ABCD, d(R): AB, BC, AD

T0 ( A B C D)
=================
AB a1 a2 b13 b14
BC b21 a2 a3 b24
AD a1 b32 b33 a4
FZ i ZS transformacije (modifikacije) relacije
koja se sastoji od simbola aj i bij.
FZ modifikacija po X Aj
Sluaj (A)

Ti Ti+1
X Aj X Aj
========= ========
x aj x aj
x bij x aj


Sluaj (B)

Ti Ti+1
X Aj X Aj
======== ==========
x bij x bij
x bkj x bij

i < k
ZS modifikacija po (R1,.., Rt)

Ti+1 = H|R1|(Ti) .. H|Rt|(Ti)
Red t e Ti(A1, A2,.., An) je ciljni red ako se
sastoji samo od simbola a, tj. ima oblik

t = (a1, a2,.., an).
Stupac sc = Ai je ciljni stupac.
ai
ai
:
ai
(R, F) , F _FZS(R) , d(R)


T0 T1 T2 . . Ti Ti+1 . . Tf

Sve mogue modifikacije koristei
zavisnosti iz F
Dobiveni Tf je model za F .
ALGORITAM (rjeava I-problem)

(ZS)

Ulaz: (R, F), F _ FZS(R) , (R1,.., Rm) e FZS(R)
Izlaz: Rezultat testa F (R1,.., Rm)
Postupak:

1. Napisati T0 za dani R i d(R) : R1,.., Rm
2. Izraunati Tf
3. Ako cr e Tf , onda F (R1,.., Rm)
Ako cr e Tf , onda F (R1,.., Rm)

(FZ)

Ulaz: (R, F) , F _ FZS(R) , X Aj e FZS(R)
Izlaz: Rezultat testa F X Aj
Postupak:

1. Napisati T0 za dani R i d(R): X, R
2. Izraunati Tf
3. Ako je Aj u Tf ciljni stupac, onda F X Aj
Ako Aj u Tf nije ciljni stupac, onda F X Aj

Napomena: Postupak prekidamo im u postupku
modifikacija dobijemo tablicu koja sadri ciljni red
odnosno ciljni stupac.
Navedeni postupak terminira, tj. dolazi se do
modela za F ?
Pr. R = ABCD, F: A B, C BD, (AC, BD)

Rijeiti implikacijske probleme:

(a) F AC D
(b) F (AC, BD, C)
Propozicija

X Y (XY, X(R XY))
Propozicija

(R1,.., Rk) (R1,.., Rk, X) ako je X _ Ri za
neki Ri .
Dekomponiranje preko funkcijske zavisnosti
X Y
XY
X(R \ XY)
SVOJSTVA DEKOMPOZICIJE d(R)
UVANJE INFORMACIJE
(R, F) relacijska shema, F _ FZ(R),
d(R1,.., Rk) dekompozicija od R.

Dekompozicija d uva informaciju ako

F (R1,.., Rk)
Navedena definicija kae da dekompozicija d uva
informaciju ako za svaku relaciju r nad R vrijedi:
ako je r model za F , onda je r model i za
zavisnost spoja (R1,.., Rk), tj. r se dobije
prirodnim spojem svojih projekcija na komponente
dekompozicije.
Pr. R = ABC, F: A B, C B, d(CB, CA)

Ispitati da li d uva informaciju.
Treba rijeiti I-problem F (CB, CA) .
Zadatak
Napisati r(A, B, C) koja je model za F, a zatim
provjeriti (CB, CA) u r .

UVANJE FUNKCIJSKIH ZAVISNOSTI
Projekcija skupa funkcijskih zavisnosti F na skup
atributa Ri definira se ovako:

(R, F), F _ FZ(R), Ri _ R

H|Ri|(F) = {X YeFZ(R) F X Y i XY _ Ri}
Pr. R = ABC, F: A B, B C, R1 = AC

H|AC|(F): A C, + trivijalne zav. nad AC
Uoite da C A e H|AC|(F) , jer F C A .
Dekompozicija d(R) = R1,.., Rk relacijske sheme
(R, F) uva funkcijske zavisnosti F ako za svaku
relaciju r nad R vrijedi:
ako je
H|R1|(r) model za H|R1|(F) i ..i H|Rk|(r) model za H|Rk|(F),
onda je
r model za F
(R, F)
globalno
(R1, H|R1|(F)) . . (Rk, H|Rk|(F))

lokalno
H|R1|(r)

. .
H|Rk|(r)


r(R)


Propozicija (uvanje funkcijskih zavisnosti)

Neka je zadana shema (R, F) , gdje je F _ FZ(R) .
Dekompozicija d(R): R1,.., Rk uva zavisnosti F
ako i samo ako

H[R1](F) .. H[Rk](F) F
Zadatak
dokazati navedenu propoziciju
ALGORITAM ZA TESTIRANJE UVANJA
FUNKCIJSKIH ZAVISNOSTI
Ri-operacija na skupu atributa X

Ri(X, F) = X |(X Ri)
F
+
Ri |
Primjer: R = ABCD , X = AC , R1 = AB
F : A B , B C
Izraunati
R1(X, F)
Algoritam (uv. zav)
Testiramo G F , gdje je G = HR1(F) .. HRk(F)
G se nee eksplicite raunati !!
Ulaz: (R, F) , F _ FZ(R) , d(R): R1,.., Rk
Izlaz: Da ako d uva F
Ne ako d ne uva F
Postupak:
(1) Izabrati zavisnost f: X Y iz F te ispitati da li d
uva f; Ispitivanje koristi postupak:
P:
1. X0 = X
2. Xi+1 = Rj(Xi, F) za neki Rj e d(R)
3. Prvi Xk za koji vrijedi
Rt(Xk, F) = Xk , za svaki Rt e d(R) , je
ZAT(X, G) = X
G
+
.

4. G X Y , tj. d uva X Y ako i ako
Y _ X
G
+

(2) d uva F ako i samo ako d uva svaku
zavisnost f iz F .
Napomena: f e F je sauvano ako f e G
Primjer: R = ABCD , d(R) : AB , BC , CD
F: A B , B C , C D , D A

Ispitati da li dekompozicija d uva F
NORMALNE FORME
Neka je A = {a, b, c,..} skup atomnih objekata .
Koristei konstrukte za: Skupove, Liste, Relacije,
dobivamo skupove neatomnih (sloenih) objekata
Primjer
A = Alf I R Dat Novac Graf atomni obj.

S = {{a, b}, C,..}; L = {<a, b, a, c>, <>, ..};
R = {r1, r2,..}; K = {<r1, S1, {a}>,..} sloeni obj.
Atribut A je atomni (jednostavan) atribut ako se
Dom(A) sastiji samo od atomnih objekata;
u protivnome, A je sloen atribut.
(R, F) je u 1NF ako su svi atributi iz R atomni atributi.

(R, F) je u poopenoj NF ako je svaki atribut iz R
jednostavan ili sloen.
1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF
Strogost (jaina) normalnih formi
U daljem pretpostavljamo: (R, F) je u 1NF .
2NF :
(R, F) je u 2NF ako s obzirom na F ne postoji
parcijalna zavisnost nekljunog atributa od kljua.

3NF :
(R, F) je u 3NF ako s obzirom na F ne postoji
tranzitivna zavisnost nekljunog atributa od kljua.
Zatvara skupa zavisnosti F :

F
+
= {f e FZ(R) F f }
BCNF (Boyce, Codd) :
(R, F) je u BCNF ako za svaku netrivijalnu
funkcijsku zavisnost X Y e F
+
vrijedi:

Lijeva strana zavisnosti X sadri klju od (R, F) .
Slijedi uvodni primjer koji je motivacija za
uvoenje normalnih formi.
Uvodi se pojam redundancije i postupak uklanjanja
redundancije.
Primjer
R = Artikl#, Dobavlja#, Grad;
F: Dobavlja# Grad
do (Artikl# Dobavlja# Grad)
========================
a1 d1 Zagreb
a2 d1 Zagreb
a3 d1 Zagreb
a2 d3 Sisak
a4 d2 Rijeka
Semantika
(a, d, g) e do znai da dobavlja d lociran u gradu g
dobavlja artikl a .
Redundancija:
Ponavljanje grada dobavljaa za svaki artikl.
Precizno,
do(Artikl# Dobavlja# Grad)
=========================
a1 d1 Zagreb
a2 d1 ?
? = Zagreb, jer vrijedi Dobavlja# Grad
Anomalije
(AB) Anomalija brisanja:
Brisanjem redova za artikle a1, a2, a3 (kada d1
prestane dobavljati navedene artikle), gubimo
informaciju o dobavljau i pripadnom gradu
(nepoeljan efekt)
(AU) Anomalija upisivanja:
Nemogunost upisivanja dobavljaa i pripadnog grada
ako dani dobavlja trenutno ne dobavlja neki artikl.
(AM) Anomalija modifikacije:
Nemogunost nezavisnog auriranja vrijednosti
atributa Grad .
Napomena
(AB) i (AU) ne moemo rijeiti pomou Null .
Zato ?
Uzrok promlema:
Postoji parcijalna zavisnost nekljunog atributa Grad
o kljuu K = Artikl#, Dobavlja.
Znai,
(R, F) nije u 2NF .
Rjeenje problema:
Koristei funkcijsku zavisnost Dobavlja# Grad
inimo dekompoziciju (na dvije komponente)
Dobavlja# Grad
Dobavlja#, Grad Dobavlja#, Artikl#
Ovakvo dekomponiranje osigurava uvanje informacije
R1: R2:
Relacija do zamjenjuje se s dvije relacije
do1 = H[Dobavlja# Grad] (do) ,
do2 = H[Dobavlja# Artikl#] (do)
Nae rjeenje ima sljedea svojstva:

(A) d(R): R1, R2 je 2NF dekompozicija, tj.
pripadne relacijske sheme
(Dobavlja#, Grad; H|Dobavlja#, Grad|(F)) i
(Dobavlja#, Artikl#; H|Dobavlja#, Artikl#|(F))
su u 2NF ;

(B) d(R) uva informaciju (do = do1 do2);

(C) d(R) uva skup zavisnosti F , tj.
HR1(F) HR2(F) F .
Zadatak
R = ABCD, F: A C, B A

Ispitati da li je (R, F) u 2NF. Ako nije izvrite 2NF
dekompoziciju koja uva informaciju.
(R, F) moe biti u 2NF , a da i dalje postoje
redundancija (i anomalije).
Primjer
R = Radnik#, Poduzee, Grad
F: Radnik# Poduzee, Poduzee Grad
K: Radnik# (jedini klju)
(R, F) je u 2NF, a nije u 3NF Zato ?
Tranzitivni dijagram
Radnik#
Poduzee Grad
nfz
Klju
Nekljuni atribut
Propozicija
Neka je (R, F) rel. shema i neka F ne sadri
nestandardne zavisnosti (C Y) .
Tada
(A) svaka dvokomponentna rel. shema
(A1A2, H|A1, A2|(F)) je u 2NF, 3NF, BCNF;

(B) (R, F) je u 2NF ako su svi kljuevi od (R, F)
jednolani (sastoje se samo od jednog atributa)
Nastavak primjera
r(Radnik# Poduzee Grad)
=====================
R1 In2 Zagreb
R2 In2 Zagreb
R3 In2 Zagreb
R4 Bp Karlovac
Semantika
Ra, Po, Gr) e r : Radnik Ra je zaposlen u poduzeu Po
koje je locirano u gradu Gr.
Redundancija: ponavljanje grada poduzea za svakog
zaposlenog radnika.
R1 In2 Zagreb
R2 In2 ?
? = Zagreb
Zato ?
Vrijedi Poduzee Grad
Temeljem zavisnosti Poduzee Grad dobivamo
dekompoziciju
Poduzee Grad
d(R): Poduzee, Grad ; Radnik#, Poduzee,
Poduzee, Grad
Poduzee, Radnik#
d(R) je 3NF dekompozicija koja uva informaciju
i zavisnosti
Baza podataka sastojat e se od projekcija relacije r na
komponente dobivene dekompozicije
r1 = H[Poduzee, Grad](r)
r2 = H[Radnik#, Poduzee](r)
Vrijedi: r = r1 r2
Zadatak
R = ABCD, F: A B, A C, A D
Ispitati da li je (R, F) u 3NF. Ako nije, onda izvrite
3NF dekompoziciju koja uva informaciju
(R, F) moe biti u 3NF, a da i dalje postoje redundacija
i anomalije; zato se uvodi BCNF
Primjer
R = ABC, F: AB C, C B


(R, F) je u 3NF, a nije
u BCNF.
K1 = AB, K2 = AC ; C B netrivijalna fz
Zato ?
Koristei zavisnost C B (uzrok zato (R, F) nije u
BCNF, dobivamo dekompoziciju:
C B
CB
CA
d(ABC): CB, CA
d(ABC) je u BCNF , uva informaciju, ali ne
uva zavisnosti F .
Zadatak1
Dokaite da d(ABC) ne uva zavisnosti F
Zadatak2
Ne postoji BCNF dekompozicija od (ABC, F) koja
uva informaciju i zavisnosti.
Dekomponiranje preko funkcijske zavisnosti
X Y
XY
X(R \ XY)
Propozicija (odnos normalnih formi)
Pretpostavljamo (R, F) u 1NF.
(A)
Ako je (R,F) u BCNF onda je (R, F) u 3NF.

(B)
Ako je (R, F) u 3NF , onda je (R, F) u 2NF.
Dokazati navedenu propoziciju
Propozicija
Via normalna forma povlai niu normalnu formu
Napomena: u dokazu koristiti kontrapoziciju
PROBLEM OBLIKOVANJA BAZE PODATAKA
(R, F) BP
r(R)


Redundancija+ Anomalije
d(R) : R1, R2,.., Rk (A) U eljenoj NF
(B) uva informaciju
(C) uva zavisnosti F
SBP: (R1, HR1(F)), (R2, HR2(F),.., (R2, HRk(F))
Smanjena redundancija i anomalije
BP: HR1(r)


HR1(r)

...
HRk(r)


Propozicija
Za svaku shemu (R, F), gdje je F _ FZ(R), postoji
3NF dekompozicija koja uva informaciju i
zavisnosti.
Dokaz: (algoritam sinteze 3NF preko kanonskog
pokrivaa) .
Kanonski pokriva od F , kp(F)
[1] Desno razbijanje
[2] Lijeva redukcija
[3] Izbacivanje redundantnih (suvinih) zavisnosti
F
kp(F) [1], [2], [3]
ALGORITAM SINTEZE 3NF
Ulaz: (R, F), F _ FZ(R)
Izlaz: d(R): R1,.., Rk sa svojstvima
(a) d(R) je 3NF dekompozicija, tj.,
(R1, H|R1|(F)),.., (Rk, H|Rk|(F)) su u 3NF;
(b) d(R) uva informaciju;
(c) d(R) uva zavisnosti.
Postupak:
1. Izraunati kp(F);
2. Sinteza komponenti R1,.., Rk;
3. Dodavanje kljua;
4. Smanjenjenje broja komponenti dekompozicije
Primjer (sinteza komponenti)

kp(F) : X1 A1 R1 = X1A1
X2 A2 R2 = X2A2
. .
Xk Ak Rk = XkAk
Primjer (dodavanje kljua)
Ako niti jedna komponenta R1, R2,.., Rk ne sadri
klju za (R, F), onda odredite klju K za (R, F) i
dodajte K kao novu komponentu, tj.
d(R): X1A1, X2A2,.., XkAk, K
Primjer (smanjenje komponenti dekompozicije)
(A) kp(F): X A1
X A2 R1 = XA1A1
Y B1
Y B2 R2 = YB1B2B3
Y B3
(B) d(R): AB, ABCD, CDE, CDEF,
eliminacija
podskupova
d1(R): ABCD, CDEF
Zadatak
Pr. R = ABCDE, F: AB C, C B, CD A
Primijeniti algoritam sinteze 3NF.
Zadatak
R = Predmet#, Nastavnik#, Blok-sat, Dan, Prostorija,
Student#, Ocjena

F: Predmet# Nastavnik#
Blok-sat, Dan, Prostorija Predmet#
Blok-sat, Dan, Nastavnik# Prostorija
Student#, Predmet# Ocjena
Blok-sat, Dan, Student# Prostorija

Primijeniti algoritam sinteze 3NF.
Ternarna veza
sudjeluje (Radnik, Projekt, Posao)
Radnik sudjeluje na Projektu vrei Posao
Radnik
Projekt
Posao
sudjeluje
Konkretizacija
Radnik
Projekt
Posao
R1
R2
R3
P1
P2

Savjetnik
Voa
Dizajner


sudjeluje (Radnik Projekt Posao)
=============================
R1 P1 Savjetnik
R1 P2 Voa
R2 P2 Dizajner
sudjeluje (Radnik, Projekt, Posao)
Radnik sudjeluje na Projektu vrei Posao
Radnik
Projekt
Posao
sudjeluje
PP1: Jedan radnik na jednom projektu obavlja jedan posao
PP2: Jedan posao jedan radnik obavlja na jednom projektu
PP3: Danom projektu i poslu moe biti pridrueno vie
radnika (nije ogranienje)
Naznaiti kardinalitete u dijagramu
1..*
1..1
1..1
radnik( r# ,..) projekt( p# ,..)
posao(naziv,..)
sudjeluje( r#, p#, naziv, broj-sati-tj)
naziv not null
on delete cascade on update cascade
Imamo sljedee funkcijske zavisnosti
F: r#, p# naziv
r#, naziv p#
Promjena prolog primjera (veza s logikim oblikovanjem)
PP1: Jedan radnik na jednom projektu obavlja jedan posao
PP2: Jedan posao jedan radnik obavlja na jednom projektu
PP3: Jedan posao obavlja se na jednom projektu
Imamo sljedee funkcijske zavisnosti
F: r#, p# naziv
r#, naziv p#
naziv p#
,..) r# radnik( ,..) p# projekt(
,..) naziv posao(
tj) - sati - naziv, broj r#, p#, sudjeluje(
Ova relacijska shema nije dobra
Bit e dekomponirana uvaavajui naziv p#
POSTUPCI OBLIKOVANJA BAZE PODATAKA
AD
Logiko oblikovanje LO
(R, F)
SRBP
Konceptualno oblikovanje KO
ER dijagram
SRBP
AD
KO
LO
SRBP
4NF , 5NF, 6NF
4NF , 5NF i 6NF temelje se na zavisnostima spoja;
4NF definira se pomou zavisnosti spoja specijalnog
tipa tzv. vieznanih zavisnosti.
VIEZNANA ZAVISNOST
Primjer
R = Artikl#, Boja, Odjel#
Semantika: Tabelirat emo artikle, njihovu boju i
odjel koji koristi taj artikl.
Ogranienje:
Svakom artiklu odgovara skup boja, nezavisno od
odjela, tj. skup je boja danog artikla isti za svaki
odjel koji koristi taj artikl.
Navedeno ogranienje piemo u obliku vieznane
zavisnosti Artikl# Boja
r(Artikl# Boja Odjel#)
==================
A1 crvena O1
A1 plava O2
A1 plava O1
A1 crvena O2
U r vrijedi Artikl# Boja
Artikl# Boja
R1: Artikl#, Boja
R2: Artikl#, Odjel#
Vrijedi
Artikl# Boja = (R1, R2)
Zadatak
Provjerite (R1, R2) u r.
Zadatak
U r vrijedi i zavisnost
Artikl# Odjel# ?
Formalizacija
R - skup atributa, X, Y _ R.
Izraz X Y zovemo vieznana zavisnost.
X Y vrijedi u r nad R ako u r vrijedi
(XY, X(R XY))
Primjer
Ispitati u r : AB C, A D, AB B,
AC BD
r(A B C D)
==========
1 0 1 1
1 0 0 1
2 1 0 1

X Y je trivijalna vieznana zavisnost ako je
Y _ X ili XY = R .
Skup svih vieznanih zavisnosti nad R oznaavamo
sa VZ(R)
Propozicija (trivijalna vieznana zavisnost)
Trivijalna vieznana zavisnost X Y e VZ(R)
vrijedi u svakoj relaciji r nad R .
Pravila rezoniranja o vieznanim zavisnostima
1. X Y X Y ; obrat ne vrijedi,
2. X Y X X (R XY)
(komplementiranje)

3. X Y, Y Z X (Z Y)
(tranzitivnost)

4. X Y, X Z X YZ
(unija)

5. Iz X Y ne slijedi X Z , gdje je Z _ Y
FVZ(R) skup svih funkcijskih i vieznanih zavisnosti
nad R .
RJEAVANJE I-problema ZA FUNKCIJSKE I
VIEZNANE ZAVISNOSTI
Koristimo Bazu zavisnosti

Neka je F _ FVZ(R) , X _ R .
Neka je V skup vieznanih zavisnosti definiran
ovako:
(a) Svaka vieznana zavisnost iz F je u V;
(b) Za svaku funkcijsku zavisnost X A1..Ak iz F ,
u V staviti vieznane zavisnosti
X A1,.., X Ak .
Baza zavisnosti od X s obzirom na V , BZ(X, V) , je
particija od R X , dobivena sljedeim algoritmom:
Algoritam (baza zavisnosti)
Ulaz: X _ R , V _ VZ(R)
Izlaz: BZ(X, V)
Postupak:
1. X0 = R X
2. Izabrati zavisnost V W e V tako da bude
V X0 = C i W X0 = C . Ako takva zav.
ne postoji, onda je BZ(X, V) = X0, inae stavite
3. X1 = X0 W , X2 = X0 W .
4. Primijeniti 2. na X1 i X2 .
5. Navedeni postupak ponavljati dok ne doemo do
skupova atributa T1,.., Tm koje vie nije
mogue dekomponirati.
6. BZ(X, V) = {T1,.., Tm}
Primjer
R = ABCD, F: A B, B CD, C A
Izraunati BZ(C, V)
Algoritam (rjeava implikacijski problem)

Ulaz: F _ FVZ(R), f: X Y ili f: X Y , gdje su
X, Y _ R, X Y = C .
|X Y X (Y X) ; isto za |
Izlaz: DA ako F f
NE ako F f
Postupak:
1. Transformirati F u V .
2. Izraunati BZ(X, V) .
3. F X Y ako i samo ako je Y unija nekih
lanova iz BZ(X, V) .
F X A ako i samo ako
(a) A e BZ(X, V) i
(b) Postoji Xi Yi u F
takva da
A Xi = C i A e Yi .
Napomena: X A1...Ak X A1,.., X Ak
Primjer
R = ABCD, F: A B, B C, B D
(a) Rijeiti I-probleme
F A C ; F B A

(b) Pronai sve kljueve za (R, F)
(R, F), F _ FVZ(R), Ri _ R .
Projekcija skupa zavisnosti F na skup atributa Ri je
skup zavisnosti H|Ri|(F) koji se definira ovako:
(1) X Y e H|Ri|(F) ako
X Y e FVZ(R) i F X Y i XY _ Ri ;
(2) X Y e H|Ri|(F) ako
X Y e FVZ(R) i -X Z e FVZ(R):
F X Z i Z Ri = Y .
Napomena: vieznana zavisnost X Y moe
biti u H|Ri|(F) iako ne slijedi iz F
Primjer
R = ABCD, F: A B, B C, B CD
Ispitati da li vrijedi:
(a) A C e H|ABC|(F) ;
(b) B D e H|ABD|(F) .
(R, F) moe biti u BCNF, a da i dalje postoji
redundancija (i anomalije).
Primjer
R = Artikl#, Boja, Odjel# F: Artikl# Boja
K = R ; (R, F) je u BCNF Zato ?
Postoji redundancija koja se oituje na slijedei nain:
r(Artikl# Boja Odjel#)
===================
A1 crvena O1
A1 plava O2
redundantno, jer
A1 plava O1
A1 crvena O2
vrijedi Artikl# Boja
Uzrok redundancije je netrivijalna vieznana
zavisnost Artikl# Boja , ija lijeva strana ne
sadri klju.
Rjeenje problema:
Artikl# Boja
d(R):
r reprezentiramo pomou H|R1|(r) i H|R2|(r)
R2 = Atrikl#, Odjel# R1 = Artikl#, Boja
Vrijedi r = H|R1|(r) H|R2|(r)
uvanje informacije
4NF
Neka je F _ FVZ(R) .
(R, F) je u 4NF ako za svaku netrivijalnu zavisnost
X Y iz F
+
vrijedi da lijeva strana X sadri
klju za (R, F).
Zadatak
R = ABC, F: A C, B AC
Ispitati je li (R, F) u 4NF, te ako nije, onda odrediti
4NF dekompoziciju koja uva informaciju
FVS(R) je skup svih funkcijskih, vieznanih
zavisnosti i zavisnosti spoja nad R .
5NF
F _ FVS(R)
(R, F) je u 5NF ako svaka netrivijalna zavisnost
spoja iz F
+
ima svojstvo da sve njene komponente
sadre klju.
Primjer
R = AB, F: (A, B)
Da li je (R, F) u 5NF ?
Ako nije, onda odredite 5NF dekompoziciju koja uva
informaciju.
6NF
F _ FVS(R)
(R, F) je u 6NF ako u F
+
ne postoji netrivijalna
zavisnost spoja.
Primjer
Napisati (R, F) koja je u 5NF, a nije u 6NF
Primjer
Zadana je relacijska shema (R, F), gdje je
R = R#, ZO#, Plaa, Odjel, BudzetO
F: Odjel BudzetO
K1 = R# K2 = ZO#
Analizirati (R, F) s obzirom na normalne forme

You might also like