Sunteți pe pagina 1din 26

Capitolul 3.

Dependen e func ionale

Capitolul

DEPENDEN E FUNC IONALE


Proiectarea logic a bazei de date urm re te printre altele diminuarea redundan ei
i asigurarea securit ii datelor. Acest scop se poate atinge, dac se cunosc a priori
constrngerile ce pot fi aplicate asupra datelor. Dependen ele sunt constrngeri impuse
datelor n baza de date. Ba mai mult, mul imea de dependen e este partea esen ial a
schemei unei rela ii, deci i a schemei bazei de date. Dependen ele func ionale au fost
primele constrngeri logice considerate n modelul rela ional. Ele formeaz cel mai
simplu i cel mai larg r spndit tip de dependen e.
Prezentul capitol e consacrat regulilor de inferen , nchiderilor i diverselor
forme de acoperiri ale dependen elor func ionale.

3.1. No iuni generale


S consider m rela ia orar din fig. 3.1.
orar

PROFESOR
Petrescu
Petrescu
Petrescu
Vasilache

DISCIPLIN,
Baze de date
Baze de date
Baze de date
Progr.logic

ZI
Luni
Mierc.
Mierc.
Luni

OR,
8:00
14:30
16:00
9:30

GRUP,
C941
C941
C941
C941

SAL,
402
216
216
404

Fig.3.1. Rela ia orar


Aceast rela ie arat care profesor pred disciplina dat , c rei grupe, n ce zi a
s pt mnii, la ce or i n ce sal . Atributele ce formeaz schema acestei rela ii nu pot
primi orice valori. Atributele se afl ntr-o interdependen . Aici, n particular, se
suprapun asupra atributelor urm toarele constrngeri:
(1) o disciplin este predat unei grupe de studiu de un singur profesor;
(2) profesorul, n ziua dat , la ora dat se g se te ntr-o singur sal ;
(3) n ziua dat , la ora dat , n sala dat se pred o singur disciplin .
Aceste constrngeri ce reflect o interdependen ntre atribute sunt exemple de
dependen e func ionale. Dependen a func ional este o generalizare a no iunii de cheie.
Constrngerile de mai sus pot fi formulate:
(1) DISCIPLIN, GRUP, determin func ional PROFESOR sau, ce e
echivalent PROFESOR e determinat func ional de DISCIPLIN, GRUP,;
(2) PROFESOR ZI OR, determin func ional SAL,;
(3) ZI OR, SAL, determin func ional DISCIPLIN,;
i notate respectiv:
(1) DISCIPLIN, GRUP, PROFESOR;
(2) PROFESOR ZI ORA SALA;
(3) ZI ORA SAL, DISCIPLINA.

Capitolul 3. Dependen e func ionale

Unica posibilitate de a determina dependen ele func ionale const ntr-o analiz cu
luare-aminte a semanticii atributelor. n acest sens dependen ele sunt de fapt aser iuni
despre lumea real . Ele nu pot fi demonstrate. Dar ele pot i trebuie s fie sus inute de
SGBD-uri. Majoritatea sistemelor sus in numai dependen ele func ionale determinate de
cheile rela iei. Dar sunt i sisteme ce sus in dependen e func ionale arbitrare.
Trebuie men ionat c declararea dependen elor func ionale ntr-o baz de date este
o decizie pe care o ia numai proiectantul bazei de date. Odat declarate SGBD-ul va
sus ine aceste constrngeri. n afar de aceasta, dup cum se va vedea n celelalte
sec iuni, gra ie dependen elor, exist o structur mai eficient de p strare a datelor.
Dependen ele func ionale vor servi la proiectarea schemelor bazelor de date cu anumite
propriet i dezirabile.
Defini ia 3.1. Fie rela ia r cu schema R i X,Y R. Vom spune c dependen a
func ional X Y este valid n rela ia r (sau rela ia r satisface dependen a func ional
X Y), dac , pentru orice dou tupluri din r, fie t1 i t2, din condi ia c tuplurile au Xvalori identice, urmeaz c au i Y-valori identice, adic t1[X]=t2[X] t1[Y]=t2[Y].
Dac X Y e valid n r(R), vom spune c X determin func ional Y sau, c Y e
determinat func ional de X. n aceast defini ie ( i mai departe) simbolul " " noteaz
"implic ".
Deci dependen a func ional X Y reprezint o restric ie de integritate aplicat
tuplurilor rela iei r(R), n sensul c oricare dou tupluri din r care prezint o aceea i
valoare pentru X trebuie s prezinte o aceea i valoare pentru Y.
Defini ia 3.1 poate fi interpretat i n felul urm tor: rela ia r(R) satisface
dependen a func ional X Y, dac rela ia Y( X=x(r)) con ine nu mai mult de un tuplu
pentru orice valoare x a atributului X.
Partea stng a dependen ei poart numele de determinant, iar partea dreapt a
dependen ei poart numele de determinat. Astfel n cadrul dependen ei X Y, X este
determinantul, iar Y determinatul.
Exemplul 3.1. Consider m rela iile din fig.3.2. n ele sunt valide urm toarele
dependen e func ionale. n rela ia r1: A B; n rela ia r2: A B, B A; n rela ia r3:
A B.
r1

A
a1
a2
a3
a4
a5
a6

B
b1
b2
b1
b1
b2
b2

r2

A
a1
a2
a1
a3
a2
a4

B
b1
b4
b1
b2
b4
b3

r3

A
a1
a2
a1
a3
a2
a4

B
b1
b4
b1
b2
b4
b4

Fig.3.2. Rela iile r1, r2 i r3.


Pentru a verifica dac o dependen
urm torul algoritm.

e valid ntr-o rela ie dat , se utilizeaz

Capitolul 3. Dependen e func ionale

Algoritmul SATISF (r, X Y)


Intrare: Rela ia r(R), dependen a func ional X Y, unde X,Y R.
Ie ire: Adev r, dac rela ia r satisface dependen a func ional X Y; fals n caz
contrar.
(1) Se sorteaz tuplurile rela iei r n a a fel, ca tuplurile cu X-valori egale s fie
grupate mpreun .
(2) Se verific dac mul imea de tupluri cu X-valori egale are i Y-valori egale,
atunci la ie ire ob inem adev r; n caz contrar - fals.
Men ion m c nu ne intereseaz dependen ele func ionale ntmpl toare, dar
numai acele ce decurg din semantica atributelor. De exemplu, n rela ia orar e valid i
dependen a func ional PROFESOR DISCIPLIN,. Dar ea nu reprezint o
constrngere ce reflect lumea real , fiindc n realitate un profesor poate i, de regul ,
pred mai multe discipline.
Numai dependen ele nentmpl toare, asigur integritatea semantic a bazei de
date. De exemplu, dac un utilizator dore te s insereze n rela ia orar un tuplu:
Add(orar; <Vasilache "Structuri de date" luni 8:00 c942 402>),
sistemul de gestiune va stopa efectuarea acestei opera ii, fiindc va fi violat dependen a
func ional ZI OR, SAL,
DISCIPLIN,. Dac SGBD-ul nu sus ine dependen ele
func ionale, atunci se poate ntmpla c ntr-o sal n acela i timp se vor preda dou
discipline diferite.

3.2. Reguli de inferen !


ntr-o rela ie r(R) n orice moment sunt valide o mul ime de dependen e
func ionale, s zicem F. Adic F este o mul ime de dependen e satisf cut de rela ia
r(R). Aici apare aceea i problem ca i n cazul cheilor. O extensie a rela iei satisface
mul imea F de dependen e func ionale, n timp ce alt extensie nu satisface. Pe noi ne
intereseaz numai dependen ele ce sunt satisf cute de orice extensie a rela iei r(R). Dar
pentru aceasta sunt necesare cuno tin e asupra semanticii rela iei r(R). Vom considera
c mul imea F de dependen e func ionale este definit pe mul imea R de atribute ce
formeaz schema rela iei r i orice extensie a rela iei r satisface mul imea F.
Evident c mul imea de dependen e valide n r(R) este finit , fiindc finit este
schema R. Prin urmare, s-ar putea verifica dac r satisface dependen ele din F, aplicnd
algoritmul SATISF. ns astfel de solu ie este foarte laborioas . Exist o alt cale. Dac
sunt cunoscute ni te dependen e, din ele pot fi deduse altele.
Defini ia 3.2. Fie rela ia r cu schema R, F o mul ime de dependen e func ionale i
f o dependen asupra R. Not m cu SAT(F) mul imea tuturor rela iilor asupra R ce
satisface orice dependen din F. Vom spune c F logic implic f, sau f este consecin
logic a F, scriem F|=f, dac orice rela ie r(R) ce satisface dependen ele din F satisface
i f, adic
r(R) SAT(F) r(R) SAT(F {f}).
O regul de inferen stabile te c , dac o rela ie satisface anumite dependen e, ea
trebuie s satisfac i alte dependen e. Vom considera ase reguli de inferen a
dependen elor func ionale.
Fie rela ia r definit pe mul imea de atribute R i fie W,X,Y,Z R.

