Sunteți pe pagina 1din 51

Baze de date Curs 10 : Normalizarea relatiilor

1. Anomalii in bazele de date


2. Dependente functionale
3. Forme normale
4. Denormalizarea

1
1. Anomalii in bazele de date 3. Forme normale
3. Dependente functionale 4. Denormalizarea

Reamintim:
Curs 10 : Normalizarea relaiilor

Tipuri de reguli integritate:


a entitilor:
a relaiior
restricii contextuale
Pentru a prezenta procesul de normalizare, este necesar s definim urmtoarele
dou concepte:
1. anomalie,
2. dependen funcional.
Clasificare
I. Redundan logic
II. Anomaliile la actualizare
II.a. anomalie la inserie
II.b. anomalie la tergere
II.c. anomalie la modificare
III. Problema reconexiunii (corelata, in general, cu operatiile de compunere).
2
Baze de date Curs 10 : Normalizarea relatiilor

1. Anomalii in bazele de date


2. Dependente functionale
3. Forme normale
4. Denormalizarea

3
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Dependen funcional =
Curs 10 : Normalizarea relaiilor

= o restricie care apare ntre atributele unei entiti la nivelul


semanticii (semnificaiei) acestora i al valorilor lor:
fie a1 i a2 atributele unei entiti E; spunem c atributul a2
este dependent funcional de atributul a1 (sau: atributul a1
determina functional atributul a2)
pentru fiecare valoare a atributului a1 exista cel mult o
valoare a atributului a2 ;
atunci cand mai multe tupluri ale entitatii E iau aceleasi
valoare pentru atributul a1 ele iau valoare i pentru atributul a2
Notatie
a1 a2
Reprezentare grafica

atributul a2 depinde
a1 a2
funcional de a1
4
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Determinantul unei dependene funcionale =


Curs 10 : Normalizarea relaiilor

= atributul care, prin valorile sale, determin valorile celuilalt


atribut
(i.e.: atributul aflat, n ambele reprezentri, n stnga sgeii);
Atributul a1 se numeste determinant si atributul a2 se
numeste determinat al unei dependente functionale
pentru fiecare valoare a atributului a1 exist cel mult o
valoare a atributului a2
Examinarea dependenelor funcionale dintre atributele unei
relatii
determinarea cheilor candidat precum i a cheii candidat
care trebuie s fie aleas drept cheie primar:
este aleas cheia candidat care apare ca determinant n
toate dependenele funcionale identificate la nivelul
entitii respective. 5
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Definitii (tipuri de dependente)


Curs 10 : Normalizarea relaiilor

(1) O dependen funcional X Y se numete dependen


funcional total (FT)
nu exist nicio submulime proprie X X a. . X Y
(2) O dependen funcional X Y se numete dependen
funcional partiala
dac exist o submulime proprie X X a. . X Y

6
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Definitii (multime de axiome)


Fie D o multime de dependente functionale si D* inchiderea sa:
(1) O mulime de axiome se numeste complet
este suficienta pentru a obtine, plecand de la D, toate
dependenele din D*
(2) O mulime de axiome se numeste nchis
orice dependenta dedusa pe baza ei, plecand de la D , face
parte D*.

7
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Axiomele lui Armstrong


Fie X, Y, Z, W mulimi de atribute ale unei entitati:
Ax. 1 reflexivitate:
XX
Ax. 2 creterea determinantului:
dac X Y i X Z, atunci Z Y
dac X Y i W Z, atunci X Z Y W
dac X Y atunci X Z Y Z
Ax. 3 tranzitivitate:
dac X Y i Y Z, atunci X Z.

8
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Axiomele lui Armstrong (cont.)


Teorema (J.D. Ullman)
Axiomele Ax.1 Ax.3 reprezint o mulime nchis i complet de
axiome
Corolar
nchiderea unei multimi de dependente D consta din mulimea
dependenelor deduse din D prin aplicarea axiomelor lui
Armstrong.
Observatie
(1) Fie D o dependena funcionala totala
axiomele lui Armstrong se reduc la o axiom unic, numita
pseudo-tranzitivitatea:
dac X Y i W Y Z, atunci W X Z
9
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Reguli de inferenta pentru dependente funct.


