Sunteți pe pagina 1din 45

BAZE DE DATE

3. NORMALIZAREA BAZELOR DE DATE RELAȚIONALE

lect. univ. Tîrșu Valentina


Conținut

1. Redundanța și normalizarea
2. Dependențe funcționale
3. Descompunerea unei relații
4. Forme normale
4.1. Prima forma normala (1NF – First Normal Form)
4.2. A doua forma normala (2NF – Second Normal Form)
4.3. A treia forma normala (3NF – Third Normal Form)
4.4. Forma normala Boyce-Codd (NFBC – Boyce-Codd Normal Form)
4.5. A patra forma normala (4NF – Fourth Normal Form)
4.6. A cincea forma normala (5NF – Fifth Normal Form)
5. Exemplu de descompunere secvențială
6. Aplicație propusă
Recapitulare

2
Obiective

 să determine noțiunile de redundanță și normalizare;


 să elaboreze BDR fără anomalii;
 să propună descompuneri de relații în conformitate cu dependențele funcțonale;
 să descrie formele normale utilizate la normalizarea BD;
 să aplice formele normale la proiectarea BD.

3
1. Redundanța și normalizarea

Numele complet Poziţie Disciplina


Andreev P. profesor Informatică, Baze de date, Statistica
Danu A. lector Informatică, Pascal, Fortran

• Nu fiecare entitate este o relație;


• Prin definiție: un tuplu trebuie să conțină exact o valoare de atribut.

4
1. Redundanța și normalizarea (continuare)
Numele complet Poziţie Disciplina
Andreev P. Profesor Informatică
Andreev P. Profesor Bază de date
Andreev P. Profesor Statistica
Danu A. asistent Informatică
Danu A. asistent Pascal
Danu A. asistent Fortran

• Entitatea este o relație;


• Redundanța: reprezintă stocarea în mod nejustificată a unei aceleiași
informatii de mai multe ori in baza de date.
• Anomalii: - Lichidare; - Adăugare; - Reactualizare.
• Reducerea redundanței unei relații se numește normalizare.
• Forme normale: 1NF, 2NF, 3NF, NFBC, 4NF, 5NF
5
1. Redundanța și normalizarea (continuare)

Dependente functionale pentru care determinantul nu este cheie a tabelului:


cod_client -> {nume_client, numar_telefon}
cod_comanda -> {data, cod_client, nume_client, nr_telefon}
cod_articol -> {nume_articol, cost_articol}
6
1. Redundanța și normalizarea (continuare)

7
1. Redundanța și normalizarea (continuare)

Datorită dependențelor prezente între atributele relației, pot aparea urmatoarele anomalii:
- redundanțe în date;
- anomalie la inserție;
- anomalie la ștergere;
- anomalie la modificare;
Anomaliile apar datorită dependențelor din baza de date, dependente pentru care
determinantul nu este cheie a tabelului.
Normalizarea: procesul reversibil de descompunere a unui tabel relațional în tabele cu o
structură mai simplă, proces care are ca scop evitarea redundanței datelor și evitarea
anomaliilor de actualizare.
Reversibil: descompunerea se face fără pierdere de informație.

8
2. Dependențe funcționale

Definiție: Fie R o relație, A și B sunt seturi de atribute aparținând lui R. Un set de


atribute B este numit funcțional dependent de A dacă, în toate tuplurile în care atributele
din A au același set de valori, iar atributele din B, la fel, au același set de valori.
 Dependențele funcționale sunt desemnate după cum urmează:
 r1: A -> B
 r2: A -> B, B -> A
 Partea stângă poartă numele de determinant,
Iar partea dreaptă a dependențe poartă numele
de determinat.

9
2. Dependențe funcționale (continuare)

Studenti
Cod Student Grupa Facultatea
4-16 David 436 E
4-17 Ciobanu 436 E
2-12 Ciobanu 221 Ș
3-15 Mironov 715 R
7-25 Marian 411 E
7-26 Staver 411 E