Capitolul 3. Dependen e func ionale

DF1. Regula reflexivit# ii. Dac Y X, atunci X Y.


Demonstrarea acestei afirma ii este evident . Nu putem avea ntr-o rela ie dou
tupluri cu X-valori egale i s nu fie egale componentele lor pentru o submul ime a lui
X.
Defini ia 3.3. O dependen X Y este trivial dac Y X.
Regula DF1 genereaz numai dependen e triviale i ea nu depinde de F. ntruct
X R, atunci X
i R X sunt dependen e triviale. Deoarece X X, X X e
dependen trivial . Dintre aceste dependen e prima, X
, nu are nici o aplicare
practic .
DF2. Regula increment#rii. Dac X Y i Z W, atunci XW YZ.
Demonstra ie. Fie r satisface dependen a func ional X Y, ns n ea exist dou
tupluri t1 i t2 cu XW-valori egale, dar componentele YZ nu coincid. Conform regulii
DF1 tuplurile t1 i t2 au Z-valori egale (fiindc Z W). Atunci tuplurile trebuie s nu
coincid m car pe un atribut din Y. Dar aceasta nseamn c tuplurile t1 i t2 au X-valori
egale i nu au Y-valori egale, ce contrazice ipoteza c rela ia r satisface dependen a
func ional X Y.
S observ m c regula DF2 are mai multe cazuri speciale. Dac Z=
i X Y,
atunci XW Y pentru orice submul ime W din R. Dac W=Z i X Y, atunci
XW YW. Dac X=W, Z=X i X Y, atunci XX XY, adic X XY.
r

A
a1
a2
a1
a3

B
b1
b2
b1
b3

C
c1
c1
c1
c2

D
d1
d1
d2
d3

Fig.3.3.
Exemplul 3.2. Consider m rela ia din figura 3.3. Rela ia r(ABCD) satisface
dependen a func ional A B. Conform regulii DF2 n aceast rela ie sunt valide i
dependen ele AB B, AC B, AD B, ABC B, ABD B, ACD B, ABCD B,
AC BC, AD BD, ABC BC, ABD BD, ACD BC, ACD BD, ACD BCD,
ABCD BC, ABCD BD, ABCD BCD.
DF3. Regula aditivit# ii. Dac X Y i X Z, atunci X YZ.
Demonstra ie. Presupunem contrariul: n rela ia r(R) exist dou tupluri t1 i t2,
pentru care t1[X]=t2[X], dar t1[YZ] t2[YZ]. Atunci, sau t1[Y] t2[Y], sau t1[Z] t2[Z], sau
ambele concomitent. Dar aceasta contrazice presupunerea, c rela ia r satisface
dependen ele X Y i X Z.
Exemplul 3.3. Rela ia r(ABCD) reprezentat n fig.3.3 satisface dependen ele
func ionale A B i A C. Conform regulii DF3, rela ia r trebuie s satisfac i
dependen a A BC.

Capitolul 3. Dependen e func ionale

DF4. Regula proiectivit# ii. Dac X YZ, atunci X Y.


Demonstra ie. Afirma ia este adev rat , fiindc , dac r satisface X YZ, atunci
pentru orice dou tupluri t1 i t2 din t1[X]=t2[X] urmeaz t1[YZ]=t2[YZ] i tuplurile vor
coincide i pe orice submul ime ale mul imii YZ. Deci t1[Y]=t2[Y].
Exemplul 3.4. Rela ia din fig.3.3 satisface dependen a func ional
Conform regulii DF4, ea satisface i dependen ele A B i A C.

A BC.

DF5. Regula tranzitivit# ii. Dac X Y i Y Z, atunci X Z.


Demonstra ie. Pentru a demonstra regula DF5, vom presupune contrariul. Fie
rela ia r satisface dependen ele X Y i Y Z, dar nu satisface dependen a X Z.
Atunci rela ia r are cel pu in dou tupluri t1 i t2, pentru care t1[X]=t2[X], iar t1[Z] t2[Z].
Dac t1[Y]=t2[Y], atunci inegalitatea t1[Z] t2[Z] contrazice presupunerea c n r e valid
dependen a func ional Y Z. Dac t1[Y] t2[Y], atunci egalitatea t1[X]=t2[X] contrazice
presupunerea c X Y e valid n r.
r

A
a1
a2
a3
a4

B
b1
b2
b1
b1

C
c2
c1
c2
c2

D
d1
d2
d1
d3

Fig.3.4.
Exemplul 3.5. Rela ia r(ABCD), reprezentat n fig.3.4, satisface dependen ele
func ionale A B i B C. Conform regulii tranzitivit ii, rela ia r satisface i
dependen a func ional A C.
DF6. Regula pseudotranzitivit# ii. Dac X Y i YW Z, atunci XW Z.
Demonstra ie. Presupunem contrariul: rela ia r(R) satisface dependen ele
func ionale X Y i YW Z, dar nu satisface dependen a func ional XW Z. Adic
exist dou tupluri t1, t2 r pentru care t1[XW]=t2[XW] i t1[Z] t2[Z]. Din egalitatea
t1[XW]=t2[XW] urmeaz t1[X]=t2[X] i t1[W]=t2[W]. Pot avea loc dou cazuri: sau
t1[YW]=t2[YW], sau t1[YW] t2[YW].
(1) Fie t1[YW]=t2[YW]. Atunci din condi ia c t1[Z] t2[Z] reiese c dependen a
func ional YW Z nu e valid n r.
(2) Fie t1[YW] t2[YW]. ntruct t1[W]=t2[W] rezult c t1[Y] t2[Y]. Din ultima
inegalitate i din condi ia t1[X]=t2[X] urmeaz c rela ia r nu satisface
dependen a func ional X Y.
Li ntr-un caz i n altul am ajuns la contradic ie. Deci din X Y i YW Z urmeaz
XW Z.
A adar, dac W,X,Y,Z R, atunci n orice rela ie r cu schema R sunt valide
regulile de inferen din fig.3.5.
Simbol

Denumire

Regul

Capitolul 3. Dependen e func ionale

DF1
DF2
DF3
DF4
DF5
DF6

Reflexivitatea
Incrementarea
Aditivitatea
Proiectivitatea
Tranzitivitatea
Pseudotranzitivitatea

Y
X
X
X
X
X

X X Y
Y, Z W XW YZ
Y, X Z X YZ
YZ X Y
Y, Y Z X Z
Y, YW Z XW Z

Fig.3.5. Reguli de inferen a dependen elor func ionale


S observ m c proiectivitatea (DF4) este, ntr-un sens, regula invers regulii
aditivit ii (DF3). Regula DF3 se utilizeaz pentru a uni dou dependen e cu
determinante egale n una, n timp ce regula DF4 - pentru descompunerea unei
dependente.

3.3. Axiomele Armstrong


Defini ia 3.4. Fie F o mul ime de dependen e asupra R i fie f o dependen
func ional asupra R. Deriva ie a dependen ei f din F, notat cu F|-f, este o
consecutivitate finit de dependen e func ionale f1,f2,...,fk unde:
(1) orice dependen fi poate fi dedus din (o submul ime a mul imii)
F {f1,f2,...,fi-1}, aplicnd regulile de inferen DF1-DF6;
(2) f este ultimul element, fk, n consecutivitate.
Remarc#. Condi ia (1) mai poate fi formulat n felul urm tor. Orice dependen f
este element al mul imii F sau se deduce din consecutivitatea {f1, f2,..., fi-1}, aplicnd
regulile de inferen DF1-DF6.
Dac F|-f, vom spune c F deriv f sau c f e derivabil din F. Dac G este
mul ime de dependen e func ionale, atunci prin F|-G se subn elege c orice
dependen func ional din G e derivabil din F.
E clar c , dac n condi ia (1) a defini iei 3.4 mul imea de dependen e func ionale
F e vid , adic
|-f, atunci f e dependen trivial , fiindc singura regula de inferen
corespunz toare poate fi doar DF1.
Cu ajutorul regulilor de inferen putem deduce noi dependen e func ionale din
cele date.
Exemplul 3.4. Fie r o rela ie cu schema R i X,Y,Z R. Presupunem c n r(R)
sunt valide dependen ele XY Z i X Y. Atunci, conform regulii DF6, rela ia r
satisface i dependen a XX Z care se reduce la X Z.
Pentru a combate o afirma ie despre validitatea unei dependen e func ionale, e
suficient de a aduce un exemplu de rela ie ce nu satisface afirma ia dat .
r

A
a1
a1

B
b1
b2

C
c1
c2

D
d1
d1

Capitolul 3. Dependen e func ionale