Fie X, Y, Z, W mulimi de atribute ale unei entitati:
Curs 10 : Normalizarea relaiilor

Reg. 1 descompunere:
dac X Y si Z Y, atunci X Z
Reg. 2 reuniune:
dac X Y si X Z , atunci X YZ
Reg. 3 semitranzitivitatea:
dac X Y si YZ W , atunci XZ W

10
Baze de date Curs 10 : Normalizarea relatiilor

1. Anomalii in bazele de date


2. Dependente functionale
3. Forme normale
4. Denormalizarea

11
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Istoric
Aceast tehnic a fost iniiat i fundamentata matematic tot
de E.F. Codd (CODD,E.F.: "A Relational Model of Data for Large Shared
Databanks", Comm. ACM, vol. 13 (1970), no. 6, p. 377-387)
Codd a propus iniial trei seturi de reguli pe care o relaie
trebuie s le satisfac pentru a fi coerent i pe care le-a denumit
prima (FN1), a doua (FN2), respectiv a treia (FN3) form normal
(dnd astfel i numele tehnicii nsi)
Ulterior (1974), Raymond Boyce a introdus, mpreun cu E.F.
Codd, o definiie mai tare a FN3 denumit forma normal
Boyce-Codd (FNBC).

12
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Observatie
Curs 10 : Normalizarea relaiilor

Cele 5 forme normale au un caracter progresiv:


ex.: o relaie aflat n FN3 este automat n FN2 i deci i n FN1;
Din punctul de vedere al modelului relaional, singura form
normal obligatorie pentru toate relaiile din BD este FN1;
dac ns dorim s evitm toate anomaliile de actualizare
(analizate mai sus) este necesar s continum procesul de
normalizare cel puin pn la FN3;
Din punct de vedere al performanelor n exploatare, este
preferabil ca BD s fie lsat intr-o form normal inferioar (se
execut procesul invers normalizrii: denormalizarea BD).

13
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Observatie
Curs 10 : Normalizarea relaiilor

Este justificat ntrebarea: cte forme normale mai ateapt s


fie descoperite?
Ronald FAGIN: "A Normal Form for Relational Databases That is
Based on Domains and Keys", n ACM Transactions on
Database Systems 6, 3 (Sept.1981), pp.387-415)
In acest articol:
este introdus o form normal care se bazeaz pe
noiunile de domeniu de valori i cheie primar (FN/DK) i
se demonstreaz c o relaie este n FN/DK
nu prezint anomalii la modificarea datelor
Aceast teorem arat c nu mai este nevoie de nicio alt
form normal (cel puin din punctul de vedere al
eliminrii anomaliilor la modificarea datelor).
14
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Normalizarea BD
un proces de ameliorare progresiv a schemei conceptuale,
prin care un set de relaii care ncalc anumite principii de
proiectare este nlocuit cu un alt set de relaii adecvat, coerent i
bine structurat;
acest proces trebuie s satisfac urmtoarele cerine:
s garanteze conservarea datelor
s garanteze conservarea dependenelor dintre date,
s reprezinte o descompunere minimal a relaiilor iniiale

15
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Normalizarea BD (cont.)
exista 2 metode de modelare a BD fara anomalii si fara
pierdere de informatii:
(1) top-down
(2) bottom-up

16
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Normalizarea BD (cont.):
Definitie formala (metoda top-down)
= procesul prin care relatia universala care modeleaza o
situatie reala si respecta restrictiile contextuale incalcand
astfel regulile de integritate este inlocuita cu un set de reguli
din ce in ce mai adecvate, coerente si bine structurate;
se realizeaz plecnd de la o relaie universal ce conine
toate atributele sistemului de modelat;
se desfoar n mai muli pai;
fiecare pas (cu excepia aducerii BD la FN1) presupune:
identificarea dependenelor funcionale,
verificarea ndeplinirii unor anumite proprieti denumite
generic forme normale.
17
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Normalizarea BD (cont.):
Curs 10 : Normalizarea relaiilor

Orice form normal se obine aplicnd o schem de


