Sunteți pe pagina 1din 3

Complemente Curs Baze Date/ An II Automatica

Exemplu concret de identificare a Dependentelor Functionale dintr-o relatie si


de obtinere a Formelor Normale FN2 si FN3.
Ipoteza:
Fie Schema de Relatie numita Profesori_Note, reprezentata in modul urmator:
Profesori_Note(NumeProf, GradDidacticP, SalarP, NumeStud, Nota)
Se cere:
(A)Sa se identifice toate dependentele functionale din aceasta schema de relatie,
apoi
(B)sa se obtina Forma Normala FN2 aferenta; (C) se obtina Forma Normala FN3.

Rezolvare:
(A) Identificarea dependentelor functionale:
In schema de relatie Profesori_Note data in ipoteza, se pot identifica urmatoarele
dependente functionale:
1) NumProf GradDidacticP (deci, atributul NumeProf determina functional atributul
GradDidacticP deoarece fiecare cadru didactic are un
anumit grad didactic: Prep., Asistent, Sef Lucrari,
Conf. sau Prof.)
2) GradDidacticP SalarP ( deoarece salarizarea fiecarui cadru didactic depinde in mod
direct de gradul didactic pe care-l are cadrul didactic
respectiv)
3) NumProf SalarP

( deoarece fiecarui cadru didactic in parte i se calculeaza


salariul si in functie de caracteristicile profesionale
proprii: spor de vechime, spor de doctorat etc)

4) NumeProf NumeStud Nota (atributul compus NumeProf NumeStud determina


functional atributul Nota, deoarece un anumit
Profesor acorda unui anumit Student o anumita
Nota)
Obs.: Relatia Profesori_Note are o singura cheie compusa, formata din atributele
NumeProf si NumeStud.
Diagrama Dependentelor Functionale pentru Schema de Relatie Profesori_Note
este urmatoarea:
GradDidacticP
NumeProf

Nota

SalarP
NumeStud

(B) Obtinerea Formei Normale FN2:


In diagrama de mai sus se poate observa dependenta functionala a atributelor GradDidacticP
si SalarP fata de atributul NumeProf, ceea ce implica dependenta partiala a acestor atribute
fata de cheia relatiei (formata din atributele NumeProf si NumeStud). Aceasta dependenta
functionala partiala fata de o cheie a relatiei, genereaza un set de anomalii, cum ar fi anomalii
de adaugare date si de actualizare date.
necesitatea eliminarii acestor dependente functionale partiale fata de cheia relatiei, lucru
care se face prin descompunerea Schemei de Relatie Profesori_Note in doua subscheme,
anume schema de relatie Profesori si schema de relatie Note, definite in modul urmator:
(a) Profesori (NumeProf, GradDidacticP, SalarP)
(b) Nota (NumeProf, NumeStud, Nota)
Diagrama descompunerii este urmatoarea:
GradDidacticP

(a)

NumeProf
SalarP

NumeProf

Nota

(b)
NumeStud

Se observa ca nu mai avem dependente functionale partiale fata de cheia relatiei, ca atare ne
aflam in Forma normala FN2, ceea ce a constituit obiectivul exercitiului.
(C) Obtinerea Formei Normale FN3:
Pentru a se obtine in continuare forma normala FN3, va trebui sa descompunem in continuare
schema de relatie notata cu (a) de mai sus (deci diagrama schemei de relatie Profesori), in
alte doua subscheme, anume Profesor_GradDidacticP si GradDidacticP_SalarP, pentru a
elimina dependenta functionala existenta in diagrama (a) intre cele doua atribute neprime
Grad_DidacticP si SalarP.
Deci, schema de relatie notata mai sus cu (a), anume:
Profesori (NumeProf, GradDidacticP, SalarP)
se descompune in urmatoarele doua scheme:
(a1) Profesor_GradDidacticP(NumeProf, GradDidacticP)
si
(a2) GradDidacticP_SalarP(GradDidacticP, SalarP)
Diagrama acestei noi descompuneri este urmatoarea:

(a1)

NumeProf

(a2)

GradDidacticP

GradDidacticP

SalarP

Observam ca, parcurgandu-se pasii (A), (B) si (C), s-a ajuns la situatia in care nici un atribut
neprim nu mai este functional dependent de un alt atribut neprim al relatiei care s-a obtinut
din relatia initiala Profesori_Note, deci s-a obtinut Forma Normala FN3 pt. relatia data.