Fig.3.6.
Exemplul 3.5. S combatem afirma ia c dependen a XY ZW implic
dependen a X Z. Rela ia r(ABCD) din fig.3.6 satisface dependen a func ional
AB CD, dar nu satisface dependen a A C.
Unele reguli de inferen pot fi deduse din altele. Armstrong a ar tat c regulile
DF1, DF2 i DF5 formeaz o mul ime de reguli independente, iar regulile DF3, DF4 i
DF6 pot fi deduse din DF1, DF2 i DF5. Mul imea {DF1, DF2, DF5} de reguli de
inferen este cunoscut sub denumirea de axiome Armstrong.
Teorema 3.1. Regulile DF3, DF4 i DF6 se deduc din regulile DF1, DF2, DF5.
Demonstra ie. S ar t m c regula DF3 se deduce din regulile DF1, DF2, DF5,
adic {X Y, X Z}|-X YZ, aplicnd doar DF1, DF2, DF5. ntr-adev r, aceast
aser iune are loc, fiindc putem construi urm toarea consecutivitate de derivare.
f1:=X Y (dependen dat ),
f2:=X XY (f1|-f2 aplicnd DF2),
f3:=X Z (dependen dat ),
f4:=XY YZ (f3|-f4, aplicnd DF2),
f5:=X YZ ({f2, f4}|-f5, aplicnd DF5).
Fiindc X YZ este ultimul, f5, element n consecutivitate, DF3 se deduce din
DF2 i DF5.
S ne convingem c regula DF4 se deduce din DF1, DF2, DF5, adic X YZ|X Y, aplicnd regulile DF1, DF2, DF5. Aceasta se confirm de urm toarea
consecutivitate de derivare.
f1:=X YZ (dependen dat ),
f2:=YZ Y (dependen trivial , aplicnd DF1),
f3:=X Y ({f1, f2}|-f3, aplicnd DF5).
Deci, regula DF4 se deduce din DF1 i DF5.
n sfr it, s ar t m c {X Y, YW Z}|-XW Z, aplicnd regulile DF1, DF2 i
DF5. Putem construi urm toarea consecutivitate de dependen e func ionale.
f1:=X Y (dependen dat ),
f2:=XW YW (f1|-f2 aplicnd DF2),
f3:=YW Z (dependen dat ),
f4:=XW Z ({f2, f3}|-f4, aplicnd DF5).
Deci, regula DF6 se deduce din regulile DF1, DF2, DF5.
Defini ia 3.5. Fie F o mul ime de dependen e func ionale asupra schemei R i
X,Y R. nchiderea mul imii F, notat cu F+, se define te recursiv:
(1)
F F+;
(2)
(3)

Dac F1 F i F1|-X Y, atunci X Y F+;


Nimic altceva nu e n F+.

Capitolul 3. Dependen e func ionale

Deci, F+ =F {X Y| F1|-X Y pentru F1 F i X, Y R}. Cu alte cuvinte,


nchiderea unei mul imi de dependen e func ionale, F+, reprezint mul imea tuturor
dependen elor func ionale care se pot deriva din mul imea F, aplicnd axiomele
Armstrong. Este clar c F+=(F+)+.
AB
ABC
ABC
AC

Exemplul 3.6. Fie rela ia r(ABC) i F={AB C, C B}. Atunci F+= {A A,


A, AC A, ABC A, B B, AB B, BC B, ABC B, C C, AC C, BC C,
C, AB AB, ABC AB, AC AC, ABC AC, BC BC, ABC BC,
ABC, AB C, AB AC, AB BC, AB ABC, C B, C BC, AC B,
AB}.
n F+ primele nou sprezece dependen e sunt triviale i se deriv din mul imea

de dependen e, aplicnd DF1, adic

|-{X Y|Y X ABC}. Alte dependen e X Y

se deriv din Z Y, unde Z X, aplicnd regula increment rii (DF2), adic {Z Y}|{X Y|Z X R i X i Y R}. n F+ avem ase dependen e deduse, aplicnd regula
DF2 asupra F. Deci AB C|-{AB AC, AB BC, AB ABC} i {C B}|-{C BC,
AC B, AC AB}. Regula tranzitivit ii nu genereaz dependen e netriviale. n afar
de aceasta, F+ con ine cele dou dependen e din F. n total F+ const din dou zeci i
apte dependen e.
Din exemplul de mai sus, se observ c num rul de dependen e ce alc tuiesc F+
este destul de mare n raport cu F.
Dac F= , atunci F+ const numai din dependen e triviale. Fiindc orice rela ie
r(R) satisface orice dependen trivial asupra R, dependen ele triviale, binen eles, nu
se consider constrngeri asupra rela iei. ntruct R are 2|R| submul imi, num rul de
dependen e triviale ntr-o rela ie este exponen ial. Nu vom considera de asemenea
dependen ele de forma X
, fiindc ele nu au aplicare practic .

3.4. Completitudinea regulilor de inferen !


Defini ia 3.6. Fie RI o mul ime de reguli de inferen

asupra mul imii de

dependen e F. Mul imea RI de reguli este nchis , dac F|-f, utiliznd regulile din RI,
implic F|=f. Mul imea de reguli de inferen
f, utiliznd regulile din RI.

RI este complet , dac F|=f implic F|-

C mul imea de reguli DF1-DF6 este nchis , adic ele au loc n orice rela ie, s-a
demonstrat pentru fiecare regul n parte n sec iunea 3.2. Pentru a ar ta c mul imea de
reguli este complet mai nti introducem no iunea de nchidere a unei mul imi de
atribute.
Defini ia 3.7. Fie F o mul ime de dependen e asupra R i X R. nchiderea
mul imii de atribute X n raport cu mul imea de dependen e F, notat cu X+, se define te
astfel:
(1) X X+ (X e o submul ime a nchiderii);
(2) Dac Z X+ i Z Y F, atunci Y X+;
(3) Nici un alt atribut nu face parte din X+.

Capitolul 3. Dependen e func ionale

Adic X+=X {Y|Z X+ i Z Y F}.


Condi ie
defini ia 3.6.

Comparare atribute,
dependen e
AB (AB)+
AB AB i AB DE F
D ABDE i D C F
CE ABCDE i CE G F

(1)
(2)
(2)
(2)

(AB)+
AB
ABDE
ABCDE
ABCDEG

Fig.3.7.

Exemplul 3.7. Fie R=ABCDEG i F={D C, AB DE, CE G}. S se arate c


(AB)+ = ABCDEG. n fig.3.7 este reprezentat procesul de construire a (AB)+.
r
t1
t2

X+
a a ... a
a a ... a

R\X+
a a ... a
b b ... b

Fig.3.8.
Teorema 3.2. Mul imea de reguli de inferen DF1-DF6 este complet .
Demonstra ie. Fie F o mul ime de dependen e asupra R. Trebuie s ar t m c ,
dac F|=X Y, atunci F|-X Y (sau, ce e echivalent, dac
F|TX Y).

F|-X Y, atunci

Fie X Y o dependen func ional ce nu se deduce din F, adic F|-X Y. S


ar t m c rela ia ce satisface toate dependen ele din F nu satisface X Y, adic
F|TX Y.
Definim rela ia r(R) n felul urm tor (vezi fig.3.8). Ea const din dou tupluri t1 i
t2. Tuplul t1=aa...a; tuplul t2 se define te astfel t2[A] = {a, dac Ai X+; b, dac
Ai R\X+}.
Mai nti, vom ar ta c rela ia construit satisface toate dependen ele din F.
Presupunem contrariul. Exist n F o dependen V W ce nu e valid n r(R). Atunci
V X+ i W X+, altminteri rela ia r va satisface dependen a V W. ntruct W X+,
exist n W cel pu in un atribut A i A X+. Conform regulii reflexivit ii V X+ implic
X+ V. Dependen ele X+ V i V W implic , conform regulii DF5, X+ W. Din
A W urmeaz W A. Aplicnd asupra X+ W i W A regula tranzitivit ii ob inem
X+ A. Din ultima dependen , X+ A, urmeaz c A X+, ce contrazice faptului c
A X+. Deci rela ia construit satisface orice dependen din F.
Acum s ar t m c rela ia noastr nu satisface dependen a X Y. Presupunem c
rela ia r(R) satisface dependen a X Y. Atunci t1[X]=t2[X] implic t1[Y]=t2[Y]. Aceasta
se poate ntmpla doar cnd Y X+. Din Y X+, aplicnd regula DF1, urmeaz X+ Y.
Dependen a X X+ este n F+. Aplicnd asupra X X+ i X+ Y regula DF5, ob inem
X Y. Dar aceasta contrazice ipoteza c F|-X Y.
Deci, dac F|=X Y, atunci F|-X Y.

Capitolul 3. Dependen e func ionale

Lund n considera ie c (n compartimentul 3.2.) s-a demonstrat c mul imea de


reguli este nchis , adic F|-X Y implic F|=X Y putem spune c mul imea de
reguli de inferen

DF1-DF6 este nchis

i complet , adic F|=X Y, dac

i numai

dac F|-X Y. Prin urmare, putem utiliza |= i |- deopotriv .


Dat fiind faptul c regulile DF1-DF6 se deduc din axiomele Armstrong, vom
spune c i axiomele Armstrong sunt nchise i complete.

