Sunteți pe pagina 1din 25

Capitolul 5.

Proiectarea bazelor de date

Capitolul 5
PROIECTAREA BAZELOR DE DATE
Prin proiectarea bazei de date, aici se subîn elege proiectarea unei scheme logice
care ar înl tura apari ia unor anomalii în lucrul cu baza de date, asigurând 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 întâmpl î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 decât 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 când 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 pân acum ( i mai departe) presupune c toat mul imea de
atribute formeaz schema unei rela ii “mari” i toate constrângerile asupra atributelor
sunt constrângeri 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

1
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 , reprezentându-se printr-o singur rela ie, atunci trebuie s se
modifice corespunz tor i programele ce specific jonc iunea.
Formulând 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,
excluzând astfel definirea unor c i de acces neoptimale din partea unor utilizatori
neini ia i. Deci acest model faciliteaz interac iunea sistem-utilizator, cerând 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 rând, nu toate tuplurile vor avea valori
definite. În al doilea rând, 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=R1…Rm, 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.

2
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=R1…Rm, 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


constrângeri 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, întrucât
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 întrucât el nu con ine un tuplu-scop, descompunerea nu posed
proprietatea jonc iunii f r pierderi.

tab A B C D
a1 a2 b13 b14
b21 b22 a3 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
strâns 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.

3
Capitolul 5. Proiectarea bazelor de date

Vom presupune mai departe, când 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. Întrucât 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 când
extrem de dificil lucrul cu ea.
Deci, în primul rând, o schem poate fi ineficient fiindc con ine o mul ime de
date redundante.
În al doilea rând, ca o consecin a primei cauze, actualizarea unei baze
redundante poate duce la situa ia când ea va con ine fapte logic contradictorii. O parte
de date pot r mâne nemodificate. Deci o baz de date “rea” duce la apari ia unor
inconsisten e la modificarea datelor.
În al treilea rând, o baz de date “rea” poate limita posibilitatea de inserare a
datelor. Într-o rela ie nu pot fi introduse date despre o entitate pân nu se cunosc alte
date conform restric iilor de integritate ale entit ii.
În al patrulea rând, 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 când, 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

4
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 pân 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 301
Popovici 302
Gârlea, Efim 303

Fig.5.2(a)

c min NUME_STUDENT CAMERA


Ionescu 301
Vasilachi 301
Popovici 302
Gârlea 303
Efim 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 inând 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 DATA_NADTERE


Ionescu 9 ianuarie 1979
Vasilachi 21 februarie 1978
Popovici 15 decembrie 1977
Gârlea 6 iunie 1979
Efim 9 ianuarie 1978
Fig.5.3(a)

5
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 ZI LUNE AN


Ionescu 9 ianuarie 1979
Vasilachi 21 februarie 1978
Popovici 15 decembrie 1977
Gârlea 6 iunie 1979
Efim 9 ianuarie 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, bineîn eles, c opera ia de actualizare nu poate fi efectuat . Cu atât 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 constrângere 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 i
eliminarea unor anomalii ce apar la actualizarea schemelor în forma normal unu.
Consider m rela ia r din fig. 5.4.

r DISCIPLINE PROFESOR GRUPE DEF_GR


Baze de date Popescu CIB-941 Vasilachi
Programarea logic Petrache CIB-942 Gârlea
Structuri de date Ciobanu CIB-942 Gârlea
Cerc. opera ionale Cazacu CIB-942 Gârlea

6
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 constrâns de dou


dependen e func ionale: GRUPE DEF_GR, semnificând 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 rând, sunt limitate posibilit ile de inserare a datelor. În rela ia r nu pot
fi introduse date despre o grup , adic eful grupei, decât atunci când 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 rând, pot fi pierderi de date la tergere. De exemplu, în situa ia când
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, întrucât 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 rând, persist o redundan de date. De exemplu, faptul c Gârlea 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 PROFESOR GRUPE


Baze de date Popescu CIB-941
Programare logic Petrache CIB-942
Structuri de date Ciobanu CIB-942
Cerc. opera ionale Cazacu CIB-942

Fig.5.5(a) Rela ia r1

r2 GRUPE DEF
CIB-941 Vasilachi
CIB-942 Gârlea

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 .

7
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. Întrucât 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 DISCIPLINE PROFESOR COD_PROF


Vasilachi Baze de date Popescu P.021
Marin Baze de date Popescu P.021
Gu u Baze de date Popescu P.021
Vasilachi Programarea logic Petrache P.024

Fig.5.6. Rela ia r(STUDENT DISCIPLINE PROFESOR


COD_PROF) în forma normal doi

8
Capitolul 5. Proiectarea bazelor de date

Rela ia r este constrâns 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. Întrucât 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, decât atunci când
acest profesor pred m car o disciplin în momentul dat. Deci în r se manifest
anomalia de inserare a datelor.
În situa ia, când 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 atâtea 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 DISCIPLINE COD_PROF


Vasilachi Baze de date P.021
Marin Baze de date P.021
Gu u Baze de date P.021
Vasilachi Programarea logic P.024

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

r2 PROFESOR COD_PROF
Popescu P.021
Petrache 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.

9
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 (întrucât {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 rând 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.
Cât 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. Întrucât 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, când 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 a1 c1
o1 a2 c1
o1 a3 c1
o1 a4 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,
pân 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 ADRESE
c1 a1
c1 a2
c1 a3
c2 a4

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

r2 ORAD COD
o1 c1
o1 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. Considerând 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;
6 while X Y F+ & X Ri & X Y= & XY Ri & Y AttrNP
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, bineîn eles, pân 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 Boyce-
Codd.

5.8.2. Aducerea schemei la forma normal( Boyce-Codd


Adresându-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
while X Y F+ & X Ri & X Y= & XY Ri do
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 rând 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 rând, 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 decât 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 stânga.

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 stânga 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 atâtea scheme în câte 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 A B C

18
Capitolul 5. Proiectarea bazelor de date

a1 b1 c1
a2 b2 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, introducând 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 stânga, 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 sfâr 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 eliminând 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 rândul 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 pân 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, încât 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 ie-
jonc 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 " decât 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 problemele cauzate de
dependen ele multivaloare netriviale.
(7) Forma normal proiec ie-jonc iune (FNPJ) se refer la solu ionarea
problemei descompunerii f r pierderi a rela iilor.

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 târziu 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 când 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 decât 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 , încât
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 . Bineîn 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. Utilizând 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 pierderi. Schema


normal ob inut conserv dependen ele?

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