• Cod → {Student, Grupa, Facultatea} (1)

• Grupa → Facultatea (2)

10
2. Dependențe funcționale (continuare)

Exemplu:
 Fie relația R: {nume, l(nume), data_nasterii, zodia, varsta}.

nume l(nume) data_nasterii zodia Varsta


Ion 3 20/02/2001 Pești 19
Vasile 6 20/02/1992 Pești 28
Maria 5 01/08/2014 Leu 6
Cosmin 6 07/07/1978 Rac 42
Ana 3 04/08/2010 Leu 10

Sarcină: Identificați dependențile funcționale.

11
2. Dependențe funcționale (continuare)

Dependențile funcționale sunt:

nume -> l(nume)


data_nașterii -> vârsta
data_nașterii -> zodia
nume -> zodia

12
2. Dependențe funcționale (continuare)

Proprietăți ale dependenților funcționale:

FD1. (Reflexivitate) {A, B} → B.


Toate dependențele funcționale care rezultă din această proprietate sunt
numite și dependente triviale. Ele nu spun nimic în plus față de setul de
dependenșe inițial dar sunt dependente funcționale valide.

13
2. Dependențe funcționale (continuare)

Proprietăți ale dependenților funcționale:

FD2. (Extensie) Dacă A → B, atunci {A, C} → {B, C}


Această proprietate arată că se poate reuni o aceeași mulțime C în
stânga și în dreapta unei dependențe funcționale valide obținând de
asemenea o dependență funcțională validă.

14
2. Dependențe funcționale (continuare)

Proprietăți ale dependenților funcționale:

FD3. (Tranzitivitate) Dacă A → B și B → C, atunci A → C.

15
2. Dependențe funcționale (continuare)

Reguli:
Cod Student Grupa
4-16 David 436
 R1. Autodeterminarea: A → A.
4-17 Ciobanu 436
2-12 Ciobanu 221
3-15 Mironov 715
Dacă Student = David , 7-25 Marian 411
7-26 Staver 411
atunci Student = David .

16
2. Dependențe funcționale (continuare)

Reguli:
 R2. Descompunere: Dacă A → {B, C}, atunci A → B și A → C
Regula descompunerii ne permite să rescriem un set de dependențe
functionale astfel incât să obținem doar dependențe care au în partea
dreaptă doar un singur atribut.
Demonstrație:
Prin proprietatea reflexivității: {B, C} → C.
Prin condiție de descompunere: A → {B, C}
Combinăm expresiile de mai sus și aplicăm proprietatea de tranzitivitate.
Dacă A → {B, C} și {B, C} → C urmează A → C

17
2. Dependențe funcționale (continuare)

Reguli:
 R3. Reuniune. Dacă A → B și A → C, atunci A → {B, C}.

Demonstrație:
Conform proprietății extensie:
dacă A → B urmează {AC} → {B, C}.
Prin proprietatea tranzitivității:
dacă A → {A, C} și {A,C} → {B, C} urmează A → {B,C}

18
2. Dependențe funcționale (continuare)

Reguli:
 R4. Pseudotranzitivitatea.
Dacă A → B și C → D, atunci {A, C} → {B, D}.

Demonstrație:
Prin proprietate extensie: dacă A → B urmează {A, C} → {B, C}
și
dacă С → D urmează {B, C} → {B, D}.

Prin proprietatea tranzitivității:


dacă {A, C} → {B, C} și {B, C} → {B, D} urmează {A, C} → {B, D}.
19
3. Descompunerea unei relații (continuare)

 Descompunerea entității Studenți:


Cod Student Grupa
4-16 David 436
Cod Student Grupa Facultatea 4-17 Ciobanu 436
4-16 David 436 E 2-12 Ciobanu 221
4-17 Ciobanu 436 E 3-15 Mironov 715
2-12 Ciobanu 221 Ș 7-25 Marian 411
3-15 Mironov 715 R 7-26 Staver 411
7-25 Marian 411 E Descompunere
7-26 Staver 411 E Grupa Facultatea
436 E
221 Ș
Asocierea tabelelor prin atributul Grupa. 715 R
411 E
20
3. Descompunerea unei relații (continuare)