3.5. Modele de deriv!ri


No iunea de consecutivitate de derivare introdus n sec iunea 3.3 are o serie de
dezavantaje. De regul , pentru o dependen f pot exista o serie de deriv ri din mul imea
de dependen e date F. Aceste deriv ri, fiind n esen echivalente, difer prin ordinea i
tipul regulilor aplicate pentru derivarea dependen elor din consecutivitate. n plus,
consecutivit ile de derivare pot con ine dependen e derivate redundante. Mai jos vom
examina modele de deriv ri ce ntr-o m sur sau alta sunt lipsite de aceste dezavantaje.

3.5.1. RAPconsecutivit! i de derivare


Axiomele Armstrong sunt o submul ime complet de reguli de inferen a
mul imii DF1-DF6. Exist , ns , mul imi complete de reguli de inferen ce nu sunt
submul imi ale mul imii DF1-DF6. Consider m o astfel de mul ime de reguli de
inferen denumit B-axiome.
Pentru rela ia r(R), submul imile W, X, Y i Z ale mul imii R i C R avem:
B1. Regula reflexivit# ii. Dac Y X, atunci X Y.
B2. Regula acumul#rii. Dac X YZ i Z CW, atunci X YZC.
B3. Regula proiectivit# ii. Dac X YZ, atunci X Y.
Teorema 3.3. Mul imea de reguli B1-B3 este o mul ime nchis .
Demonstra ie. n sec iunea 3.2 s-a demonstrat c regulile reflexivit ii i
proiectivit ii au loc n orice rela ii r cu schema R. S examin m regula acumul rii.
Presupunem contrariul: rela ia r satisface dependen ele X YZ, Z CW i nu satisface
X YZC. Atunci exist dou tupluri t1 i t2 pentru care t1[X]=t2[X], dar
t1[YZC] t2[YZC]. Din t1[YZC] t2[YZC] urmeaz sau t1[YZ] t2[YZ], sau t1[C] t2[C].
Dac t1[YZ] t2[YZ], atunci dependen a X YZ nu e valid n r. Dac t1[C] t2[C] atunci
r nu satisface dependen a Z CW. Prin urmare, dependen a X YZC e valid n orice
rela ie, n care sunt valide dependen ele X YZ i Z CW.
Teorema 3.4. Mul imea de reguli B1-B3 este complet .
Demonstra ie. Pentru a ar ta c regulile B1-B3 sunt complete, e de ajuns
ar t m c axiomele Armstrong se deduc din B-axiome.
Regula reflexivit ii DF1 coincide cu B1.
S ar t m c regula increment rii, DF2, urmeaz din regulile B1-B3. Fie X
Din regula B1 urmeaz XZ XZ. Aplicnd asupra XZ XZ i X Y regula B2
attea ori cte atribute sunt n Y, ob inem XZ XZY. Conform regulii proiectivit
B3, ob inem XZ Y.

s
Y.
de
ii,

10

Capitolul 3. Dependen e func ionale

S demonstr m c regula tranzitivit ii


satisface dependen ele func ionale X Y i Y
aplic m mai nti regula B2 asupra X X i X
ob inem X XY. Aplicnd asupra X XY i
singur aplicare a regulii B3 produce X Y.

DF5 urmeaz din B1-B3. Fie rela ia r


Z. Din B1 ob inem X X. Consecutiv,
Y de attea ori cte atribute sunt n Y i
Y Z, regula B2, ob inem X XYZ. O

Defini ia 3.8. Consecutivitatea de dependen e func ionale se nume te RAPconsecutivitate de derivare (dup primele litere ale denumirilor B-axiomelor:
Reflexivitate, Acumulare, Proiectivitate) a unei dependen e X Y din mul imea de
dependen e F, dac :
(1) prima dependen n consecutivitate e X X;
(2) ultima dependen n consecutivitate e X Y (ob inut , aplicnd regula B3);
(3) orice dependen din consecutivitate (n afar de prima i ultima) sau este o
dependen din F, sau are forma X Z i e ob inut , aplicnd regula B2
asupra dependen elor precedente.
Exemplul 3.8. Fie F={AB E, AG J, BE I, E G, GI H}. Consecutivitatea
de mai jos este RAP-consecutivitate de derivare a dependen ei AB GH din F.
(B1),
f1:=AB AB
f2:=AB E
(dat ),
f3:=AB ABE
(B2: f1, f2),
f4:=BE I
(dat ),
f5:=AB ABEI
(B2: f3, f4),
f6:=E G
(dat ),
f7:= AB ABEIG
(B2:f5, f6),
f8:=GI H
(dat ),
f9:=AB ABEIGH
(B2: f7, f8),
f10:=AB GH
(B3: f9).

3.5.2. DDA-grafuri de derivare


DDA-graful (Derivation Directed Acyclic-graph) este o interpretare grafic a
RAP-consecutivit ii de derivare.
Defini ia 3.9. Fie F o mul ime de dependen e func ionale asupra schemei R.
DDA-graf asupra F este un graf orientat f r cicluri ce se define te recursiv:
R1. O mul ime de noduri notate cu atribute din R este DDA-graf.
R2. Dac H este DDA-graf i B1,...,Bn sunt noduri n H i dependen a func ional
B1...Bn CZ este n F, atunci H1, ob inut din H prin ad ugarea nodului C
(dac astfel de nod nu exist ) i muchiilor (B1C) ... (BnC) orientate spre C,
este DDA-graf.
R3. DDA-graf este numai graful ob inut prin aplicarea regulilor R1 i R2.

11

Capitolul 3. Dependen e func ionale

Fig.3.9.
Defini ia 3.10. Nodul B al unui DDA-graf H se nume te ini ial, dac n el nu intr
nici o muchie (Nodurile ini iale se adaug n H prin regula R1).
Defini ia 3.11. Fie H un DDA-graf asupra F. Graful H se nume te DDA-graf de
derivare a dependen ei X Y din F, dac :
(1) X este mul imea de noduri ini iale n H;
(2) orice atribut din Y este un nod n H.
Defini ia 3.12. Mul imea de dependen e din F utilizate de regula R2 pentru
construirea DDA-grafului H de derivare a unei dependen e X Y din F se nume te
mul ime utilizabil , notat cu U(H).
Exemplul 3.9. n fig.3.9 sunt prezentate etapele de construire a DDA-grafului de
derivare a dependen ei AB CG din mul imea de dependen e func ionale F={AB CD,
A I, C E, DE GI}.

12

Capitolul 3. Dependen e func ionale

Nodurile ini iale sunt A i B. Mul imea utilizabil U(H)={AB CD, C E, DE GI}.
Graful H ob inut este DDA-graful de derivare a dependen ei AB CG din F, fiindc
mul imea de atribute AB formeaz nodurile ini iale din H, iar CG sunt noduri n H.

3.5.3. Deriva ia maximal!


