Documente Academic
Documente Profesional
Documente Cultură
normale. Normalizarea BD
Concepte introductive
Proiectarea schemelor de relatii – proiectarea conceptuala a BD
Problema de proiectare :
» alegerea setului de scheme de relatii prin care se
modeleaza optim entitatile
Informatie redundanta
Dificultati in reprezentarea anumitor informatii
Dificultati in verificarea constrangerilor de integritate
Observatii:
daca , atunci pentru orice subset al lui avem
daca si este atribut simplu atunci este dependent
functional total de
daca este dependent functional total fata de , atunci avem
pentru orice atribut compus ce contine pe
Dependente functionale (2)
(nume produs) -> pret fiecare furnizor are un pret propriu /produs
Dependente functionale
Observatii:
1.pentru aceeasi schema de relatie putem avea seturi diferite de
dependente, functie de adoptarea diferitelor ipoteze ce refera semnificatia
atribuita componentelor relatiei.
Exemplu : R = (A, B, C, G, H, I)
F = { A B, A C ,CG H ,CG I, B H}
DF din F+ :
A H (tranzitivitate A B si B H)
AG I ( augmentare AG CG tranzitivitate CG I
CG HI uniune CG H si CG I
Ex.
Telefoane ( judet, oras, prefix)
Exista dependentele : (judet ,oras)- >prefix, prefix->judet
lipsa redundantei
R = (A, B, C)
dependentele functionale DF = {A B, B C)
Poate fi descompus in mai multe moduri
Observatie :NORMALIZAREA
poate afecta NEGATIV eficienta cu care sunt rezolvate interogarile
(bazele de date necesita cuplare)
este utila pentru operatii frecvente de actualizare, stegere, adaugare
si mai putin in sisteme ce presupun INTEROGARI complexe
Prima forma normala
Un domeniu de atribute este ATOMIC , daca elementele sale sunt
unitati indivizibile (ex nonatomice – atribute set, compozite…)
valorile nonatomice :
complica stocarea datelor
incurajeaza redundanta datelor
interpretari greoaie a valorilor nonatomice in programele de
aplicatie
Atomicitatea
nu este o proprietate INTRINSECA a elementelor domeniului
refera modul in care elementele domeniului sunt utilizate
A doua forma normala
FN2 - rezolva probleme determinate de DF intre atribute prime si neprime
pentru relatii cu chei compuse
Trecerea unei relatii din FN1 -> FN2 impune eliminarea dependentelor
functionale partiale ,ale atributelor neprime fata de oricare cheie a relatiei
DF partiala atributelor :
nume_prof - > functie si resepectiv salar , respectiv fata de cheia
(nume_prof,nume_stud)
determina anomalii :
de adaugare – nu se poate adauga cadru didactic cat timp nu acorda o nota
de stergere - daca se sterge tupla unei singure note acordate se pierd info profesor
de actualizare - functia-salariul = redondante
Observatii:
un atribut neprim poate depinde functional doar de cheile din
relatie (deoarece acesta nu poate fi dependent de un atribut prim
daca nu este cheie sau nu contine o cheie)
NF ( nume_prof, functie)
FS( functie, salar)
+Note (nume_prof, nume_stud, nota)
Concluzii :
1. In FN-BC singurele dependente functionale permise sunt cele in care o
cheie determina un alt atribut.
2. Nici un atribut neprim nu poate fi dependent functional de un alt
atribut daca nu este cheie.
O relatie in BC este si in FN3 si in FN2.. FN1
BCNF- concluzii
Pentru o relatie data , nu exista intotdeauna o descompunere in forma BC
Observatie :
Concluzii
decompunerea unei relatii in forma BC se poate realiza in anumite
situatii doar cu pierderea anumitor dependente functionale
uneori forma BC este prea restrictiva pentru a fi aplicata in procesul
de normalizare => se poate folosi FN3 cu conservarea
dependentelor functionale si eliminarea suficient de buna a
anomaliilor
Cateva concluzii ..
Daca diagrama E-R e conceputa atent, cu identificarea corecta a
entitatilor, tabelele generate (schemele) nu necesita normalizare
DF permit - identificarea cheilor candidate minimale
Obiectivele normalizarii :
Relatia initiala
FN2
Client (Client_nr, Cnume)
Def : O relatie este in FN2, daca este in FN1 si orice atribut ce nu este
cheie primara este total dependent functional de cheia primara
Client (client_nr, Cnume)
Inchiriere (client_nr, proprietate_nr, Datainc, Datasf)
Proprietar (proprietate_nr, Pdresa, inchiriere, proprietar_nr,Proprietar_nume)
FN3
Client (client_nr, Cnume) este in FN3
Inchiriere (client_nr, proprietate_nr , Datainc, Datasf) este in FN3
Proprietar (proprietate_nr, Pdresa, inchiriere, proprietar_nr, Proprietar_nume)
dependente functionale
DF1: (Client_nr, interviu_d ) -> interviu_t, staff_nr, nr_cam - cheie primara
DF2: (staff_nr, interviu_t, interviu_d) -> Client_nr - cheie candidata
DF3: (nr_cam , interviu_d, interviu_t) -> staff_nr, Client_nr - cheie candidata
DF4: (staff_nr, interviu_d ) -> nr_cam
DF1, DF2, DF3 chei candidate = nu creaza probleme, DF4 nu are dependente tranzitive
=>
4 FN
O relaţie R este în 4FN, dacă este în forma BC şi dacă nu
există dependenţe funcţionale multivaloare în aceeaşi relaţie
5 FN
O relaţie R este în 5FN, dacă este în 4FN şi tratează cazurile în
care există mai multe dependenţe funcţionale multivaloare
care sunt interlegate între ele
Procesul normalizarii
1. forma nenormalizata (UNF) – eliminarea grupurilor de atribute – atribute
atomice ->FN1
2. eliminarea dependentelor partiale (orice atribut ce nu este cheie primara
este total dependent functional de cheia primara) ->FN2
3. eliminarea dependentelor tranzitive intre atributele ce nu sunt cheie
primara si cheia primara ->FN3
4. eliminarea anomaliilor generate de DF(orice determinant este o cheie
candidata) ->FNBC
5. eliminarea dependentelor MV nontriviale ->FN4
6. eliminarea dependentelor join – FN5
7. similaritatea existenta intre FN-BC, FN4, FN5