descompunere
Exist dou tipuri de descompuneri:
I. Descompuneri care conserv dependenele
relatia R este descompusa ntr-o mulime de proiecii R1, R2, ..., Rk
a.. dependenele relatiei initiale R sunt echivalente (au nchideri
pseudo-tranzitive identice) cu reuniunea dependenelor noilor relatii
R1, R2, ..., Rk
II. Descompuneri fr pierderi de informaie (L-join)
relatia R este descompusa ntr-o mulime de proiecii R1, R2, ..., Rk
a.. pentru orice realizare a lui R este adevrat relaia:
R = JOIN(B1 (R), B2 (R), ...,Bj (R))

18
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Normalizarea BD (cont.):
Curs 10 : Normalizarea relaiilor

Regula Casey-Delobel
descrie conditia ca o descompunere utilizat n procesul
normalizrii sa se efectueze fr pierdere de informaie:
dac este satisfcut o anumit dependen funcional,
atunci exist o descompunere fr pierderi;
Fie: R(A) o schem relaional,
, , o partiie a multimii de atribute A a.i.
determin funcional pe iar contine restul
atributelor in A;
atunci:
R(A) = JOIN((R), (R))
unde reprezint mulimea atributelor care intervin n
dependenele funcionale,
reprezint reuniunea determinantului (atributul
comun al compunerii) cu restul atributelor lui A. 19
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 1 (FN1)


Curs 10 : Normalizarea relaiilor

O relaie R este n FN1 dac fiecrui atribut care o


compune i corespunde o valoare indivizibil (atomic).
n plus, o relatie nu trebuie s conin atribute sau grupuri de
atribute repetitive
Aceast form figureaz ca cerin minimal n majoritatea
sistemelor relaionale;
Algoritm AFN1
(aducerea unei relaii n FN1 prin eliminarea atributelor compuse i a celor repetitive)
1. se introduc n relaie, n locul atributelor compuse,
componentele acestora,
2. se plaseaz grupurile de atribute repetitive, fiecare n cte
o nou relaie,
3. se introduce n schema fiecrei noi relaii de la pasul 2
cheia primar a relaiei din care a fost extras atributul
repetitiv,
4. se stabilete cheia primar a fiecrei noi relaii create la
pasul 2,
aceasta este compus din cheia introdus la pasul 3,
precum i din atribute proprii ale acestor noi relaii. 20
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 2 (FN2)


Curs 10 : Normalizarea relaiilor

O relaie R este n FN2 ddac:


relaia R este n FN1
fiecare atribut care nu particip la cheia primar este
dependent de ntreaga cheie primar;
Se poate aplica regula Casey-Delobel:
fie relaia R(K1, K2, X, Y);
unde K1 i K2 definesc cheia primar
X i Y sunt mulimi de atribute astfel nct K1 X;
observam ca R nu este in FN2;
dar R poate fi nlocuita (fr pierdere de informaie) cu doua
proiecii:
R1(K1, K2, Y) i
R2(K1, X).
21
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 2 (FN2)


Curs 10 : Normalizarea relaiilor

Algoritm AFN2
(aducerea unei relaii n FN2 prin eliminarea dependenelor funcionale pariale
din cadrul unor relaii aflate n FN1)
1. pentru fiecare dependen funcional parial se creeaz
o nou relaie avnd schema format din determinantul i
determinatul acestei dependene
2. se elimin din cadrul relaiei iniiale atributele care
formeaz determinatul dependenei pariale
3. dac n relaia iniial exist mai multe dependene pariale
cu acelai determinant, pentru acestea se creeaz o
singur relaie cu schema format din determinant (luat o
singur dat) i din determinaii dependenelor considerate
4. se determin cheia primar a fiecrei noi relaii create;
aceasta va conine atributele din determinantul
dependenei funcionale pariale care au stat la baza
constituirii relaiei
5. dac noile relaii create conin dependene pariale, atunci
se face reia de la pasul 1, altfel STOP.
22
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


Curs 10 : Normalizarea relaiilor

O relaie R este n FN3 ddac:


relaia R este n FN2
fiecare atribut care nu particip la o cheia candidat este dependent
direct de cheia primar;
A doua condiie interzice utilizarea dependenelor funcionale tranzitive
n cadrul relaiei R
o relaie este n FN3 dac i numai dac fiecare atribut care nu este
cheie depinde de cheie, de ntreaga cheie i numai de cheie.
Se poate aplica regula Casey-Delobel:
fie relaia R(K, X1, X2, X3),
unde K este cheia primar a lui R si
atributul X2 depinde tranzitiv de K,
presupunem c K X1 X2.
dependena funcionala X1 X2 care arat c R nu este n FN3
se nlocuiete R (fr pierdere de informaie) prin dou proiecii
R1(K, X1, X3) i R2(X1, X2).
Dependena tranzitiv poate fi mai complex:
fie K1 o parte a cheii K,
tranzitivitatea poate fi de forma K Y X2 unde Y = {K1, X1}
23
in acest caz, R poate fi descompus n R1(K, X1, X3) i R2(K1, X1, X2).
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


Curs 10 : Normalizarea relaiilor

Observm c atributul care asigur tranzitivitatea, X1 , nu


este nici cheie primar n R nici mcar parte a cheii primare.
Tocmai din acest motiv, dependena X1 X2 nu este
dezirabil la nivelul R
Algoritm AFN3
(aducerea unei relaii FN2 n FN3 prin eliminarea dependenelor funcionale
tranzitive)
1. pentru fiecare dependen funcional tranzitiv se transfer
atributele implicate n dependena tranzitiv ntr-o nou
relaie
2. se determin cheia primar a fiecrei noi relaii create la
pasul 1
3. se introduc n relaia iniial, n locul atributelor transferate,
cheile primare determinate la pasul 2
4. se reanalizeaz relaia iniial; dac n cadrul ei exist noi
dependene tranzitive, atunci se reia de la pasul 1, altfel
STOP. 24
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


FN3 poate fi obinut i cu ajutorul unei scheme de sintez.
Informal:
algoritmul de sintez construiete o acoperire minimal F a
dependenelor funcionale totale:
se elimin atributele i dependenele funcionale redundante.
mulimea F este partiionat n grupuri Fi, astfel nct:
n fiecare grup Fi se afl dependene funcionale care au
acelai membru stng i
nu exist dou grupuri avnd acelai membru stng
fiecare grup Fi produce o schem FN3
Algoritmul realizeaz o descompunere ce conserv
dependenele.
25
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


Curs 10 : Normalizarea relaiilor

Algoritm SNF3
(aducerea unei relaii n FN3 prin utilizarea unei scheme de sintez)
1. se determin F, o acoperire minimal a lui D (mulimea
dependenelor funcionale)
2. se descompune mulimea F n grupuri notate Fi, astfel nct n
cadrul fiecrui grup s existe dependene funcionale avnd
aceeai parte stng
3. se determin perechile de chei echivalente (X, Y) n raport cu F
4. pentru fiecare pereche de chei echivalente:
se identific grupurile Fi i Fj care conin dependenele
funcionale cu partea stng X i respectiv Y
se formeaz un nou grup de dependene Fij, care va conine
dependenele funcionale avnd membrul stng (X, Y)
se elimin grupurile Fi i Fj, iar locul lor va fi luat de grupul Fi j
5. se determin o acoperire minimal a lui F, care va include toate
dependenele X Y,
unde X i Y sunt chei echivalente (celelalte dependene sunt
redundante)
6. se construiesc relaii FN3 (cte o relaie pentru fiecare grup de 26
dependene funcionale).
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


Algoritm EAR
(elimin atributele redundante din determinantul dependenelor funcionale)
Pentru fiecare dependen funcional din E i pentru fiecare
atribut din partea stng a unei dependene funcionale:
1. se elimin atributul considerat
2. se calculeaz nchiderea prii stngi reduse
3. daca nchiderea conine toate atributele din determinantul
dependenei, atunci atributul eliminat la pasul 1 este
redundant i rmne eliminat;
altfel: atributul nu este redundant i se reintroduce n partea
stng a dependenei funcionale.

27
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 3 (FN3)


Curs 10 : Normalizarea relaiilor