Modelele de derivare descrise mai sus poart mai mult un caracter teoretic. Ele nu
sunt lipsite de neajunsul c pentru o dependen dat exist mai multe consecutivit i de
derivare. Aici vom considera un model, numit derivare maximal , liber de acest
dezavantaj. Acest model este foarte aproape de no iunea de nchidere a unei mul imi de
atribute n raport cu o mul ime de dependen e func ionale. El va fi utilizat n
demonstrarea diverselor rezultate privind acoperirile de dependen e func ionale.
Defini ia 3.13. Fie F o mul ime de dependen e func ionale asupra schemei R i fie
X R. Deriva ia maximal a mul imii de atribute X n raport cu mul imea de dependen e
func ionale F este o consecutivitate de mul imi de atribute <X0,X1,...,Xn>, unde
(1) X0=X;
(2) Xi=Xi-1 Z, 1 i n, unde Z = jWj pentru orice dependen Vj Wj F ce
satisface Vj Xi-1 i Wj Xi-1;
(3) n F nu exist nici o dependen Vj Wj pentru care Vj Xn i W Xn.
nainte de a ar ta c deriva ia maximal este un instrument puternic de modelare a
deriv rii dependen elor func ionale, consider m dou propriet i ale ei.
Lema 3.1. Dac X Y i consecutivit ile <X0, X1,..., Xn>, <Y0, Y1,..., Ym> sunt
deriva ii maximale ale mul imilor X i Y, corespunz tor, n raport cu F, atunci pentru
orice Xi exist o mul ime Yj nct Xi Yj i j i.
Demonstra ie. Vom ar ta aceasta, aplicnd induc ia matematic asupra i. Cnd i=0
avem X0 Y0, fiindc X Y. Fie c presupunerea noastr e just pentru i=k: Xk Yp i
p k. S ar t m c ceea ce trebuie de demonstrat are loc i pentru i=k+1. ntr-adev r, la
pasul k+1, Xk+1=Xk Z, unde Z= jWj pentru toate dependen ele Vj Wj din F
determinan ii i determina ii c rora satisfac Vj Xk i Wj Xk corespunz tor. Conform
ipotezei induc iei Xk Yp. Prin urmare, to i determinan ii dependen elor Vj Wj ce se
con in n Xk se vor con ine i n Yp . Dat fiind faptul c mul imea Yp e mai larg ea
poate con ine to i determina ii Wj i atunci Xk+1 Yp. Dac nu, atunci n deriva ia
mul imii Y n raport cu F se execut urm torul p+1 pas, n rezultatul c ruia vom ob ine
Yp+1 care va con ine Xk+1.
Lema 3.2. Dac <X0, X1,..., Xn> este deriva ia maximal a mul imii X n raport cu
mul imea de dependen e func ionale F, atunci X Xi F+ , 0 i n.
Demonstra ie. Vom face demonstrarea, utiliznd induc ia asupra num rului de
aplic ri a regulii (2) n construirea deriva iei maximale.
Fie c n construirea deriva iei maximale nu s-a aplicat regula (2). Atunci ea are
un singur element X0, unde X0=X i conform regulii reflexivit ii, DF1, X X0 F+.
Presupunem c la aplicarea i-1 a regulii (2) are loc X Xi-1 F+. S se arate
veridicitatea afirma iei pentru pasul i. F r a constrnge generalitatea, presupunem c la
acest pas avem o singur dependen V W ce satisface V Xi-1, W Xi-1. Conform
regulii reflexivit ii Xi-1 V F+. Dar Xi-1 V F+
i V W F+
(regula

13

Capitolul 3. Dependen e func ionale

tranzitivit ii)
implic
Xi-1 W F+. Ad ug m la determinantul i determinatul
ultimei dependen e mul imea Xi-1. Ob inem (conform regulii increment rii) Xi-1 Xi+
+
+
+
1W F . Din X Xi-1 F (ipoteza induc iei) i Xi-1 Xi F urmeaz X Xi F .
n baza acestor dou propriet i vom demonstra
Teorema 3.5. Fie <X0, X1,..., Xn> deriva ia maximal a mul imii X n raport cu
mul imea de dependen e func ionale F. Atunci X Y F+ dac i numai dac Y Xn.
Demonstra ie. Necesitatea. S ar t m c , dac X Y F+, atunci exist o mul ime
Xi n deriva ia maximal <X0,X1,...,Xn> nct Y Xi i, prin urmare, Y Xn. Vom utiliza
induc ia asupra (lungimii deriv rii) num rului de dependen e folosite n derivarea
dependen ei X Y n raport cu F, unde dependen a de derivare sau este n F, sau se
deduce din regula reflexivit ii sau din regula increment rii, aplicate asupra unei
dependen e precedente, sau cu ajutorul regulii tranzitivit ii, aplicate asupra a dou
dependen e precedente. Ultima dependen n derivare, binen eles, e X Y.
Fie c derivarea dependen ei X Y are lungimea 1, adic const din nsu i X Y.
Sunt dou cazuri. Sau X Y se deduce din axioma reflexivit ii, sau X Y F. n
primul caz, Y X i, prin urmare, Y X0. n al doilea caz, dependen a X Y va participa
la formarea elementului al doilea a deriva iei maximale a mul imii X n raport cu F.
Deci Y X1.
Presupunem acum c afirma ia noastr e just pentru o derivare cu lungimea mai
mic dect k i s demonstr m veridicitatea afirma iei noastre pentru derivarea cu
lungimea k. Consider m consecutiv regulile de inferen ce pot fi aplicate la acest pas.
Dac pentru deducerea dependen ei X Y se aplic regula reflexivit ii sau
X Y F, atunci Y se comport ca i pentru deriv ri cu lungimea unu, adic Y se
pomene te corespunz tor n X0 i X1.
Dac X Y urmeaz din regula increment rii asupra unei dependen e precedente
V W, atunci exist S i T, unde T S i VS=X, WT=Y. ntruct V W are o derivare
cu o lungime mai mic dect k, atunci conform ipotezei induc iei exist n deriva ia
maximal o mul ime Vj, unde W Vj. Fiindc V X, atunci conform lemei 3.1 exist n
deriva ia maximal pentru X n raport cu F o mul ime Xi, unde W Xi. Din T S X
urmeaz T X0 i T Xi.
Consider m ultimul caz, cnd dependen a X Y e ob inut , aplicnd regula
tranzitivit ii asupra a dou dependen e precedente X Z i Z Y, deriva iile c rora au
lungimi mai mici dect k.
Urmnd ipoteza induc iei, pentru X Z i Z Y avem corespunz tor Z Xj i
Y Zp. ns Zp este element al deriva iei maximale a mul imii Z n raport cu F. Fiindc
Z Xj, conform lemei 3.1 Zp Xj+m, unde Xj+m este elementul m+1 al deriva iei
maximale a mul imii Xj n raport cu F pe care o vom nota <Xj+0, Xj+1,..., Xj+m,..., Xj+p>.
Este evident c deriva ia maximal a mul imii Xj nu e altceva dect o subconsecutivitate
ce const din ultimele n-j+1 elemente ale deriva iei maximale a mul imii X n raport cu
F. Prin urmare, Y Xi , unde i=j+m.
Suficien a. Fie <X0, X1,..., Xn> e deriva ia maximal a mul imii X n raport cu F.
Conform lemei 3.2 X Xn F+. ntruct Y Xn, atunci aplicnd regula proiectivit ii
asupra dependen ei X Xn ob inem X Y F+. Teorema e demonstrat .

14

Capitolul 3. Dependen e func ionale

Defini ia 3.14. Fie X Y F+ i <X0, X1,..., Xn> deriva ia maximal a mul imii X
n raport cu F. Fie Xi este primul element din consecutivitate ce con ine mul imea Y.
Subconsecutivitatea <X0, X1,..., Xi> se nume te deriva ia dependen ei func ionale X Y
n raport cu F.
Din teorema 3.5 i defini ia 3.14 urmeaz
Consecin a 3.1. X Y F+ atunci
dependen ei X Y n raport cu F.

i numai atunci cnd exist

deriva ia

Consecin a 3.2. Dac X Y F+ i dependen a V W F e utilizat n construirea


deriva iei dependen ei X Y n raport cu F, atunci X V F+.
Juste ea acestei afirma ii decurge imediat din lema 3.2 i regula proiectivit ii.
Trebuie men ionat c deriva ia maximal este un model de derivare liber de
dezavantajele men ionate la nceputul acestei sec iuni. Existen a a unei singure deriva ii
pentru o dependen dat va fi util n expunerea de mai departe a materiei.

3.5.4. Algoritmi
Pentru a determina dac F|=X Y, e suficient de verificat dac X Y F+. ns ,
F+ este excesiv de mare n raport cu F. E dezirabil o metod de verificare, dac X Y
apar ine F+, f r a deduce toate dependen ele func ionale din F. Un astfel de algoritm e
prezentat mai jos. Nucleul algoritmului const din procedura de construire a nchiderii
mul imii de atribute X n raport cu F. Dup ce se g se te X+, se verific dac Y X+.
Este evident c ultimul element, Xn, din deriva ia maximal nu este altceva dect
+
X . Iar teorema 3.5 ne sugereaz c X Y urmeaz logic din F, dac Y X+. Deci,
deriva ia maximal serve te drept model teoretic pentru urm torul algoritm de
determinare a lui X+.
Algoritmul CLOSURE caut n F o dependen func ional pentru care
determinantul reprezint o submul ime a lui Xi, iar determinatul nu este inclus n Xi.
Dac se g se te o astfel de dependen func ional , atunci se adaug la Xi atributele care
constituie determinatul dependen ei. Dac nu se g se te, atunci nchiderea c utat , X+
este reprezentat de mul imea de atribute Xi.
Algoritmul CLOSURE (F, X, X+)
Intrare: F- o mul ime de dependen e func ionale asupra schemei R; X o mul ime
de atribute, X R.
Ie ire: X+ - nchiderea mul imii X n raport cu F
begin
i:=0; Xi:=X;
repeat
i:=i+1;
Xi:=Xi-1;
For all V W in F
if V Xi then Xi:=Xi W;
until Xi=Xi-1;
return (X+:=Xi);
end

15

Capitolul 3. Dependen e func ionale

Exemplul 3.10. Fie F={B CD, AD E, B A}, X=B. S se calculeze X+.


Ini ial X0=B.
n ciclul repeat:
X1=B.
n ciclul for:
X1= BCD (aplicnd B CD),
X1= ABCD (aplicnd B A).
X2=ABCD
n ciclul for:
X2=ABCDE (aplicnd AD E)
X3=ABCDE
Dup ciclul for:X3=X2.
Rezultat: X+:=ABCDE.
Deci nchiderea lui B n raport cu F este (B)+=ABCDE.
Algoritmul CLOSURE realmente construie te deriva ia maximal a mul imii de
atribute X n raport cu F. Apelnd la CLOSURE e u or de construit algoritmul de
verificare a apartenen ei unei dependen e func ionale la F+. Aceast verificare e realizat
n algoritmul MEMBERSHIP.
Algoritmul MEMBERSHIP(F, X Y)
Intrare: F- o mul ime de dependen e func ionale;
X Y o dependen func ional .
Ie ire: adev r, dac F|=X Y, fals - n caz contrar.
begin
CLOSURE (F, X, X+);
if Y X+ then return (adev r) else return (fals);
end
Corectitudinea algoritmilor CLOSURE i MEMBERSHIP rezult imediat din
teorema 3.5.