Cod Grupa Facultate


4-16 436 E
Cod Student Grupa Facultatea 4-17 436 E
4-16 David 436 E 2-12 221 Ș
4-17 Ciobanu 436 E 3-15 715 R
2-12 Ciobanu 221 Ș 7-25 411 E
3-15 Mironov 715 R 7-26 411 E
7-25 Marian 411 E Descompunere
7-26 Staver 411 E Student Grupa
David 436
Ciobanu 436
atributele Grupa și Student, Ciobanu 221
nu sunt în dependență funcțională Mironov 715
Marian 411
21
Staver 411
3. Descompunerea unei relații (continuare)

Cod Student Grupa Facultate


4-16 David 436 E
4-17 David 436 E
4-16 Ciobanu 436 E
4-17 Ciobanu 436 E
2-12 Ciobanu 221 Ș
3-15 Mironov 715 R
7-25 Marian 411 E
7-26 Marian 411 E
7-25 Staver 411 E
7-26 Staver 411 E

22
3. Descompunerea unei relații (continuare)

Teorema lui Heath. Fie R {A, B, C} o relație formată din


seturi de atribute A, B și C. Dacă R are o dependență
funcțională A → B, atunci R este egal cu conexiunea
proiecțiilor sale {A, B} și {A, C}

Prima dintre divizările efectuate mai sus ale entității Studenți


îndeplinește teorema lui Heath, prin urmare, conexiunea inversă a
generat tabelul inițial, iar a doua nu, iar informațiile au fost
distorsionate.
23
3. Descompunerea unei relații (continuare)

Pentru descompunere aplicăm teorema lui Heath


Cod Student Grupa Disciplina Evaluare
4-16 David 436 Matematica 7
4-16 David 436 Fizică 8
4-16 David 436 Informatică 8
4-17 Ciobanu 436 Filozofie 10
4-17 Ciobanu 436 Economie 10
7-25 Marian 715 Filozofie 8
7-25 Marian 715 Matematica 8

În relația prezentată, există o dependență funcțională


Cod → {Student, Grupa}.
Să introducem denumirile:
A = Cod, B = {Student, Grupa} și C = {Disciplina, Evaluare}.
Să împărțim relația originală în relațiile {A, B} și {A, C}
24
3. Descompunerea unei relații (continuare)

Cod Student Grupa Cod Disciplina Nota


4-16 Petrov 436
4-16 Matematica 7
4-17 Ivanov 436
4-16 Fizică 8
7-25 Smirnov 715
4-16 Informatică 8
4-17 Filozofie 10
4-17 Economie 10
Relația rezultată are dependențe funcționale 7-25 Filozofie 8
R1: Cod → {Student, Grupă} 7-25 Matematica 8
sau Cod → Stud și Cod → Grupa,
R2: {Cod, Disciplina} → Nota.

25
4. Forme normale

Normalizarea bazei de date


• Prima forma normala (1NF – First Normal Form)
• A doua forma normala (2NF – Second Normal Form)
• A treia forma normala (3NF – Third Normal Form)
• Forma normala Boyce-Codd (BCNF – Boyce-Codd Normal Form)
• A patra forma normala (4NF – Fourth Normal Form)
• A cincea formă normală (5NF – Fifth Normal Form)

26
4.1. Prima forma normala (1NF – First Normal Form)

Prima formă normală este o formă normală utilizată în normalizarea bazelor de date, care exclude
posibilitatea existenței grupurilor repetitive cerând ca fiecare câmp într-o bază de date să cuprindă
numai o valoare atomică. De asemenea, prima formă normală cere și ca fiecare înregistrare să fie
definită astfel încât să fie identificată în mod unic prin intermediul unei chei primare.

Incalcări ale primei forme normale.