Algoritm EDF
(elimin dependenele funcionale redundante din E)
Pentru fiecare dependen funcional X Y din E:
1. se elimin dependena din E
2. se calculeaz nchiderea X , n raport cu mulimea redus
de dependene
3. dac Y este inclus n X , atunci dependena X Y este
redundant i rmne eliminat. n caz contrar, se
reintroduce n E;
Algoritm AIDF
(determin nchiderea lui A)
1. se caut dac exist n E dependene X Y pentru care
determinantul X este o submulime a lui A, iar determinatul Y
nu este inclus n A
2. pentru fiecare astfel de dependen funcional se adaug
mulimii A atributele care constituie determinatul
dependenei
3. dac nu mai exist dependene funcionale de tipul de la
pasul 1, atunci A = A. 28
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Condiie de verificat Soluie (normalizare)


Curs 10 : Normalizarea relaiilor

Fiecare atribut neatomic se transform intr-o


Toate atributele relaiei trebuie s nou relaie
FN1
fie atomice Se stabilesc relaiile necesare ntre noile
relaii i relaia iniial modificat
Relaia este n FN1; Fiecare parte a cheii primare, mpreun cu
Cheia sa primar const din mai atributele care depind funcional complet de
multe atribute; ea formeaz o nou relaie;
FN2 Toate atributele care nu fac parte Se stabilesc relaiile necesare ntre noile
din cheia primar sunt complet relaii care au nlocuit-o pe cea iniial
dependente funcional de cheia
primar
Relaia este n FN2; Se pstreaz n relaia iniial numai cheia
Nici un atribut care nu face parte primar i atributele care depind funcional
dintr-o cheie candidat nu este de ea direct (inclusiv atributul "incriminat");
funcional dependent de un alt Se creeaz cte o nou relaie din fiecare
atribut care nu face nici el parte atribut care nu face parte din cheia primar
FN3
dintr-o cheie candidat (nici un mpreun cu toate atributele (care nu fac nici
atribut care nu face parte dintr-o ele parte din cheia primar a relaiei iniiale)
cheie candidat nu este funcional care sunt dependente funcional de acesta;
dependent de cheia primar prin Se stabilesc relaiile necesare ntre noile
tranzitivitate) relaii i relaia iniial modificat

Recapitulare a primelor trei etape din procesul de normalizare29


1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala Boyce-Codd (BCNF)


BNCF elimina toate anomaliile generate de dependentele
functionale.
Intuitiv, o relaie R este n forma normal Boyce-Codd
fiecare determinant este o cheie candidat
Formal, o relaie R este n forma normal Boyce-Codd
pentru orice dependen funcional total X A, X
este o cheie a lui R.

30
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala Boyce-Codd (BCNF)


Curs 10 : Normalizarea relaiilor

Algoritm ABCNF
(aducerea unei relaii FN3 n BCNF prin eliminarea dependenelor funcionale ai
cror determinani nu sunt chei candidat)
1. dac relaia conine unul sau cel mult dou atribute, atunci
nu pot exista dependene noncheie i deci relaia este n
BCNF
2. dac relaia conine mai mult de dou atribute, se verifica
dac ea conine dependene noncheie;
dac nu exist astfel de dependene, relaia este n BCNF
3. pentru fiecare dependen noncheie X Y se creeaz
dou relaii
una dintre ele va avea schema format din atributele {X, Y},
cealalt va avea schema format din toate atributele relaiei
iniiale, mai puin Y
4. se reiau paii 1, 2, 3 pentru relaiile obinute la pasul 3.
31
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala Boyce-Codd (BCNF)


Curs 10 : Normalizarea relaiilor

Se pot aduce n BCNF i relaii aflate n FN1 sau FN2