3.6. Acoperiri
n aceast sec iune se consider diverse moduri de reprezentare a mul imilor de
dependen e, cum ar fi mul imile nonredundante, reduse, canonice, minimale i optimale.

3.6.1. Mul imi echivalente de dependen e func ionale


Defini ia 3.15. Dou mul imi de dependen e func ionale F i G se numesc
echivalente, notat cu F G, dac F+=G+. Vom mai spune n acest caz c F acoper G
(sau G acoper F).
Dac F G, adic F+=G+, atunci orice dependen X Y ce urmeaz logic din F
urmeaz i din G. Deci pentru a verifica dac F i G sunt echivalente se ia orice
dependen X Y din F i se verific dac G|=X Y. Dac o oarecare dependen
X Y nu apar ine lui G+, atunci F+ G+. Apoi analogic se verific dac orice dependen

16

Capitolul 3. Dependen e func ionale

V W din G se deduce din F. Dac toate dependen ele se deduc, mul imile F i G sunt
echivalente.
Exemplul 3.11. Mul imile F={AB C, AC D, AD B, C B} i G={AD C,
AB D, C B} sunt echivalente, ns F nu este echivalent mul imii G1={AB C,
AC D, AD B, AC B} (a se verifica n calitate de exerci iu).

3.6.2. Acoperiri nonredundante


Defini ia 3.16. Mul imea de dependen e func ionale F este nonredundant , dac
nu exist o submul ime proprie F1a mul imii F i F1 F. Dac o astfel de submul ime
exist , atunci F se nume te redundant . Mul imea F este acoperire nonredundant a
mul imii G, dac F este acoperire pentru G i F este nonredundant .
Exemplul 3.12. Fie G={A BC, B C}. Mul imea F={A B, A C, B C} este
acoperire a mul imii G, dar nu e acoperire nonredundant , fiindc F1={A B, B C} e
acoperire pentru G, ns F1 F.
S consider m o alt interpretare a no iunii de mul ime nonredundant .
Defini ia 3.17. Mul imea F de dependen e func ionale se nume te nonredundant ,
dac n ea nu exist nici o dependen
contrar, F se nume te redundant .

X Y nct (F \ {X Y})|=X Y. n caz

Aceast defini ie este pus n baza urm torului algoritm de construire a acoperirii
nonredundante. E de men ionat c rezultatul ob inut n urma aplic rii algoritmului
depinde de ordinea consider rii dependen elor func ionale.
Algoritmul NONREDUN (F,G)
Intrare: F o mul ime de dependen e func ionale.
Ie ire: G o acoperire nonredundant a mul imii F.
begin
G:=F;
for all X Y in G
if MEMBERSHIP (G \ {X Y}, X Y) then
G:=G \ {X Y};
return (G);
end
Exemplul 3.13. Fie F = {A B, B A, B C, A C}. n rezultatul aplic rii
algoritmului NONREDUN ob inem acoperirea nonredundant G = {A B, B A,
A C}. Dac mul imea F e prezentat n alt ordine {A B, A C, B A, B C} se
ob ine rezultatul G = {A B, B A, B C}.

3.6.3. Acoperiri reduse


Dac F e o mul ime nonredundant , atunci nu poate fi eliminat din F nici o
dependen func ional f r a afecta echivalen a mul imii ob inute cu cea anterioar . n

17

Capitolul 3. Dependen e func ionale

schimb poate fi mic orat


dependen ele func ionale.

dimensiunea mul imii F, eliminnd unele atribute din

Defini ia 3.18. Fie F o mul ime de dependen e func ionale asupra schemei R i
X Y F. Atributul A este redundant n dependen a X Y n raport cu F, dac
(1) A X, V=X \ A i F \ {X Y} {V Y} F
sau
(2) A Y, W=Y \ A i F \ {X Y} {X W} F.
Cu alte cuvinte, atributul A este redundant n dependen a X Y, dac el poate fi
eliminat din determinant sau determinat, f r a fi schimbat nchiderea mul imii F.
Procesul de eliminare a atributelor redundante se nume te, corespunz tor, reducere n
stnga i reducere n dreapta a dependen elor.
Exemplul 3.14. Fie F = {AC B, A C, A BD}. Atributul C este redundant n
AC B, fiindc (AC)+ = A+ = ACBD. Adic A B este n F+. Deci dependen a AC B
poate fi nlocuit cu A B n mul imea de dependen e func ionale F. Atributul B este
redundant n partea dreapt a dependen ei A BD.
Defini ia 3.19. Fie F o mul ime de dependen e func ionale asupra schemei R.
Mul imea F se nume te redus n stnga (dreapta), dac orice dependen din F nu are
atribute redundante n partea stng (dreapt ). Mul imea de dependen e redus n stnga
i n dreapta se nume te redus .
Exemplu 3.15. Mul imea F = {AC B, A C, A BD} nu este redus nici n
stnga, nici n dreapta. Mul imea F1={A B, A C, A BD} e redus n stnga i nu e
redus n dreapta, dar F2={AC B, A C, A D} e redus n dreapta i nu n stnga.
Mul imea de dependen e func ionale F3={A B, A C, A D} e redus n stnga i n
dreapta, deci e redus .
Mai jos se aduc algoritmii de reducere a unei mul imi nonredundante.
Algoritmul LEFTRED (F, G)
Intrare: F o mul ime nonredundant de dependen e func ionale.
Ie ire: G o mul ime de dependen e func ionale redus n stnga.

begin
G:=F;
for all X Y in G
for all A in X
if MEMBERSHIP (G, (X \ A) Y) then
G:=G \ {X Y} {(X \ A) Y};
return (G);
end
Algoritmul RIGHTRED (F,G)
Intrare: F o mul ime nonredundant de dependen e func ionale.
Ie ire: G o mul ime de dependen e func ionale redus n dreapta

begin
G:=F;
for all X Y in G

18

Capitolul 3. Dependen e func ionale

for all A in Y
if MEMBESHIP (G \ {X Y} {X (Y \ A)}, X A) then G:= {G \
{X Y} {X (Y \ A)};
return (G);
end
Algoritmul REDUCE (F, G)
Intrare: F o mul ime de dependen e func ionale nonredundant .
Ie ire: G o mul ime redus de dependen e de dependen e func ionale.
begin
LEFTRED (F, F1);
RIGHTRED (F1, G);
eliminarea din G a dependen elor X
;
return (G);
end

A)