(1) Mai multe valori semnificative in acelasi camp

27
4.1. Prima forma normala (1NF – First Normal Form) (continuare)
(2) Mai multe coloane reprezentand acelasi tip de date/fapte/obiecte

Interogările pentru a selecta înregistrări pe


baza componentei câmpurilor repetitive sunt
foarte dificile.
De exemplu, o interogare pentru a selecta
orașele care oferă același tip de Serviciu
public, să spunem “Poliție” (acesta putând să
apară în oricare din coloanele “Servicii
publice”) va genera căutări în 9 perechi
separate de coloane.

Pentru a asigura unicitatea unei înregistrări,


se va utiliza cheia primară. În exemplul dat,
prin introducerea unei coloane adiționale de
tip întreg, auto-incrementat, se asigură
unicitatea fiecarei inregistrari.

28
4.2. A doua forma normala (2NF – Second Normal Form)
A doua formă normală cere ca toate elementele unui tabel să fie dependente funcțional de
totalitatea cheii primare.
Dacă unul sau mai multe elemente sunt dependente funcțional numai de o parte a cheii primare,
atunci ele trebuie sa fie separate în tabele diferite.
Dacă tabelul are o cheie primară formată din numai un atribut, atunci ea este automat in 2NF (a 2-
a forma normala).
Exemplu : fie o tabelul “Comanda”: Cheia primară este o cheie compusă, formată din
CodComanda si ReperID.
ReperNume depinde numai de ReperID, nu și de
ComandaID.
Pentru a fi în 2NF, tabelul trebuie modificat în felul
urmator:

29
4.3. A treia forma normala (3NF – Third Normal Form)

 Toate atributele non-chei ale unei relații depind numai de chei candidate ale acelei
relații. Cod Student Grupa
Cod Student Grupa Facultatea
4-16 David 436
4-17 Ciobanu 436
4-16 David 436 E 2-12 Ciobanu 221
4-17 Ciobanu 436 E 3-15 Mironov 715
2-12 Ciobanu 221 Ș 7-25 Marian 411
3-15 Mironov 715 R 7-26 Staver 411
Descompunere
7-25 Marian 411 E
7-26 Staver 411 E
Grupa Facultatea
436 E
221 Ș
715 R
411 E

Atributul Facultate depinde atât de cheia potențială Cod, cât și de atributul Grupa.

30
4.3. 3NF – Third Normal Form (continuare)

 Dependența tranzitivă

Cod Student

Grupa
Cheie
potențială Funcționalitate
Facultate tranzitivă

O dependență funcțională, al cărui determinant nu conține atributele


incluse în cheia potențială, se numește tranzitivă.

31
4.3. 3NF – Third Normal Form (continuare)

 O relație este în 3NF dacă este în 2NF și nu conține dependențe tranzitive.

Zboruri
Zbor Avion Număr de locuri
2517 Tu134 72
3416 Tu154 145
2332 Tu134 72
3627 Tu134 72 Cheie
7755 Tu154 145 potențială

Avion Zbor

Funcționalitate
Număr
tranzitivă
locuri
Dependențele funcționale disponibile

32
4.3. 3NF – Third Normal Form (continuare)

 Relația rezultată este în 3NF.

Zbor Avion Număr


Avion
2517 Tu134 de locuri
3416 Tu154 Tu134 72
2332 Tu134 Tu154 145
3627 Tu134
7755 Tu154

33
4.4. Forma normala Boyce-Codd (NFBC – Boyce-Codd Normal Form)
Boyce-Codd e o versiune puțin mai restrictivă de forma normală 3.
În cazul unei forme normale 3, toate atributele depind de o cheie, o cheie în întregime și numai de o
cheie (așa să ne ajute Codd ).
Tabelul de mai jos este în 3NF pentru că toate atributele depind de o cheie și numai de o cheie; cu
toate acestea, există o redundanță, deoarece perechile (cod_sofer, cod_autobuz) (S1, A1) , (S2, A2)
apar de câte doua ori în tabel.

