Sunteți pe pagina 1din 25

Capitolul 5.

Proiectarea bazelor de date

Capitolul

PROIECTAREA BAZELOR DE DATE


Prin proiectarea bazei de date, aici se subn elege proiectarea unei scheme logice
care ar nl tura apari ia unor anomalii n lucrul cu baza de date, asigurnd totodat
facilit i i performan e sporite la exploatarea ei.
Anomaliile care apar n lucrul cu baza de date sunt cunoscute sub anomalii de
actualizare a datelor. Ele sunt puse n leg tur cu dependen ele care se manifest ntre
atribute. O asemenea abordare a anomaliilor de actualizare permite caracterizarea
riguroas a gradului de perfec iune a schemei bazei de date i face posibil definirea
unor tehnici formale de proiectare a unor astfel de scheme.
Prelucrarea datelor o perioad de timp, cum se ntmpl n bazele de date, poate
provoca o serie de probleme personalului responsabil de men inerea integrit ii datelor.
Anomaliile n date cum ar fi datele duplicate sau pierderile de informa ii pot ap rea,
dac datele nu sunt organizate ntr-un mod rezonabil. n ce const o organizare
rezonabil a datelor? Cercet rile la zi i experien a acumulat n domeniul proiect rii
bazelor de date au ar tat c unele aranj ri de date lucreaz mai bine dect altele. S-au
elaborat tehnici de analiz a datelor i organizare a lor ntr-o structur flexibil i
stabil .
Procesul de normalizare const n aplicarea unui set de reguli predefinite asupra
unei aranj ri a datelor cu scopul reducerii structurii complexe i transform rii lor n
structuri mai mici si stabile ce vor facilita manipularea i men inerea datelor.
La fiecare pas o regul este aplicat , datele pot fi restructurate i cnd regula este
satisf cut se spune c datele sunt ntr-o form normal .
Deci normalizarea este o abordare formal de analiz i grupare a datelor n
structuri mai eficiente ce se pot acomoda viitoarelor actualiz ri. n afar de aceasta
normalizarea minimizeaz impactul ce poate avea loc asupra aplica iilor n procesul
actualiz rii bazei de date.
Pentru a produce o baz de date bine proiectat de obicei se porne te de la rela ii
nenormalizate i printr-o serie de pa i se descompun structurile de date pentru a ob ine
schema final a bazei de date.

5.1. Prezum ia schemei universale


Materia expus pn acum ( i mai departe) presupune c toat mul imea de
atribute formeaz schema unei rela ii mari i toate constrngerile asupra atributelor
sunt constrngeri ale acestei scheme.
Unul din scopurile, pe care i le propune s le ating modelul rela ional este
eliberarea utilizatorului de a specifica c ile de acces la date. Aceast problem e
cunoscut sub denumirea de problema naviga iei logice. ns , dac baza de date const
din mai multe rela ii independen a naviga iei logice nu este asigurat .
De exemplu, fie baza de date are dou rela ii angaja i(FUNC3IONAR
DEPARTAMENT) i departamente(DEPARTAMENT MANAGER). Pentru a ob ine

Capitolul 5. Proiectarea bazelor de date

asocierile FUNC3IONAR MANAGER se jonc ioneaz rela iile angaja i i


departamente i apoi rela ia ob inut se proiecteaz pe atributele FUNC3IONAR i
MANAGER. Dar indicarea opera iilor i este specificarea c ilor de acces. Dac baza de
date se restructureaz , reprezentndu-se printr-o singur rela ie, atunci trebuie s se
modifice corespunz tor i programele ce specific jonc iunea.
Formulnd o interpelare (cerere) la baza de date ce se refer la mai multe rela ii
din baza de date e comod a interpreta lumea real ca o singur rela ie, schema c reia
include toate atributele din schemele rela iilor bazei. Aceast rela ie se nume te rela ie
universal , iar schema ei schema rela iei universale sau schema universal .
Modelul rela iei universale realizeaz complet independen a naviga iei logice,
excluznd astfel definirea unor c i de acces neoptimale din partea unor utilizatori
neini ia i. Deci acest model faciliteaz interac iunea sistem-utilizator, cernd de la
ultimul doar cunoa terea atributelor i semanticii.
Cea mai strict form de realizare a rela iei universale const n construirea
propriu-zis a bazei de date dintr-o singur rela ie pe mul imea de atribute universal U.
Dar aici apar multe dezavantaje. n primul rnd, nu toate tuplurile vor avea valori
definite. n al doilea rnd, p strarea tuturor datelor ntr-o singur rela ie inevitabil va
genera o serie de anomalii de actualizare.
De aceea, realmente, baza de date const dintr-o mul ime de rela ii normalizate
definite pe submul imi de atribute ale schemei rela iei imaginare universale. ns n
acest caz baza de date trebuie s satisfac unele condi ii.
Una din condi ii presupune c baza de date trebuie s posede proprietatea
jonc iunii f r pierderi. Aceast problem a fost abordat n capitolul precedent.
A doua c descompunerea rela iei universale imaginare conserv dependen ele.
Aceast cerin va fi considerat n acest capitol.
A treia condi ie presupune ca atributele n schema universal joac un singur
rol. Astfel ambiguit ile sunt excluse. Dac numele exprim diverse no iuni problema
se solu ioneaz prin renumirea atributelor sau divizarea unui atribut n mai multe .

5.2. Descompunerea rela iilor cu conservarea


dependen elor
S-a constatat c e binevenit ca descompunerea unei rela ii (inclusiv celei
universale) s posede proprietatea jonc iunii f r pierderi. Aceasta este garan ia c
rela ia poate fi ref cut din proiec iile sale.
O alt important proprietate a descompunerii unei rela ii r(R) pe mul imea de
scheme R1,...,Rm, unde R=R1Rm, const c mul imea de dependen e valide n r(R) s
se deduc din dependen ele valide n proiec iile R1(r), ..., Rm(r).
Defini ia 5.1. Fie F o mul ime de dependen e func ionale asupra schemei R.
Proiec ia mul imii F asupra unei mul imi de atribute Z, notat Z(F), este mul imea de
dependen e X Y din F+ i XY Z.
S observ m c dependen a X Y nu neap rat trebuie s apar in mul imii F. E de
ajuns ca ea s apar in nchiderii F+, adic F|=X Y.

Capitolul 5. Proiectarea bazelor de date

Defini ia 5.2. Fie rela ia r(R) este descompus pe mul imea de scheme R1,..., Rm,
unde R=R1Rm, i fie o mul ime F de dependen e asupra R. Vom spune c
descompunerea rela iei r(R) asupra R1,..., Rm conserv dependen ele F, dac
{

R1(F)

...

Rm(F)}|=F.

Tendin a de conservare a dependen elor e fireasc . Dependen ele sunt


constrngeri de integritate asupra rela iilor cu schema dat . Dac din dependen ele
proiectate nu ar urma mul imea F, atunci s-ar g si o descompunere R1(r),..., Rm(r) a
rela iei r(R) ce nu satisface mul imea de dependen e F, dar posed proprietatea
jonc iunii f r pierderi.
Exemplul 5.1. Fie rela ia r(ORAD ADRESE COD), unde ADRESE este
denumire de strad , num r de cas , iar COD este codul oficiului po tal ce deserve te o
anumit adres . n aceast rela ie avem valide urm toarele dependen e func ionale
F = {ORAD ADRESE COD, COD ORAD}.
Adic adresa complet determin func ional codul po tal, dar codul po tal e de ajuns
pentru a determina ora ul. Descompunerea rela iilor r asupra schemelor ORAD COD i
ADRESE COD posed proprietatea jonc iunii f r pierderi. ntr-adev r, ntruct
COD ORAD, atunci COD
ORAD. Dar conform teoremei 4.3 rela ia r se
descompune f r pierderi n dou rela ii definite pe schemele de mai sus.
Proiec ia mul imii de dependen e F asupra schemei ADRESE COD produce
numai dependen e triviale ce urmeaz din axioma reflexivit ii, n timp ce proiec ia
mul imii F pe schema COD ORAD produce dependen a COD ORAD i dependen ele
triviale. Deci
{ ADRESE COD(F)
COD ORAD(F)}| F.
Din alt parte descompunerea unei rela ii poate conserva dependen ele, dar s nu
posede proprietatea jonc iunii f r pierderi.
Exemplul 5.2. Fie rela ia r(ABCD) i fie mul imea F={A B, C D} de
dependen e func ionale valide n r. Descompunerea rela iei r n AB(r) i CD(r) conserv
dependen ele din F, ns ea nu posed proprietatea jonc iunii f r pierderi. ntr-adev r,
tabloul ce define te descompunerea arat ca n fig.5.1. Asupra acestui tablou nu pot fi
aplicate F-regulile i ntruct el nu con ine un tuplu-scop, descompunerea nu posed
proprietatea jonc iunii f r pierderi.
tab