n algoritmul LEFTRED de mai sus, este inclus condi ia de verificare G|= (X \


Y. Este evident c , dac (X\A) Y se deduce din G, atunci X Y poate fi

substituit cu (X\A) Y, fiindc (X \ A) Y|=X Y.


E evident c , dac o dependen este redundant , atunci toate atributele ei sunt
redundante. Pentru a evita apari ia dependen elor de forma
se presupune c
mul imea destinat reducerii este nonredundant .
S-ar p rea c acoperirile reduse pot fi calculate, g sind i eliminnd n mod
aleator atributele redundante. ns , examinnd p r ile stngi i drepte ale dependen elor
n ordine diferit , ob inem rezultate diferite. n p r ile drepte odat examinate pot ap rea
atribute redundante dup examinarea p r ilor stngi. Deci eliminarea atributelor
redundante trebuie s nceap cu partea stng . Dar i n cazul acesta pot ap rea
dependen e de forma X
. Ele se elimin la urm din mul imea rezultat.

3.6.4. Acoperiri canonice


Defini ia 3.20. Mul imea de dependen e func ionale F este canonic , dac F este
nonredundant , redus n stnga i orice dependen din F are forma X A.
ntruct mul imea canonic este nonredundant
i redus n stnga, iar
determinatul oric rei dependente const dintr-un singur atribut, ea este redus i n
dreapta, adic este redus .
Exemplul 3.16. Mul imea F={A B, A C, B D} este o acoperire canonic a
mul imii G={A BC, B D}.
Teorema 3.6. Fie F o acoperire redus . Se formeaz mul imea G, dezagregnd
orice dependen de forma X A1...An n X A1,..., X An. Atunci G este canonic . Fie
G o acoperire canonic . Form m F, agregnd dependen ele cu determinan i egali.
Mul imea F este acoperire redus .
Demonstra ie. Fie mul imea G este format din F prin dezagregarea
dependen elor. Presupunem c G nu e canonic . Dac dependen a X Ai e redundant ,

19

Capitolul 3. Dependen e func ionale

atunci atributul Ai e redundant n X A1...An. Dac X Ai con ine un atribut redundant


n X, fie B, atunci G|=(X\B) Ai. Dar G|=(X\B) X, fiindc X Ai e nonredundant .
De unde conchidem c F|=(X\B) X i, prin urmare, B e redundant n partea stng a
dependen ei X A1...An din F.
S demonstr m a doua parte a teoremei. Presupunem contrariul: F nu e redus .
Dac F nu e redus n dreapta, atunci G nu e nonredundant . Dar dac F nu e redus n
stnga, atunci i G nu e redus din stnga, ce contravine presupunerii c G e canonic .

3.6.5. Clase de echivalen !


Defini ia 3.21. Fie F o mul ime de dependen e func ionale asupra schemei R i X,
Y R. Mul imile de atribute X i Y sunt echivalente, not m cu X Y, n raport cu F,
dac F|=X Y i F|=Y X.
Aceast defini ie ne sugereaz c mul imea F poate fi parti ionat n clase de
echivalen . Adic asupra F se poate defini o rela ie de echivalen : dependen ele X Y
i V W din F apar in unei clase de echivalen , dac i numai dac X V n raport cu
F.
Not m cu EF(X) mul imea de dependen e cu determinan ii echivalen i lui X n
raport cu F, adic EF(X)={V W| F|=V X & F|=X V}. EF(X) se nume te clas de
echivalen a dependen elor cu determinan ii echivalen i mul imii de atribute X.
Not m cu F={EF(X)| X R & EF(X) }, adic F este mul imea tuturor claselor
de echivalen nevide, n care este parti ionat mul imea de dependen e func ionale F.
Exemplul 3.17. Fie F={AB C, AC D, AD B, C B}. Atunci (AB)+ = (AC)+
= (AD)+ = ABCD i C+=BC. Deci AB AC, AD AC, AB AD, adic
F={EF(AB)={AB

C, AC D, AD B}, EF(C)={C B}}.

Urm toarea lem arat corela ia dintre structurile a dou acoperiri nonredundante.
Lema 3.3. Fie F i G dou mul imi de dependen e func ionale nonredundante
echivalente asupra schemei R. Fie X Y o dependen n F. Atunci n G exist o
dependen V W, unde X V n raport cu F ( i n raport cu G).
Demonstra ie. Din faptul c F G urmeaz G|=X Y. Atunci exist deriva ia H a
dependen ei func ionale X Y, n raport cu G. Consider m toate dependen ele utilizate
n construirea deriva iei H, adic mul imea U(H). n acela i timp, orice dependen
V W din U(H) se deduce din F. Fie H1 este deriva ia dependen ei V W n F. Trebuie
s existe n U(H) o dependen V W pentru deducerea c reia se utilizeaz dependen a
X Y, adic X Y U(H1). n caz contrar pentru dependen a X Y va exista o
deriva ie H11 asupra F \ {X Y} i, prin urmare, X Y va fi redundant n F ce
contrazice ipotezei c F este o mul ime nonredundant .
ntruct X Y U(H1), conform consecin ei 3.2, F|=V X. Dar V W U(H) i
atunci G|=X V. Prin urmare, X

V.

Lema de mai sus poate fi parafrazat n felul urm tor. n dou acoperiri
nonredundante F i G pentru orice dependen din F exist o dependen n G ce are

20

Capitolul 3. Dependen e func ionale

partea stng echivalent celei din F. Prin urmare, mul imile nonredundante echivalente
au acela i num r de clase de echivalen .
Exemplul 3.18. Mul imile F={A BC, B A, AD E} i G={A ABC, B A,
BD E} sunt nonredundante i echivalente. S observ m c A A, B B, AD BD i
A B. Deci F={EF(A) = {A BC, B A}, EF(AD) = {AD E}} i
{A ABC, B A}, EG(BD) = {BD E}}.

