Documente Academic
Documente Profesional
Documente Cultură
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
3
1. Redundanța și normalizarea
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
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
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
10
2. Dependențe funcționale (continuare)
Exemplu:
Fie relația R: {nume, l(nume), data_nasterii, zodia, varsta}.
11
2. Dependențe funcționale (continuare)
12
2. Dependențe funcționale (continuare)
13
2. Dependențe funcționale (continuare)
14
2. Dependențe funcționale (continuare)
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}.
22
3. Descompunerea unei relații (continuare)
25
4. Forme normale
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.
27
4.1. Prima forma normala (1NF – First Normal Form) (continuare)
(2) Mai multe coloane reprezentand acelasi tip de date/fapte/obiecte
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ă
31
4.3. 3NF – Third Normal Form (continuare)
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)
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.
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}
• 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)
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
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
T1(1FN)
T2(2FN) T3(3FN)
43
6. Aplicație propusă
Fie relaţia Personal, ce conţine informaţii despre angajaţii unei fabrici de confecţii.
44
Recapitulare
45