A
a1
b21

B
a2
b22

C
b13
a3

D
b14
a4

Fig.5.1.
n capitolul 1 s-a definit no iunea de cheie a unei rela ii sau a unei scheme i sau
discutat problemele legate de aceast no iune. E evident c no iunea de cheie este n
strns corela ie cu no iunea de dependen func ional . Prin urmare, aici ne vom opri
asupra repet rii no iunii de cheie n termenii dependen elor func ionale.

Capitolul 5. Proiectarea bazelor de date

Vom presupune mai departe, cnd vom avea nevoie, c schema unei rela ii const
din dou componente S=(R, F), unde R este propriu-zis schema, iar F mul imea de
dependen e definite pe mul imea R.
Defini ia 5.3. Fie S=(R, F) o schem rela ional . O submul ime de atribute K a
schemei R se nume te supercheie pentru schema S, dac K R este n F+. Submul imea
de atribute K din R se nume te cheie, dac K e supercheie i pentru orice submul ime
proprie K1 a supercheii K dependen a K1 R nu este n F+. Dependen ele de forma
K R, unde K este cheie sau supercheie a schemei S, le vom numi dependen e cheie.
Exemplul 5.3. Fie schema rela ional S=(ABCDEFG, {A BCF, C D, BD E,
EF G}). S g sim cheile i supercheile acestei scheme.
Calcul m A+=ABCDEFG, C+=CD, (BD)+=BDE i (EF)+=EFG. ntruct atributul
A determin func ional toate atributele schemei, el este cheie. Uniunea atributului A cu
orice submul ime din BCDEFG formeaz supercheile schemei S.

5.3. Anomalii %i redundan e


De ce o schem a bazei de date poate fi rea? Anomaliile, care apar n lucrul cu
baza de date, se produc datorit dependen elor nedorite care se manifest ntre
atributele din cadrul schemelor rela iilor din baza de date. Aceste dependen e determin
cre terea redundan ei datelor i reducerea flexibilit ii structurii bazei de date, f cnd
extrem de dificil lucrul cu ea.
Deci, n primul rnd, o schem poate fi ineficient fiindc con ine o mul ime de
date redundante.
n al doilea rnd, ca o consecin a primei cauze, actualizarea unei baze
redundante poate duce la situa ia cnd ea va con ine fapte logic contradictorii. O parte
de date pot r mne nemodificate. Deci o baz de date rea duce la apari ia unor
inconsisten e la modificarea datelor.
n al treilea rnd, o baz de date rea poate limita posibilitatea de inserare a
datelor. ntr-o rela ie nu pot fi introduse date despre o entitate pn nu se cunosc alte
date conform restric iilor de integritate ale entit ii.
n al patrulea rnd, pot ap rea pierderi de date la tergere. n mod normal, prin
opera ia de tergere trebuie s se poat elimina din baza de date numai datele pe care
dorim s le tergem. Atunci cnd, concomitent cu aceste date sunt terse i altele, care
nu mai pot fi reconstruite din baza de date, spunem c la opera ia de tergere se produc
pierderi de date.