Se pot elimina astfel de redundanțe după cum urmează: din tabelul inițial se elimină coloana
“cod_autobuz”; se creează un nou tabel, cu atributele “cod_sofer” și “cod_autobuz”, cu doar 2
coloane, constituind împreuna cheia primară a noului tabel. Tabelele rezultate sunt in FNBC.

34
4.5. A patra forma normala (4NF – Fourth Normal Form)
În exemplul prezentat, fiecare restaurant livrează un tip de pizza într-o arie de distribuție. Pentru
că aici cheia primară este formată din (Restaurant, Tip de pizza, Aria de distributie) și nu există
atribute non-cheie, nu se încalcă nici o forma normala anterioara (1, 2, 3 ori B-C). Dar deoarece
varietățile de pizza oferite de un restaurant sunt independente de ariile de distribuție, există
redundanțe ân tabel: pentru fiecare Restaurant Jerry’s, se menționează de 3 ori că se ofera Tip de
pizza “Pufos”. De asemenea, dacă dorim să adaugăm, de ex. tipul “Subțire” pentru Tip de pizza, la
Jerry’s, va trebui sa adaugam 3 înregistrări, cate una pentru fiecare Arie de distributie.

Solutia este descompunerea in doua tabele, separand dependentele <Restaurant-Tip de pizza> si


<Restaurant- Aria de distributie>

35
4.5. 4NF – Fourth Normal Form (continuare)

Teorema lui Feigin. Fie R {A, B, C} o relație formată din seturi de atribute A, B și C.
Dacă R are o dependență multivaloare A ─ >> B, atunci R este egal cu conexiunea proiecțiilor
sale {A, B} și {A, C}

• Desemnarea dependenței cu mai multe valori: A ─ >> B


Dacă în relația R {A, B, C} există o dependență multivaloare A ─ >> B, atunci există și o dependență A ─ >> C,
atunci există o proprietate (A ─ >> B) <=> (A ─ >> C).

• O relație este în 4NF dacă este în FNBC și conține doar dependențe funcționale.

36
4.6. A cincea forma normala (5NF – Fifth Normal Form)
O succesiune de eliminare a dependențelor care duc la redundanță:
 Eliminarea dependențelor extinse (tranziția la 2NF).
 Eliminarea dependențelor tranzitive (trecerea la 3NF).
 Eliminarea factorilor determinanți care nu sunt chei potențiale (tranziția la NFBC).
 Eliminarea dependențelor multivaloare (tranziția la 4NF).

KMN
K M N
Există dependențe care nu pot fi eliminate prin descompunerea
relației în două proiecții, dar este necesar să se descompună k1 m1 n2
relația în trei sau mai multe relații. k1 m2 n1
k2 m1 n1
k1 m1 n1

37
4.6. 5NF – Fifth Normal Form (continuare)

 Se spune că un tabel se află în 5NF dacă


și numai dacă fiecare dependență de
unire non-trivială din acel tabel este
implicată de cheia candidat.

Conexiune după
atributul M Conexiune după
atributuele K și N M

38
5. Exemplu de descompunere secvențială
T1
Id C_n Fac Gr NP Dis Nota
1 3-1 F1 G1 A I 6
2 3-2 F1 G1 D I 8
3 3-3 F1 G2 I I 4
4 3-4 F1 G2 C I 10
1 3-1 F1 G1 A A 10
2 3-2 F1 G1 D A 8
3 3-3 F1 G2 I A 7
4 3-4 F1 G2 C A 8
5 3-5 F2 G3 P S 8
5 3-5 F2 G3 P T 10