pt ca dependenele funcionale pariale i cele tranzitive sunt tot
dependene noncheie, adic dependene ai cror determinani nu
sunt chei candidat
Fie R este o relaie ce conine multimea de atribute A:
Algoritm TFBCNF
(aducerea unei relaii R din FN1 n BCNF)
1. dac relaia conine cel mult dou atribute, atunci R este n BCNF
i algoritmul s-a terminat
2. dac relaia conine mai mult de dou atribute se consider toate
perechile (X, Y) de atribute distincte din A
3. se determin A1+, nchiderea mulimii de atribute A1 = A {X, Y}.
4. dac pentru orice pereche (X, Y), X A1+ atunci relaia R este n
BCNF i algoritmul s-a terminat
5. altfel: (pentru cel puin o pereche (X, Y), X A1+), relaia R nu este
n BCNF
6. se reduce progresiv schema relaiei i se reia algoritmul,
exploatnd relaia redus.
Orice relaie obinut prin reducerea lui R i care este n BCNF se
consider ca fcnd parte din descompunerea lui R n procesul
32
aducerii sale n BCNF.
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala Boyce-Codd (BCNF)


Curs 10 : Normalizarea relaiilor

Definitiile din
ZANIOLO, CARLO: A New Normal Form for the Design of Relational
Schemata, ACM Transactions on Database Systems, vol.7 (1982),
nr.3, p. 489-499:
evidentiaza diferenta dintre FN3 i BCNF:
Fie R o relaie,
X o submulime a atributelor lui R,
A un atribut singular:
R se afl n FN3
pentru fiecare dependen funcional X A din R este
adevrat cel puin una dintre urmtoarele afirmaii:
1. X conine pe A (a.. dependena funcional este banal);
2. X este o supercheie;
3. A este coninut ntr-o cheie candidat a lui R.
R se afla in BCNF daca, in definiia anterioar, se elimina
posibilitatea (3)
(=> BCNF este mai puternic dect FN3). 33
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 4 (FN4)


Se bazeaza pe un alt tip de dependenta intre valorile
atributelor din relatii: dependenta multivaloare;
Acest tip de dependenta apare in general in relatiile in
care:
mai mult de un atribut prezinta valori multiple si
intre acele atribute exista relatii de tip 1:m INDEPENDENTE,
impuse de context.

34
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 4 (FN4)


Dependenta multivaloare = (MVD = multi-valued
dependency)
= o dependenta intre minimum 3 atribute apartinand aceleiasi
relatii R cu proprietatea ca:
(i) pentru fiecare valoare a lui A exista un set de valori ale lui B si
un set de valori ale lui C
(ii) aceste seturi de valori sunt independente unul de celalalt.
Notatie
(A B, A C)
Exemplu
(nrG tipAutoReparat, nrG Client).

35
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 4 (FN4)


Curs 10 : Normalizarea relaiilor

Definitii
O dependenta multivaloare A B dintr-o relatie R se numeste
triviala
(a) B A sau
(b) A B = R;
O dependenta multivaloare A B dintr-o relatie R se numeste
netriviala
niciuna dintre cele 2 conditii de mai sus nu are loc;

36
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 4 (FN4)


Curs 10 : Normalizarea relaiilor

Observatie
Fie W, V, X, Y i Z submulimi de atribute ale unei scheme
relaionale R.
T multime de multidependene =>
o mulime complet de axiome (Ax1Ax8) care permit
obinerea tuturor multidependenelor ce se pot deduce din
mulimea T:
Ax1. Dac Y X, atunci X Y
Ax2. Dac X Y, atunci X Z Y Z
Ax3. Dac X Y i Y Z, atunci X Z
Ax4. Dac X Y, atunci X R {X Y}
Ax5. Dac X Y i V W, atunci W X V Y
Ax6. Dac X Y i Y Z, atunci X (Z Y)
Ax7. Dac X Y, atunci X Y
Ax8. Dac X Y, Z W, W Y i Y Z = , atunci X W. 37
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 4 (FN4)


Curs 10 : Normalizarea relaiilor

O relatie R este in FN4 ddaca


relatia R este in BCNF
nu contine nicio MVD netriviala (i.e.: orice dependen
multivaloare este o dependen funcional);
Observatii
1. FN4 este mai tare dacat BCNF pt ca elimina complet
redundanta in date
2. Descompunerea unei relatii in 2 relatii se bucura de
prorietatea de compunere fara pierdere de informatie;
Algoritm AFN4
(aducerea unei relaii BCNF la FN4 prin eliminarea MVD)
1. Se identifica toate MVD netriviale care apar in relatie,
2. pentru fiecare MVD netriviala: A B se creaza o relatie
separata care sa contina atributul/atributele B i o copie a
38
atributului/atributelor-determinant A.
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Forma normala 5 (FN5)


