Baze Podataka PoslijediplomskiMaterijali

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

Mirta Baranovi

Slaven Zakoek



Baze podataka

Poslijediplomski doktorski studij
Nastavni materijali








Sveuilite u Zagrebu Fakultet elektrotehnike i raunarstva
2005.



Sadraj

1 Uvod ........................................................................................................................................... 4
2 Relacijski model podataka .......................................................................................................... 5
2.1 Operacije s relacijama ........................................................................................................ 6
2.2 Funkcijske zavisnosti .......................................................................................................... 9
3 Uvod u normalizaciju sintezom ................................................................................................12
3.1 e!inicije osnovni" pojmova ............................................................................................12
4 Funkcijske zavisnosti ................................................................................................................14
4.1 #l$oritam %#&'%F'(% .........................................................................................................14
4.2 )edostaci al$oritma za normalizaciju dekompozicijom...................................................16
4.3 %vojstva al$oritma za normalizaciju sintezom .................................................................1*
4.4 +ravila za izvo,enje !unkcijski" zavisnosti .......................................................................1-
4.5 .atvara/ skupa !unkcijski" zavisnosti ...............................................................................19
4.6 Upora0a pravila izvo,enja !unkcijski" zavisnosti .............................................................19
4.* .atvara/ skupa atri0uta ....................................................................................................21
4.- erivacijski nizovi .............................................................................................................21
4.-.1 23aksiomi ..................................................................................................................21
4.-.2 R#+ derivacijski niz ...................................................................................................21
4.-.3 erivacijski usmjereni acikli/ki $ra!ovi 4#56 ........................................................22
4.9 &estiranje pripadnosti zatvara/u skupa !unkcijski" zavisnosti .........................................24
4.9.1 5eneriranje zatvara/a 7
8
3 al$oritam 9:O%UR(........................................................24
4.9.2 (!ikasnost al$oritma .................................................................................................26
4.9.3 (!ikasnost al$oritma 9:O%UR( .................................................................................26
4.9.4 Unapre,enje al$oritma 9:O%UR( ............................................................................26
4.11 +okriva/ skupa !unkcijski" zavisnosti ...............................................................................31
4.11.1 )eredundatni pokriva/i ............................................................................................31
4.11 %uvi;ni atri0uti u !unkcijskim zavisnostima ......................................................................31
4.11.1 :ijeva 4desna6 redukcija ............................................................................................31
4.11.2 Redukcija skupa !unkcijski" zavisnosti .....................................................................33
4.12 +articija skupa !unkcijski" zavisnosti................................................................................33
4.13 <inimalni pokriva/i ..........................................................................................................34



4.14 %lo=ene !unkcijske zavisnosti ...........................................................................................36
4.15 Reduciranje skupa slo=eni" !unkcijski" zavisnosti ...........................................................3-
4.16 +rovedivost skupa F. ........................................................................................................3-
5 #l$oritam za normalizaciju sintezom .......................................................................................41
5.1 'z$radnja al$oritma za sintezu ..........................................................................................41
5.2 #l$oritam za normalizaciju sintezom ...............................................................................43
5.3 %vojstva al$oritma sinteze ................................................................................................44
5.3.1 Univerzalni klju/ i uvjet reverzi0ilnosti dekompozicije ............................................44
5.3.2 +o0olj;anje al$oritma za sintezu ..............................................................................45
6 Ostale metode za normalizaciju sintezom ...............................................................................4*
* >i;ezna/ne i spojne zavisnosti .................................................................................................4-
*.1 >i;ezna/ne zavisnosti i /etvrta normalna !orma6 ...........................................................4-
*.1.1 >i;ezna/ne zavisnosti 4>.6........................................................................................4-
*.1.2 ?etvrta normalna !orma @ 4)F ................................................................................53
*.1.3 )ormalizacija na /etvrtu normalnu !ormu ...............................................................53
*.2 %pojne zavisnosti i projekcijsko3spojna normalna !orma ................................................54
*.2.1 %pojne zavisnosti @ %. 4en$. Aoin ependencies 3 A6 ..............................................54
*.2.2 %pojno3projekcijska normalna !orma 4+A)F6 ............................................................56
- Ostale zavisnosti .......................................................................................................................5*
-.1 .avisnosti uklju/ivanja ......................................................................................................5*
-.1.1 +ravila koja vrijede za zavisnosti uklju/ivanja ..........................................................5-
-.2 .avisnosti de!inirane predlo;cima ...................................................................................59
-.3 )ormalna !orma domene i klju/a @ BC)F ......................................................................61
9 :iteratura ..................................................................................................................................61


4

1 Uvod
Ovo su nastavni materijali za predmet Baze podataka koji se predaje na
poslijediplomskom doktorskom studiju na Sveuilitu u Zagrebu Fakultetu elektrotehnike i
raunarstva. Ovom predmetu prethode predmeti Baze podataka na preddiplomskom
studiju te predmeti Napredni modeli i baze podataka te Sustavi baza podataka na
diplomskom studiju Sveuilita u Zagrebu Fakulteta elektrotehnike i raunarstva.
U preddiplomskom studiju na predmetu Baze podataka izuavaju se osnove baza
podataka te izmeu ostaloga relacijski model podataka. Tema relacijskih baza podataka
obraena je kroz definiciju relacijskog modela, operacije s relacijama koje su
predstavljene relacijskom algebrom, oblikovanje relacijskog modela metodom
dekompozicije, integritetska ogranienja te relacijski upitni jezik SQL.
Cilj je predmet Baze podataka poslijediplomskog doktorskog studija produbiti teorijska
znanja o relacijskim bazama podataka i dati novi pogled na operacije s relacijama koje su
prikazane relacijskim predikatnim raunom, na metode oblikovanja relacijskog modela
baze podataka metodom sinteze te pruiti uvid u vie razine zavisnosti meu podacima i
daljnje postupke normalizacije i teorije zavisnosti.
Smatramo da e studenti kroz ovaj kolegij stei znanja koja su im nuna za istraivanje u
podruju baza podataka tijekom njihovog poslijediplomskog studija i izrade doktorske
disertacije.

Mirta Baranovi
Slaven Zakoek


5

2 Relacijski model podataka
Definiraju se osnovni pojmovi relacijskog modela podataka.
Atribut je naziv svojstva entiteta. Prema [Date2000] atribut je naziv stupca
dvodimenzionalne tablice (relacije).
Uobiajeno je da se atributi oznaavaju slovima A, B, C, ..., a skupovi atributa slovima X,
Y, Z, ...
Za prikaz unije skupova atributa koristit e se slijedea notacija: X Y Z X Y Z.
Domena (podruje definicije) atributa A s oznakom D = DOM(A) je konaan ili prebrojiv
skup vrijednosti koje moe poprimiti atribut A. Vrijednosti unutar jedne domene moraju
biti istog tipa. Domena je jednostavna ukoliko su njezine vrijednosti nedjeljive (engl.
atomic) u okviru promatrane baze podataka. Alternativno, jednostavnu domenu je
mogue definirati kao domenu koja ne sadri skupove ili n-torke.
Shema relacije R ili intenzija (engl. intension) je imenovani skup atributa { A
1
, A
2
, ..., A
n
}.
Koristit e se sljedei oblik notacije
R = A
1
A
2
... A
n

n-torka t (A
1
, A
2
, ..., A
n
) definirana na shemi R = { A
1
, A
2
, ..., A
n
} je preslikavanje s
relacijske sheme R na skup vrijednosti D

= D
1
D
2
... D
n
uz ogranienje da je t (A
i
)
D
i
, 1 i n. Pri tome oznaka t(A) predstavlja vrijednost koju atribut A poprima u n-torki t.
t(A) se naziva A-vrijednost n-torke t.
Neka je X R . n-torka t reducirana na skup atributa X se naziva X-vrijednost n-torke t i
oznaava s t(X).
Relacija r ili ekstenzija (engl. extension), opisana shemom relacije R = { A
1
, A
2
, ..., A
n
}, je
konaan skup n-torki { t
1
, t
2
, ..., t
p
} definiranih na relacijskoj shemi R. Relacija r definirana
na relacijskoj shemi R oznaava se s r(R) ili r(A
1
A
2
... A
n
).
Klju relacije r definirane na relacijskoj shemi R je njezin podskup K R sa svojstvom
da za svake dvije razliite n-torke t
1
i t
2
u R, t
1
(K) t
2
(K) i ne postoji K' K koji ima isto
svojstvo.
Ako je K klju relacije r definirane na relacijskoj shemi R, svaki skup K', K K' R, je
superklju relacije r.
Za klju ili superklju K vrijedi da u relaciji r ne postoje dvije n-torke koje imaju jednake
vrijednosti na svim atributima iz K. Posljedica toga je da K-vrijednosti n-torke jedinstveno
odreuju n-torku.
Relacija r moe imati vie razliitih kljueva. Svi kljuevi koji se eksplicitno navode su
imenovani, oznaeni (engl. designated) kljuevi. Ponekad se meu njima odreuje
primarni klju. Kljuevi koji nisu eksplicitno navedeni nazivaju se implicitnim kljuevima.

6


2.1 Operacije s relacijama

Spajanje n-torki
Neka su a = (a
1
, a
2
, ...a
k
) i b = (b
1
, b
2
, ..., b
m
) n-torke. Operacija spajanja n-torki oznaava
se s a ^ b, a definira pomou izraza
a ^ b = (a
1
, a
2
, ...a
k
, b
1
, b
2
, ..., b
m
).

Preimenovanje atributa
Neka je r relacija definirana na shemi R i neka su A i B atributi, A R, B R \ A. Neka je
DOM(A) = DOM (B). Neka je R' = (R \ A) B. Operacija preimenovanja atributa A u B u
relaciji r oznaava se s
AB
(r), a definira pomou izraza

AB
(r) = r'(R') = { t' | t r, t'(R \ A) = t(R \ A) t'(B) = t(A) }

Neka su A
1
, A
2
, ..., A
k
razliiti atributi u R i neka su B
1
, B
2
, ..., B
k
razliiti atributi koji nisu
lanovi skupa R \ (A
1
, A
2
, ..., A
k
). Neka je DOM(A
i
) = DOM(B
i
), za 1 i k. Simultano
preimenovanje atributa A
1
, A
2
, ..., A
k
u atribute B
1
, B
2
, ..., B
k
u relaciji r oznaava se s

A1, A2, ..., AkB1, B2, ..., Bk


(r)

Unijska kompatibilnost relacija
Dvije relacije r i s definirane na shemama R i S, odnosno njihove sheme R i S su unijski
kompatibilne ukoliko postoji 1:1 preslikavanje
f : R S, f (A
i
) = B
j
, f
-1
(B
j
) = A
i
, pri emu je A
i
R, B
j
S, DOM(A
i
) = DOM(B
j
).

Presjek relacija
Neka su r i s unijski kompatibilne relacije definirane na shemama R i S. Operacija
presjeka relacija r i s oznaava se s r s, a definira izrazom
r s = q(R) = { t | t r t s }

Unija relacija
Neka su r i s unijski kompatibilne relacije definirane na shemama R i S. Operacija unije
relacija r i s oznaava se s r s , a definira izrazom
r s = q(R) = { t | t r t s }

Razlika relacija
Neka su r i s unijski kompatibilne relacije definirane na shemama R i S. Operacija razlike
relacija r i s oznaava se s r \ s, a definira izrazom
r \ s = q(R) = { t | t r t s }








7

Kartezijev produkt relacija
Neka su r i s relacije. Operacija Kartezijev produkt relacija r i s oznaava se r s, a
definira izrazom
r s = {( t
r
^ t
s
) | t
r
r t
s
s }

Kartezijev produkt relacija ne mora nuno biti relacija.

Formula
Neka je r relacija definirana na shemi R i neka su A i B atributi iz R. Neka je relacijski
operator iz skupa {=, , >, , <, }. Neka je c konstanta iz skupa DOM (A). Formula F je
definirana rekurzivnim izrazom:
1. A B, A c, c A su formule. Ove formule se nazivaju jednostavne formule
(atomi).
2. Ako su G i H formule, tada su GH, GH, G, H takoer formule.
3. Nita drugo nije formula.

Neka je R = A
1
, A
2
, ..., A
k
i neka je r relacija definirana na shemi R. Formula F je
primjenjiva na r ukoliko su konstante koje se pojavljuju u F iz skupa DOM(A
1
) DOM(A
2
)
... DOM(A
k
), a atributi koji se pojavljuju u F su atributi iz skupa R.

Selekcija relacije
Neka je r relacija definirana na shemi R i neka je F formula primjenjiva na r. Operacija
selekcije nad relacijom r uz uvjet selekcije F se oznaava s
F
(r), a definira izrazom

F
(r) = q(R) = { t | t r t zadovoljava F }

Projekcija relacije
Neka je r relacija definirana na shemi R i neka je X skup atributa, X R. Operacija
projekcije relacije r na skup atributa X se oznaava s
X
(r), a definira izrazom

X
(r) = q(X) = { t (X) | t r}

Lema 2-1
Neka su r
i
, 1 i k, relacije definirane na shemi R. Neka je X skup atributa i neka je X
R. Vrijedi
k k

X
( r
i
) =
X
(r
i
)
i=1 i=1

Dokaz
k k k k k

X
( r
i
) =
X
{ t | (t r
i
) } = { t (X) | (t r
i
) } = { t (X) | t r
i
) } =

(
X
(r
i
) )
i=1 i=1 i=1 i=1 i=1








8

Theta-pridruivanje relacija
Neka je relacijski operator iz skupa {=, , >, , <, }. Neka su r i s relacije definirane na
shemama R i S. Neka su A i B atributi, A R i B S. Operacija theta-pridruivanja
relacija r i s na osnovi formule A B oznaava se s r >< s, a definirana je izrazom

A B

r >< s = { t
r
^ t
s
| t
r
r t
s
s t
r
(A) t
s
(B) }
A B

Rezultat theta-pridruivanja relacija ne mora nuno biti relacija.

Umjesto jednostavne formule A B, kao formula pridruivanja moe se koristiti sloena
formula dobivena konjunkcijom jednostavnih formula oblika A
i
B
j
, pri emu je A
i
R i B
j

S.

Pridruivanje relacija s izjednaavanjem (engl. equi-join)
Pridruivanje relacija s izjednaavanjem je poseban oblik theta-pridruivanja u kojem se
kao operator koristi iskljuivo operator jednakosti (=).

Prirodno pridruivanje relacija
Neka su r i s relacije definirane na shemama R i S. Operacija prirodnog pridruivanja
relacija r i s oznaava se s r >< s, a definira izrazom
r >< s = q(RS) = { t | t
r
r t
s
s, t(R) = t
r
t

(S) = t
s
}

Lema 2-2
Neka je r relacija definirana na shemi R koja sadri samo jedan atribut, R=A. Neka r
sadri n-torke t
1
, t
2
, ...t
k
, t
i
(A) = a
i
, a
i
DOM(A), 1 i k, A = {a
i
| 1 i k }. Neka je
relacija s definirana na shemi S, S R = A. Vrijedi izraz:
r >< s =
A=ai
(s)
a
i
A