5.4. Forma normal( unu


Precum s-a men ionat n capitolul 1, domeniile atributelor sunt simple, adic ele
sunt atomice (nu pot fi descompuse din punctul de vedere al sistemului de gestiune al
bazei de date). Cu alte cuvinte, valorile ce le pot primi atributele nu sunt liste, mul imi
sau alte structuri complexe.
Defini ia 5.4. Schema rela ional R se g se te n forma normal unu, dac pentru
orice atribut A din R valorile din dom(A) sunt atomice. Schema unei baze de date se

Capitolul 5. Proiectarea bazelor de date

g se te n forma normal unu, dac orice schem rela ional din ea este n forma
normal unu.
Forma normal unu este forma de baz a rela iilor, care figureaz ca cerin
minimal la majoritatea SGBD-urilor. Toate exemplele de rela ii considerate pn aici
au fost n forma normal unu.
Definirea no iunii de valoare atomic e destul de dificil . Valoarea atomic dintr-o
aplica ie n alt aplica ie poate fi considerat nonatomic . De aceea ne vom conduce de
urm toarea regul : atributul nu este atomic, dac n aplica ii el se utilizeaz pe p r i.
n general se cunosc dou tipuri de atribute nonatomice. Unul din ele sunt listele
sau mul imile de valori.
c min

NUME_STUDENT

CAMERE

Ionescu, Vasilachi
Popovici
Grlea, Efim

301
302
303

Fig.5.2(a)
c min

NUME_STUDENT

Ionescu
Vasilachi
Popovici
Grlea
Efim

CAMERA

301
301
302
303
303

Fig.5.2(b)
Exemplul 5.4. Rela ia c min din fig.5.2(a) nu se afl n forma normal unu,
fiindc atributul NUME_STUDENT nu e atomic.
Aducerea rela iei c min n forma normal unu presupune eliminarea listelor de
valori. Pentru orice valoare din list pe care o poate primi atributul NUME_STUDENT
se formeaz un tuplu aparte, con innd numele studentului i camera unde locuie te.
Rela ia c min adus n forma normal unu arat ca n fig.5.2(b).
Alt tip de atribute nonatomice sunt atributele compuse.
data_na tere

NUME_STUDENT

Ionescu
Vasilachi
Popovici
Grlea
Efim

DATA_NADTERE
9 ianuarie 1979
21 februarie 1978
15 decembrie 1977
6 iunie 1979
9 ianuarie 1978

Fig.5.3(a)

Capitolul 5. Proiectarea bazelor de date

Exemplul 5.5. Rela ia data_na tere din fig.5.3(a) nu este n forma normal unu,
dac dorim s avem accesul la unele componente ale atributului DATA_NADTERE.
Pentru a aduce rela ia data_na tere n forma normal unu atributul compus
DATA_NADTERE se divizeaz n trei atribute ZI, LUNE, AN. Noua rela ie
data_na tere din fig.5.3(b) se g se te n forma normal unu.
data_na tere

NUME_STUDENT

Ionescu
Vasilachi
Popovici
Grlea
Efim

ZI
9
21
15
6
9

LUNE
ianuarie
februarie
decembrie
iunie
ianuarie

AN
1979
1978
1977
1979
1978

Fig.5.3(b)
Utilitatea formei normale unu este destul de evident . Listele de valori distrug
structura natural dreptunghiular a unei rela ii. Este extrem de greu s te referi la un
element din grupul de valori, fiindc trebuie specificat cumva pozi ia valorii c utate.
Di, binen eles, c opera ia de actualizare nu poate fi efectuat . Cu att mai mult, c
cheia NUME_STUDENT a rela iei c min nu poate fi specificat n cazul unei liste de
valori.
n afar de aceasta, diverse p r i ale unui atribut parti ionat pot s se comporte n
mod diferit din punctul de vedere al dependen elor. Presupunem c n prima rela ie
data_na tere din fig.5.3(a) s-a ad ugat atributul SEMN valorile c ruia sunt semnele
zodiacului. Tot ce se poate de f cut n aceast rela ie este s stabilim dependen a
func ional DATA_NADTERE SEMN. Dar aceast constrngere de integritate
permite ca doi indivizi n scu i n aceea i zi i aceea i lun , dar ani diferi i, s aib
semne diferite ale zodiacului.
Rela ia a doua dat _na tere din fig.5.3(b) este lipsit de acest dezavantaj, fiindc
aici se poate defini dependen a func ional ZI, LUNE SEMN, ce corespunde
semanticii semnului zodiacului, care nicidecum nu depinde de anul n care este n scut
persoana dat , ci numai de ziua i luna na terii. Deci unul din avantajele formei normale
unu const n aceea c ea poate exprima dependen ele la a a grad de detaliere, de care
avem nevoie.

5.5. Forma normal( doi


Apari ia formei normale doi a fost motivat de reducerea redundan ei
eliminarea unor anomalii ce apar la actualizarea schemelor n forma normal unu.
Consider m rela ia r din fig. 5.4.
r

DISCIPLINE

Baze de date
Programarea logic
Structuri de date
Cerc. opera ionale

PROFESOR

Popescu
Petrache
Ciobanu
Cazacu

GRUPE

DEF_GR

CIB-941
CIB-942
CIB-942
CIB-942

Vasilachi
Grlea
Grlea
Grlea

Capitolul 5. Proiectarea bazelor de date

Fig.5.4. Rela ia r n forma normal unu


Rela ia r(DISCIPLINE PROFESOR GRUPE DEF_GR) este constrns de dou
dependen e func ionale: GRUPE DEF_GR, semnificnd c grupa de studen i are un
singur ef i GRUPE DISCIPLINE PROFESOR ce presupune c o disciplin ntr-o
grup de studiu este predat de un singur profesor. Este evident c singura cheie a
acestei rela ii este mul imea {GRUPE DISCIPLINE}.
Rela ia dat se g se te n forma normal unu. Dar s observ m dezavantajele ce le
posed o rela ie cu astfel de schem .
n primul rnd, sunt limitate posibilit ile de inserare a datelor. n rela ia r nu pot
fi introduse date despre o grup , adic eful grupei, dect atunci cnd se cunoa te m car
o disciplin ce va fi predat n aceast grup . Atributul DISCIPLINE face parte din
cheie i nu poate avea valoare nedeterminat .
n al doilea rnd, pot fi pierderi de date la tergere. De exemplu, n situa ia cnd
disciplina Baze de date nu se mai pred grupei 941 tuplul dat trebuie ters. ns
tergerea acestui tuplu din rela ia considerat determin pierderea datelor despre eful
grupei 941, ntruct acestei grupe nu se mai predau de acum nici o disciplin (fie din
cauza c pentru aceast grup s-a terminat semestrul de studiu mai devreme n leg tur
cu plecarea la practic ).
n al treilea rnd, persist o redundan de date. De exemplu, faptul c Grlea este
eful grupei CIB-942 se repet de trei ori.
Aceast redundan implic al patrulea dezavantaj: apari ia unor inconsisten e la
modificarea datelor. Presupunem c s-a schimbat eful grupei 942. Modificarea
tuplurilor poate duce la apari ia inconsisten elor, dac numele efului de grup nu este
actualizat n toate tuplurile. n mod normal, numele efului grupei trebuie de scris o
singur dat , lucru posibil de realizat numai dac datele despre grup s-ar p stra ntr-o
rela ie separat .
Din punctul de vedere al actualiz rii f r anomalii i ndep rt rii redundan ei,
p strarea datelor n dou rela ii r1 i r2 (vezi fig. 5.5(a), 5.5(b)) e binevenit .
r1

DISCIPLINE
Baze de date
Programare logic
Structuri de date
Cerc. opera ionale

PROFESOR
Popescu
Petrache
Ciobanu
Cazacu

GRUPE
CIB-941
CIB-942
CIB-942
CIB-942

Fig.5.5(a) Rela ia r1
r2

GRUPE
CIB-941
CIB-942

DEF
Vasilachi
Grlea

Fig.5.5(b) Rela ia r2
Este evident c rela ia r se restabile te din r1 i r2, adic r = r1 |x| r2. n afar de
aceasta, au disp rut anomaliile de actualizare i ne-am eliberat de careva redundan .

Capitolul 5. Proiectarea bazelor de date

S trecem la expunerea strict a formei normale doi.


Defini ia 5.4. Fie rela ia r(R) i A R. Atributul A se nume te primar, dac el
apar ine unei chei a schemei R i nonprimar n caz contrar.
Defini ia 5.5. Fie X A o dependen func ional netrivial . Atributul A este
par ial dependent de X, dac exist o submul ime proprie Y a mul imii X i Y A.
Dac nu exist o astfel de submul ime proprie, se spune c A depinde complet de X.
Exemplul 5.6. Fie F={DISCIPLINE GRUPE
PROFESOR, GRUPE DEF}
asupra schemei R=DISCIPLINE PROFESOR GRUPE DEF. Aici atributul DEF depinde
par ial de DISCIPLINE GRUPE, iar atributul PROFESOR depinde complet de
DISCIPLINE GRUPE. ntruct mul imea de atribute {DISCIPLINE, GRUPE} este
singura cheie a schemei R, atributele DISCIPLINE i GRUPE sunt primare, iar
PROFESOR i DEF sunt nonprimare.
Defini ia 5.6. Schema unei rela ii R se g se te n forma normal doi n raport cu
mul imea de dependen e func ionale F, dac ea se g se te n forma normal unu i orice
atribut nonprimar nu depinde par ial de careva cheie a schemei R. Schema bazei de date
se g se te n forma normal doi, dac orice schem rela ional a ei se g se te n forma
normal doi.
Exemplul 5.7. Fie R i F din exemplul 5.6. Schema bazei de date Db={R} nu se
g se te n forma normal doi, fiindc atributul DEF depinde par ial de cheia
{DISCIPLINE, GRUPE}. Dar schema Db={DISCIPLINE PROFESOR GRUPE,
GRUPE DEF} bazei de date din fig.5.5(a) i 5.5(b) se g se te n forma normal doi.
ntr-adev r, n schema rela ional R1 = DISCIPLINE PROFESOR GRUPE,
atributul PROFESOR este nonprimar i el depinde complet de cheia DISCIPLINE
GRUPE. Cheia schemei R2 = GRUPE DEF este atributul GRUPE. Deci singurul atribut
nonprimar e DEF care depinde complet de cheie.
Problema determin rii, dac un atribut e primar e legat de problema g sirii
cheilor unei rela ii. Prin urmare, determinarea dac o schem se g se te n forma
normal doi e o problem NP-complet .

5.6. Forma normal( trei


Consider m rela ia r(STUDENT DISCIPLINE PROFESOR COD_PROF) din
fig.5.6.
r

STUDENT

Vasilachi
Marin
Gu u
Vasilachi

DISCIPLINE

Baze de date
Baze de date
Baze de date
Programarea logic

PROFESOR

Popescu
Popescu
Popescu
Petrache

COD_PROF

P.021
P.021
P.021
P.024

Fig.5.6. Rela ia r(STUDENT DISCIPLINE PROFESOR


COD_PROF) n forma normal doi

Capitolul 5. Proiectarea bazelor de date

Rela ia r este constrns de urm toarele dependen e func ionale:


STUDENT DISCIPLINE COD_PROF,
COD_PROF PROFESOR,
PROFESOR COD_PROF.
Cheia acestei rela ii e format din dou atribute STUDENT i DISCIPLINE. Deci ele
sunt primare. Atributele PROFESOR i COD_PROF sunt nonprimare. ntruct ele
depind complet de cheie, rela ia r se g se te n forma normal doi.
Dar s observ m c i aceast rela ie nu e lipsit de unele anomalii.
n rela ia r nu poate fi inserat numele unui profesor i codul lui, dect atunci cnd
acest profesor pred m car o disciplin n momentul dat. Deci n r se manifest
anomalia de inserare a datelor.
n situa ia, cnd profesorul Petrache nu mai pred disciplina Programarea logic ,
opera ia de tergere a acestui tuplu determin pierderea codului acestui profesor. Deci
schema dat nu e liber nici de anomaliile de tergere a datelor.
n afar de aceasta, perechea de date <Popescu P.021> se repet de attea ori c i
studen i ascult prelegerile profesorului Popescu. Prin urmare, persist o redundan ,
care poate duce la apari ia anomaliilor de modificare i inconsisten a datelor. De
exemplu, dac codul profesorului Popescu se va schimba cu P.022, atunci neap rat
trebuie modificate toate tuplurile (dar nu se tie num rul lor) i de f cut substituirea
corespunz toare. O singur gre eal poate duce la violarea dependen elor
PROFESOR COD_PROF i COD_PROF PROFESOR.
Aceste anomalii pot fi eliminate, dac rela ia r se descompune n dou rela ii r1 i
r2 din fig.5.7(a) i 5.7(b). n afar de aceasta, rela ia r poate fi restabilit prin jonc iunea
proiec iilor sale r1 i r2. Existen a jonc iunii f r pierderi este evident .
r1

STUDENT

Vasilachi
Marin
Gu u
Vasilachi

DISCIPLINE

COD_PROF

Baze de date
Baze de date
Baze de date
Programarea logic

P.021
P.021
P.021
P.024

Fig.5.7(a). Rela ia r2(STUDENT DISCIPLINE COD_PROF)


r2

PROFESOR

Popescu
Petrache

COD_PROF

P.021
P.024

Fig.5.7(b). Rela ia r2(COD_PROF PROFESOR)


Defini ia 5.7. Fie rela ia r(R), X,Y R i A R. Vom spune c atributul A depinde
tranzitiv de X prin Y, dac sunt satisf cute condi iile:
(1) X Y,
(2) Y
X (adic X nu depinde func ional de Y),
(3) Y A
(4) A XY.

Capitolul 5. Proiectarea bazelor de date

n aceast defini ie, condi iile (1) i (3) implic X A conform regulii
tranzitivit ii. Condi ia (2) este esen ial , de altfel X Y. Condi ia (4), de asemenea, e
esen ial , n caz contrar X A poate fi dedus cu ajutorul reflexivit ii (dac A X) sau
cu ajutorul regulii proiectivit ii (dac A Y).
Exemplul 5.8. Consider m rela ia din fig.5.6. Atributul nonprimar PROFESOR
este tranzitiv dependent de cheia {STUDENT, DISCIPLINE} prin COD_PROF fiindc
(1) STUDENT
DISCIPLINE
COD_PROF
(ntruct
{STUDENT,
DISCIPLINE} e cheie i deci determin toate atribuitele din schema rela iei
r),
(2) COD_PROF
STUDENT DISCIPLINE,
(3) COD_PROF PROFESOR,
(4) PROFESOR STUDENT DISCIPLINE.
Defini ia 5.8. Schema R se g se te n forma normal trei n raport cu o mul ime
de dependen e func ionale F, dac R se g se te n forma normal unu i orice atribut
nonprimar nu depinde tranzitiv de careva cheie a schemei R. Schema bazei de date
Db={R1, ...,Rm} se g se te n forma normal trei, dac orice schem rela ional Ri Db,
1 i m, se g se te n forma normal trei.
Exemplul 5.9. Schema rela iei din fig.5.6 nu se g se te n forma normal trei,
fiindc , cum s-a v zut n exemplul 5.8, atributul nonprimar PROFESOR depinde
tranzitiv de cheia {STUDENT, DISCIPLINE}. n schimb, schema bazei de date din
fig.5.7(a) i 5.7(b) Db = {STUDENT DISCIPLINE COD_PROF, COD_PROF
PROFESOR} se g se te n forma normal trei.
ntr-adev r, s examin m pe rnd schemele rela ionale din Db. Cheia rela iei r1
este {STUDENT, DISCIPLINE}. Atributele antrenate n aceast cheie sunt primare.
Singurul atribut nonprimar este COD_PROF. El nu depinde tranzitiv de {STUDENT,
DISCIPLINE}. Deci rela ia r1 (sau schema ei) se g se te n forma normal trei.
Ct prive te rela ia r2, n ea sunt valide dependen ele func ionale
COD_PROF PROFESOR i PROFESOR
COD_PROF. Deci r2 are dou chei
COD_PROF i PROFESOR. ntruct schema rela iei r2 nu con ine atribute nonprimare
ea este n forma normal trei.
E fireasc ntrebarea, care este corela ia dintre forma normal trei i forma
normal doi. R spunsul l d urm toarea teorem .
Teorema 5.1. Schema unei rela ii ce se g se te n forma normal trei se g se te i
n forma normal doi.
Demonstra ie. Teorema poate fi reformulat n felul urm tor: dac schema unei
rela ii nu se g se te n forma normal doi, atunci ea nu se g se te nici n forma normal
trei. Deci trebuie s ar t m c dependen a par ial implic dependen a tranzitivit ii.
Fie schema rela ional S=(R,F) i presupunem c atributul nonprimar A e par ial
dependent de o cheie, fie K. Adic K A F+ i K1 A F+, unde K1 K. Conform
regulii reflexivit ii, K1 K implic K K1 F+ i atunci condi ia (1) a defini iei 5.7 e
satisf cut . Condi ia (2) tot e satisf cut , adic K1 K, fiindc n caz contrar K nu este
cheie. Condi ia (3) urmeaz din ipotez , iar condi ia (4) e satisf cut din presupunerea

10

Capitolul 5. Proiectarea bazelor de date

c A este atribut nonprimar, adic nu apar ine cheii K i deci nici lui K1. Prin urmare,
atributul nonprimar A depinde tranzitiv de cheia K.
Exemplul 5.10. Schema bazei de date Db={DISCIPLINE PROFESOR GRUPE,
GRUPE DEF} din fig.5.5(a) i 5.5(b) se g se te n forma normal trei, deci se g se te i
n forma normal doi.
ntr-adev r, schema R1 = DISCIPLINE PROFESOR GRUPE se g se te n forma
normal trei, fiindc cheia e {DISCIPLINE, GRUPE}, iar singurul atribut nonprimar
este PROFESOR i el nu depinde tranzitiv de cheie. Cheia schemei R2 = GRUPE DEF
este atributul GRUPE. Atributul nonprimar DEF nu depinde tranzitiv de GRUPE.
E u or de observat, din cele expuse mai sus, c defini ia formei normale trei poate
fi formulat i altfel.
Defini ia 5.9. Schema unei rela ii se g se te n forma normal trei, dac orice
atribut ce depinde tranzitiv de cheie este primar.
Atunci putem formula urm toarea teorem .
Teorema 5.2. Schema R se g se te n forma normal trei n raport cu mul imea de
dependen e func ionale F, dac pentru orice dependen netrivial X A F+
(1) X este supercheie pentru R
sau
(2) A este atribut primar.
Demonstra ie. Fie X A o dependen netrivial i fie K o cheie a schemei R. Din
defini ia 5.9 reiese c nu e necesar examinarea cazului, cnd A este atribut primar.
Condi ia (2) e evident . S ar t m c pentru orice atribut nonprimar A, dependen a
K A nu este tranzitiv . Dac presupunem c condi ia (1) nu e satisf cut , atunci
K X F+ (fiindc K e cheie) i X
K. Dar aceasta este dependen a tranzitiv a
atributului nonprimar de cheie.
Exemplul 5.11. Fie schema bazei de date Db = {(AC, {C A}), (ABE,
{AE B}), (BCDEF, {BF C, CD EF, EF CD})}.
Este u or de constatat c schema Db se g se te n forma normal trei. ntr-adev r,
schemele rela ionale R1 = (AC, {C A}) i R2 = (ABE, {AE B}) se g sesc n forma
normal trei fiindc nu au dependen e tranzitive. S examin m schema R3 = (BCDEFE,
{BF C, CD EF, EF CD}). Schema R3 are trei chei BCD, BDF i BEF.
Dependen ele tranzitive BCD EF, BDF C, BEF CD includ numai atribute primare
(ele toate fac parte dintr-o cheie). Prin urmare i schema R3 este n forma normal trei.

5.7. Forma normal( Boyce-Codd


Forma normal trei nu interzice dependen a tranzitiv a atributelor primare de
cheie. ns i unele rela ii n forma normal trei nu sunt lipsite de anomaliile de
actualizare a datelor.
r

ORAD

ADRESE

COD

11

Capitolul 5. Proiectarea bazelor de date

o1
o1
o1
o1

a1
a2
a3
a4

c1
c1
c1
c2

Fig.5.8. Rela ia r(ORAD ADRESE COD)


n forma normal trei
Exemplul 5.12. Consider m rela ia r(ORAD ADRESE COD) din fig.5.8
examinat i n exemplul 5.1. Rela ia r satisface dependen ele func ionale ORAD
ADRESE COD i COD ORAD. Mul imea de atribute {ORAD, ADRESE} formeaz
cheia rela iei. Atributul ORAD e primar. Nici un atribut nonprimar nu depinde tranzitiv
de aceast cheie. Deci rela ia r se afl n forma normal trei.
ns , n ea nu putem introduce un tuplu ce con ine date despre un ora i codul lui,
pn nu cunoa tem adresa asociat de acest cod.
n afar de aceasta, n r se repet perechea ORAD COD ce poate duce la apari ia
inconsisten elor la modificarea acestor date.
Dac rela ia r e descompus n dou rela ii r1 i r2 (precum sunt prezentate n
fig.5.9(a) i 5.9(b)), atunci aceste dezavantaje lipsesc.
r1

COD
c1
c1
c1
c2

ADRESE
a1
a2
a3
a4

Fig.5.9(a). Rela ia r1(COD ADRESE)


r2

ORAD
o1
o1

COD
c1
c2

Fig.5.9(b). Rela ia r2(ORAD COD)


Defini ia 5.10. Schema R se g se te n forma normal Boyce-Codd n raport cu o
mul ime de dependen e func ionale F, dac pentru orice dependen X Y F+,
determinantul X este o supercheie a schemei R. Schema bazei de date se g se te n
forma normal Boyce-Codd, dac orice schem rela ional din ea se g se te n forma
normal Boyce-Codd.
Exemplul 5.13. Considernd rela ia din fig.5.8 ce satisface dependen a
func ional COD ORAD, conchidem c COD nu este supercheie. Deci schema acestei
rela ii nu se g se te n forma normal Boyce-Codd.
Examin m rela iile r1 i r2 din fig.5.9(a) i 5.9(b).
Cheia rela iei r1 const din toat mul imea de atribute {COD, ADRESE}. n r1 nu
e valid nici o dependen func ional , n afara celor triviale. Deci schema R1 = COD
ADRESE se g se te n forma normal Boyce-Codd.

12

Capitolul 5. Proiectarea bazelor de date

Rela ia r2 satisface dependen a func ional COD ORAD. Atributul COD este
cheie, deci i supercheie. Prin urmare, r2 se g se te n forma normal Boyce-Codd.
Rela ia r poate fi restabilit din proiec iile sale, r1 i r2. Deci descompunerea dat
posed proprietatea jonc iunii f r pierderi. ns descompunerea dat nu conserv
dependen ele func ionale. Dependen a ORAD ADRESE COD valid n rela ia r nu se
deduce din dependen ele valide n rela iile r1 i r2.
Din exemplul 5.13 putem face concluzia c forma normal trei nu implic forma
normal Boyce-Codd.
Urm toarea afirma ie stabile te leg tura dintre forma normal Boyce-Codd i
forma normal trei.
Teorem 5.3. Dac schema R se g se te n forma normal Boyce-Codd, atunci R
se g se te i n forma normal trei.
Demonstra ie. Validitatea acestei afirma ii urmeaz direct din defini ia formei
normale Boyce-Codd i teorema 5.2.

5.8. Normalizarea prin descompunere


5.8.1. Aducerea schemelor n forma normal( trei
Normalizarea este procesul de aducere a schemei ntr-o form normal dat .
Algoritmul FN3 aduce schema R n forma normal trei prin descompunere.
Algoritmul FN3 (R, F, Db)
Intrare: Schema R; F o mul ime de dependen e func ionale definite pe schema R.
Ie ire: Db schema bazei de date n forma normal trei.
begin
1
k:=1;
2
Rk:=R;
3
for i=1 to k do
4
keys (Ri,F,K);
5
AttrNP:=Ri \ Kj, Kj K;
Ri & X Y= & XY Ri & Y AttrNP
6
while X Y F+ & X
do
begin
7
k:=k+1;
8
Rk:=XY;
9
Ri:= Ri \ Y;
end
10 Db:={R1,..., Rk};
return (Db);
end.
La nceput vom porni de la ideea c orice schem ce nu se g se te n forma
normal trei poate fi descompus ntr-o serie de scheme ce se g sesc n forma normal
trei. Descompunerea presupune divizarea unei scheme R n dou scheme R1 i R2 astfel
c orice rela ie r(R) ce satisface mul imea dat de dependen e F se proiecteaz f r
pierderi asupra schemelor R1 i R2, adic r =

R1(r)|x| R2(r).

Acest proces se repet

13

Capitolul 5. Proiectarea bazelor de date

asupra schemelor R1 i R2, binen eles, pn subschemele formate sunt aduse n forma
normal trei.
n linia 3 variabila i denot schema curent , iar k num rul de scheme deja create.
Linia 4 determin mul imea K de chei a schemei curente Ri.
Linia 5 construie te mul imea AttrNP de atribute nonprimare din Ri.
Linia de baz a algoritmului este 6. Ea analizeaz dac schema curent se g se te
n forma normal trei. Pentru fiecare dependen valid n schema curent cu
determinatul format numai din atribute nonprimare se verific , dac determinantul ei
este supercheie. Dac nu, atunci conform teoremei 5.2 schema Ri nu se g se te n forma
normal trei. n acest caz (liniile 7-9) se produce descompunerea schemei Ri: se
formeaz o nou schem din atributele implicate n dependen , Ri=XY, iar schema Ri e
substituit de Ri \ Y. Conform teoremei 4.3, aceast descompunere posed proprietatea
jonc iunii f r pierderi. Apoi continu analiza schemelor deja formate. Dac n cadrul
lor nu se mai manifest dependen e ce satisfac condi iile din linia 6, atunci schema
ob inut se g se te n forma normal trei.
Exemplul 5.14. Consider m schema rela ional R = DPOCSN, unde D e
disciplin , P profesor, O ora, C clasa, S student i N nota. Presupunem c pe
schema dat sunt definite urm toarele dependen e func ionale:
D P orice disciplin e predat de un singur profesor;
OC D ntr-o clas n acela i timp se pred o singur disciplin ;
OP C profesorul ntr-un anumit timp se g se te ntr-o singur clas ;
DS N orice student are o singur not final la o disciplin ;
OS C studentul se g se te la ora dat ntr-o singur clas .
S se aduc schema R n forma normal trei.
De la nceputul algoritmului se formeaz schema R1 = R. n linia 4 a fost g sit o
singur cheie pentru R1 i anume OS. Deci {D,P,C,N} formeaz mul imea de atribute
nonprimare. Pentru a aduce schema R1 la forma normal trei consider m dependen a
func ional D P care satisface toate condi iile din linia 6. Form m o nou schem
(linia 8) R2 = DP, iar R1 este substituit de R1 = DOCSN. Schema R2 se g se te n forma
normal trei, fiindc nu exist vre-o dependen definit pe aceast schem i s
satisfac condi iile liniei 6. Schema R1 nu este n forma normal trei, fiindc exist o
dependen , de exemplu, OC D ce satisface condi iile liniei 6. Se formeaz a treia
schem R3 = OCD, dar R1 devine de acum egal cu OSCN. Este evident c schema R3
se g se te n forma normal trei. Schema R1 de asemenea se g se te n forma normal
trei, fiindc singura dependen , OS C, definit pe atributele schemei R1 nu satisface
condi iile liniei 6.
Deci schema R s-a descompus f r pierderi n R1, R2 i R3. Schema bazei de date
Db={R1,R2,R3} se g se te n forma normal trei.
S men ion m c schema Db={R1,R2,R3} se g se te i n forma normal BoyceCodd.

5.8.2. Aducerea schemei la forma normal( Boyce-Codd


Adresndu-ne la defini ia formei normale Boyce-Codd, un algoritm de aducere a
schemelor n aceast form poate fi prezentat astfel.
Algoritmul FNBC (R, F, Db)
Intrare: Schema R;

14

Capitolul 5. Proiectarea bazelor de date

F- o mul ime de dependen e func ionale asupra schemei R.


Ie ire: Db schema bazei de date n forma normal Boyce-Codd.
begin
k:=1;
Rk:=R;
for i=1 to k do
Ri & X Y= & XY Ri do
while X Y F+ & X
begin
k:=k+1;
Rk:=XY;
RI:=Ri \ Y;
end
Db:={R1,..., Rk};
return (Db);
end
Exemplul 5.15. Fie R = (ABCDEF, {AB E, AC F, AD B, B C, C D}).
S se aduc schema R n forma normal Boyce-Codd.
R1 = ABCDEF. Consider m pe rnd dependen ele func ionale valide n R1.
Dependen a AB E nu particip la descompunere, fiindc (AB)+=ABCDEF.
Consider m dependen AC F. (AC)+ = ABCDEF, deci AC F, de asemenea, nu
poate fi aplicat la descompunerea schemei R1. Acela i lucru putem spune i despre
dependen a AD B, fiindc (AD)+ = ABCDEF.
Determinantul dependen ei B C nu este supercheie, fiindc B+ = BC. Deci R1 se
descompune n dou scheme: R2 = BC i R1 = ABDEF. Schema R2 evident se g se te n
forma normal Boyce-Codd, fiindc const numai din dou atribute. Alt dependen ,
ce poate fi aplicat de acum asupra schemei R1 modificate, este B D F+, unde
BD R1. Construim schemele R3 = BD i R1 = ABEF. Cheia schemei R3 este B, iar a
schemei R1 - AB. Schema bazei de date n forma normal Boyce-Codd este
Db={(ABEF, {AB}), (BC, {B}), (BD, {B})}.

5.8.3. Dezavantajele normaliz(rii prin descompunere


Dat fiind faptul c algoritmul FN3 necesit calcularea cheilor schemei i
determinarea atributelor nonprimare, iar algoritmii FN3 i FNBC necesit examinarea
dependen elor din F+ valide n schema curent , complexitatea procesului de normalizare
nu e polinomial . Acesta e primul dezavantaj.
ntr-al doilea rnd, nu ntotdeauna putem ob ine un num r minimal de scheme
rela ionale normalizate dintr-o schem dat .
Exemplul 5.16. Fie schema R = ABCDE i F = {AB CDE, AC BDE, B C,
C B, C D, B E}. S se aduc R n forma normal trei.
Cheile schemei R sunt K = {AB, AC}. Aplic m pentru descompunere dependen a
C D. Atunci
R2 = CD, K2 = {C};
R1 = ABCE, K1 = {AB, AC}.

15

Capitolul 5. Proiectarea bazelor de date

Mai departe pentru descompunerea schemei R1 utiliz m dependen a B E:


R3 = BE, K3 = {B};
R1 = ABC, K1 = {AB, AC}.
Schema final n forma normal trei este
Db = {(ABC, {AB, AC}),(CD, {C}), (BE, {B})}.
Exist , n schimb, alt descompunere cu mai pu ine scheme rela ionale. Dac
utiliz m dependen a func ional B DE F+, atunci ob inem schemele
R2 = BDE, K1 = {B};
R1 = ABC, K1 = {AB, AC}.
Deci, Db = {(ABC, {AB, AC}), (BDE, {B})}.
A treia problem const n apari ia dependen elor par iale n procesul
descompunerii schemelor. Aceste dependen e genereaz scheme cu mai multe scheme
rela ionale dect e nevoie.
Exemplul 5.17. Fie schema R = ABCD i F = {A BCD, C D}. S se aduc
schema R n forma normal trei.
Singura cheie a schemei R este A. Utiliz m dependen a BC D pentru
descompunerea schemei R. Atunci
R2 = BCD, K2 = {BC};
R1 = ABC, K1={A}.
n R2 atributul D depinde par ial de cheia BC, deci poate fi aplicat dependen a
C D pentru descompunerea schemei R2:
R3 = CD, K3 = {C};
R2 = BC, K2 = {BC}.
Deci, schema bazei de date n forma trei este Db={(ABC, {A}), (BC, {BC}),
(CD, {C})}.
ns , dac pentru descompunere asupra schemei R e aplic deodat dependen a
C D, atunci ob inem
R2 = CD, K2 = {C};
R1 = ABC, K1 = {A}.
n acest caz Db={(ABC, {A}), (CD, {C})}. Ultima schem a bazei de date este o
submul ime a primei scheme.
Acest dezavantaj poate fi evitat, dac dependen ele utilizate n descompunere sunt
reduse n stnga.
A patra problem este c normalizarea prin descompunere nu ntotdeauna
conserv dependen ele func ionale.
Exemplul 5.18. Schema bazei de date ob inut n exemplul 5.14 nu conserv
dependen ele OP C i DS N. Schema bazei de date ob inut n exemplul 5.15 nu
conserv dependen ele AC F i AD B.
A cincea problem const n faptul c normalizarea prin descompunere poate
produce scheme, n care dependen ele, ce pot fi utilizate mai departe n descompunere,
sunt latente.

16

Capitolul 5. Proiectarea bazelor de date

Exemplul 5.19. Fie pe schema R = ABCD e definit mul imea de dependen e


func ionale F = {A B, B C}. Cheia rela iei R este AD. Dependen a A B poate fi
utilizat n descompunerea schemei R:
R2 = AB, K2 = {A};
R1 = ACD, K1 = {AD}.
S-ar p rea c schema R1 se g se te n forma normal trei, ns n R1 exist
dependen a func ional latent A C, ce ar trebui s fie utilizat n descompunerea de
mai departe.

5.9. Normalizarea prin sintez(


n aceast sec iune va fi prezentat o alt metod de aducere a schemelor la forma
normal trei, ce nu genereaz problemele descrise n sec iunea precedent .
Metoda propus este o procedur de sintez , fiindc pleac de la mul imea de
dependen e func ionale F cu determina ii dintr-un singur atribut i produce schema
bazei de date Db={R1,..., Rm} asupra R= R1...Rm. Schema bazei de date trebuie s
satisfac urm toarele patru condi ii:
(1) Mul imea de dependen e formate de cheile fiec rei scheme Ri trebuie s fie o
acoperire a mul imii ini iale F de dependen e func ionale, adic F {K Ri |
Ri Db, 1 i m, K - cheie}.
(2) Orice schem rela ional Ri din Db se afl n forma normal trei.
(3)

Nu exist o schem a bazei de date ce satisface condi iile (1) i (2) cu mai
pu ine scheme rela ionale.

(4)

Orice rela ie r(R) ce satisface F se descompune f r pierderi asupra


schemei Db, adic r=

R1(r)|x|...|x| Rm(r).

S consider m aceste condi ii.


Condi ia (1) garanteaz c descompunerea rela iei r asupra schemei Db conserv
dependen ele func ionale F. n afar de aceasta, condi ia (1) ne asigur c unicele
dependen e valide n Ri, 1 i m, au n calitate de determinan i cheile schemei Ri.
Satisfacerea condi iei (1) este solu ia problemei patru din sec iunea precedent .
Condi ia (2) este scopul principal al normaliz rii i necesitatea ei a fost detaliat
studiat .
Condi ia (3) ne ocrote te de scheme redundante, deci ea solu ioneaz problemele
doi i trei din sec iunea precedent .
Condi ia (4) de asemenea a fost considerat .
Problema cinci din sec iunea precedent nu apare gra ie ndeplinirii concomitente
a condi iilor (1) i (3). Iar problema unu nu se mai pune, fiindc complexitatea
algoritmului de sintez descris mai jos este polinomial .
Algoritmul SYNT (F, Db)
Intrare: F o mul imea de dependen e func ionale
Ie ire: Db schema bazei de date n forma normal trei.

17

Capitolul 5. Proiectarea bazelor de date

1.

Se g se te o acoperire nonredundant Fn a mul imii F.

2.

Se construie te o acoperire redus n stnga Fr a mul imii Fn.

3.

Mul imea Fr se parti ioneaz n clase de echivalen .

4.

Se construie te o mul ime J n felul urm tor. Fie J= . Pentru orice dou
dependen e func ionale din Fr cu determina ii X i Y, unde X Y, se
modific J, J:=J {X Y, Y X}. Pentru orice A Y, dac X A se g se te
n Fr, atunci Fr:= Fr \ {X A}. Acela i lucru e valabil i pentru orice B X.
Dac Y B Fr, atunci Fr:= Fr \ {Y B}.

5.

Se elimin dependen ele tranzitive. Se g se te o mul ime Fr1 Fr, ce satisface


(Fr1 J)+ (Fr J)+ i nici o submul ime proprie a mul imii Fr1 nu satisface
condi ia dat . Apoi se includ dependen ele din J n clasele de echivalen a
mul imii Fr1 i fie c ob inem mul imea G de dependen e func ionale.

6.

Se construiesc schemele R1,...,Rm. Fiecare schem Ri include atributele


dependen elor func ionale din clasa de echivalen i i n final ob inem
schema bazei de date Db:={R1, ..., Rm}.

S ne oprim acum asupra corectitudinii algoritmului. Algoritmul expus formeaz


un num r minimal de scheme rela ionale n Db.
Teorema 5.4. Dac Db este schema bazei de date sintetizate din mul imea F,
atunci Db con ine cel pu in | Fn| scheme rela ionale.
Demonstra ie. Dependen ele ce sunt incluse ntr-o schem rela ional Ri, 1 i m,
au determinan i echivalen i. Deci Db con ine attea scheme n cte clase de echivalen
este parti ionat mul imea G (vezi algoritmul SYNT). Din lema 3.3 urmeaz |

G|=| Fn|.

Dar e cunoscut faptul c | F| | Fn|, adic mul imea nonredundant const dintr-un num r
minimal de clase de echivalen .
Aceast teorem ne garanteaz c algoritmul de sintez satisface condi ia (3).
Condi ia (1) este asigurat , fiindc F Fn Fr G.
Condi ia (2) e satisf cut de pasul 5 al algoritmului ce elimin dependen ele
tranzitive.
Acum s vedem dac e satisf cut i condi ia (4). Cu toate c algoritmul de
sintez solu ioneaz toate cele cinci probleme din sec iunea 5.8.3, nu ntotdeauna
schema bazei de date posed proprietatea jonc iunii f r pierderi. Adic nu ntotdeauna
e satisf cut condi ia (4). Acest lucru nu se petrecea n cazul normaliz rii prin
descompunere.
Exemplul 5.20. Fie F={A C, B C}. Algoritmul de sintez genereaz schema
Db={R1, R2}, unde
R1 = AC, K1={A};
R2 = BC, K2={B}.
ns e u or de v zut c rela ia r(ABC) din fig.5.10 nu se descompune f r pierderi
asupra R1 i R2.
r

18

Capitolul 5. Proiectarea bazelor de date

a1
a2

b1
b2

c1
c1

Fig.5.10.
Un alt dezavantaj al algoritmului de sintez e legat de atributele ce nu sunt
antrenate de mul imea de dependen e func ionale F. Aceste dou dezavantaje pot fi
eliminate, introducnd a a-numita cheie universal .
Defini ia 5.11. Fie Db = {R1,...,Rm} o schem a bazei de date asupra atributelor R
= R1...Rm i F o mul ime de dependen e func ionale. Mul imea X R se nume te cheie
universal , dac F|=X R i nu exist X1, unde X1 X, ce ar satisface F|=X1 R.
Deci, ca schema bazei de date s posede proprietatea jonc iunii f r pierderi, ea
trebuie s con in o schem rela ional n care o cheie a ei e universal .
Vom modifica algoritmul de sintez pentru a elimina cele dou dezavantaje
men ionate mai sus.
La mul imea ini ial de dependen e func ionale F se adaug o dependen
func ional R C, unde R= R1...Rm, iar C R.
Este clar c la primul pas al algoritmului dependen a R C nu va fi eliminat ,
fiindc ea nu e redundant n F.
La al doilea pas ea va fi redus n stnga, fie R1 C.
La etapa de parti ie, dac ea va intra ntr-o clas de echivalen cu alte
dependen e, atunci ea se elimin din Fr i algoritmul continu mai departe. Dac ea
singur formeaz o clas de echivalen , atunci R1 C genereaz schema Rm = R1C cu
cheia R1.
La sfr itul algoritmului se elimin atributul C din schema Rm, deci Rm = R1.
Exemplul 5.21. Fie F ca n exemplul 5.20, adic F={A C, B C}. Ad ug m la
F dependen a ABC D.
Algoritmul de sintez va genera schema Db={(AC, {A}), (BC, {B}), (ABD,
{AB})}. Apoi eliminnd din ultima schem rela ional atributul D, ob inem schema
bazei de date n forma normal trei ce posed proprietatea jonc iunii f r pierderi
Db={(AC, {A}), (BC, {B}), (AB, {AB})}.
Cu p rere de r u, trebuie s recunoa tem c algoritmul modificat violeaz condi ia
(3) de minimalitate a schemei.

5.10. Forma normal( patru


Defini ia 5.12. Schema R se g se te n forma normal patru n raport cu
mul imea de dependen e multivaloare i func ionale M, dac ea se g se te n forma
normal unu i orice dependen X
Y din M+ satisface.
(1) X
Y este trivial (adic Y X sau XY=R)
sau
(2) X este supercheie pentru schema R.

19

Capitolul 5. Proiectarea bazelor de date

Schema bazei de date se g se te n forma normal patru, dac orice schem a ei se


g se te n forma normal patru.
Procedura de aducere n forma normal patru se bazeaz pe teorema 4.3, care ne
spune c o dependen X
Y e valid ntr-o rela ie r(R), dac i numai dac r(R) este
jonc iunea proiec iilor XY(r) i XZ(r), unde Z = R \ XY.
Procesul de normalizare decurge n felul urm tor. Se ncepe cu schema ini ial R.
Dac n aceast schem e valid dependen a multivaloare netrivial X
Y i X nu e
supercheie, atunci schema R se descompune n dou scheme R1=XY i R2=XZ, unde Z
= R \ XY. La rndul lor, schemele R1 i R2 sunt considerate n privin a satisfacerii
condi iilor de a fi n forma normal patru. Dac careva schem nu e n forma normal
patru, procesul de descompunere continu pn toate schemele sunt normalizate.
Evident c procesul este finit.
Exemplul 5.22. Fie mul imea de dependen e M = {C
DE, A BC} definit
pe schema R=ABCDE. Schema R nu se afl n forma normal patru, fiindc C
DE
nu e trivial i C nu este cheie. Schema bazei de date ce const din dou scheme
R1=CDE i R2=ABC se g se te n forma normal patru. ntr-adev r, cu toate c
A B M+, deci A
B M+ i A
B nu este trivial , ns A este supercheie pentru
R2 .
Exemplul 5.23. S se normalizeze schema R=ABCDEI, dac pe ea e definit
mul imea de dependen e M={A
BCD, B AC, C D}. Fiindc A
BCD nu este
trivial i A nu e supercheie schema R se descompune f r pierderi n schemele
R1=ABCD i R2=AEI. Schema R2 se g se te n forma normal patru: pe ea e definit o
singur dependen multivaloare trivial A
EI. Cu toate c n M+ este B
AC, din
B AC i C D urmeaz B ACD. Deci, B este cheia schemei R1 i B
AC nu
particip la descompunerea de mai departe a schemei R1. ns , din C D urmeaz
dependen a netrivial C
D ce descompune schema R1 n dou : R3=CD i R1=ABC.
Schema bazei de date n forma normal patru este DB={ABC, AEI, CD}.
Teorema 5.5. Dac schema R se g se te n forma normal patru, atunci R se
g se te n forma normal Boyce-Codd.
Demonstra ie. Vom demonstra o afirma ie echivalent : dac R nu se g se te n
forma normal Boyce-Codd, atunci R nu se g se te nici n forma normal patru.
Fie R nu se g se te n forma normal Boyce-Codd. Adic trebuie s existe o
dependen func ional netrivial X A i X nu este supercheie a schemei R. Atunci
exist un atribut B n R, nct B AX i X
B. Prin urmare, B R \ AX i atunci
dependen a X
A care este alter ego al dependen ei X A nu e trivial . Din
condi iile c dependen a X
A nu e trivial i X nu e supercheie, urmeaz c R nu se
g se te n forma normal patru.

5.11. Forma normal( proiec ie-jonc iune


Defini ia 5.13. Dependen a jonc iune |x|(R1, ..., Rm) este aplicabil schemei R,
dac R=R1...Rm.

20

Capitolul 5. Proiectarea bazelor de date

Defini ia 5.14. Schema R se g se te n forma normal proiec ie-jonc iune n


raport cu o mul ime de dependen e jonc iune (dependen ele multivaloare sunt acelea i
dependen e jonc iune) i func ionale J, dac ea se g se te n forma normal unu i orice
dependen jonc iune |x|(R1, ..., Rm) aplicabil din J+ este trivial sau orice Ri este
supercheie pentru R.
Exemplul 5.24. Fie mul imea de dependen e J = {|x|(ABCD, CDE, BDF),
|x|(AB, BCD, AD), A BCDE, BC A} definit pe schema R = ABCDEF.
Schema R nu se g se te n forma normal proiec ie-jonc iune din cauza
dependen ei aplicabile |x|(ABCD, CDE, BDF).
Schema bazei de date Db = {ABCD, CDE, BDF} se g se te n forma normal
proiec ie-jonc iune n raport cu J. Cu toate c dependen a jonc iune |x|(AB, BCD, AD)
e aplicabil schemei rela ionale ABCD, Db se g se te n forma normal proiec iejonc iune datorit faptului c orice subschem AB, BCD i AD este supercheie pentru
schema ABCD.
Exemplul 5.25. Fie R = ABCDEF i J = {|x|(ABC, ADEF), A BCDE,
BC AF}.
Schema R se g se te n forma normal proiec ie-jonc iune, fiindc cu toate c
dependen a |x|(ABC, ADEF) este aplicabil schemei R, subschemele ei sunt superchei
pentru R.
Teorema 5.6. Dac schema R se g se te n forma normal proiec ie-jonc iune n
raport cu mul imea de dependen e J, atunci R se afl n forma normal patru.
Demonstra ia acestei teoreme urmeaz direct din condi ia c dependen a
multivaloare netrivial X Y definit asupra schemei R este dependen a de jonc iune
|x|(XY, XZ), unde Z = R \ XY.

5.12. Concluzii
Etapele de proiectare a bazei de date pot fi cele de mai jos. Fiecare din aceste
etape produce o baz de date mai "bun " dect precedenta. Corela ia dintre diverse
forme normale este reprezentat n fig.5.11.
(1)

Ini ial datele sunt nenormalizate.

(2)

Se elimin atributele ce formeaz mul imi de valori sau sunt complexe. n


consecin se ob ine schema rela iei universale. Se spune c schema acestei
rela ii se g se te n forma normal unu (FN1).

(3)

Pentru a ajunge la forma normal doi (FN2) se elimin dependen ele par iale
de chei ale atributelor nonprimare.

(4)

Forma normal trei (FN3) cere eliminarea dependen elor tranzitive ale
atributelor nonprimare de chei. De obicei mul i profesioni ti n proiectarea
bazelor de date se limiteaz la aceast form normal .

21

Capitolul 5. Proiectarea bazelor de date

(5)

Dup nl turarea tuturor dependen elor tranzitive, se ob ine forma normal


Boyce-Codd (FNBC).

(6)

Forma normal patru (FN4) solu ioneaz


dependen ele multivaloare netriviale.

(7)

Forma normal proiec ie-jonc iune (FNPJ) se refer


problemei descompunerii f r pierderi a rela iilor.

problemele cauzate de
la solu ionarea

FN1
FN2
FN3
FNBC
FN4
FNPJ

Fig.5.11. Corela ia dintre formele normale


n afar de facilit ile pe care ni le ofer o schem a bazei de date, construit
conform rigorilor tiin ifice, normalizarea creeaz
i dou probleme: mic orarea
eficien ei c ut rii datelor i apari ia unor duplicate de date.
Un efect adi ional al normaliz rii este cre terea num rului de structuri de date n
baza de date. Aceasta ns afecteaz eficien a de c utare a datelor n sistemul
informatic. De i normalizarea reduce spa iul total necesar de p strare a datelor, ns
cre te timpul n care poate fi c utat informa ia. Pentru procesarea interpel rilor i
extragerii r spunsurilor apare necesitatea rejonc ion rii rela iilor. Prin aceasta i se
explic faptul c primele baze de date rela ionale au ap rut pe calculatoare performante,
iar mai trziu au ap rut sisteme instalate pe microcomputere.
n ceea ce prive te duplicatele de date trebuie de men ionat c ele nu pot fi
comparate cu redundan a de date ce este redus n procesul de normalizare. Redundan a
genereaz anomalii de actualizare a datelor. Pe cnd duplicatele ap rute dup
normalizare, nu genereaz asemenea anomalii. Aici e vorba de atributele ce formeaz
determinantul dependen ei care particip la descompunere. Atributele determinantului
apar n ambele scheme produse din schema precedent .

22

Capitolul 5. Proiectarea bazelor de date

5.13. Exerci ii
5.1. Fie mul imea de dependen e func ionale G = {AB EF, A C, D B,
C F, F B}. S se determine cheile schemelor de mai jos.
(a)

R1 = ABCDEF;

(b)

R2 = ABDF;

(c)

R3 = ACE;

(d)

R4 = BCD;

(e)

R5 = DEF.

5.2. Fie mul imea de dependen e func ionale G = {A D, AB E, BF E,


CD F, E C} definit pe schema R = ABCDEF.
(a)

S se determine nchiderile oric rei combina ii de atribute din schema


R.

(b)

S se identifice atributele primare.

5.3. S se aduc un exemplu de schem (alta dect cele descrise n sec iunea
curent ), n care se manifest anomalii de inserare, tergere i modificare a
datelor.
5.4. S se aduc schema din exerci iul 5.3 la forma normal necesar , nct
anomaliile s fie eliminate.
5.5. Fie pe schema R = ABCDE e definit mul imea de dependen e func ionale F
= {A C, B C , C D, DE C, CE A}. S determine dac
descompunerea R1=AD, R2=AB, R3=BE, R4=CDE, R5=AE a schemei R,
posed proprietatea jonc iunii f r pierderi.
5.6. Fie F = {AC BE, BC AD, C DE, A D, D B}. S se determine dac
descompunerea R1=ABC, R2=AB, R3=BDE a schemei R=ABCDE, se
bucur de proprietatea jonc iunii f r pierderi.
5.7. S se aduc schema rela ional R = ABCDEF n forma normal doi, dac pe
ea e definit mul imea de dependen e func ionale G = {AB CE, BC A,
C A, ACE B, E DF, BD C, CF BE, CD AF, E F}.
5.8. S se descompun schema R = ABCDEF n forma normal trei, dac pe ea e
definit mul imea de dependen e func ionale G = {AB C, C A, BC D,
ACD B, CD B, BE C, CF BD, CE AF}.
5.9. S se aduc un exemplu de schem n forma normal trei cu un atribut
primar ce depinde tranzitiv de cheie.
5.10. Fie F = {C T, HR C, CS G, HS R, HRS T}. S se sintetizeze
schema bazei de date n forma normal trei.

23

Capitolul 5. Proiectarea bazelor de date

5.11. S se construiasc schema bazei de date n forma normal trei din mul imea
de dependen e F = {A CF, B ED, E F, F BC}.
5.12. S se aduc un exemplu de rela ie ce se descompune f r pierderi n trei
rela ii, dar nu se descompune n dou . Binen eles c toate schemele trebuie
s fie diferite.
5.13. Fie mul imea de dependen e func ionale F = {AB C, A D, BD C}
valide n rela ia r(ABCD).
(a)

S se aduc trei exemple de anomalii ce apar n actualizarea rela iei r.

(b)

S se descompun schema acestei rela ii n dou scheme astfel ca


schemele ob inute s se g seasc n forma normal trei i
descompunerea s conserve dependen ele func ionale.

5.14. Fie c rela ia r(ABCD) satisface mul imea de dependen e func ionale F =
{AC B, AB D}.
(a)

S se g seasc cheile schemei rela iei r.

(b)

S se arate c schema R = ABCD se g se te n forma normal doi i


nu se g se te n forma normal trei.

(c)

S se aduc exemple de anomalii ce pot ap rea n procesul de


actualizare a rela iei r.

5.15. Consider m schema R = ABCD, mul imea de dependen e func ionale F =


{A B, C B, D ABC, AC D} definit pe ea i descompunerea lui R n
dou scheme R1 = AB i R2= BCD.
(a)

Descompunerea dat posed proprietatea jonc iunii f r pierderi?


Dac nu, atunci s se g seasc o descompunere f r pierderi.

(b)

Descompunerea dat conserv mul imea de dependen e F?

5.16. Consider m schema R = ABCD i mul imea de dependen e func ionale F =


{AC B, AB D}.
(a)

Care sunt cheile schemei R?

(b)

n ce form normal cea mai nalt se g se te schema R?

(c)

Care este cea mai nalt form la care poate fi adus schema R, dar s
posede proprietatea jonc iunii f r pierderi i s conserve
dependen ele?

5.17. Utiliznd algoritmul de normalizare prin descompunere s se aduc schema


R = ABCDEF n forma normal Boyce-Codd, dac pe ea e definit
mul imea de dependen e func ionale G = {A B, CD A, CB D, AE F}.
5.18. Fie schema R = ABCDEGHIKLMN i mul imea de dependen e func ionale
F = {AC ED, A BGHL, G HIK, L MN, N L}. S se aduc schema
R n forma normal Boyce-Codd prin descompunere, astfel ca

24

Capitolul 5. Proiectarea bazelor de date

descompunerea s posede proprietatea jonc iunii f r


normal ob inut conserv dependen ele?

pierderi. Schema

5.19. De ce o schem rela ional cu cel mult dou atribute se g se te n forma


normal Boyce-Codd?
5.20. S se arate c , dac pentru orice pereche distinct de atribute A i B din
schema R, atributul A nu se con ine n nchiderea mul imii R \ AB, atunci R
se g se te n forma normal Boyce-Codd.
5.21. S se aduc un exemplu de schem n forma normal Boyce-Codd, dar care
nu se g se te n forma normal patru.

25

S-ar putea să vă placă și