Curs 10 : Normalizarea relaiilor

Se bazeaza pe un alt tip de dependenta intre valorile


atributelor din relatii: dependenta la descompunerea fara
pierdere de informatie (la descompunerea nonaditiva)
Acest tip de dependenta apare atunci cand o relatie trebuie
descompusa in mai mult de 2 relatii (ca in cazul FN4) si este
rezolvata prin FN5
Dependenta la descompunerea fara pierdere de
informatie (dependenta la descompunerea nonaditiva) =
(Lossless-join dependency)
= o proprietate a operatiei de descompunere care impiedica
aparitia de linii nelegitime atunci cand are loc o operatie de
compunere naturala a mai multor relatii
Notatie
*(R1, R2, , Rk)
39
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 5 (FN5)


O relatie R este in FN5 ddaca
relatia R nu prezinta nicio dependenta la compunere
Observatii
1. FN5 se mai numeste si forma normala proiectie-
compunere (PJNF = Project-Join Normal Form)
2. ntre mulimile de atribute X, Y i Z din cadrul relaiei R
exist o dependenta la compunere dac exist
multidependene ntre fiecare dintre perechile de mulimi
(X, Y), (Y, Z) i (X, Z).
=> o dependenta la compunere poate exista numai n
cadrul acelor relaii FN4 care prezint chei compuse i
atribute comune n chei.

40
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Forma normala 5 (FN5)


Algoritm AFN5
(aducerea unei relaii FN4 la FN5 prin eliminarea dependentelor la compunere)
1. Se cauta dependentele la compunere innd seama de
observaia anterioar. Dac nu exist dependente la
compunere, atunci relaia este n FN5 si STOP.
2. Daca exista dependente la compunere , atunci se
descompune relaia n scopul obinerii FN5. Considernd c
schema relaiei conine mulimile de atribute X, Y, Z i c
ntre fiecare pereche (X, Y), (Y, Z), (X, Z) exist
multidependene, relaia se rupe prin proiecie n trei relaii:
R1(X, Y), R2(Y, Z) i R3(X, Z).

41
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Concluzii
Normalizarea
= o tehnica de obtinere a unei multimi de relatii inzestrate cu
anumite proprietati, in conformitate cu constrangerile specifice,
impuse de situatia concreta modelata prin baza de date,
= o metoda formala prin care se pot identifica relatiile cu ajutorul
campurilor de cheie i se pot descoperi diversele tipuri de
dependente care exista intre atributele lor,
= un proces care transforma o relatie trecand-o dintr-o FN in alta;
la fiecare pas, se incearca eliminarea acelor caracteristici ale
relatiei care o fac vulnerabila la anomaliile de actualizare
trecerea intr-o FN superioara face a relatia mai invulnerabila
dar i mai restrictiva ca format:

42
FN3

Se elimina anomaliile
Se elimina ramase din cauza
dependentelor functionale
Curs 10 : Normalizarea relaiilor

dependentele tranzitive

FN2 BCNF

Se elimina Se elimina dependentele


dependentele partiale multivaloare netriviale

FN1 FN4

Se aduc toate atributele Se elimina dependentele


la forma atomica la compunere

Relatie nenormalizata FN5


43
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Concluzii (cont.):
FN1 FN2
elimin redundanele datorate dependenei netotale a
atributelor care nu particip la o cheie, fa de cheile lui R
se suprim dependenele funcionale care nu sunt totale;
FN2 FN3
elimin redundanele datorate dependenei tranzitive
se suprim dependenele funcionale tranzitive;
se conserva si datele si dependentele;
FN3 BCNF
elimin redundanele datorate dependenei funcionale
se suprim dependenele n care partea stng nu este o
supercheie
se conserva doar datele.

44
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Concluzii (cont.):
Curs 10 : Normalizarea relaiilor