Dokaz
r >< s = { t | ( t
r
r) ( t
s
s) (t
r
= t(R) t
s
= t(S)) } =
= { t | ( t
s
s) ( t(A) A t
s
= t(S)) } =
= { t | ( t s) ( t(A) A } =
= { t | ( t s) ( t(A) = a
i
} =
A=ai
(s)
a
i
A a
i
A




Dijeljenje relacija
Neka su r i s relacije definirane na shemama R i S i neka je R = XY. Neka je skup atributa
Y unijski kompatibilan sa shemom S. Operacija dijeljenja relacije r s relacijom s oznaava
se s r / s, a definira izrazom
r / s = q(X) = { t | (t
s
s) (t
r
r), t
r
(X) = t t
r
(S) = t
s
}


9

2.2 Funkcijske zavisnosti

Funkcijska zavisnost
Neka je r relacija definirana na shemi R, s X R i Y R. Relacija r zadovoljava funkcijsku
zavisnost X Y ako za bilo koju X-vrijednost x,
Y
(
X = x
(r)) ima najvie jednu n-torku.

Drugim rijeima, relacija r zadovoljava funkcijsku zavisnost X Y ako za svake dvije n-torke
t
1
, t
2
vrijedi:
t
1
(X) = t
2
(X) t
1
(Y) = t
2
(Y).

U funkcijskoj zavisnosti X Y, X se naziva lijevom stranom funkcijske zavisnosti, a Y se
naziva desnom stranom funkcijske zavisnosti.


Pravila koja vrijede za funkcijske zavisnosti

Pravila koja vrijede za funkcijske zavisnosti obino se spominju kao Armstrongovi aksiomi
i dodatna pravila. Za se aksiome i pravila koja slijede, ako nije drugaije definirano,
vrijedi:

R je relacijska shema s univerzalnim skupom atributa U, r je relacija definirana na shemi
R. X, Y, Z, V skupovi atributa, pri emu vrijedi: X U, Y U, Z U, V U

Armstrongovi aksiomi

A-1 REFLEKSIVNOST

Ako je Y X U, tada vrijedi X Y
Ovaj se aksiom naziva jo i Aksiom o trivijalnoj funkcijskoj zavisnosti.

Diskusija:
Ako relacija r(R) zadovoljava funkcijsku zavisnost X Y, tada
Y
(
X = x
(r)) ima najvie
jednu n-torku.

Neka su t
1
i t
2
n-torke iz r.
Ako je Y X, i ako vrijedi da je t
1
(X) = t
2
(X) tada vrijedi i t
1
(Y) = t
2
(Y), odnosno,

Y
(
X = x
(r)) ima najvie jednu n-torku.

A-2 UVEANJE

Ako u relaciji r vrijedi X Y i ako je Z U, tada vrijedi i XZ Y u r.

Diskusija:
Ako r zadovoljava XY, tada
Y
(
X=x
(r)) sadri najvie jednu n-torku za svaku
vrijednost x od X. Ako je Z U, tada je
XZ=xz
(r)
X=x
(r), odnosno vrijedi:

Y
(
XZ=xz
(r))
Y
(
X=x
(r)), to znai da
Y
(
XZ=xz
(r)) moe sadravati najvie jednu
n-torku.

10


A-3 TRANZITIVNOST

Ako u relaciji r vrijedi X Y i Y Z, tada u r vrijedi i X Z.

Diskusija:
Neka r zadovoljava X Y i Y Z i neka su t
1
i t
2
n-torke iz r, za koje vrijedi:
t
1
(X) = t
2
(X) t
1
(Y) = t
2
(Y)
t
1
(Y) = t
2
(Y) t
1
(Z) = t
2
(Z), iz ega slijedi:
t
1
(X) = t
2
(X) t
1
(Z) = t
2
(Z), to znai da r zadovoljava X Z.

Dodatna pravila za funkcijske zavisnosti

P-1 PRAVILO UNIJE

Ako u relaciji r vrijedi X Y i X Z , tada vrijedi i X YZ u r ( X Y Z ).
Ovo se pravilo jo naziva Pravilo o aditivnosti.

Diskusija:
Ako r zadovoljava X Y i X Z, tada
Y
(
X = x
(r)) i
Z
(
X = x
(r)) imaju najvie jednu n-
torku za svaku vrijednost x od X.

Ako bi
YZ
(
X = x
(r)) imala vie no jednu n-torku, tada bi barem jedna od projekcija

Y
(
X = x
(r)) ili
Z
(
X = x
(r)) morala imati vie no jednu n-torku.

Budui da
Y
(
X = x
(r)) i
Z
(
X = x
(r)) imaju najvie jednu n-torku, r zadovoljava X YZ.


P-2 PRAVILO DEKOMPOZICIJE

Ako u relaciji r vrijedi X Y i ako je V Y, tada vrijedi i X V u r,
(analogno vrijedi i X Y \ V).
Ovo se pravilo jo naziva Pravilo o projektivnosti.

Diskusija:
Ovo pravilo se moe definirati na sljedei nain:
Ako r zadovoljava X YZ, tada zadovoljava i X Y i X Z.

Ako r zadovoljava X YZ, tada
YZ
(
X = x
(r)) ima najvie jednu n-torku za svaku
vrijednost x od X.
Budui da je
Y
(
X = x
(r)) =
Y
(
YZ
(
X = x
(r))),
Y
(
X = x
(r)) moe imati najvie jednu
n-torku za svaku vrijednost x od X, ro znai da r zadovoljava X Y.


PA-3 PRAVILO O PSEUDOTRANZITIVNOSTI

Ako u relaciji r vrijedi X Y i VY Z, tada u r vrijedi i XV Z.


11

Diskusija:
Neka r zadovoljava X Y i VY Z i neka su t
1
i t
2
n-torke iz r, tada vrijedi:
t
1
(X) = t
2
(X) t
1
(Y) = t
2
(Y) i
t
1
(VY) = t
2
(VY) t
1
(Z) = t
2
(Z)

Iz t
1
(XV) = t
2
(XV) t
1
(Z) = t
2
(Z) moe se izvesti:
t
1
(X) = t
2
(X) i
t
1
(Y) = t
2
(Y).
Budui da vrijedi: t
1
(X) = t
2
(X) t
1
(Y) = t
2
(Y), tada:

t
1
(XV) = t
2
(XY) t
1
(VY) = t
2
(VY) t
1
(Z) = t
2
(Z), to znai da r zadovoljava XV Z.


12

3 Uvod u normalizaciju sintezom
Razvoj jezika etvrte generacije prebacio je teite problema razvoja informacijskog
sustava iz podruja kodiranja aplikacijske podrke na podruje projektiranja baze
podataka. Projektiranje baze podataka ukljuuje oblikovanje svih triju razina strukture
baze podataka (fiziku shemu, konceptualnu shemu i vanjsku shemu). Konceptualno
oblikovanje uzima u obzir informacije o podacima i sintetizira ih u cjelovit konceptualni
opis podataka. Oblikovanje konceptualne sheme je samo jedan od koraka u projektiranju
baze podataka, ali se danas nalazi u centru panje. Naime, problem projektiranja fizike
razine praktiki je rijeen pojavom suvremenih posluitelja baza podataka, a problem
definiranja vanjskih shema rjeava se uporabom specijaliziranih jezika etvrte generacije.
Za efikasnu primjenu ovih alata od fundamentalne je vanosti ispravno postavljena
konceptualna shema.
Jedan od vanih postupaka u okviru projektiranja konceptualne sheme relacijske baze
podataka je normalizacija. Poznata metoda normalizacijom dekompozicijom, nije
prikladna za implementaciju na raunalu [Maier1983], prvenstveno zbog neprihvatljive
vremenske sloenosti.
Algoritmi za sintetiziranje konceptualne sheme definirani su relativno rano, meutim
pokazali su znatne nedostatke [Bernstein et Beeri, 1979]. S druge strane, za algoritam
Synthesize [Maier1983] proveden je i formalni dokaz o njegovoj ispravnosti i prihvatljivoj
vremenskoj sloenosti. Algoritmom se na temelju skupa funkcijskih zavisnosti formira
shema baze podataka koja je minimalna i u treoj normalnoj formi.

3.1 Definicije osnovni pojmova
U ovom su poglavlju navedene definicije i osnovni pojmovi potrebnih za razumijevanje
algoritma za normalizaciju sintezom. Svrha ovih definicija je izbjegavanje pogrene
interpretacije koja bi mogla biti posljedica razliitih pristupa tumaenju tih pojmova koji se
mogu pronai u literaturi.
Definicija 1: Shema relacije R je imenovani skup atributa { A
1
, A
2
, ..., A
n
}. Koristit e se
sljedei oblik notacije R = A
1
, A
2
, ..., A
n
. Umjesto koritenjem skupovske notacije,
relacijsku shemu e se u nastavku teksta esto prikazivati jednostavnijom notacijom: R =
A
1
A
2
... A
n

Definicija 2: n-torka t (A
1
, A
2
, ..., A
n
) definirana na shemi R = {A
1
, A
2
, ..., A
n
} je
preslikavanje s relacijske sheme R na skup vrijednosti D

= D
1
D
2
... D
n
uz
ogranienje da je t(A
i
) D
i
, 1 i n. Pri tome oznaka t[A] predstavlja vrijednost koju
atribut A poprima u n-torki t. t[A] se naziva A-vrijednost n-torke t. Oznakom t[X] oznaava
se restrikcija n-torke t na skup atributa X.
Definicija 3: Neka je t n-torka definirana na relacijskoj shemi R i neka je X skup atributa,
X R. n-torka t reducirana na skup atributa X se naziva X-vrijednost n-torke t i oznaava
s t(X).




13

Primjer:
prema definiciji 2: t(A) je vrijednost atributa A u n-torci t
prema definiciji 3: t({A, B}) je n-torka t reducirana na skup atributa {A, B}
t({A}) je n-torka t reducirana na skup atributa {A}

Definicija 4: Relacija r ili ekstenzija (extension), opisana shemom relacije R = {A
1
, A
2
, ...,
A
n
}, je konaan skup n-torki definiranih na relacijskoj shemi R. Relacija r definirana na
relacijskoj shemi R oznaava se s r(R) ili r(A
1
, A
2
, ..., A
n
).
Ovakva definicija ne prejudicira redoslijed n-torki u relaciji, jer definicija skupa dozvoljava
proizvoljan poredak elemenata. Ako se n-torku t promatra kao redak u tablici, t(A) je
vrijednost koju t poprima u stupcu imenovanom atributom A. Mnogi autori pojam relacije
upotrebljavaju za oznaavanje strukture relacije (intencije), a ujedno i kao skup n-torki
koje zadovoljavaju odreenu strukturu (ekstenziju). Ovdje e se razlika vidjeti ve iz same
notacije. Relacijske sheme e se oznaavati iskljuivo velikim slovima (npr. R, S, T,
STUDENT), dok e relacije biti oznaene iskljuivo malim slovima (npr. r, s, t, student).
Definicija 5: Shema baze podataka R je skup relacijskih shema, R = { R
1
, R
2
, ..., R
n
}.
Definicija 6: Baza podataka r na shemi baze podataka R je skup relacija r = { r
1
(R
1
),
r
2
(R
2
), ..., r
n
(R
n
) }.
Definicija 7: Univerzalni skup atributa u shemi baze podataka R je konaan skup atributa
U = { A | A R
j
, R
j
R }
Definicija 8: Klju relacije r definirane na relacijskoj shemi R je njezin podskup K R sa
svojstvom da za svake dvije razliite n-torke t
1
i t
2
u R, t
1
(K) t
2
(K) i ne postoji K' K koji
ima isto svojstvo. Ako je K klju relacije r definirane na relacijskoj shemi R, svaki skup K'
za kojeg vrijedi K K' R, je superklju relacije r.
Za klju ili superklju K vrijedi da u relaciji r ne postoje dvije n-torke koje imaju jednake
vrijednosti na svim atributima iz K. Posljedica toga je da K-vrijednosti n-torke jedinstveno
odreuju n-torku. Relacija r moe imati vie razliitih kljueva. Svi kljuevi koji se eksplicitno
navode su imenovani, oznaeni (designated) kljuevi. Meu imenovanim kljuevima odabire
se jedan koji se proglaava primarnim kljuem. Kljuevi koji nisu eksplicitno navedeni
nazivaju se implicitnim kljuevima.


14

! Funkcijske zavisnosti

Iz definicije baze podataka proizlazi da otklanjanje zalihosti i osiguravanje pouzdanosti
podataka predstavljaju dva vana cilja koja je potrebno dosei tijekom projektiranja baze
podataka. Zato je potrebno koristiti svako unaprijed pristupano znanje o ogranienjima
dozvoljenih vrijednosti podataka.
Jedan od naina da se takva znanja formalno opiu je uporaba koncepta funkcijskih
zavisnosti meu atributima baze podataka. Uvoenje takvog formalnog aparata je
omoguilo istraivanja svojstava relacijskog modela podataka, a ujedno je olakalo i
logiko projektiranje relacijskih baza podataka.

Definicija 9: Relacija r zadovoljava funkcijsku zavisnost X Y ako za svake dvije n-
torke t
1
, t
2
vrijedi:
t
1
(X) = t
2
(X) t
1
(Y) = t
2
(Y).
Definicija 10: U funkcijskoj zavisnosti X Y, X se naziva lijevom stranom funkcijske
zavisnosti, a Y se naziva desnom stranom funkcijske zavisnosti.
U nastavku teksta, funkcijska zavisnost e se esto skraeno pisati kao FZ.
Definiciju 9. funkcijske zavisnosti mogue je interpretirati i na sljedei nain: ako postoji
funkcijska zavisnost X Y, tada nije doputeno da u bazi podataka r postoje dvije n-
torke t
1
i t
2
za koje vrijedi t
1
(X) = t
2
(X) t
1
(Y) t
2
(Y). Dakle, vrijednosti n-torke za skup
atributa X odreuju na jedinstven nain vrijednosti n-torke za skup atributa Y. Ovako
definirana funkcijska zavisnost izgleda kao "pravilo koje se ne smije prekriti". Upravo se
tako i moe shvatiti: kao pravilo integriteta kojeg projektant baze podataka postavlja da bi
sadraj baze podataka unaprijed ograniio na skup nekih dozvoljenih stanja.
Osim funkcijskih zavisnosti aksiomatizirani su i neki drugi tipovi zavisnosti, npr.
vieznane i spojne zavisnosti. Algoritam sinteze ne uzima u obzir te vrste zavisnosti, te
se rezultati dobiveni postupkom sinteze ne mogu uvijek direktno koristiti. Meutim i
samim koritenjem funkcijskih zavisnosti, omoguava se konstrukcija konceptualnog
modela koji ini dobru osnovu za kasnije eventualne modifikacije.

!.1 "l#oritam S"$%SF%&S
Na temelju promatranja vrijednosti u relaciji mogue je odrediti skup funkcijskih zavisnosti
F koju relacija r(R) zadovoljava u odreenom trenutku. Takva informacija sa stanovita
projektiranja baze podataka nema nikakav znaaj, jer se tako odreen skup funkcijskih
zavisnosti mijenja zavisno od stanja relacije.
Postoji algoritam koji je u stanju na temelju podataka u relaciji odrediti da li relacija
trenutno zadovoljava neku funkcijsku zavisnost. Algoritam se naziva SATISFIES i kao
ulaz prihvaa relaciju i funkcijsku zavisnost iju egzistenciju treba ispitati.
Napomena: Svi algoritmi zadrani su u njihovom izvornom obliku, neprevedeni. U
literaturi iz koje su preuzeti, napisani su u nekoj vrsti pseudokoda, po sintaksi slinom
programskom jeziku PASCAL.



15

Algoritam SATISFIES [Maier1983]
Algoritam ispituje zadovoljava li trenutni sadraj relacije r funkcijsku zavisnost X Y.



Sljedei primjer ilustrira koritenje algoritma SATISFIES

Primjer: zadana je relacija osoba
jmbg prez ime godRod
100 Kolar Stjepan 1961
101 Horvat Zdravko 1964
102 Kolar Josip 1958
103 Gotovac Zdravko 1964
ispitivanje zadovoljava li relacija osoba FZ prez godRod. Potrebno je grupirati
n-torke prema vrijednosti atributa prez. Vrijednost atributa godRod nije jednaka u
svim n-torkama jedne grupe FZ ne vrijedi
jmbg prez ime godRod
101 Horvat Zdravko 1964
102 Kolar Josip 1958
100 Kolar Stjepan 1961
103 Gotovac Zdravko 1964
ispitivanje zadovoljava li relacija osoba FZ ime godRod. Potrebno je grupirati n-
torke prema vrijednosti atributa ime. Vrijednost atributa godRod jednaka je u svim
n-torkama jedne grupe FZ "vrijedi za trenutni sadraj relacije"
jmbg prez ime godRod
100 Kolar Stjepan 1961
102 Kolar Josip 1958
103 Gotovac Zdravko 1964
101 Horvat Zdravko 1964
Prethodni primjer pokazuje kako bi opasno bilo zakljuivati o skupu FZ koje vrijede na
nekoj relacijskoj shemi samo na osnovi trenutnog sadraja relacije. Pronalaenje skupa
FZ koje zadovoljavaju sva doputena stanja relacije zahtijeva poznavanje semantike
podataka.



SATISFIES (r, X Y)
1. Sort the relation r on its X column to bring tuples with eual X!"alues together.
2. I# each set o# tuples with eual X!"alues has eual Y "alues, return true.
$therwise, return #alse.


16

!.2 'edostaci al#oritma za normalizaciju dekompozicijom
ULAZ za algoritam normalizacije dekompozicijom:
R = { R
1
, R
2
, ..., R
n
}
F = { f
1
, f
2
, ..., f
m
}
obavljanjem niza operacija projekcija dobiva se REZULTAT:
R' = { R'
1
, R''
1
, R'''
1
, ..., R'
2
, R''
2
, ..., R'
n
, R''
n
, ... }
postupak nije pogodan za strojno izvravanje (NP-kompletan problem)
dobiveni model nije uvijek minimalan
skup F moe biti neprovediv na R'

Primjer: dobiveni model nije uvijek minimalan
R = ABCD F = { A BCD, BC D, C D }


1. varijanta
1NF: R = ABCD K = A uoiti tranzitivnu FZ A BC, BC D
3NF: R
1
= ABC K = A
R
2
= BCD K = BC R
2
nije u 2NF: uoiti parcijalnu FZ C D
R
2
' = BC K = BC
R
2
'' = CD K = C
R = { R
1
, R
2
', R
2
'' }

2. varijanta
1NF: R = ABCD K = A uoiti tranzitivnu FZ A C C D
3NF: R
1
= ABC K = A
R
2
= CD K = C
R = { R
1
, R
2
}
Oito, shema baze podataka dobivena u prvoj varijanti postupka nije minimalna.
Posljedica je to odabira "srednjeg" skupa atributa u tranzitivnoj FZ. Ako se odabere C,
dobije se minimalan model, ako se odabere BC, dobije se model koji nije minimalan.

Primjer: F nije uvijek provediv na R
R = ABCDE F = { A BCDE, CD E, EC B }
1NF: R = ABCDE K = A uoiti tranzitivnu FZ A CD CD E
3NF: R
1
= ABCD K = A
R
2
= CDE K = CD
R = { R
1
, R
2
}
EC B nije provediva na R. O pojmu provedivosti skupa FZ bit e vie rijei u
jednom od kasnijih poglavlja.


17

!.3 Svojstva al#oritma za normalizaciju sintezom
ULAZ za algoritam normalizacije sintezom:
F = { f
1
, f
2
, ..., f
m
}
obavljanjem algoritma normalizacije sintezom dobiva se REZULTAT:
R = { R
1
, R
2
, ..., R
n
}
postupak treba biti prihvatljive vremenske sloenosti
dobiveni model mora uvijek biti minimalan
skup F je uvijek provediv na R

Primjer: Normalizacija sintezom, ulaz i izlaz
ULAZ:
F = { mbrStud prezStud postBr nazMjesto
, jmbg mbrStud
, mbrStud prezStud
, jmbg nazMjesto
, mbrStud imeStud jmbg mbrStud
, postBr nazMjesto }
REZULTAT:
R = { R
1
, R
2
}
R
1
= { mbrStud, jmbg, prezStud, imeStud, postBr }
K
11
= { mbrStud }
K
12
= { jmbg }
R
2
= { postBr, nazMjesto }
K
2
= { postBr }
Sljedea slika prikazuje glavne korake algoritma za sintezu. Svaki od prikazanih
segmenata algoritma bit e detaljnije objanjen u nastavku.










18














!.! (ravila za izvo)enje funkcijski zavisnosti
Definicija 11: Skup funkcijskih zavisnosti F implicira funkcijsku zavisnost X Y, to se
oznaava s F X Y, ako svaka relacija koja zadovoljava sve FZ u F, takoer
zadovoljava i FZ X Y.
Primjer: F = { X Y, Y Z }
F X Z
Pravila za izvoenje funkcijskih zavisnosti su pravila oblika: ako na relaciji r(R) vrijede
funkcijske zavisnosti f
1
, f
2
, ..f
n
, tada na r(R) vrijedi i funkcijska zavisnost f.
U nastavku je prikazan esto koriteni skup pravila za izvoenje funkcijskih zavisnosti.
Neka je r relacija na shemi relacije R; W, X, Y i Z su podskupovi od R.
F1. Refleksivnost: X X
F2. Augmentacija: X Y X Z Y
F3. Aditivnost: X Y i X Z X Y Z
F4. Projektivnost: X Y Z X Y
F5. Tranzitivnost: X Y i Y Z X Z
F6. Pseudotranzitivnost: X Y i Y Z W X Z W
Pravila F1 do F6 su kompletna i korektna.

Odreivanje minimalnog
pokrivaa
MINIMIZE
odreivanje
reduciranog
minimalnog
anularnog
pokrivaa
Izbacivanje suvinih
atributa s lijeve strane
Izbacivanje suvinih
atributa s desne strane
LEFTRED
RIGHTRED
REDUCE
Odreivanje skupa CFD
Izbacivanje suvinih
atributa s desne strane
Definiranje relacijskih
shema
Skup funkcijskih
zavisnosti

19

kompletna jer se njihovom primjenom nad skupom funkcijskih zavisnosti F mogu
izvesti sve FZ koje su implicirane skupom F
korektna jer se njihovom uporabom nad skupom F mogu izvesti samo one FZ koje
su implicirane skupom F

!.* +atvara, skupa funkcijski zavisnosti
Definicija 12: Neka je F skup funkcijskih zavisnosti za relaciju r(R). Zatvara (closure) od
F, s oznakom F
+
je najmanji skup koji sadri F, a uporabom pravila izvoenja funkcijskih
zavisnosti nije mogue dobiti niti jednu funkcijsku zavisnost koja se ve ne nalazi u
skupu.


Definicija 13: Zatvara skupa S s obzirom na operaciju je najmanji skup P, P S,
takav da za svaki p
1
, p
2
P, p
1
p
2
P.

Primjer: Zatvara skupa N s obzirom na operaciju + je N
Zatvara skupa N s obzirom na operaciju - je Z
U kontekstu definicije 12, "operacijom" se smatra izvoenje funkcijskih zavisnosti pomou
pravila F1 F6
Primjer: Neka je zadan skup F = { A B, B C }.
Skup G
1
= { A B, B C, A A, B B } nije zatvara od F jer je uporabom pravila
izvoenja nad skupom F mogue dobiti npr. FZ A BC koja se ne nalazi u skupu.
Skup G
2
= { A B, B C, A A, B B, C A, ... } nije zatvara od F jer sadri FZ
C A koja se ne moe dobiti koritenjem pravila izvoenja FZ, te stoga nije najmanji
skup koji sadri F.
Skup G
3
= { A A, A AB, A ABC, A AC, A B, A BC, A C,
AB A, AB AB, AB ABC, AB AC, AB B, AB BC,
AB C, ABC A, ABC AB, ABC ABC, ABC AC,
ABC B, ABC BC, ABC C, AC A, AC AB,
AC ABC, AC AC, AC B, AC BC, AC C, B B,
B BC, B C, BC B, BC BC, BC C, C C
} jest zatvara skupa F.

!.- Upora.a pravila izvo)enja funkcijski zavisnosti
Definicija 14: Skup F derivira funkcijsku zavisnost X Y ako X Y F
+
.
Primjer: Skup F = { A B, B C } derivira FZ AC B jer je funkcijska zavisnost
AC B F
+
(vidjeti F
+
u prethodnom primjeru).
U prethodnom primjeru nije ispisan cijeli zatvara od F. Broj funkcijskih zavisnosti koje
vrijede za odreenu shemu baze podataka je konaan. Tu tvrdnju opravdava injenica da
Zatvoreni skup: skup za kojeg vrijedi da operacija nad bilo kojim
parom iz skupa uvijek kao rezultat daje element tog skupa.


20

je broj kombinacija atributa konaan, to slijedi iz konanosti univerzalnog skupa atributa.
Ne postoji dakle sluaj u kojem je nemogue opisati skup svih funkcijskih zavisnosti za
neku shemu baze podataka, ali taj skup moe biti vrlo velik, a dobiveni rezultat samim
time neuporabljiv i besmislen.

!./ +atvara, skupa atri.uta
Moe se dokazati: F X Y X Y F
+
. Testiranje funkcijskih zavisnosti na ovaj
nain nije prikladno zbog velikog broja funkcijskih zavisnosti u zatvarau skupa F.
Postavlja se opravdano pitanje svrsishodnosti opisivanja cijelog skupa funkcijskih
zavisnosti, tj. zatvaraa F
+
. Budui da se veina postupaka koritenih u sintetikom
algoritmu oslanja na ispitivanja da li F X Y, tj. da li je X Y F
+
, potrebno je
optimizirati taj postupak. Ispitivanje bi se moglo obaviti na trivijalan nain - jednostavno
generirati zatvara F
+
, te ispitati pripadnost funkcijske zavisnosti X Y tom skupu. Zbog
mogueg velikog broja funkcijskih zavisnosti u F
+
, takav postupak nije prihvatljiv, te se
rabi efikasniji pristup, postupak temeljen na pojmu zatvaraa skupa atributa.

Definicija 15: Ako je F skup funkcijskih zavisnosti nad R i X je podskup od R, tada u F
+

postoji funkcijska zavisnost X Y sa svojstvom da je Y maksimalan - za svaku drugu
funkcijsku zavisnost X Z F
+
, Y Z. Desna strana funkcijske zavisnosti X Y naziva
se zatvara od X i oznaava se s X
+
.
Zatvara od X uvijek sadri X (po pravilu F1).
Primjer: Neka je zadan skup F = { A B, B C }.
F
+
= {
A A, A AB, A ABC, A AC, A B, A BC, A C,
AB A, AB AB, AB ABC, AB AC, AB B, AB BC,
AB C, ABC A, ABC AB, ABC ABC, ABC AC,
ABC B, ABC BC, ABC C, AC A, AC AB,
AC ABC, AC AC, AC B, AC BC, AC C, B B,
B BC, B C, BC B, BC BC, BC C, C C }.
Zatvara skupa atributa AB s obzirom na skup F = { A B, B C }, AB
+
= ABC.
Nadalje, B
+
= BC, a C
+
= C.
VANA TVRDNJA: Za ocjenu vrijedi li F X Y, dovoljno je utvrditi je li Y X
+
.
Primjer: F = { A B, B C }. Implicira li F funkcijsku zavisnost AC B ? Dovoljno je
ispitati vrijedi li B AC
+
.
AC
+
= ABC. To znai da F AC B.



21

!.0 Derivacijski nizovi
Definicija 16: Neka je F skup funkcijskih zavisnosti nad relacijskom shemom R. Niz P
funkcijskih zavisnosti nad relacijom R je derivacijski niz na F ako je svaka funkcijska
zavisnost iz P
1. lan skupa F, ili
2. dobiveni model nije uvijek minimalan slijedi iz prethodnih funkcijskih zavisnosti u P
primjenom jednog od pravila izvoenja funkcijskih zavisnosti F1 - F6.
P je derivacijski niz za X Y ako je X Y funkcijska zavisnost iz P.

Primjer: Neka je F = { A B, B C }. Niz FZ
1. A A slijedi iz F1
2. A B iz F
3. B C iz F
4. A C slijedi iz 2. i 3. prema F5
5. A AC slijedi iz 1. i 4. prema F3
6. A ABC slijedi iz 2. i 5. prema F3
jest derivacijski niz za FZ A AC

!.0.1 12aksiomi
Umjesto pravila F1 - F6 mogue je koristiti skup pravila koja se nazivaju B-aksiomi

Neka je C atribut, W, X i Y podskupovi atributa na shemi R. Vrijedi:
B1. Refleksivnost (Reflexivity): X X
B2. Akumulacija (Accumulation): X Y Z i Z C W X Y Z C
B3. Projektivnost (Projectivity): X Y Z X Y
Moe se dokazati da se aksiomi B1 - B3 mogu izvesti pomou pravila F1 - F6.
Takoer, pravila F1 - F6 mogu se izvesti pomou aksioma B1 - B3. Stoga su
aksiomi B1 - B3 takoer kompletni i korektni.

!.0.2 R"( derivacijski niz
Definicija 17: Ako derivacijski niz za X Y na skupu F koristi B-aksiome i pri tome
zadovoljava uvjete:

22

prva funkcijska zavisnost u nizu je X X
posljednja funkcijska zavisnost u nizu je X Y
svaka funkcijska zavisnost u derivacijskom nizu, osim prve i zadnje funkcijske
zavisnosti, je ili iz F ili prema aksiomu B2 proizlazi iz prethodnih funkcijskih
zavisnosti iz niza
naziva se RAP derivacijski niz. Naziv je izveden iz prvih slova naziva B-aksioma
(Reflexivity, Accumulation, Projectivity).

!.0.3 Derivacijski usmjereni acikli,ki #rafovi 3DD"45
Definicija 18: Usmjereni graf je graf ija svaka grana ima odreenu orijentaciju.
Usmjereni acikliki graf (DAG) je usmjereni graf bez direktnih puteva iz bilo kojeg vora
prema sebi samom.
Definicija 19: Neka je F skup funkcijskih zavisnosti nad shemom R. Derivacijski DAG
(DDAG) temeljen na skupu funkcijskih zavisnosti F je DAG iji su vorovi oznaeni
simbolima atributa iz R, a koji je konstruiran prema sljedeim pravilima:
R1: Bilo koji skup nepovezanih vorova, s vorovima oznaenim simbolima atributa
iz R je DDAG temeljen na F.
R2: Neka je H derivacijski DAG temeljen na F koji sadri vorove v
1
, v
2
, ..., v
k
s
oznakama A
1
, A
2
, ..., A
k
i neka je A
1
, A
2
, .. A
k
C Z funkcijska zavisnost iz F.
Neka je H' graf H proiren dodavanjem vora u oznaenog s C i usmjerenih
grana (lkova) (v
1
,u), (v
2
,u), (v
k
,u). H' je DDAG temeljen na F.
R3. Nita drugo nije DDAG.
Primjer: Zadan je F = { K L, A B D, B A, A K P Q }

H
1
je DDAG koji sadri vor B. B A F. U graf se dodaje vor oznaen s A i lk (B, A).

H
2
je DDAG koji sadri A. A B D F. U graf se dodaje vor oznaen s D i lk (A, D).
H
1
je DDAG temeljen
na F (prema R1)
H
2
je DDAG temeljen
na F (prema R1)

23


H
3
je DDAG koji sadri A K P. A K P Q F. U graf se dodaje vor oznaen s Q i lkovi
(A, Q), (K, Q), (P, Q).


H
4
je DDAG koji sadri K. K L F. U graf se dodaje vor oznaen s L i lk (K, L).


Definicija 20: Ako je H DDAG temeljen na F, vor v iz H je inicijalni vor ukoliko v
nema ulaznih lkova. Svaki inicijalni vor mora biti dodan u graf iskljuivo uporabom
pravila R1.
Definicija 21: Neka je H DDAG temeljen na F. H je DDAG za X Y ako vrijedi:
1. X je skup oznaka inicijalnih vorova.
2. Svaki atribut iz Y oznaava neki vor u H

Primjer: DDAG H
5
iz prethodnog primjera je DDAG za funkcijske zavisnosti
BKP ADQ
BKP BKA
BKP BKPLDQ
itd.


H
3
je DDAG temeljen
na F (prema R2)

H
4
je DDAG temeljen
na F (prema R2)

H
5
je DDAG temeljen
na F (prema R2)


24

Teorem 1: Ako je zadan skup funkcijskih zavisnosti F nad shemom R i funkcijska
zavisnost X Y, sljedee tvrdnje su ekvivalentne:
1. F X Y (tj. X Y F
+
)
2. Postoji derivacijski niz na F za X Y
3. Postoji DDAG za X Y temeljen na F

Sljedei algoritam temelji se na primjeni RAP derivacijskog niza (ili izgradnji DDAG-a) za
funkcijsku zavisnost X X
+
.

!.6 $estiranje pripadnosti zatvara,u skupa funkcijski zavisnosti
!.6.1 4eneriranje zatvara,a 7
8
2 al#oritam 9:OSUR&
Prvo je prikazan jednostavniji algoritam za generiranje zatvaraa od X u skupu funkcijskih
zavisnosti F. Kao ulaz, potrebno je naravno navesti skup funkcijskih zavisnosti F i skup
atributa X za koje se trai X
+
. Izlaz je skup atributa koji predstavlja zatvara skupa X, X
+
.
Algoritam CLOSURE [Maier1983]
Agoritam je namijenjen za odreivanje zatvaraa X
+
u odnosu na skup funkcijskih
zavisnosti F








Algoritam koristi malo modificirana pravila za konstrukciju DDAG-a temeljenog na F za FZ
X X
+
. Pravilo R2 je modificirano utoliko to se doputa dodavanje u DDAG vie
vorova istovremeno.

U konstrukciji DDAG-a polazi se od vorova koji odgovaraju atributima iz X. Dodaju se
novi vorovi dok god je to mogue uiniti koritenjem pravila R2 za konstruiranje DDAG-
a. Nije potrebno biljeiti lukove jer mogunost uporabe funkcijske zavisnosti W Z za
dodavanje novih vorova ne ovisi o nainu na koji je graf do tada povezivan lukovima,
ve samo o tome koji vorovi ve jesu ukljueni u graf. Vrijednost X
+
na kraju opet ne
CLOSURE (X, F)
begin
$%&&E' () *
+E,&E' () X*
while +E,&E' $%&&E' do begin
$%&&E' () +E,&E'*
for e"er- F& , . in F do
if +E,&E' , then
+E,&E' () +E,&E' .
end*
return +E,&E'
end.


25

ovisi o lukovima koji povezuju vorove ve samo o vorovima u grafu (svi vorovi grafa
zajedno predstavljaju X
+
).

Kako su inicijalni vorovi grafa oznaeni s atributima iz X, u svakom trenutku obavljanja
algoritma, za NEWDEP koji predstavlja vorove u DDAG-u, vrijedi NEWDEP X
+
.
Meutim, nakon obavljanja algoritma, za sve funkcijske zavisnosti W Z za koje vrijedi
da je Z NEWDEP, vrijedi da je NEWDEP W, te se, koritenjem pravila R2, u DDAG
ne moe dodati niti jedna funkcijska zavisnost koja bi mu poveala broj vorova. Budui
da za svaki atribut A X
+
, F X A, mogue je konstruirati DDAG za X A. Oito se
svi atributi A X
+
nalaze u NEWDEP. Konano, ako se svaki A X
+
nalazi u NEWDEP i
istovremeno je NEWDEP X
+
, onda je NEWDEP = X
+
. Time je dokazano da algoritam
CLOSURE ispravno odreuje X
+
.

Primjer: CLOSURE({ A, E }, { A D, A B E, B I E, C D I, E C }).
Inicijalizacija: OLDDEP = ; NEWDEP = A E;

while +E,&E' $%&&E' do begin true
1. prolaz OLDDEP = A E; NEWDEP = A E;
NEWDEP = A E D;
NEWDEP = A E D;
NEWDEP = A E D;
NEWDEP = A E D;
NEWDEP = A E D C;


while +E,&E' $%&&E' do begin true
2. prolaz OLDDEP = A E D C; NEWDEP = A E D C;
NEWDEP = A E D C;
NEWDEP = A E D C;
NEWDEP = A E D C;
NEWDEP = A E D C I;
NEWDEP = A E D C I;

while +E,&E' $%&&E' do begin true
3. prolaz OLDDEP = A E D C I; NEWDEP = A E D C I;
NEWDEP = A E D C I;
NEWDEP = A E D C I;
NEWDEP = A E D C I;
NEWDEP = A E D C I;
NEWDEP = A E D C I;

while +E,&E' $%&&E' do begin false
return AE
+
= NEWDEP = A E D C I


for e"er- F& , . in F do
if +E,&E' , then
+E,&E' () +E,&E' .
for e"er- F& , . in F do
if +E,&E' , then
+E,&E' () +E,&E' .
for e"er- F& , . in F do
if +E,&E' , then
+E,&E' () +E,&E' .

26

!.6.2 &fikasnost al#oritma
Utroak vremena za obavljanje algoritma odreen je nekom funkcijom T(n). T je mjera
vremenske sloenosti, a n je veliina ulaza. Ta funkcija moe biti vrlo kompleksno
definirana.

Ako za funkciju f(n) vrijedi da postoje neki c > 0 i n
1
0, takvi da je T(n) c f(n) za svaki
n n
1
, kae se da T(n) ima red f(n). Koristi se oznaka T(n) = O(f(n)).
!.6.3 &fikasnost al#oritma 9:OSUR&
- broj razliitih atributa u skupu R jednak a
- broj funkcijskih zavisnosti odreen s p
Primjer najnepovoljnijeg sluaja:
CLOSURE { A
m
, (A
2
A
1
, A
3
A
2
, A
4
A
3
, ... A
m-1
A
m-2
, A
m
A
m-1
)}
p puta obaviti tijelo while petlje unutar koje se p puta obavlja tijelo for petlje. Usporedba
skupova atributa zahtijeva a operacija.
- vremenska sloenost algoritma CLOSURE je O(ap
2
)
Primjer najpovoljnijeg sluaja
CLOSURE { A
m
, (A
m
A
m-1
, A
m-1
A
m-2
, ... A
3
A
2
, A
2
A
1
)}
(ali taj "najpovoljniji sluaj" ne moe biti osnova za odreivanje vremenske sloenosti
algoritma).

!.6.! Unapre)enje al#oritma 9:OSUR&
Sloenost algoritma CLOSURE je nezadovoljavajua zbog kvadratne ovisnosti o broju
funkcijskih zavisnosti. Prijedlog rjeenja:
1. Funkcijsku zavisnost W Z ija je desna strana jednom ula u NEWDEP ne
treba vie uzimati u obzir.
2. Koristiti informaciju o tome koje funkcijske zavisnosti trenutno imaju lijevu stranu
sadranu u NEWDEP, te su kvalificirane da svojom desnom stranom uveaju
NEWDEP.
To se moe postii na sljedei nain:

27

1. Za svaku funkcijsku zavisnost W Z iz F formira se poseban broja koji sadri
broj atributa u W koji se (jo) ne nalaze u NEWDEP. U svakom brojau
COUNT[W Z] se na poetku obavljanja algoritma nalazi broj atributa na lijevoj
strani funkcijske zavisnosti W Z.
2. Kad god se atribut A doda u NEWDEP, brojai svih funkcijskih zavisnosti koje
sadre atribut A smanjuju se za jedan (dekrementiraju). Kada broja za funkcijsku
zavisnost W Z postane 0, obrauje se ta funkcijska zavisnost.
3. Za svaki atribut A formira se lista funkcijskih zavisnosti u kojima se atribut A nalazi
na lijevoj strani, pa se putem te liste mogu pronai brojai onih funkcijskih
zavisnosti koje treba dekrementirati.

Algoritam LINCLOSURE [Maier1983]
Algoritmom se odreuje zatvara X
+
u odnosu na skup funkcijskih zavisnosti F, ali uz
manju sloenost u odnosu na algoritam CLOSURE















Primjer: LINCLOSURE({ A, E }, { A D, A B E, B I E, C D I, E C }).

LINCLOSURE (X, F
!. Initiali"ation
for ea#h F& , . in F do begin
/$0+T 1, .2 () ,*
for ea#h attribute A in , do add , . to %IST 1A2
end*
+E,&E' () X* 0'&ATE () X
$. Co%&utation
while 0'&ATE 3o begin
choose an A in 0'&ATE*
0'&ATE () 0'&ATE ! A*
for ea#h F& , . in %IST 1A2 do begin
/$0+T 1, .2 () /$0+T 1, .2 ! 1*
if /$0+T 1, .2 ) 4 then begin
A&& () . ! +E,&E'*
+E,&E' () +E,&E' A&&*
0'&ATE () 0'&ATE A&&
end
end
end*
return (+E,&E')
end.

28

Inicijalizacija:

LIST[A] = A D, A B E COUNT[A D] = 1
LIST[B] = B I E, A B E COUNT[A B E] = 2
LIST[C] = C D I COUNT[B I E] = 2
LIST[D] = C D I COUNT[C D I] = 2
LIST[E] = E C COUNT[E C] = 1
LIST[ I ] = B I E

NEWDEP = A E UPDATE = A E



Proraun:

COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
1 2 2 2 1


0'&ATE = AE +E,&E' = AE
A = A, 0'&ATE = E
/$0+T [AD] = 0
A&& = D - AE = D
+E,&E' = AED
0'&ATE = ED
/$0+T [ABE] = 1

COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
0 1 2 2 1
0'&ATE = ED +E,&E' = AED
A = E, 0'&ATE = D
/$0+T [EC] = 0
A&& = C - AED = C
+E,&E' = AEDC
0'&ATE = DC

COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
0 1 2 2 0
0'&ATE = DC +E,&E' = AEDC
A = D, 0'&ATE = C
/$0+T [CDI] = 0



29

COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
0 1 2 1 0
0'&ATE = C +E,&E' = AEDC
A = C, 0'&ATE =
/$0+T [CDI] = 0
A&& = I - AEDC = I
+E,&E' = AEDCI
0'&ATE = I

COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
0 1 2 0 0
0'&ATE = I +E,&E' = AEDCI
A = I, 0'&ATE =
/$0+T [BII] = 1


COUNT [AD] COUNT [ABE] COUNT [BIE] COUNT [CDI] COUNT[EC]
0 1 1 0 0

0'&ATE = +E,&E' = AEDCI

return NE'(E)

LINCLOSURE({ A, E }, { A D, A B E, B I E, C D I, E C }) = AEDCI

Vremenska sloenost algoritma LINCLOSURE je O(n), gdje je n veliina ulaza izraena u
broju ulaznih simbola.

Algoritam MEMBER [Maier1983]
Algoritmom se testira pripadnost FZ X Y u skupu F
+
odnosno vrijedi li F X Y.
Koristi se tvrdnja da F X Y Y X
+





Primjer: F = { A D, A B E, B I E, C D I, E C }. Algoritam MEMBER vraa
true jer je LINCLOSURE(AE, F) = AEDCI.
*E*+ER (F, X Y)
begin
if Y %I+/%$S05E(X, F) then
return(true)
else
return(#alse) end.

30

!.1; (okriva, skupa funkcijski zavisnosti
Definicija 22: Dva skupa funkcijskih zavisnosti F i G nad relacijskom shemom R su
ekvivalentni (oznaka F G) ukoliko su F
+
i G
+
ekvivalentni. Ako je F G, tada je F
pokriva (cover) za G (takoer je i G pokriva za F).
Primjer: Skupovi funkcijskih zavisnosti F = { A B, B A, A C } i G = { A B A,
B A, B C } su ekvivalentni, F G, jer je F
+
= G
+
. F je pokriva od G i G je pokriva
od F.
Definicija 23: Skup funkcijskih zavisnosti F implicira skup funkcijskih zavisnosti G, F G,
ako F X Y za svaku funkcijsku zavisnost X Y iz G.
Lema: F G F G G F
Primjer: Za skupove funkcijskih zavisnosti F = { A B, B C } i G = G = { AB C,
AB B, A C } vrijedi F G, ali ne vrijedi G F, stoga ne vrijedi niti F G.
!.1;.1 'eredundatni pokriva,i
Definicija 24: Funkcijska zavisnost X Y je redundantna u F ako F - { X Y }
X Y. Ako u skupu funkcijskih zavisnosti F ne postoji funkcijska zavisnost X Y za koju
vrijedi F - { X Y } X Y, tada je F neredundantan.
Primjer: U skupu F = { A B C, A B, B C } funkcijska zavisnost A B C je
redundantna jer { A B, B C } A B C.

Osnova za algoritam NONREDUN
Neka su G = { f
1
, f
2
, ..., X Y, ... } i F = G { X Y } skupovi funkcijskih zavisnosti.
Potrebno je ispitati vrijedi li F G.
Treba pokazati da G G { X Y } G { X Y } G
je uvijek istina jer G { X Y } G
se ispituje, s time da je dovoljno dokazati da G { X Y } X Y

Algoritam NONREDUN [Maier1983]
Algoritmom se formira neredundantni pokriva za zadani skup FZ




31







Vremenska sloenost algoritma NONREDUN je O(np).

!.11 Suvi<ni atri.uti u funkcijskim zavisnostima
Definicija 25: Neka je F skup funkcijskih zavisnosti nad relacijskom shemom R i neka je
X Y funkcijska zavisnost u F. Atribut A iz R je suvian (extraneous) u X Y s
obzirom na F ako
1. (F - { X Y }) { (X - A) Y } F ili
2. (F - { X Y }) { X (Y - A) } F
Primjer: Skup F = { A B C, B C, A B D } je neredundantan. Skup F' = { A B,
B C, A D } ekvivalentan je skupu F.

!.11.1 :ijeva 3desna5 redukcija
Definicija 26: Neka je F skup funkcijskih zavisnosti nad shemom R i neka je X Y
funkcijska zavisnost iz F.
X Y je lijevo reducirana funkcijska zavisnost ukoliko X ne sadri suvine
atribute u X Y.
X Y je desno reducirana funkcijska zavisnost ukoliko Y ne sadri suvine
atribute u X Y.
X Y je reducirana funkcijska zavisnost ukoliko je lijevo reducirana i desno
reducirana i Y .
Definicija 27: Skup funkcijskih zavisnosti F je reduciran (lijevo reduciran, desno
reduciran), ukoliko je svaka funkcijska zavisnost u F reducirana (lijevo reducirana, desno
reducirana).
Osnova za algoritam LEFTRED
Neka su G = { f
1
, f
2
, ..., X Y, ... } i F = { f
1
, f
2
, ..., (X - A) Y, ... } skupovi funkcijskih
zavisnosti. Potrebno je ispitati vrijedi li F G.

+$+5E&0+ (6)
begin
F () 6*
for ea#h F& X Y in 6 do
if 7E78E5(F ! 9 X Y :, X Y) then
F () F ! 9 X Y :*
return (F)
end.


32

Treba pokazati da
{ f
1
, f
2
, ..., X Y, ... } { f
1
, f
2
, ..., (X - A) Y, ... }
{ f
1
, f
2
, ..., (X - A) Y, ... } { f
1
, f
2
, ..., X Y, ... }
se ispituje, s time da je dovoljno dokazati da { f
1
, f
2
, ..., X Y, ... } (X - A) Y
uvijek vrijedi jer prema F2: (X - A) Y X Y

Algoritam LEFTRED [Maier1983]
Algoritmom se formira lijevo reducirani pokriva za zadani skup FZ






Vremenska sloenost algoritma LEFTRED je O(n
2
).

Osnova za algoritam RIGHTRED
Neka su G = { f
1
, f
2
, ..., X Y, ... } i F = { f
1
, f
2
, ..., X (Y - A), ... } skupovi funkcijskih
zavisnosti. Potrebno je ispitati vrijedi li F G.
Treba pokazati da
{ f
1
, f
2
, ..., X Y, ... } { f
1
, f
2
, ..., X (Y - A), ... }
{ f
1
, f
2
, ..., X (Y - A), ... } { f
1
, f
2
, ..., X Y, ... }
uvijek vrijedi jer prema F4: X Y X (Y - A)
se ispituje, s time da je dovoljno dokazati da { f
1
, f
2
, ..., X (Y - A), ... } X A
jer prema F3: X (Y - A) X A X Y

Algoritam RIGHTRED [Maier1983]
Algoritmom se formira desno reducirani pokriva za zadani skup FZ

%EFT5E& (6)
begin
F () 6*
for each F& X Y in 6 do
for each attribute A in X do
if 7E78E5 (F, (X ! A) Y) then
remo"e A #rom X in X Y in F*
return (F)
end.


33







Vremenska sloenost algoritma RIGHTRED je O(n
2
).

!.11.2 Redukcija skupa funkcijski zavisnosti
Algoritam REDUCE [Maier1983]
Algoritmom se formira reducirani pokriva za zadani skup FZ




Funkcijske zavisnosti oblika X koje nastanu u procesu desne redukcije, potrebno je
izbaciti iz dobivenog skupa. Vremenska sloenost algoritma REDUCE je O(n
2
).
Primjer: Zadan je skup F = { B A, D A, B A D }. Lijevom redukcijom dobiva se F'
= { B A, D A, B D }. Desnom redukcijom skupa F' dobiva se F" = { B , D A,
B D }.

!.12 (articija skupa funkcijski zavisnosti
Definicija 28: Dva skupa atributa X i Y su ekvivalentni na skupu funkcijskih zavisnosti F,
ukoliko F X Y i F Y X. Ekvivalentnost skupova X i Y oznaava se s X Y.
Primjer: u skupu F = { AB CD, C A, C BF }, vrijedi AB C jer F AB C
F C AB.
Teorem 2: Relacija je relacija ekvivalencije.
Definicija 29: Neka je F skup funkcijskih zavisnosti nad shemom R i neka je X podskup
5I6;T5E& (6)
begin
F () 6*
for ea#h F& X Y in 6 do
for ea#h attribute A in Y do
if 7E78E5 (F ! 9 X Y : 9 X (Y ! A) :, X A) then
remo"e A #rom Y in X Y in F*
return (F)
end.

RE(UCE (6)
begin
F () 5I6;T5E&(%EFT5E&(6))*
remo"e all F&s o# the #orm X #rom F*
return (F)
end.

34

od R. Skup E
F
(X) je skup funkcijskih zavisnosti iz F s lijevim stranama ekvivalentnim
skupu X, tj.
E
F
(X) = { W Z F X W }.
S E
F
(X) je dakle definiran razred ekvivalencije kojem je bilo koja funkcijska zavisnost s
lijevom stranom ekvivalentnom skupu X reprezentant.
Definicija 30:
F
= { E
F
(X) X R i E
F
(X) } je particija skupa F koja se temelji na
relaciji ekvivalencije .
Primjer: Za skup F = { A B C, B A, A D E } odreuju se sljedei razredi
ekvivalencije:
E
F
(A) = E
F
(B) = { A B C, B A }
E
F
(A D) = { A D E }
Skup
F
= { E
F
(A), E
F
(A D) } je particija skupa F.

!.13 =inimalni pokriva,i
Neredundantni pokriva skupa G nema uvijek najmanji mogui broj funkcijskih zavisnosti.
Definicija 31: Skup F funkcijskih zavisnosti je minimalan ako je kardinalni broj skupa
funkcijskih zavisnosti F manji ili jednak kardinalnom broju bilo kojeg ekvivalentnog skupa
funkcijskih zavisnosti.
Primjer: Skup F = { A B C, B A, A D E, B D I } je neredundantan i reduciran.
Skup G = { A B C, B A, A D E I } je ekvivalentan skupu F, a ima manji broj
funkcijskih zavisnosti.
Nadalje, ne postoji ekvivalentni skup FZ iji je kardinalni broj manji od kardinalnog broja
skupa G, stoga je G minimalni pokriva od F.
Sama definicija neredundantnih i reduciranih pokrivaa prua uputu za konstrukciju
algoritama za odreivanje neredundantnih i reduciranih pokrivaa. Definicija minimalnog
pokrivaa ne sadri takve elemente. Zbog toga se mora definirati svojstvo koje e dati
naputak za pronalaenje minimalnog pokrivaa.
Osnova za odreivanje minimalnog pokrivaa
Definicija 32: X direktno odreuje Y (oznaka X

Y) u skupu funkcijskih zavisnosti G,
ako za G postoji neredundantni pokriva F u kojem se X Y moe derivirati koritenjem
funkcijskih zavisnosti iz skupa F - E
F
(X).
Primjer: U skupu F = { A C D, A B E, B I, D I J }, vrijedi A B

J, jer se A
B J moe derivirati upotrebom funkcijskih zavisnosti A C D, B I i D I J koje nisu
sadrane u E
F
(A B) = { A B E }.

35

Teorem 3: Ako je G neredundantni skup funkcijskih zavisnosti koji nije minimalan, tada
postoji neki E
G
(X) koji sadri dvije razliite funkcijske zavisnosti, Y U i Z V takve da
Y

Z.
Ako neredundantni skup G nije minimalan, mogue je funkcijske zavisnosti Y U i
Z V iz G za koje vrijedi da Y Z i Y

Z zamijeniti s funkcijskom zavisnosti Z U V.
Rezultat je ekvivalentni skup funkcijskih zavisnosti s manjim kardinalnim brojem.
Primjer: Neka je zadan skup funkcijskih zavisnosti
F = { A B C, B A, A D E, B D I }
Particija skupa F s obzirom na relaciju ekvivalencije lijevih strana FZ iz F jest:
E
F
(A) = E
F
(B) = { A B C, B A } (jer je A B)
E
F
(A D) = E
F
(B D) = { A D E, B D I } (jer je A D B D)
Funkcijske zavisnosti A D E, B D I mogu se zamijeniti s funkcijskom zavisnosti B
D E I, jer A D B D, a A D

B D.
Da vrijedi A D

B D vidi se iz toga to se A D B D moe derivirati uz pomo FZ koje
se nalaze u skupu
F - E
F
(A D) = { A B C, B A }.

Algoritam MINIMIZE [Maier1983]
Algoritmom se formira minimalni pokriva za zadani skup FZ








Vremenska sloenost algoritma MINIMIZE je O(pn).
*INI*I,E (6)
begin
F () +$+5E&0+(6)*
#in3 the sets o# E
F
*
for ea#h E
F
(X) in E
F
do
for ea#h Y 0 in E
F
(X) do
for ea#h . < Y 0 in E
F
(X) do
if &&E5I<ES (F, Y .) then
replace Y 0 an3 . < b- . 0 < in F*
return (F)
end.


36

Primjer: Neka je zadan skup funkcijskih zavisnosti
F = { A B C, B A, A D E, B D I }
E
F
(A) = E
F
(B) = { A B C, B A }
E
F
(A D) = E
F
(B D) = { A D E, B D I }
Za E
F
(X) = E
F
(A) = E
F
(B)) (kombiniraj sve FZ oblika Y U i Z V)
uzmi A B C i B A
vrijedi li A

B NE
uzmi B A i A B C
vrijedi li B

A NE
Za E
F
(X) = E
F
(A D) = E
F
(B D)) (kombiniraj sve FZ oblika Y U i Z V)
uzmi A D E i B D I
vrijedi li A D

B D DA
zamijeni Y U i Z V sa Z U V tj.
zamijeni A D E i B D I sa B D E I
Gotovo. Rezultat: F = { A B C, B A, B D E I }
Potrebno je definirati na koji se nain odreuju razredi ekvivalencije (find the sets of E
F
),
te na koji se nain realizira funkcija DDERIVES.
Razredi ekvivalencije odreuju se uz pomo algoritma LINCLOSURE. Za svaku X Y
iz F pokrene se LINCLOSURE (X, F). Dobiveno polje brojaa se umetne kao redak u pp
matricu.

DDERIVES se realizira uz pomo algoritma MEMBER. Ukoliko vrijedi da je MEMBER (F -
E
F
(X), X Y) = true, tada X

Y.

!.1! Sloene funkcijske zavisnosti
Definicija 33: Sloena funkcijska zavisnost (CFD - Compound Functional Dependency)
je struktura oblika (X
1
, X
2
, ..., X
k
) Y gdje su skupovi X
1
, X
2
, ..., X
k
razliiti podskupovi
skupa atributa R. Y je takoer podskup skupa R.
Relacija r(R) zadovoljava CFD (X
1
, X
2
, ..., X
k
) Y ako zadovoljava funkcijske zavisnosti
X
i
X
j
i X
i
Y, za 1 i, j k.

37

(X
1
, X
2
, ..., X
k
) je lijeva strana CFD, X
1
, X
2
, ..., X
k
su lijevi skupovi CFD, a Y je desna
strana CFD.
CFD je krai nain zapisivanja skupa funkcijskih zavisnosti s ekvivalentnim lijevim
stranama. Treba primijetiti da je mogu sluaj u kojem je desna strana CFD prazan skup,
tj. (X
1
, X
2
, ..., X
k
) .
Primjer: Neka je zadan skup FZ F = { A B C, B C A, A D }. Skup F se moe
prikazati kao jedna CFD (A, B C) D.
Primjer: Skup FZ F = { A B, B A } moe se prikazati kao CFD (A, B) .
Definicija 34: Skup funkcijskih zavisnosti F je karakteristini skup za CFD
(X
1
, X
2
, ..., X
n
) Y, ako je F { (X
1
, X
2
, ...X
n
) Y }.
Karakteristini skup oblika { X
1
X
2
, X
2
X
3
,..., X
n
X
1
Y } naziva se anularni
(prstenasti) karakteristini skup.
Primjer: Jedan od moguih karakteristinih skupova za sloenu funkcijsku zavisnost (A,
B, C D E F) G H I J je skup funkcijskih zavisnosti { A B, B A, A C D E F, C D E
F G H I J B }.
Anularni karakteristini skup za tu sloenu funkcijsku zavisnost je
{ A B, B C D E F, C D E F A G H I J }

Definicija 35: Anularni skup CFD F je skup CFD u kojem ne postoje lijevi skupovi X i Z
na razliitim lijevim stranama za koje vrijedi X Z. Anularni skup CFD za skup FZ G se
formira na sljedei nain: za svaki razred ekvivalencije E
F
(X) formira se jedna CFD. Lijevi
skup te CFD sastoji se od lijevih strana FZ iz E
F
(X). Desni skup te CFD je unija svih
desnih strana FZ iz E
F
(X), s time da se iz desnog skupa CFD mogu izbaciti svi atributi koji
se nalaze na lijevoj strani CFD.
Primjer: F = { A B C D, C D A B G, E F, F E H }. Formirati anularni skup
CFD za skup FZ F.
E
F
(A B) = E
F
(C D) = { A B C D, C D A B G }
E
F
(E) = E
F
(F) = { E F, F E H }
anularni skup CFD za F je { (A B, C D) A B C D G, (E, F) E F H }


38

!.1* Reduciranje skupa sloeni funkcijski zavisnosti
Reducirani minimalni anularni pokriva za skup FZ F
Za odreivanje minimalnog anularnog pokrivaa za skup FZ koristi se sljedei postupak:
1. odrediti reducirani minimalni pokriva za F (algoritmi MINIMIZE i REDUCE)
2. formirati anularni skup CFD (postupak je opisan pri definiciji 35). Dobiveni skup
CFD je minimalni anularni pokriva.
3. provesti desnu redukciju pripadnog karakteristinog skupa
4. na temelju dobivenog desno reduciranog karakteristinog skupa ponovo formirati
anularni skup CFD
5. dobiveni anularni skup CFD je reducirani minimalni anularni pokriva

!.1- (rovedivost skupa F+
Primjer: Zadan je skup funkcijskih zavisnosti F i sheme relacija
F = { sifZgrada pbr, sifZgrada sifZup, pbr sifZup }
zgradaMjesto = { sifZgrada, pbr }, K = { sifZgrada }
zgradaZupanija = { sifZgrada, sifZup }, K = { sifZgrada }
R = { zgradaMjesto, zgradaZupanija }. Shema baze podataka R je u 3NF, a ipak
funkcijska zavisnost pbr sifZup nije provediva na R. Moe se uoiti da sustav za
upravljanje bazama podataka, primjenjujui integritetsko ogranienje primarnog kljua,
uz ovakvu shemu baze podataka nije u mogunosti sprijeiti sljedei sadraj relacija
zgradaMjesto i zgradaZupanija:

sifZgrada pbr
Z1 10000
Z2 10000
Z3 42000
Prema sadraju relacija moglo bi se zakljuiti da je mjesto s potanskim brojem 10000
vezano uz upaniju ZGR, ali takoer i uz upaniju VR. Oito, funkcijska zavisnost kojom
bi se osiguralo da je jedno mjesto uvijek povezano sa samo jednom upanijom nije
provedena u ovoj bazi podataka. Moe se utvrditi da sve funkcijske zavisnosti iz F nisu
provedive na R.
Ako se primijeni drugaija shema baze podataka, problem e biti uklonjen:
zgradaMjesto = { sifZgrada, pbr }, K = { sifZgrada }
mjestoZupanija = { pbr, sifZup }, K = { pbr }
R = { zgradaMjesto, mjestoZupanija }



sifZgrada sifZupanija
Z1 ZGR
Z2 VR
Z3 VR

39

sifZgrada pbr
Z1 10000
Z2 10000
Z3 42000

Ovakvom shemom baze podataka osigurava se da su sve funkcijske zavisnosti iz F
provedive na R. Meutim, tek je potrebno utvrditi mehanizam kojim se za neki skup FZ F i
neku shemu baze podataka R moe dokazati da su sve FZ zaista provedive. U tu svrhu
potrebno je definirati nekoliko dodatnih pojmova.


Na bazu podataka se mogu postaviti ogranienja koja nije mogue primijeniti na
pojedinim relacijama. Na primjer, funkcijska zavisnost A B C ne moe se primijeniti na
relacijsku shemu R (A C).

Definicija 36: Neka je R relacijska shema. Funkcijska zavisnost X Y je primjenjiva na
R (X Y applies to R) ako vrijedi
X R Y R.

Definicija 37: Neka je r = { r
1
, r
2
, ..., r
p
} baza podataka na shemi baze podataka R = { R
1
,
R
2
, ..., R
p
} koja je definirana nad univerzalnim skupom atributa U. Neka je F skup
funkcijskih zavisnosti na U.
Neka je G skup svih funkcijskih zavisnosti u F
+
koje su primjenjive na nekoj shemi R
i
iz R.
Bilo koja funkcijska zavisnost u G
+
je provediva (enforceable) na R; bilo koja funkcijska
zavisnost u F
+
- G
+
je neprovediva (unenforceable) na R.
Skup F je provediv na R ako je svaka funkcijska zavisnost u F
+
provediva na R, tj. G F.

Primjer: Zadan je skup funkcijskih zavisnosti F = { A BC, B C } i shema baze
podataka R = { R
1
, R
2
}, R
1
= A B , R
2
= B C.
Uoiti: FZ A BC nije primjenjiva na R, B C jest primjenjiva na R
F
+
= { AA, AAB, AABC, AAC, AB, ABC, AC,
ABA, ABAB, ABABC, ABAC, ABB, ABBC,
ABC, ABCA, ABCAB, ABCABC, ABCAC,
ABCB, ABCBC, ABCC, ACA, ACAB,
ACABC, ACAC, ACB, ACBC, ACC, BB,
BBC, BC, BCB, BCBC, BCC, C C }
Skup G F
+
funkcijskih zavisnosti primjenjivih na R:
G = { AA, AAB, AB, ABA, ABAB, ABB,
BB, BBC, BC, BCB, BCBC, BCC, C C }


pbr sifZupanija
10000 ZGR
42000 VR

40

Skup G
+
= { AA, AAB, AABC, AAC, AB, ABC, AC,
ABA, ABAB, ABABC, ABAC, ABB, ABBC,
ABC, ABCA, ABCAB, ABCABC, ABCAC,
ABCB, ABCBC, ABCC, ACA, ACAB,
ACABC, ACAC, ACB, ACBC, ACC, BB,
BBC, BC, BCB, BCBC, BCC, C C }
Budui da je G F, F jest provediv na R.

Primjer: Zadan je skup funkcijskih zavisnosti F = { A B, B C } i shema baze
podataka R = { R
1
, R
2
}, R
1
= A C , R
2
= B C.

F
+
= { AA, AAB, AABC, AAC, AB, ABC, AC,
ABA, ABAB, ABABC, ABAC, ABB, ABBC,
ABC, ABCA, ABCAB, ABCABC, ABCAC,
ABCB, ABCBC, ABCC, ACA, ACAB,
ACABC, ACAC, ACB, ACBC, ACC, BB,
BBC, BC, BCB, BCBC, BCC, C C }
Skup G F
+
funkcijskih zavisnosti primjenjivih na R:
G = { AA, AAC, AC, ACA, ACAC, ACC, BB,
BBC, BC, BCB, BCBC, BCC, C C }

Skup G
+
= { AA, AAC, AC, ABA, ABAB, ABABC,
ABAC, ABB, ABBC, ABC, ABCA, ABCAB,
ABCABC, ABCAC, ABCB, ABCBC, ABCC,
ACA, ACAC, ACC, BB, BBC, BC, BCB,
BCBC, BCC, C C }
Neprovedive su FZ iz F
+
-

G
+
. Npr. AAB, AABC, ...
Budui da G / F, F nije provediv na R.

41

* "l#oritam za normalizaciju sintezom
*.1 %z#radnja al#oritma za sintezu

Osnovni problem koji treba rijeiti jest: za zadanu relacijsku shemu R (ili univerzalni skup
U) i skup funkcijskih zavisnosti F nad R (ili nad U), kreirati shemu baze podataka R = {
R
1
, R
2
, ..., R
p
} nad R (ili nad U) sa sljedeim svojstvima:
1. F je kompletno karakteriziran s R. To znai
F { K R
i
R
i
R i K je oznaeni klju od R
i
}
2. Svaka relacijska shema R
i
iz R je u 3NF s obzirom na F.
3. Ne postoji shema baze podataka koja zadovoljava svojstva 1 i 2, a koja ima manje
relacijskih shema od R.
4. Za svaku relaciju r(R) koja zadovoljava F,
r =
R1
(r) > >> >< << <
R2
(r) > >> >< << < ... > >> >< << <
Rp
(r).
Shema relacijske baze podataka koja zadovoljava svojstva 1, 2. i 3. naziva se
kompletnom shemom baze podataka za F.
Svojstvo 1. osigurava da je F provediva na R, te da su funkcijske zavisnosti koje se
moraju provesti na R samo one koje se mogu derivirati iz kljueva relacije (inherentne
funkcijske zavisnosti).
Svojstvo 3. spreava pojavu zalihosti.
Svojstvo 4. osigurava da se relacija r(R) moe prikazati u obliku projekcija R
1
, R
2
, ..., R
p
iz
R pouzdano, bez gubitka informacije (lossless join property).

F je kompletno karakteriziran s R RR R
FZ koje se moraju provesti na R su samo one koje se proizlaze iz oznaenih kljueva
(primarnih, alternativnih) relacija iz R.
Primjer: Neka je zadana relacija osoba i skup FZ F
= { jmbg prezime pbr, pbr nazMjesto }.
Jedini oznaeni klju relacije osoba je { jmbg }.

jmbg prezime pbr nazMjesto
100 Horvat 10000 Zagreb
101 Novak 51000 Rijeka
102 Kolar 10000 Zagreb
Jedina FZ koja proizlazi iz oznaenog kljua je funkcijska zavisnost jmbg prezime pbr
nazMjesto. Ako sustav ne bi obavljao i dodatnu provjeru FZ pbr nazMjesto, u relaciju bi
bilo mogue unijeti n-torku koja naruava pravila integriteta:
CREATE TABLE osoba (
jmbg CHAR(13)
, prezime CHAR(20)
, pbr INTEGER
, nazMjesto CHAR(20)
, PRIMARY KEY (jmbg))


42

<103, Kova, 10000, Rijeka>
Kad bi shema baze podataka bila zadana drugaije (klju u prvoj relaciji je jmbg, klju u
drugoj relaciji je pbr), FZ koje proizlaze iz kljueva relacija su jmbg prezime pbr, pbr
nazMjesto. U ovom sluaju sustav mora provjeriti samo FZ koje proizlaze iz oznaenih
kljueva relacija. To se postie definiranjem pravila integriteta na razini sustava za
upravljanje bazama podataka.




jmbg prezime pbr
100 Horvat 10000
101 Novak 51000
102 Kolar 10000

Lossless join property
Shema baze podataka R = { R
1
, R
2
, R
3
, ... , R
n
} ima svojstvo reverzibilnosti
dekompozicije (lossless join property) s obzirom na skup FZ F, ukoliko se svaka relacija r
koja zadovoljava F moe reverzibilno dekomponirati na sheme relacija iz R, tj.
r =
R1
(r) > >> >< << <
R2
(r) > >> >< << < ... > >> >< << <
Rn
(r).

Primjer: Zadana je shema baze podataka i skup funkcijskih zavisnosti F
F = { A C, B C }
R
1
= (A C) K
1
= A
R
2
= (B C) K
2
= B

Neka je R = A B C i neka r(R) sadri n-torke

A B C
a1 b1 c1
a2 b2 c1

Oito, sadraj relacije r(R) je takav da zadovoljava F, ali ako se r(R) dekomponira prema
shemama relacija iz R, dobit e se relacije r
1
i r
2
.

A C
a1 c1
a2 c1

Spajanjem relacija r
1
i r
2
nee se dobiti relacija r(R), odnosno r(R)
R1
(r) > >> >< << <
R2
(r)
pbr sifZupanija
10000 Zagreb
51000 Rijeka
B C
b1 c1
b2 c1
CREATE TABLE osoba (
jmbg CHAR(13)
, prezime CHAR(20)
, pbr INTEGER
, PRIMARY KEY (jmbg))

CREATE TABLE mjesto (
pbr INTEGER
, nazMjesto CHAR(20)
, PRIMARY KEY (pbr))

43


A B C
a1 b1 c1
a2 b2 c1
a2 b1 c1
a2 b2 c1

Primjer: Zadana je shema baze podataka i skup funkcijskih zavisnosti F

F = { A C, B C }
R
1
= (A C) K
1
= A
R
2
= (B C) K
2
= B
R
3
= (AB) K
3
= AB

Neka je R = A B C i neka r(R) sadri n-torke

A B C
a1 b1 c1
a2 b2 c1


Sadraj relacije r(R) je takav da zadovoljava F, ali ovog puta, ako se r(R) dekomponira
prema shemama relacija iz R, dobit e se relacije r
1
, r
2
i r
3
.




Spajanjem relacija r
1
, r
2
, r
3
dobiti e se r(R), odnosno r(R) =
R1
(r) > >> >< << <
R2
(r) > >> >< << <
R3
(r)

*.2 "l#oritam za normalizaciju sintezom
Algoritam Synthesize [Maier1983]
Algoritmom se formira shema relacijske baze podataka. Ulaz je skup funkcijskih
zavisnosti F nad univerzalnim skupom atributa U





B C
b1 c1
b2 c1
A C
a1 c1
a2 c1
A C
a1 b1
a2 b2
S-N./ESI,E (F)
1. Fin3 a re3uce3, minimum annular co"er 6 #or F.
=. For each /F& (X
1
, X
=
, X
>
.., X
?
) Y in 6, construct a
relation scheme 5 ) X
1
X
=
X
>
.. X
?
Y with 3esignate3 ?e-s
@ ) 9 X
1
, X
=
, X
>
.., X
?
:.
>. 5eturn the set o# relation schemes constructe3 in step =.

44

Primjer: Zadan je skup funkcijskih zavisnosti
F = { A D C, A B C, B A, A D E, B D I, A C }
Formiranje reduciranog minimalnog pokrivaa
F = { A B C, B A, B D E I }
Formiranje minimalnog anularnog pokrivaa
( A, B ) C
( B D ) E I
Desna redukcija karakteristinog skupa
F' = { A B, B AC, B D E I }; rezultat je nepromijenjeni skup F'
Formiranje reduciranog minimalnog anularnog pokrivaa
( A, B ) C
( B D ) E I
Formiranje shema baze podataka R = { R
1
, R
2
}
R
1
= A B C K
1
= A K
2
= B
R
2
= B D E I K
1
= B D

*.3 Svojstva al#oritma sinteze
Teorem 4: Algoritam sinteze producira kompletnu shemu baze podataka u vremenu
O(n
2
) pri emu je n veliina ulaza izraena u broju ulaznih simbola. Pri tome vrijedi:
algoritam se moe implementirati na raunalu
algoritam ima polinomski zavisnu vremensku sloenost
rezultat normalizacije je minimalan model
sve funkcijske zavisnosti su provedive i proizlaze iz oznaenih kljueva
Ozbiljan nedostatak algoritma sinteze je nepostojanje garancije da se svaka relacija r(R)
koja zadovoljava funkcijske zavisnosti iz F, dekomponira bez gubitaka na relacijske
sheme iz R (lossless join property).

*.3.1 Univerzalni klju, i uvjet reverzi.ilnosti dekompozicije
Definicija 38: Neka je R shema baze podataka nad univerzalnim skupom atributa U.
Neka je G skup funkcijskih zavisnosti koje R reprezentira, tj. G = { X R
i
| X je oznaeni
klju u R
i
R }.
Skup atributa Z, Z U, je univerzalni klju za R ukoliko G Z U. Ne postoji
ogranienje na minimalnost univerzalnog kljua.
Primjer: Neka je R = { R
1
, R
2
}. R
1
= ABC, K
11
= A, K
12
= B, R
2
= DE, K
21
= D.
Skup FZ koje R reprezentira je
G = { A ABC, B ABC, D DE }.
Univerzalni klju za R je AD jer G AD ABCDE. BD je takoer univerzalni
klju. ABCDE je takoer univerzalni klju.


45

Teorem 5: Shema baze podataka R moe se reverzibilno dekomponirati na relacije iz R
u odnosu na skup funkcijskih zavisnosti F ako neka relacija r(R) R sadri univerzalni
klju.
Primjer: Neka je R = { R
1
, R
2
}. R
1
= ABC, K
11
= A, K
12
= B, R
2
= DE, K
21
= D.
Skup FZ koje R reprezentira je
F = { A ABC, B ABC, D DE }.
Shema baze podataka R ne moe se reverzibilno dekomponirati na relacije iz R u
odnosu na skup funkcijskih zavisnosti F jer niti jedna relacija iz R ne sadri
univerzalni klju (niti AD, niti BD, ...).

*.3.2 (o.olj<anje al#oritma za sintezu
Nedostatak algoritma sinteze po pitanju osiguravanja dekompozicije bez gubitaka na
relacijske sheme iz R (lossless join property) moe se ukloniti tako da se postupak
sinteze provede na sljedei nain:
u skup funkcijskih zavisnosti dodati funkcijsku zavisnost U C, gdje je C umjetni
atribut koji ne postoji u univerzalnom skupu atributa U.
provesti postupak normalizacije sintezom
umjetni atribut C izbaciti iz dobivene sheme baze podataka
Primjer: Za skup FZ F = { A C, B C }, normalizacijom sintezom dobit e se shema
baze podataka
R
1
= AC K
1
= A,
R
2
= BC K
2
= B. (shema ne sadri univerzalni klju)
Meutim, provede li se normalizacija sintezom nakon to se u F doda FZ ABC C, dobit
e se shema baze podataka:
R
1
= AC K
1
= A
R
2
= BC K
2
= B
R
3
= ABC K
3
= AB.
Nakon izbacivanja umjetnog atributa C, dobivena shema zadovoljava svojstvo
reverzibilnosti dekompozicije jer R
3
sadri univerzalni klju AB.
Primjer: Za skup FZ F = { A B, B C } provodi se normalizacija sintezom nakon to
se u F doda FZ ABC C
Lijevom redukcijom izbacuju se BC iz FZ ABC C, dobiva se
A B
B C
A C
Formiraju se CFD:
(A) BC
(B) C.



46

Dobit e se shema baze podataka:
R
1
= ABC K
1
= A
R
2
= BC K
2
= B
Nakon izbacivanja umjetnog atributa C, dobivena shema zadovoljava svojstvo
reverzibilnosti dekompozicije jer R
1
sadri univerzalni klju A.
Primjer: Za skup FZ F = { A BC, B A, D E }, normalizacijom sintezom dobit e se
shema baze podataka
R
1
= ABC K
11
= A K
12
= B,
R
2
= DE K
21
= D.
Provede li se normalizacija sintezom nakon to se u F doda FZ ABCDE C, dobit e se
shema baze podataka:
R
1
= ABC K
11
= A K
12
= B,
R
2
= DE K
21
= D
R
3
= ADC K
31
= AD.
Nakon izbacivanja umjetnog atributa C, dobivena shema zadovoljava svojstvo
reverzibilnosti dekompozicije jer R
3
sadri univerzalni klju AD.


47

- Ostale metode za normalizaciju sintezom

Algoritam prikazan u dosadanjem tekstu slijedi kao ideju vodilju, postupak koji je
uobiajen i za druge metode koje sintetiziraju relacijske sheme. U osnovi se radi o tri
koraka: u prvom se nastoji im vie reducirati osnovni skup funkcijskih zavisnosti, u
drugom se funkcijske zavisnosti grupiraju na temelju ekvivalencije lijevih strana i
konano, u treem koraku, formiraju se relacijske sheme. Ovdje e biti prikazane, bez
posebnih objanjenja, osnovne konture jednog od prvih sintetikih algoritama, kako je
prikazan u literaturi [Beeri1979].
Algoritam Synthesize [Beeri1979]











Algoritmi Bernsteina i Maiera temelje se na razliitim formalnim aparatima (Maier koristi
usmjerene acikline grafove, a Bernstein stabla). Algoritmi koji se koriste za redukciju su
ipak vrlo slini.

Pojedini koraci u algoritmu Bernsteina mogu se direktno povezati s algoritmima koje
koristi Maier (npr. korak 1. je identian traenju reduciranog pokrivaa, korak 2. i 3.
zajedno, otprilike odgovaraju grupiranju u razrede ekvivalencije).

SYNTHESIZE
Step 1: (Find covering). Find a nonredundant covering, H, of G that consists of reduced FD's.
Step 2: (Partition). Partition H into groups such that all of the FD's in each group have identical left sides.
Step 3: (Merge equivalent keys). Let J = 0. For each pair of groups, say H
i
and H
j
, with left sides X and Y
respectively, merge H
i
and H
j
together if there is a bijection X Y and Y X in H
+
. For each
such bijection, add X Y and Y X to J. For each A Y if X A in H, then delete it from H.
Do the same for each Y B in H with B X.
Step 4: (Eliminate transitive dependencies). Find an H' H such that (H' + J)
+
= (H + J)
+
and no proper
subset of H' has this property. Add each FD of J into corresponding group of H' from which it was
derived in Step 3.
Step 5: (Construct relations). For each group, construct a relation consisting of all the attributes appearing
in that group. Each set of attributes that appears on the left side of any D in the group is a key of
the relation. (Step 1 guarantees that no such set contains any extra attributes). The set of
constructed relations constitutes a schema for the given set of FD's.

48

/ >i<ezna,ne i spojne zavisnosti

Moe se uoiti da meu podacima u tablicama ili relacijama postoje i neke druge zakonitosti
ili zavisnosti, koje ne pripadaju u kategoriju funkcijskih zavisnosti. To su prvenstveno
vieznane zavisnosti (eng. Multivalued dependencies MVD) i spojne ili projekcijsko-
spojne zavisnosti (eng. Join dependencies JD) [Tkalac1988].

/.1 >i<ezna,ne zavisnosti i ,etvrta normalna forma5
/.1.1 >i<ezna,ne zavisnosti 3>+5

Primjer 1

Dana je nenormalizirana relacija koja sadri informacije o letovima, danima u tjednu i
avionima. Svaka n-torka u relaciji sastoji se od broja leta, grupe naziva dana u tjednu, te
grupe oznaka aviona. U primjeru su prikazane dvije takve n-torke. Ovom relacijom opisuje
se injenica da se odreeni let odvija u odreene dane u tjednu i da se moe koristiti
odreene tipove aviona. Moe se pretpostaviti da se odreeni let moe odvijati u po volji
mnogo dana u tjednu i da se moe koristiti po volji mnogo razliitih tipova aviona. Osim toga,
bez obzira na to koji se odabere dan u tjednu, moe se za odreeni let koristiti bilo koji od
navedenih tipova aviona.

ur (LET DANI AVIONI)

106 Pon 747
et 1011

204 Sri 747
727

Relaciju je potrebno normalizirati. Funkcijske zavisnosti, osim trivijalnih (npr. LET LET) ne
postoje.

r (LET DAN AVION)
106 Pon 747
106 et 747
106 Pon 1011
106 et 1011
204 Sri 747
204 Sri 727


Osim funkcijskih zavisnosti u relacijama mogu postojati i drugi oblici zavisnosti meu
atributima. Jednu takvu vrstu predstavljaju vieznane zavisnosti.

Kod FZ X Y jedna vrijednost x od X je povezana sa samo jednom vrijednou y od Y.

Kod VZ X Y uz jednu vrijednost x od X moe biti povezano vie vrijednosti od y, a skup
y-vrijednosti nije ni na koji nain povezan s vrijednostima atributa u R - X - Y.

49


X Y X Y


x --- y x ---- y
1

y
2

y
3


Funkcijska zavisnost u stvari predstavlja poseban sluaj vieznane zavisnosti, takav kod
kojeg se skup vrijednosti y sastoji od samo jednog lana.

Ako relacija r zadovoljava X Y, tada zadovoljava i X Y.

Pretpostavimo da postoji relacijska shema R (X,Y,Z) gdje su X,Y i Z disjunktni skupovi
atributa. Neka postoje VZ X Y i X Z. Neka meu Y i Z ne postoji FZ ili VZ.

Neka su s jednom vrijednou od X povezani skupovi vrijednosti:
y = { y
1
, y
2
, y
3
} , z = { z
1
, z
2
}
y
1
z
1

y
2
z
2

y
3



Ako Y i Z nisu ni na koji nain ovisni, tada se u relaciji r(R) uz svaku vrijednost od y moraju
pojaviti sve vrijednosti od z, i obratno. Drugim rijeima, za jednu vrijednost x postojat e
onoliko n-torki kolika je kardinalnost Kartezijevog produkta skupova y i z.

Primjer 2

Relacijska shema LETOVI ( LET, DAN, AVION )

r
1
(LETOVI)= r
1
(LET DAN AVION)
106 Pon 747
106 et 747
106 Pon 1011
106 et 1011
204 Sri 747
204 Sri 727

U relaciji LETOVI ne postoje FZ LET DAN i LET AVION.
Pretpostavimo da postoje LET DAN i LET AVION.




Ako relaciju r
1
rastavimo na dvije projekcije:

r
11
(LET DAN) r
12
(LET AVION)
106 Pon 106 747
106 et 106 1011
204 Sri 204 747
204 727

50


Prirodnim spajanjem relacija r
11
i r
12
dobivamo originalnu relaciju r
11
, tj. projekcija je izvedena
bez gubitaka informacija.

Primjer 3:

Promotrimo trenutnu vrijednost r
2
(LETOVI)

r
2
(LETOVI)= r
2
(LET DAN AVION)
106 Pon 747
106 et 747
106 et 1011
204 Sri 747
204 Sri 727

Izvoenjem projekcija r
21
(LET, DAN) i r
22
(LET,AVION) moe se ustanoviti da je r
21
= r
11
i r
22

= r
12
, tj. prirodnim spajanjem r
21
i r
22
dobivamo umjesto r
2
relaciju r
1
.

Definicija 1:

Relacija r(R) s univerzalnim skupom atributa U, gdje su X,Y U, te Z = U \ XY
zadovoljava VZ X Y Z onda i samo onda ako se r moe razloiti na projekcije r
1
(X,Y)
i r
2
(X,Z) bez gubitaka informacija.

Definicija 2:

Neka je R relacijska shema s univerzalnim skupom atributa U, neka su X i Y disjunktni
skupovi atributa, podskupovi od U, i neka je Z = U \ XY.

Relacija r(R) zadovoljava VZ X Y, ako za dvije n-torke t
1
i t
2
u r za koje vrijedi:
t
1
[X] = t
2
[X]

postoji n-torka t
3
u r za koju je:
t
3
[X] = t
1
[X]
t
3
[Y] = t
1
[Y]
t
3
[Z] = t
2
[Z];

simetrija t1 i t2 takoer povlai postojanje n-torke t
4
, za koju vrijedi:
t
4
[X] = t
1
[X]
t
4
[Y] = t
2
[Y]
t
4
[Z] = t
1
[Z].

Prema tome, relacija r
1
zadovoljava VZ : LET DAN, i LET AVION, dok relacija r
2

ne zadovoljava navedene vieznane zavisnosti.

Lema:

Ako relacija r relacijske sheme R zadovoljava VZ X Y i ako je Z = U \ XY, tada r
zadovoljava i X Z.

Budui da se VZ uvijek javljaju u parovima, moemo rei da postoji VZ X Y Z (X
vieznano odreuje Y u kontekstu od Z).

51



Aksiomi koji se odnose na vieznane zavisnosti

r je relacija relacijske sheme R s univerzalnim skupom atributa U i skupovima atributa
X,Y,Z,W U.

V1: refleksivnost
r zadovoljava X X

V2: uveanje
ako r zadovoljava X Y, tada zadovoljava i XZ Y

V3: aditivnost
ako r zadovoljava X Y i X Z, tada zadovoljava i
X YZ

V4: projektivnost
ako r zadovoljava X Y i X Z, tada zadovoljava i
X Y Z i
X Y \ Z

V5: tranzitivnost
ako r zadovoljava X Y i Y Z, tada zadovoljava i
X Z \ Y

V6: pseudotranzitivnost
ako r zadovoljava X Y i YW Z, tada zadovoljava
XW Z \ (YW)

V7: komplementiranje
ako r zadovoljava X Y i Z = U \ XY, tada zadovoljava i
X Z

U sljedeem e primjeru biti pokazana razlika izmeu pravila o tranzitivnosti tranzitivnosti
koje vrijedi za funkcijske zavisnosti i pravila o tranzitivnosti koje vrijedi za vieznane
zavisnosti.

Primjer 3
Zadana je relacija Raspored:

Predmet Nastavnik Vrijeme Dvorana Student Grupa
P N V D S G
Mikroraunala agar Pon 9 B1 Kolar,D. Ra
Mikroraunala agar Sri 9 B4 Kolar,D. Ra
Mikroraunala agar Pet 9 B1 Kolar,D. Ra
Mikroraunala agar Pon 9 B1 Novak,P. Aut
Mikroraunala agar Sri 9 B4 Novak,P. Aut
Mikroraunala agar Pet 9 B1 Novak,P. Aut



52

Moe se uoiti da u relaciji Raspored postoje vieznane zavisnosti:

P VD P SG

Ove zavisnosti moemo ilustrirati sljedeim n-torkama:

t1 = Mikroraunala agar Pon 9 B1 Kolar,D. Ra
t2 = Mikroraunala agar Sri 9 B4 Novak,P. Aut
t3 = Mikroraunala agar Pon 9 B1 Novak,P. Aut
t4 = Mikroraunala agar Sri 9 B4 Kolar,D. Ra

Osim toga, u relaciji Raspored postoje i vieznane zavisnosti VD SG i VD D

Meutim, moe se uoiti sljedee:

P V ne postoji - kad bi postojala ova vieznana zavisnost, tada bi trebala postojati
n-torka:

Mikroraunala agar Pon 9 B4 Novak,P. Aut

P D ne postoji - kad bi postojala ova vieznana zavisnost, tada bi trebala postojati
n-torka:

Mikroraunala agar Sri 9 B1 Novak,P. Aut


Iz navedenog primjera moe se vidjeti zato je aksiom o tranzitivnoj zavisnost kod
vieznanih zavisnosti (V5) stroi od analognog aksioma koji vrijedi za funkcijske zavisnosti.
Kad bi se na vieznane zavisnosti primijenio aksiom analogan aksiomu koji vrijedi za FZ,
dobilo bi se:

P VD i VD D ==> P D , to je neispravno, jer u tablici Raspored ne postoji
zavisnost P D.

Primjenom aksioma o tranzitivnosti koji vrijedi za vieznane zavisnosti dobije se:

P VD i VD D ==> P D \ VD, tj. P

Trivijalna vieznana zavisnost

Vieznana zavisnost X Y je trivijalna, ako za svaku relacijsku shemu R sa XY R,
svaka relacija r(R) zadovoljava X Y.

Odnosno, VZ X Y je trivijalna, ako Y je sadran u X, ili je Y prazan skup, ili relacijska
shema sadri samo skupove atributa X i Y, odnosno:
Y X, ili
Y = , ili
R = X Y, tj. ako XY sadri sve atribute od R.

Ugraena vieznana zavisnost

U relaciji r vrijedi ugraena VZ X Y Z ako u projekciji od r, r'(X,Y,Z) vrijedi

53

X Y Z.



/.1.2 ?etvrta normalna forma @ !'F

Definicija 4NF

Neka je F skup FZ i VZ na U. Relacijska shema R U je u 4NF u odnosu na F, ako za
svaku vieznanu zavisnost X Y koja proizlazi iz F, a pojavljuje se na R, vrijedi da je ili
trivijalna, ili je X superklju za R.

Primjer 4

Neka je F = { A BC, C DE } skup zavisnosti nad relacijskom shemom R = ABCDE.

R nije u 4NF u odnosu na F zbog toga to postoji vieznana zavisnost C DE, koja nije
trivijalna i C nije superklju u R.

Shema baze podataka R sastoji se od dvije relacijske sheme R
1
= ABC , R
2
= CDE koje su
u 4NF u odnosu na F, iako VZ A B proizlazi iz F i primjenjuje se na R
1
. A B nije
trivijalna, ali je A klju u R
1
.

/.1.3 'ormalizacija na ,etvrtu normalnu formu

Postupak normalizacije na etvrtu normalnu formu, odnosno izvoenja sheme baze
podataka iz relacijske sheme R i skupa funkcijskih i vieznanih zavisnosti F mogue je
provesti postupkom dekompozicije na nain slian izvoenju relacijskih shema na treu
normalnu formu (3NF).

Zapoinje se s relacijskom shemom R i trae se netrivijalne vieznane zavisnosti X Y
koje proizlaze iz skupa F, gdje X nije klju za R.

R se razlae na dvije relacijske sheme

R
1
= X Y i R
2
= X Z , gdje je Z = R \ (XY).

Vieznana zavisnost X Y je trivijalna na R
1
, i ne primjenjuje se na R
2
.

Ako bilo R
1
, bilo R
2
nisu u 4NF u odnosu na F, postupak se ponavlja.

Budui da se za dekompoziciju koriste vieznane zavisnosti koje nisu trivijalne, obje nove
relacijske sheme nastale dekompozicijom imat e manje atributa od originalne relacijske
sheme, to znai da je proces dekompozicije konaan.

54

/.2 Spojne zavisnosti i projekcijsko2spojna normalna forma
/.2.1 Spojne zavisnosti @ S+ 3en#. Aoin Dependencies 2 AD5

Primjer: zadana je relacija

r
3
(LETOVI)= r
3
(LET DAN AVION)
106 Pon 747
106 et 747
106 et 707
204 et 747

U relaciji r
3
s relacijskom shemom LETOVI (LET, DAN, AVION) moe se uoiti da postoje
neke zavisnosti o atributu LET koje, meutim, nisu vieznane zavisnosti.
(Prema definiciji vieznanih zavisnosti atributi DAN i AVION morali bi biti potpuno
nezavisni.)
U relaciji r
3
moe se uoiti da postoji neka zavisnost izmeu atributa DAN i LET.

Relacija r3(LETOVI) ne zadovoljava VZ LET DAN AVION,
AVION DAN LET,
niti DAN LET AVION,
to znai da se ne moe rastaviti bez gubitaka na bilo koji par relacijskih shema R
1
i R
2
,
takvih da je
R
1
<> (LET,DAN,AVION) i
R
2
<> (LET,DAN,AVION).


Meutim, relacija r
3
moe imati netrivijalne dekompozicije bez gubitaka informacija na tri
projekcije: (LET, DAN), (LET,AVION) i (DAN, AVION).

r
31
(LET DAN) r
32
(LET AVION) r
33
(DAN AVION)
106 Pon 106 747 Pon 747
106 et 106 707 et 747
204 et 204 747 et 707

r
31
>< r
32
= r
34
r
34
>< r
33
= r
3


r
34
(LET DAN AVION) r
3
(LET DAN AVION)
106 Pon 747 106 Pon 747
106 et 747 106 et 747
106 Pon 707 106 et 707
106 et 707 204 et 747
204 et 747


Ovo svojstvo, tj. mogunost dekompozicije relacije r(R) bez gubitaka informacija na skup
relacijskih shema koje su podskupovi od R nazivamo spojnom zavisnou (SZ).





55

Definicija:

Neka je r relacija definirana na shemi R, neka su R1,...,Rp podskupovi od R i neka vrijedi
R = R1 ... Rp.
Relacija r(R) zadovoljava spojnu zavisnost u odnosu na sheme R1, ...Rp:

(SZ) * (R1,...,Rp)

ako se relacija r(R) razlae bez gubitaka na R1,...,Rp.

Tada je svaka doputena vrijednost r(R) jednaka spoju njezinih projekcija na R1, ..., Rp,
odnosno:
r(R) =
R1
(r) >< ... ><
Rp
(r)


Trivijalna spojna zavisnost

Neka je r relacija definirana na shemi R, neka su R1,...,Rp podskupovi od R i neka vrijedi
R = R1 ... Rp.

Spojna zavisnost (SZ) * (R1,...,Rp) je trivijalna ako ju zadovoljava svaka relacija r(R).

Ugraene spojne zavisnosti

Promotrimo pravilo koje vrijedi za funkcijske zavisnosti:
Neka postoji relacija r(R) i funkcijska zavisnost X Y. Ako funkcijska zavisnost X Y
postoji u projekciji od r:

S
(r), za XY S R,

tada X Y postoji i na cijeloj r.

Ova tvrdnja ne vrijedi za vieznane i spojne zavisnosti.

Primjer:
r ( A B C D )
a b c d
a b
1
c d
a b c
1
d
1

a b
1
c
1
d
a
1
b
1
c
1
d
1

ABC
(r) zadovoljava VZ A B, ali r ne zadovoljava A B.

Definicija:
Relacija r(R) zadovoljava ugraenu spojnu zavisnost (ESZ) * ( R
1
,...,R
p
) ako
S
(r)
zadovoljava *(R
1
,...,R
p
) kao regularnu spojnu zavisnost, pri emu je S = R
1
...R
p
.
Dozvoljeno je da je R = S, to znai da svaka JD predstavlja EJD.

Takoer moe se opisati ugraena vieznana zavisnost:
(EVZ) *(XY, XZ) kao X Y (Z).

56



/.2.2 Spojno2projekcijska normalna forma 3(A'F5

Postoje dvije definicije spojno-projekcijske normalne forme, pri emu je druga definicija
poboljana u odnosu na prvu zbog eventualnog postojanja redundancije, to e biti
prikazano primjerom 8.xx.

Definicija PJNF

Neka je R relacijska shema i F skup funkcijskih i spojnih zavisnosti. (FZ i JD).
R je u PJNF u odnosu na F ako za svaku (JD) * (R1,...,Rp) koju povlai F i koja se
primjenjuje na R vrijedi da je JD trivijalna, ili je svaki Ri superklju za R.

Relacijska shema baze je u PJNF u odnosu na F ako je svaka relacijska shema baze u
PJNF u odnosu na F.

Definicija PJNF (Fagin)

Ova definicija namee jaa ogranienja od prve definicije.

R je u PJNF u odnosu na F ako za svaku
(JD) * (R1,...,Rp) iz F koja se primjenjuje na R
(JD) * (R1,...,Rp) slijedi iz kljueva koje odreuju FZ u R.

Ova definicija namee jaa ogranienja od prve definicije. Prvom definicijom nije eliminirana
redundancija, to je osnovni cilj provoenja normalizacija.

Primjer:

Neka je R = A B C i neka je F = { ABC, CAB, *(AB,BC)}. Budui da su AB i BC
superkljuevi od R, R zadovoljava prvu definiciju PJNF.

Meutim, R ne zadovoljava drugu definiciju JD u odnosu na F. Moe se pokazati da
dekompozicija R na (AB, BC) zauzima vie prostora nego R.




57

0 Ostale zavisnosti

Zavisnosti koje su razmatrane u prethodnim poglavljima nisu jedine zavisnosti koje se
mogu pojaviti meu podacima u bazi podataka. Postoje razliite teorije zavisnosti (eng.
Dependency theory) [Elmasri2000] koje razmatraju drugaije odnose meu podacima.
Ovdje e biti spomenute:
zavisnosti ukljuuvanja (eng. Inclusion dependencies),
zavisnosti definirane predlocima (eng. Template dependencies) te
zavisnosti definirane domenama i kljuevima i pripadna normalna forma (eng.
Domain-key normal form).

0.1 +avisnosti uklju,ivanja

Zavisnosti ukljuivanja omoguuju definiranje zavisnosti meu relacijama, kao to su:
Ogranienja stranog kljua/referencijskog integriteta
Ogranienja izmeu dviju relacija koje predstavljaju generalizaciju/specijalizaciju ili
odnos skup/podskup

Zavisnost ukljuivanja R.X < S.Y izmeu dva skupa atributa X iz relacijske sheme R i Y
iz relacijske sheme S opisuje ogranienje prema kojem, u bilo kojem asu, relacija r
definirana na shemi R i relacija s definirana na shemi S moraju zadovoljavati:

X
(r(R))
Y
(s(S))
pri emu vrijedi:
X R, Y S, card(X) = card(Y) i domene svakog para atributa od X i Y moraju biti
kompatibilne.

Primjer 9.1.
Pravilo referencijskog integriteta gdje je atribut postbr u relaciji r(ime, prezime, postbr)
strani klju koji se odnosi na primarni klju pbr relacije s(pbr, nazivMj) moue je prikazati
s pomou zavisnosti ukljuivanja kao r.postbr < s.pbr.

r (ime, prezime, postbr) s (pbr, nazivMj)
Iva Horvat 10000 10000 Zagreb
Tin Kolar 21000 21000 Split
Ivan Ki 31000 31000 Osijek
Josip Kolar 31000 51000 Rijeka

postbr
(r(ime, prezime, postbr))
pbr
(s(pbr, nazivMj))

postbr pbr
10000 10000
21000 21000
31000 31000
51000

Relacije r i s zadovoljavaju zavisnost ukljuivanja r.postbr < s.pbr.





58

Primjer 9.2.
Odnos skup/podskup ili generalizacija/specijalizacija moe se s pomou zavisnosti
ukljuivanja.
Zadane su relacije osoba(mbr, ime, prezime), student(mbr, godUpisa) i nastavnik(mbr,
zvanje). Relacija osoba predstavlja skup, odnosno generalizaciju, dok relacije student i
nastavnik predstavljaju podskupove, odnosno specijalizacije.










Zavisnost se opisuje na sljedei nain:

student.mbr < osoba.mbr nastavnik.mbr < osoba.mbr

osoba (mbr, ime, prezime) student (mbr, godUpisa) nastavnik(mbr, zvanje)
1 Iva Horvat 1 2005 2 docent
2 Tin Kolar 3 2005 3 asistent
3 Ivan Ki 4 2006
4 Ana Novak

mbr
(student(mbr,godUpisa))
mbr
(osoba(mbr,ime, prezime))

mbr
(nastavnik(mbr,zvanje))
mbr
(osoba(mbr,ime, prezime))


0.1.1 (ravila koja vrijede za zavisnosti uklju,ivanja

Mogue je i formalno definirati pravila koja vrijede za zavisnosti ukljuivanja (eng.
Inference Rules for Inclusion Dependencies), analogno pravilima koja se definiraju za
ostale zavisnosti.

Zadane su relacijske sheme R i S i skupovi atributa X i Y, priemu je X R, Y S.

ZU 1 (refleksivnost):
R.X < R.X

ZU2 (korsepondentnost atributa):
Ako vrijedi R.X < S.Y,
gdje je X = { A1, A2, ..., An } i Y = { B1, B2, ..., Bn } i Ai CORRESPONDS-TO Bi , tada
vrijedi i R. Ai < S. Bi za 1 i n

ZU3 (tranzitivnost):
Ako vrijedi R.X < S.Y i S.Y < T.Z,
tada vrijedi i R.X < T.Z
STUDENT
OSOBA
o
NASTAVNIK

59

0.2 +avisnosti definirane predlo<cima

Bez obzira na to koliko tipova zavisnosti razvijemo, uvijek e moi iskrsnuti neka
ogranienja, temeljena na semantici atributa unutar relacija, koja se nee moi predstaviti
bilo kojim od postojeih tipova zavisnosti.

Zavisnosti definirane predlocima (eng. Template dependencies) temelji se na
primjerima, odnosno predlocima kojima se mogu iskazati sve zavisnosti ili ogranienja.

Postoje dvije vrste predloaka:
Predloci za generiranje n-torki (eng. Tuple-generating templates),
Predloci za generiranje ogranienja (eng. Constraint-generating templates).

Predloak se sastoji od nekoliko n-torki hipoteze (eng. hypothesis tuples) ija je
namjena da pokau primjer kakve se n-torke mogu pojaviti u jednoj ili vie relacija. Drugi
dio predloka ini konkluzija predloka (eng. template conclusion).

Za predloke za generiranje n-torki, konkluzija predstavlja skup n-torki koje takoer
moraju postojati u relacijama, ako relacije sadre n-torke hipoteze.

Za predloke za generiranje ogranienja, konkluzija predloka je uvjet koji mora biti
zadovoljen na n-torkama hipoteze.

U sljedeim primjerima pomou zavisnosti definiranih predlocima bit e prikazana do
sada ve poznata ogranienja, kao to su funkcijska zavisnost, vieznana zavisnost
zavisnost ukljuivanja i pravilo odnosnog integriteta.

Primjer 9.3.

Funkcijska zavisnost X Y, gdje su X i Y skupovi atributa relacijske sheme R,
R = ABCD, pri emu je X = AB i Y = CD, definirana je sljedeim predlokom za
generiranje ogranienja:


hipoteza a1 b1 c1 d1
a1 b1 c2 d2
____________________________________________________
konkluzija c1 = c2 d1= d2

Primjer 9.4.

Vieznana zavisnost X Y, gdje su X i Y skupovi atributa relacijske sheme R,
R = ABCD, pri emu je X = AB i Y = C, definirana je sljedeim predlokom za generiranje
n-torki:

hipoteza a
1
b
1
c
1
d
1

a
1
b
1
c
2
d
2

_________________________________________
konkluzija a
1
b
1
c
2
d
1

a
1
b
1
c
1
d
2





60

Primjer 9.5.

Zavisnost ukljuivanja R.X < S.Y, gdje su X i Y skupovi atributa, R i S relacijske sheme,
R = ABCD, S = EFG, r(R) i s(S) relacije definirane na shemama R i S, pri emu je X = CD
i Y = EF, definirana je sljedeim predlokom za generiranje n-torki:

r(R) s(S)
hipoteza a1 b1 c1 d1
_____________________________________________________________________
konkluzija c1 d1 g


Primjer 9.6.

Pravilo odnosnog integriteta ogranienje da plaa zaposlenika mora biti manja od plae
rukovoditelja, definirana je sljedeim predlokom za generiranje n-torki:

Zadana je relacijska shema:
ZAPOSLENIK = mbr, ime, plaa, rukovoditelj

hipoteza a b c d
d e f g
____________________________________________________
konkluzija c < f

0.3 'ormalna forma domene i klju,a @ DBC'F

Normalna forma domene i kljua (eng. Domain-key normal form DK/NF) nije definirana
funkcijskim, vieznanim ili spojnim zavisnostima, nego ogranienjima domena (eng.
Domain constraint) i ogranienjima kljueva (eng. Key constraint) koja se primijenjuju na
relacijskoj shemi. Ova ogranienja definiraju se na sljedei nain:

Domensko ogranienje - vrijednosti nekog atributa pripadaju nekoj predefiniranoj
domeni,
Ogranienje kljua - atribut ili skup atributa iz R ine mogui klju u R.


Definicija DK/NF

Relacija r(R) je u DK/NF ako i samo ako je svako ogranienje na R logika posljedica
domenskog ogranienja i ogranienja kljua koja se primjenjuju na R.


Sva ostala ogranienja (funkcijske zavisnosti, vieznane zavisnosti, spojne zavisnosti i
ostali relacijski predikati) proizlaze iz domenskog ogranienja i ogranienja kljua.

Zbog toga relacija koja zadovoljava DK/NF nuno zadovoljava PJNF, a time i 4NF, 3NF,
odnosno BCNF.


61

6 :iteratura
[Maier1983] Maier, D. The Theory of Relational Databases. Computer Science
Press, Inc., Potomac, Maryland, 1983.
[Tkalac1988] Tkalac, S. Relacijski model podataka, Informator, Zagreb, 1988.
[Beeri1979] Beeri, C.; Bernstein, P. Computational Problems Related to the
Design of Normal Form Relational Database, ACM Ttransactions
on Database Systems, Vol. 4, No. 1, 1979.
[Date2000] Date, C. J. An Introduction to Database Systems, 7
nt
Edition,
Addison-Wesley Pub. Comp., 2000
[Elmasri2000] Elmasri, R.; Navathe, S. B.: Fundamentals of Database Systems,
3
rd
Edition, Addison-Wesley Longman Inc., 2000

You might also like