Pentru T1, există două chei potențiale - {Id, Dis} și {C_n, Dis}. Dependențele {Id, Dis} → {Fac, Gr, NP}
și {K_n, Dis} → {Fac, Gr, NP} sunt reduse la dependențele {Id} → {Fac, Gr, NP} și {K_n} → {Fac, Gr,
NP}, prin urmare relația T1 este în 1NF.
39
5. Exemplu de descompunere secvențială (continuare

T3
T2
Id Fac Gr NP Id C_n Dis Nota
1 F1 G1 A 1 3-1 I 6
2 F1 G1 D 2 3-2 I 8
3 F1 G2 I 3 3-3 I 4
4 F1 G2 C 4 3-4 I 10
5 F2 G3 P 1 3-1 A 10
2 3-2 A 8
3 3-3 A 7
4 3-4 A 8
5 3-5 S 8
5 3-5 T 10

Relațiile T2 și T3 sunt în 2NF.

40
5. Exemplu de descompunere secvențială (continuare

T2
Id Fac Gr NP
1 F1 G1 A Relația T2 are o dependență tranzitivă Gr → Fac. Să
2 F1 G1 D împărțim T2 în relațiile T4 și T5, care vor fi în 3NF.
3 F1 G2 I
4 F1 G2 C
5 F2 G3 P

T4 T5
Id Gr NP Fac Gr
1 G1 A F1 G1
2 G1 D F2 G1
3 G2 I F3 G2
4 G2 C
5i G3 P
41
5. Exemplu de descompunere secvențială (continuare

 Relația T3 este în 2NF și nu are dependențe T3


tranzitive, adică este și în 3NF. Deoarece Id și Id C_n Dis Nota
C_n depind unul de celălalt și sunt incluse în 1 3-1 I 6
chei potențiale, atunci T3 poate fi transformat în 2 3-2 I 8
relațiile T6 și T7, care se află în FNBC. 3 3-3 I 4
4 3-4 I 10
T6 1 3-1 A 10
Not 2 3-2 A 8
C_n Dis
a 3 3-3 A 7
3-1 I 6 4 3-4 A 8
3-2 I 8 5 3-5 S 8
3-3 I 4 T7 5 3-5 T 10
3-4 I 10 Id C_n
3-1 A 10 1 3-1
3-2 A 8 2 3-2 Relațiile T4, T5, T6 și T7 sunt în FNBC și nu
3-3 A 7
3 3-3 conțin dependențe multivaloare, adică sunt în 4NF
3-4 A 8
4 3-4
3-5 S 8
3-5 T 10
5 3-5 42
5. Exemplu de descompunere secvențială (continuare

 Etapele transformării relației T1:

T1(1FN)

T2(2FN) T3(3FN)

T4(4FN) t5(4FN) T6(4FN) T7(4FN)

43
6. Aplicație propusă

 Fie relaţia Personal, ce conţine informaţii despre angajaţii unei fabrici de confecţii.

Marca Nume Prenume Sectia Profesie Salariu


23 Barbu Andreea 1 Inginer confecţii 7000
67 Barbu Codrin 2 Economist 7000
55 Constantinescu Adela 1 Designer 6000
31 Manoliu Cristian 2 Economist 6000
20 Parincea Maria 3 Specialist RU 6000
11 Semenov Alexandru 1 Inginer 5000

 Descrieți succesiunea de eliminare a dependențelor care duc la redundanță.

44
Recapitulare

1. Descrieți efectul de redundanță în propiectarea BD.


2. Definiți noțiunea de normalizare.
3. Prezentați exemple de dependențe funcționale.
4. Desrieți proprietățile dependenților funcționale.
5. Enumerați regulile dependenților funcționale.
6. Descrieți teorema lui Heath.
7. Prezentați exemple de relații în Prima forma normala (1NF – First Normal Form).
8. Prezentați exemple de relații în A doua forma normala (2NF – Second Normal Form)
9. Prezentați exemple de relații în A treia forma normala (3NF – Third Normal Form)
10. Prezentați exemple de relații în Forma normala Boyce-Codd (NFBC – Boyce-Codd Normal Form)
11. Prezentați exemple de relații în A patra forma normala (4NF – Fourth Normal Form)
12. Prezentați exemple de relații în A cincea forma normala (5NF – Fifth Normal Form)

45

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