BCNF FN4
elimin redundanele datorate multidependenei
se suprim toate multidependenele care nu sunt i
dependene funcionale
se conserva doar datele;
FN4 FN5
elimin redundanele datorate dependenei la compunere
se suprim toate dependenele la compunere care nu sunt
implicate de o cheie;
BCNF, FN4 i FN5
toate FN se bazeaza pe regula orice determinant este o
cheie,
pentru fiecare FN determinantul se definete in raport cu
un alt tip de dependenta:
dependena funcional, (BNCF)
multidependena (FN4)
dependena la compunere (FN5).
45
Baze de date Curs 10 : Normalizarea relatiilor

1. Anomalii in bazele de date


2. Dependente functionale
3. Forme normale
4. Denormalizarea

46
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Deormalizarea
Curs 10 : Normalizarea relaiilor

Fie R = {R1, R2, ..., Rp } o mulime de relaii


Denormalizarea R nseamn nlocuirea R cu
R = JOIN(R1, R2, ..., Rp),
astfel nct 1ip: proiecia lui R dup atributele lui Ri va
produce din nou relaia Ri
Observatii
Denormalizare rafinarea schemei relaionale a.. gradul de
normalizare a unei relaii modificate s fie mai mic dect
gradul de normalizare a cel puin uneia dintre relaiile iniiale;
Obiectivul denormalizarii
mrirea redundanei (relaia R se afl la un nivel de normalizare
mai sczut dect relaiile R1, R2, ..., Rp compoente)
reducerea numrului de join-uri care trebuie efectuate pentru
rezolvarea unei interogri, prin realizarea unora dintre
acestea n avans (ca parte din proiectarea bazei de date).
47
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Problemele denormalizarii
1. Reaparitia anomaliilor pe care diversele forme normale
reusisera sa le elimine;
2. Urmari negative ale denormalizarii asupra fisierelor
stocate: un design fizic poate fi bun pentru anumite aplicaii,
dar prost pentru altele(in tabelul obtinut prin denormalizare - join
liniile par adiacente dar in memorie inregistrarile nu sunt! -->
interogarile care vizeaza inregistrari numai in unul dintre tabelele
participante la join vor fi mai lente);
3. Lipsa unui criteriu formal pt stabilirea nivelului la care
denormalizarea trebuie sa se opreasca;
4. Lipsa unor reguli formale pentru stabilirea situaiilor n care
este indicat denormalizarea relaiilor.

48
1. Anomalii in bazele de date 3. Forme normale
Curs 10 : Normalizarea relaiilor 2. Dependente functionale 4. Denormalizarea

Cazuri in care denormalizarea este indicata:


Normalizarea completa a BD scaderea semnificativa a
performantelor BD
3 exemple de situatii in care trebuie considerata posibilitatea
reducerii gradului de normalizare in favoarea cresterii
performantelor:
A. Actualizari vs. interogari
Dac o relaie are:
o rat de reactualizare sczut
o rat de interogare foarte ridicat
atunci denormalizarea este o solutie.

49
1. Anomalii in bazele de date 3. Forme normale
2. Dependente functionale 4. Denormalizarea

Cazuri in care denormalizarea este indicata:


Curs 10 : Normalizarea relaiilor

(cont.)
B. Calcularea vs. memorarea datelor derivate
Din perspectiva proiectrii fizice a BD se poate opta intre:
stocarea in BD a atributelor derivate
calcularea atributelor derivate de fiecare dat cnd este
necesar
Criterii:
costul memorarii vs costul recalcularii
costul meninereii concordanei dintre datele calculate si
datele operatioanle din care sunt derivate,
C. Pro sau contra redundantei
Din perspectiva proiectrii fizice a BD se poate opta intre:
eliminarea completa a redundantei (aducerea la FN5)
dublarea unor atribute (pentru simplificarea join-urilor)
dupa evaluarea costurilor /pericolelor implicate de necesitatea
actualizarii mai multor copii ale aceleasi informatii.
50
Baze de date Curs 10 : Normalizarea relatiilor

1. Anomalii in bazele de date


2. Dependente functionale
3. Forme normale
4. Denormalizarea

51