Documente Academic
Documente Profesional
Documente Cultură
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.
1
Capitolul 5. Proiectarea bazelor de date
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.
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.
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.
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.
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.
Fig.5.2(a)
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).
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.
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.
6
Capitolul 5. Proiectarea bazelor de date
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
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.
8
Capitolul 5. Proiectarea bazelor de date
r2 PROFESOR COD_PROF
Popescu P.021
Petrache P.024
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.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 .
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.
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.
11
Capitolul 5. Proiectarea bazelor de date
o1 a1 c1
o1 a2 c1
o1 a3 c1
o1 a4 c2
r1 COD ADRESE
c1 a1
c1 a2
c1 a3
c2 a4
r2 ORAD COD
o1 c1
o1 c2
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.
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.
14
Capitolul 5. Proiectarea bazelor de date
15
Capitolul 5. Proiectarea bazelor de date
16
Capitolul 5. Proiectarea bazelor de date
17
Capitolul 5. Proiectarea bazelor de date
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 .
r A B C
18
Capitolul 5. Proiectarea bazelor de date
a1 b1 c1
a2 b2 c1
Fig.5.10.
19
Capitolul 5. Proiectarea bazelor de date
20
Capitolul 5. Proiectarea bazelor de date
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
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.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.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}.
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.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.
24
Capitolul 5. Proiectarea bazelor de date
25