={EG(A) =

3.6.6. Acoperiri minimale


Defini ia 3.22. Mul imea de dependen e func ionale F este minimal , dac nu
exist o mul ime echivalent ei cu mai pu ine dependen e func ionale.
Este evident c orice mul ime minimal de dependen e func ionale este
nonredundant . Afirma ia invers nu este corect .

Exemplul 3.19. Mul imea F={A B, A C} este nonredundant , dar nu este


minimal , fiindc G={A BC} este acoperire pentru F i are o singur dependen .
Fie eF(X) este mul imea p r ilor stngi ale dependen elor ce formeaz clasa de
echivalen EF(X). Atunci are loc
Lema 3.4. Fie F o mul ime nonredundant de dependen e func ionale, X
determinantul unei dependen e din F i Y o mul ime de atribute echivalent lui X (adic
Y

X n raport cu F). Atunci exist n eF(X) o mul ime Z, nct (F \ EF(X))|=Y Z.


Demonstra ie. Dac Y eF(X), atunci lema e demonstrat , fiindc Y Y urmeaz
din orice mul ime de dependen e func ionale. Fie Y eF(X). ntruct Y Z pentru orice
Z din eF(X), atunci exist deriva ia H=<Y0, Y1, ..., Ym>, unde Y0=Y i Z Ym. Dac n
construirea lui H nu s-a utilizat nici o dependen din EF(X), atunci lema e demonstrat .
Presupunem c pentru construirea deriva iei H s-a utilizat dependen a V W EF(X) i
fie V W e prima dependen din EF(X) utilizat n H. Atunci n H exist un Yi nct
V Yi dar W Yi. Dar Y Yi (F \ EF(X))+ i, conform reflexivit ii, Yi V are loc n
orice mul ime de dependen e. Aplicnd regula tranzitivit ii asupra ultimelor
dependen e, ob inem c (F \ EF(X))|=Y V, adic Z=V.
Lema 3.5. Fie F i G dou mul imi nonredundante echivalente de dependen e
func ionale. Fie X e determinantul unei dependen e din F i Y o mul ime de atribute,
unde Y X. Dac Y Z (F \ EF(X))+, atunci Y Z (G \ EG(X))+.
Demonstra ie. ntruct Y Z (F \ EF(X))+, atunci exist deriva ia H=<Y0, Y1, ...,
Ym>, pentru Y Z n raport cu F \ EF(X). Fie V W o dependen utilizat n
construirea lui H. Din F G urmeaz V W G+ .
S ar t m c n deriva ia dependen ei V W n raport cu G nu sunt utilizate
dependen e din EG(X). Presupunem contrariul: pentru derivarea V W este utilizat
dependen a T S din EF(X). Atunci, conform lemei 3.3, Y T, iar din consecin a 3.2
V T G+. Din V T G+ i T Y G+ urmeaz V Y G+ . ns Y V G+ i atunci
ob inem c Y V n raport cu F. Contrazicere. Deci, orice dependen utilizat n
deriva ia lui Y Z n raport cu F\EF(X) se deduce din G\EG(H).

21

Capitolul 3. Dependen e func ionale

Deci, deriva ia dependen ei Y Z va utiliza numai dependen e din G\EG(H).


Teorema 3.7. O mul ime nonredundant F este minimal , dac i numai dac nici
o clas de echivalen EF(X) nu con ine dou dependen e diferite X Y i V W, unde
X V (F \ EF(X))+.
Demonstra ie. Necesitatea. Fie F este o mul ime minimal , i presupunem
contrariul: n clasa de echivalen EF(X) sunt dou dependen e diferite X Y i V W
nct X V (F \ EF(X))+. Construim o mul ime de dependen e G, care se deosebe te de
F, prin aceea c n clasa de echivalen EG(X) dependen ele X Y i V W sunt
substituite de V YW. Vom ar ta ca F G. Pentru aceasta e suficient s verific m dac
X Y G+. Conform lemei 3.5 X V (G\EG(X))+. Din X V (G \ EG(X))+ i
V YW G+ urmeaz c X YW G+. Deci F G, ns G con ine cu o dependen mai
pu in, ce contrazice ipotezei c F e o mul ime minimal de dependen e func ionale.
Suficien a. Vom ar ta c , dac orice clas de echivalen a unei mul imi F nu
con ine dou dependen e diferite, nct p r ile stngi s se determine func ional n afara
propriei clase de echivalen , atunci F este minimal . S demonstr m c nu exist o
mul ime nonredundant G i G F, nct careva clas de echivalen din G s con in
mai pu ine dependen e dect clasa corespunz toare din F.
Presupunem contrariul: exist o mul ime nonredundant G i G F, iar clasa de
echivalen EG(X) con ine mai pu ine dependen e dect clasa EF(X).
S eviden iem dependen ele acestor dou clase de echivalen , unde m<n (vezi
fig.3.10).
EF(X)
X1 Y1
X2 Y2

Xn Yn

EG(X)
V1 W1
V2 W2

Vm Wm
Fig.3.10.

n corespundere cu lema 3.4 pentru orice Xj eF(X) exist n eG(X) un determinant


Vk i Xj Vk (G \ EG(X))+. Apelnd la lema 3.5. ob inem Xj Vk (F \ EF(X))+.
ntruct n>m, atunci se vor g si n eF(X) cel pu in dou mul imi Xj i Xl, unde j l, ce
satisfac Xj Vk (F \ EF(X))+ i Xl Vk (F \ EF(X))+. La rndul s u, n eF(X) exist un
determinant Xh i Vk Xh (F\EF(X))+. Consider m dou cazuri posibile: h j sau h l.
Dac h j, atunci Xj Vk (F\EF(X))+ i Vk Xh (F\EF(X))+ implic Xj Xh (F \
EF(X))+. Dac , ns , h l, atunci ob inem Vl Xh (F \ EF(X))+.
n ambele cazuri, clasa de echivalen EF(X) va con ine dou dependen e diferite,
p r ile stngi ale c rora se determin func ional n afara clasei de echivalen examinat .
Contrazicere.
Consecin a 3.3. Dac F i G sunt mul imi minimale echivalente, atunci clasele de
echivalen corespunz toare con in acela i num r de dependen e func ionale.

22

Capitolul 3. Dependen e func ionale

Consecin a 3.4. Dac F i G sunt dou mul imi minimale echivalente, atunci
pentru orice determinant Xj eF(X) exist un singur determinant Vk n eG(X) pentru care
au loc Xj Vk (F\EF(X))+ i Vk Xj (F\EF(X))+.
Remarc#. Existen a coresponden ei biunivoce, indicate n consecin a 3.4, permite
substituirea unor p r i stngi ale mul imii minimale cu p r i stngi ale altei acoperiri
minimale, neafectnd echivalen a mul imilor. Mai mult ca att, mul imea nou de
dependen e func ionale va continua s fie minimal .
n teorema de mai sus se afirm c , dac o mul ime nonredunant G are dou
dependen e X Y i V W pentru care X V i (G \ EG(X))|=X V, atunci G nu este
minimal . Aceste dou dependen e pot fi substituite cu alt dependen V YW. n
rezultat ob inem o mul ime echivalent de dependen e func ionale ce con ine cu o
dependen mai pu in.
Acest proces este pus la baza urm torului algoritm de minimizare a unei mul imi
de dependen e func ionale.
Algoritmul MINIMIZE (f,g)
Intrare: F o mul ime de dependen e func ionale.
Ie ire: G o mul ime minimal de dependen e func ionale.
begin
NONREDUN (F, G);
get

G;

for all EG(X) n G


for all X Y in EG(X)
for all V W X Y in EG(X)
if MEMBERSHIP (G \ EG(X), X V) then G:= G \ {X Y,
V W} {V YW};
return (G);
end
Exemplul 3.20. Fie F={AB D, AB C, AC D, AD B, C B}. S construim
acoperirea minimal a mul imii F.
Nu e greu de observat c , dac examin m dependen ele func ionale din F de la
stnga la dreapta, dependen a func ional AB D e redundant n F. ntr-adev r, (AB)+
n raport cu F\{AB D} este ABCD. Deci (F\{AB D})|=AB D. Am ob inut
mul imea nonredundant G={AB C, AC D, AD B, C B}.
S parti ion m G n clase de echivalen . Pentru aceasta construim nchiderile
determinan ilor tuturor dependen elor din G. Dependen ele ce au nchideri ale
determinan ilor egale fac parte din aceea i clas de echivalen . A adar,
(AB)+=ABCD,
(AC)+=ABCD,
(AD)+=ABCD,
C+=BC.
Deci, mul imea G con ine urm toarele dou
clase de echivalen
G={EG(AB)={AB C, AC D, AD B}, EG(C)={C B}}.

23

Capitolul 3. Dependen e func ionale

ntruct clasa EG(C) con ine o singur dependen , se examineaz numai clasa de
echivalen EG(AB). Nu e greu de verificat c n EG(AB) sunt dou dependen e AC D,
AB C i (G \ EG(AB))|=AC AB. Atunci n clasa de echivalen EG(AB) aceste dou
dependen e se substituie cu AB CD.
Am ob inut mul imea de dependen e G={EG(AB)={AB CD, AD B},
EG(C)={C B}}. n clasa de echivalen a EG(AB) nu se mai g sesc dependen e
determina ii c rora se determin func ional n afara clasei EG(AB). Prin urmare,
mul imea G={AB CD, AD B, C B} este o acoperire minimal a mul imii F.

3.6.7. Acoperiri optimale


Mul imea de dependen e func ionale F poate fi estimat dup num rul de atribute
(inclusiv repetate) antrenate de dependen ele func ionale din F. De pild , mul imea
F={AB C, C B} are aritatea cinci.
Defini ia 3.23. Mul imea de dependen e func ionale F se nume te optimal , dac
nu exist o mul ime echivalent ei cu o aritate mai mic .
Exemplul 3.21. Mul imea F={ABC E, BC D, D BC} nu este acoperire
optimal , fiindc mul imea G={AD E, BC D, D BC} are aritatea mai mic dect F
i G F. Mul imea G este optimal .
Trebuie men ionat c problema construirii unei acoperiri optimale apar ine clasei
de probleme NP-complete, pentru care nc nu au fost g si i algoritmi polinomiali.
Teorema 3.8. Mul imea optimal este minimal i redus .
Demonstrarea acestei afirma ii se las n calitate de exerci iu.

3.7. Exerci ii
3.1. S se aduc un exemplu de dou atribute ce se g sesc ntr-o dependen
func ional i un exemplu de dou atribute ce nu sunt func ional dependente.
r

A
a1
a1
a2
a2

B
b1
b1
b1
b1

C
c1
c2
c1
c3

D
d1
d2
d3
d4

Fig.3.11.
3.2. S se g seasc dependen ele func ionale valide n rela ia r din fig.3.11.
3.3. Fie r e definit pe mul imea ABC. S se aduc o extensie a rela iei r ce ar
satisface dependen a func ional A B i nu ar satisface dependen a C A.
3.4. S se arate c {WX Y}|-X Y.

24

Capitolul 3. Dependen e func ionale

3.5. Fie rela ia r(R) i V, W, X, Y, Z R. S se demonstreze sau s se combat


urm toarele reguli de inferen .
(a)

{X Y, Z W} |- XZ YW;

(b)

{XY Z, Z X} |- Z Y;

(c)

{X Y, Y Z} |- X YZ;

(d)

{ZV W, W XV, V Y}|-ZV XY;

(e)

{X Y, W Z} |-X Z, unde W Y.

3.6. S se arate c regulile DF1, DF2 i DF6 sunt independente, adic nici una
din ele nu se deduce din celelalte.
3.7. S se arate c pentru orice mul ime de dependen e func ionale F are loc
egalitatea F+ (F+)+.
3.8. Fie F o mul ime de dependen e func ionale asupra schemei R. Care este F+,
dac F= ?
3.9. Fie mul imea F={AB C, C B} definit asupra atributelor ABC. S se
g seasc F+.
3.10. S se demonstreze c sistemul de reguli DF1, DF3, DF4 i DF5 este
complet. Sunt aceste reguli independente?
3.11. Fie F={AB C, B D, CD E, CE GH, G A}.
(a)

S se construiasc consecutivitatea de derivare a dependen ei AB E


din F.

(b)

S se construiasc consecutivitatea de derivare a dependen ei AB G


din F, utiliznd axiomele Armstrong.

(c)

S se construiasc RAPconsecutivitatea de derivare a dependen ei


AB G din F.

(d)

S se construiasc DDA-graful de derivare a dependen ei AB G din


F.

3.12. S se arate c mul imile {AB E, CD F, A C, B D, C A, D B,


F AD} i G={A C, B D, C A, D B, F AD, CD EF} sunt
echivalente.
3.13. S se g seasc mul imea claselor de echivalen
A C, B D, C A, D B, F AD}.

G,

dac G={AB EF,

3.14. S se construiasc o acoperire nonredundant a mul imii de dependen e


func ionale F={A C, AB C, C DI, CD I, EC AB, EI G }.

25

Capitolul 3. Dependen e func ionale

3.15. S se construiasc o mul ime de dependen e func ionale n care o


dependen func ional X Y are toate atributele redundante.
3.16. S se construiasc dou mul imi de dependen e func ionale F i G, unde F e
o acoperire nonredundant a mul imii G, dar con ine un num r mai mare de
dependen e dect G.
3.17. Fie F mul imea tuturor dependen elor posibile asupra schemei R=A1...An, n
afar de
X. S se g seasc o acoperire nonredundant a mul imii F.
3.18. S se g seasc dou mul imi nonredundante echivalente cu un num r diferit
de dependen e.
3.19. Fie F = {A B, B C, C A} i G = {A BC, B A, C A}.
(a)

S se arate c mul imile F i G sunt echivalente.

(b)

S se g seasc o acoperire redus a mul imii G.

3.20. Fie G={AF C, C D, D BE, B CE, CE A}. S


acoperire canonic a mul imii de dependen e G.

se g seasc

3.21. S se g seasc acoperire minimal a mul imii G={AB C, BC D, BE C,


CD B, CE AF, CF BD, C A, D EF}.
3.22. S se construiasc o acoperire optimal a mul imii G={A BC, BC
ABD EF, BCD EF}.

A,

26