Dependente functionale si forme

normale. Normalizarea BD
Concepte introductive
Proiectarea schemelor de relatii – proiectarea conceptuala a BD
Descompunerea relatiilor bazat pe tehnici ce utilizeaza analiza
dependentelor functionale
Teoria dependentelor functionale = NORMALIZAREA
descompunere si forme normale
testarea mentinerii dependentelor initiale si a consistentei
datelor
Forme normale ale BD : FN1-3, forma normala BC, FN4-5
Elemente de proiectare conceptuala
Schemele relatiilor – elementele constitutive ale unei BD
Schema = nume, structura relatiei, atributele
(domeniile)
Problema de proiectare :
» alegerea setului de scheme de relatii prin care se
modeleaza optim entitatile
» gruparea optima a atributelor in scheme
» specificarea tipurilor de legaturi intre tipuri de
entitati
Proiectare conceptuala
Criteriu de proiectare a BD relationale : dependenta datelor :
intre atributele relatiilor exista legaturi logice (dependente)
ce influenteaza operatiile curente de exploatare a BD
Tipuri de dependente : functionale ,multivalorice, join
Anumite scheme de relatii introduc redundanta datelor
relativ la anumite atribute, ce pot conduce la anomalii : de
adaugare, stergere, de actualizare
Alegerea unui model conceptual corect pentru o BDR =
determinarea unei descompuneri capabile sa izoleze
dependentele si sa elimine anomaliile
Normalizarea
Proiectarea eronata a unui sistem de BD, poate conduce la :
 Informatie redundanta
 Dificultati in reprezentarea anumitor informatii
 Dificultati in verificarea constrangerilor de integritate
Obiective in proiectarea corecta a BD- gruparea in relatii a
atributelor a.i. sa existe
Reprezentare corecta a relatiilor dintre atribute
Minimizarea/evitarea redundantei datelor
Suport pentru verificarea constrangerilor de integritate
Normalizarea
Descompunerea relatiilor astfel incat acestea sa ajunga intr-o
forma relationala corecta , fara pierdere de informatie si cu
evitarea redundantei
Normalizarea – proces formal de identificare
1. a relatiilor intre scheme,
2. a dependentelor functionale intre atribute ,
prin realizarea de teste/restructurari asupra relatiilor pentru a le
trasforma intr-o forma optima
Teoria normalizarii (Codd 1972) si procesul de proiectare
conceptuala a BD are la baza dependentele
functionale,multivalorice,de cuplare
Anomalii in actualizare
Fie relatia
Furnizor ( nume, adresa , produs , pret)
problema : redondanta pe atributul adresa
anomalii in actualizarea datelor:
 anomalia de adaugare : nu se poate inregistra adresa atat
timp cat nu livreaza un produs
 anomalia de stergere : stergerea tuturor produselor
furnizorului determina pierderea adresei
 anomalia de actualizare : modificarea adresei impune
parcurgerea intregii relatii pentru a identifica si actualiza
aparitiile furnizorului
O structurare in 2 relatii , separa dependentele functionale intre
atribute
FA (nume, adresa)
FP (nume, produs , pret)
Fiecare tupla de relatie trebuie sa reprezinte o entitate sau o
instanta de relatie
 Atributele entitatilor diferite , nu trebuie sa apara in aceeasi
schema de relatie
 Se vor folosi atribute cu rol de chei straine pentru a referi
alte relatii
 Schema creata - trebuie sa fie explicabila relatie cu relatie
Proiectarea corecta schemei conceptuale – nu “sufera” de anomalii.
Relatiile vor fi proiectate cu cat mai putine valori null. Atributele cu
valori null frecvente ,vor fi plasate in relatii separate
Refacerea relatiei initiale (prin cuplare join) se va realiza cu
mentinerea dependentelor si a continutului de informatie, astfel
relatiile sunt proiectate incat sa nu genereze tuple “parazite “
(suplimentare , inexistente in relatia initiala)
Cateva reguli…
Dependente functionale (1)
Definitie: Fie R o schema de relatie , si doua atribute o _ R si | _ R,
dependenta functionala (FD) o ÷|
(atributul o determina functional atributul | sau | este dependent
functional de o ,unde o este numit determinant) , exista in relatia R
daca si numai daca:
oricarei valori a atributului o ii corespunde o singura valoare
a atributului |
Observatii:
daca o ÷| , atunci pentru orice subset ¸ al lui | avem o ÷¸
daca o ÷| si o este atribut simplu atunci | este dependent
functional total de o
daca | este dependent functional total fata de ¸, atunci avem
o ÷| pentru orice atribut compus ce contine pe ¸
Dependente functionale (2)
DF = generalizarea notiunii de cheie , reprezinta
constrangeri aplicate unui set de relatii valide
Dependenta functionala este totala , daca nu exista nici un subset
al atributului o astfel incat | ÷o , respectiv este partiala in caz
contrar.
Pornind de la un set de dependente functionale date, se pot
deduce logic o serie de alte dependente functionale
derivate din acestea.
» DF pot fi specificate complex prin asertiuni diverse ce
specifica constrangeri de tipul :
» I
o
(t
1
) = I
o
(t
2
) ¬I
|
(t
1
) = I
|
(t
2
) ( proiectii de tuple)
Deducerea sistematica a DF existente intr-o schema
de relatii presupune aplicarea unui set de reguli :
regulile lui Armstrong
Exemple dependente functionale
Dependente functionale triviale sunt dependente satisfacute de
toate instantele relatiei
Ex. Furnizor ( nume, adresa , produs , pret)
Nume -> adresa (DF totala)
(nume, produs) -> pret (DF totala)
(nume, adresa, produs) -> pret (DF partiala, adresa e atribut redondant)
(nume, produs, pret) -> adresa
(nume, produs) -> adresa
nume -> nume, pret-> pret…. (DF triviala , nu contine info suplimentara)
DF totale netriviale sunt :
nume -> adresa fiecare furnizor are o singura adresa
(nume produs) -> pret fiecare furnizor are un pret propriu /produs
Dependente functionale
Dependentele existente in schema de relatie :
reflecta entitatile modelate
refera constrangeri ce se constituie ca informatii suplimentare ce nu pot fi
ingobate direct in schema relatiei, ci se reflecta direct prin valorile
atributelor
Observatii:
1.pentru aceeasi schema de relatie putem avea seturi diferite de
dependente, functie de adoptarea diferitelor ipoteze ce refera semnificatia
atribuita componentelor relatiei.
2. in orice relatie , atributele sunt dependente functional de cheile relatiei –
(cheia identifica unic fiecare tupla a relatiei determinand in mod univoc
valorile tuplei).
Axiomele Armstrong
Fie o , | , ¸ submultimi ale multimii de atribute (A1, A2… An)
A1 : reflexivitatea: daca | _ o atunci o -> |
genereaza dependentele triviale
A2: multiplicare : daca o -> | atunci, o ¸ -> | ¸
A3: tranzitivitate : daca o -> | si | -> ¸ atunci o -> ¸
singura regula ce introduce noi dependente
Inchidere tranzitiva : multimea tuturor dependentelor ce se
pot obtine prin aplicarea repetata a setului de reguli
Armstrong asupra unui set initial de dependente functionale
este notata F+
Axiomele lui Armstrong ofera un set complet de reguli ce permit
deducerea tuturor DF si numai a acelor ce sunt logic deductibile
din setul initial de dependente F
Inchiderea tranzitiva
DF sunt utilizate pentru :
1. a testa relatiile , pentru a le verifica “ legalitatea”
2. specificarea constrangerilor asupra setului legal de relatii
Nota : o anumita instanta a unei scheme de relatii poate satisface o anumita DF
chiar daca aceasta nu este valida pentru toate instantele legale de relatii ale
schemei
Axiomele Armstrong – set complet si sigur de reguli de inferenta , ce
permit deducerea tuturor dependentelor functionale => Orice relatie ce
satisface setul dependentelor initiale va satisface si setul dependentelor
din inchiderea tranzitiva ( F+)
Exprimarea formala a inchiderii tranzitive bazat pe axiomele lui Armstrong
F
+
= F
repeat
for each DF f in F
+
aplica reguli de reflexivitate si multiplicare asupra setului F
adauga rezultatul DF la F
+
for each pereche f
1
si f
2
in F
+
if f
1
si f
2
pot fi combinate prin tranzitivitate
then adauga rezultatul DF la F
+
until F
+
nu mai comporta modificari
Alte axiome
Exista si reguli aditionale :
Uniunea : daca o ÷| , si o ÷¸ , atunci o ÷| ¸
Decompozitia : daca o ÷| ¸ , atunci o ÷| si o ÷¸
Pseudotranzitivitatea : daca o ÷| si ¸ | ÷o atunci o ¸ ÷o
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
opusul inchiderii tranzitive - setul minimal de DF ,echivalent lui F ce
nu contine redundante
Acoperire canonica
Setul dependentelor functionale poate avea dependente
functionale redundante , inferabile din altele
Ex.: A ÷C e redundant in: {A ÷B, B ÷C}
Parti ale unei dependente functionale pot fi redundante
{A ÷B, B ÷C, A ÷CD} poate fi simplificat la
{A ÷B, B ÷C, A ÷D}
{A ÷B, B ÷C, AC ÷D} devine
{A ÷B, B ÷C, A ÷D}
Acoperirea canonica F – SETUL MINIMAL de
dependente functionale echivalente lui F, fara
dependente redundante sau parti redundante in
dependente
Exemplu
R = (A, B, C)
F = {A ÷BC
B ÷C
A ÷B
AB ÷C}
Combina A ÷BC si A ÷B in A ÷BC (uniune)
Setul devine {A ÷BC, B ÷C, AB ÷C}
A este „extern‟ in AB ÷C
verifica daca rezultatul stergerii lui A din AB ÷C este implicat de alte
dependente Da : exista B ÷C
Setul devine {A ÷BC, B ÷C}
C este „extern‟ in relatia A ÷BC
Verifica daca A ÷C e implicata logic de A ÷B si exista alte dependente.
Da: bazat pe tranzitivitate A ÷B and B ÷C.
Acoperirea canonica: A ÷B
B ÷C
Recap
Axiome Armstrong :
if | _ o, then o ÷| (reflexivitate)
if o ÷|, then ¸ o ÷ ¸ | (multiplicare)
if o ÷| and | ÷¸, then o ÷ ¸ (tranzitivitate)
Alte reguli:
If o ÷| and o ÷¸, then o ÷| ¸ (uniune)
If o ÷| ¸, then o ÷| and o ÷¸ (decompozitie)
If o ÷| and ¸ | ÷o, then o ¸ ÷o (pseudotranzitivitate)
Inchidere tranzitiva : multimea tuturor dependentelor ce se pot obtine prin
aplicarea repetata a setului de reguli Armstrong asupra unui set initial de
dependente functionale este notata F+
Fie un set de atribute o. se defineste inchiderea setului o aferent relatiilor
functionale F (notat o
+
) , setul atributelor determinate functional de o din F
Acoperirea canonica F – SETUL MINIMAL de dependente functionale
echivalente lui F, fara dependente redundante sau parti redundante in
dependente
Descompunerea schemelor de relatii
Descompunerea relatiilor – solutia de eliminare a dependentelor
functionale din scheme , deci si a anomaliilor de manipulare a
datelor
Descompunerea unei scheme de relatie R ( A1, A2,…An) presupune ca
toate atributele schemei initiale (R) vor aparea in descompunerile (R
1
,
R
2
):
R = R
1
R
2
unde relatiile Ri vor fi proiectii nedisjuncte
ale relatiei corespunzatoare schemei initale
Scop : separarea semantica a continutului de
informatie din relatia initiala , astfel incat
schemele rezultate sa reprezinte un singur tip
de entitate , sau o legatura intre doua entitati
1. dintre aceste descompuneri , doar o parte au proprietatea ca din
relatiile corespunzatoare schemelor descompunerii se poate
reconstitui relatia initiala.
2. reconsituirea relatiei : refera atat continutul de informatie si
regasirea dependentelor functionale din relatia initiala
Descompunerea schemelor de relatii
Descompunerea are proprietatea de cuplare fara pierdere de
informatie daca pentru toate relatiile posibile r ale schemei R, este
adevarata relatia :
r = I
R1
(r) ⋈I
R2
(r)
unde r este rezultatul cuplarii proiectiilor sale dupa schemele
de relatie R1, R2
DEF : (Teorema lui Ullman) Descompunerea relatiei R in R
1
si R
2
este fara
pierdere de informatie , daca si numai daca cel putin una din
dependentele urmatoare face parte din F
+
:
R
1
· R
2
÷R
1
÷(R
1
- R
2
)
R
1
· R
2
÷R
2
÷(R
1
- R
2
)
Daca intersectia proiectiilor descompunerii este , sau contine o cheie
a uneia din componentele R
1
, sau R
2
, descompunerea este fara
pierdere de informatie
Conservarea informatiei
Fie relatia R( contract, manager, angajat)
cu dependentele functionale din relatia initiala :
contract-> manager
angajat -> manager
Ipoteze:
un manager poate conduce mai multe contracte,
un angajat poate lucra la mai multe contracte, din cele conduse de managerul sau
fie descompunerea :
R1( contract, manager)
R2 (manager, angajat)
Cuplarea relatiilor dupa atributul manager => angajatii figureaza in toate
contractele conduse de managerii lor, deci si in unele in care nu
lucreaza (tuple suplimentare) , deci descompunerea e cu pierdere de
informatie :
R
1
· R
2
=manager
R
1
- R
2
= contract
R2 - R1= angajat
insa dependentele manager-> contract, manager - >angajat nu sunt
verificate
Daca se introduce restrictia ca un manager sa conduca un singur contract:
manager -> contract , descompunerea propusa este fara pierdere de informatie
Conservarea dependentelor
Refera proprietatea unei descompuneri de a asigura deducerea
tuturor dependentelor din relatia initiala , pe baza depedentelor
existente in descompunere
DEF : Daca inchiderea tranzitiva a dependentelor functionale din schemele
de relatie ale descompunerii, include toate dependentele din schema
initiala descompunerea conserva dependentele
Ex.
Telefoane ( judet, oras, prefix)
Exista dependentele : (judet ,oras)- >prefix, prefix->judet
Descompunerea genereaza relatiile OP (oras, prefix), JP( judet, prefix) ce
respecta cuplarea fara pierdere de informatie , deci conserva continutul de
informatie
Dependetele din OP SI JP nu permit deducerea dependentei :
(judet ,oras) ->prefix… => probleme la cuplarea intre relatiile OP si JP
Observatie : proprietatile de conservare a info si dependentelor
sunt INDEPENDENTE, exista scheme de descompunere ce
asigura cate una , sau ambele conservari
Descompunere folosind DF
descompunerea unei scheme de relatii R ce poseda un set de
dependente functionale DF in relatiile R1, R2… Rn are drept
obiective:
descompunerea fara pierderea de informatie
lipsa redundantei
mentinerea dependentelor functionale : fie F
i
un set de DF din
F
+
ce include atributele din R
i
mentinerea dependentelor prin descompunere :
(F
1
F
2
… F
n
)
+
= F
+
» in caz contrar, verificarea actualizarilor pentru a
identifica violarea DF necesita operatii join
costisitoare
Exemplu
R = (A, B, C)
dependentele functionale DF = {A ÷B, B ÷C)
Poate fi descompus in mai multe moduri
Var1. R
1
= (A, B), R
2
= (B, C)
Descompunere fara pierdere de info :
R
1
· R
2
= {B} si B ÷BC
Mentinerea dependentelor
Var2. R
1
= (A, B), R
2
= (A, C)
Descompunere fara pierdere de info :
R
1
· R
2
= {A} si A ÷AB
Fara mentinerea dependentelor
(nu verifica B ÷C , fara a calcula in prealabil R
1
⋈R
2
)
Atribute , chei
Supercheie - a unei scheme de relatii R refera setul de
atribute S ca subset al schemei R ,astfel incat
exista proprietatea pentru orice doua tuple t1 si t2 , in
orice relatie permisa r din R este indeplinita conditia
t1[S]=t2[S]
Cheie candidata – orice cheie din relatia R ( exista mai multe
posibile chei), una din cheile candidate devine cheie
primara
Cheie compusa – din mai multe atribute
Dependente partiale = relatia detine o cheie compusa
atribut prim - membru al unei chei candidate (posibil
compusa)
atribut nonprim - nu e membru al unei chei candidate
Scheme si restrictii
SCHEMA unei relaţii este formată din:
Numele relaţiei
Atributele relaţiei
Restricţiile de integritate
RESTRICŢIILE DE INTEGRITATE depind de semantica valorilor
domeniilor
Integritatea entităţii prin care valorile cheii primare trebuie să
fie diferite de zero si in domeniu
Integritatea referirii potrivit căreia valorile unei chei externe
trebuie să se refere la tuplele relaţiei
Forme normale
Anomaliile pot fi evitate daca se inlocuiesc schemele de relatie cu scheme
echivalente pentru care depedentele satisfac anumite restrictii
SCHEMELE DE RELATII ECHIVALENTE – Forme normale
Formele normale – criterii de proiectare corecta a schemelor de relatii ce
asigura :evitarea anomaliilor, reducerea redundantei si cresterea gradului
de independenta reciproca a datelor
Nivelurile de normalizare definite in termenii tipurilor de dependente,
impun conditii din ce in ce mai restrictive asupra relatiilor : astfel
o relatie aflata pe un anumit nivel de normalizare satisface
TOATE RESTRICTIILE CERUTE DE NIVELURILE INFERIOARE
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…)
DEF : O schema de BD relationala se afla in prima
forma normala FN1, daca si numai daca , toate
atributele sale iau numai valori atomice
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
DEF: O relatie R este in a doua forma normala FN2 , daca este
in FN1 si orice atribut neprim este total dependent fata de
oricare cheie a relatiei
Orice atribut ce nu e cheie primara ( neprim) este
dependent total de cheia primara
Nota : Pentru orice relatie in FN1 se poate gasi o descompunere in relatii
aflate in FN2 echivalenta cu relatia initiala , astfel incat :
1. din relatiile descompunerii se poate reconsititui prin cuplare
intreg continutul informational al relatiei initiale,
2. din dependentele functionale ale componentelor se pot
reconstitui dependentele eliminate prin descompunere
=> Descompunerea este un proces reversibil
Exemplu FN2
Profesori_note ( nume_prof, functie, salar, nume_stud,nota)
DF : nume_prof -> functie, functie -> salar, nume_prof -> salar,
(nume_prof ,nume_stud )-> nota
cheia compusa unica a relatiei : (nume_prof , nume_stud)
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
Se pot elimina prin crearea schemelor :
Profesori (nume_prof, functie, salar)
Note (nume_prof, nume_stud, nota)
Respecta : conservarea continutului de info si conservarea dependentelor
functionale
Principiu : orice relatie urmareste un singur tip de entitate
A treia forma normala
DEF : o relatie este in a treia forma normala FN3 , daca este in
FN2 si nici un atribut neprim nu este dependent functional
de un alt atribut neprim
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)
identifica dependentele tranzitive ( de tipul: A->B, B->C =>
A->C
pentru orice relatie aflata in FN2 , exista o descompunere
echivalenta in FN3, astfel transformarea echivalenta determina
eliminarea anomaliilor cauzate de dependentele tranzitive intre
atribute neprime
Exemplu FN3
Separarea continutului de informatie anterioara cf FN2 nu a fost COMPLETA!
Profesori_note ( nume_prof, functie, salar, nume_stud,nota)
DF : functie->salar determina o serie de anomalii
 Anomalia de adaugare :nu se poate inregistra salariul unei functii daca nu
exista un cadru didactic cu functia ( stergerea ..este inversa!)
 Anomalia de actualizare : redondanta salariu pentru fiecare cadru didactic
la functia respectiva - parcurgere inutila de relatii
anomaliile pot fi eliminate prin descompunerea relatiei Profesori in subrelatii astfel :
NF ( nume_prof, functie)
FS( functie, salar)
+Note (nume_prof, nume_stud, nota)
Elimina toate anomaliile datorate dependentelor functionale dintre atribute
neprime
Permite reconstituirea continutului de info si a setului de dependente functionale
Forma normala BCNF
FN2, FN3 izoleaza dependentele functionale pentru atributele
neprime insa nu si pentru cele prime ( membre ale unei chei)
DEF: o relatie este in forma BCNF , daca pentru orice
dependenta functionala X->A din relatia R, cu A atribut ce nu
face parte din X , atributul X (posibil compus) este cheie in
relatia R , sau include o cheie din relatia R
Definitie formala : o relatie R este in FN-BC raportat la un set de dependente
functionale daca:
 pentru toate DF din F+ de forma o ÷|, unde o _ R si | _ R
se respecta relatiile:
o ÷| este trivial (i.e., | _ o), sau
o este supercheie pentru relatia R
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
Pentru o relatie data , nu exista intotdeauna o descompunere in forma BC
Observatie :
desi exista intotdeauna o descompunere in relatii
BC ce poseda proprietatea de cuplare fara pierdere
de informatie ,
=>nu exista intotdeauna o descompunere care sa
conserve dependentele functionale ale relatiei R
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
BCNF- concluzii
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 :
 eliminarea redundantelor /anomaliilor de actualizare prin
descompunerea relatiilor initiale
 mentinerea posibilitatii de refacere a dependentelor initiale si a
consistentei datelor
 FN3 - mentine dependentele insa si redundanta partiala in date
 FN-BC - asigura eliminarea redundantelor insa nu garanteaza
mentinerea dependentelor
Relatia initiala
Client_inchiriere (Client_nr, Proprietate_nr, Cnume, Padresa,
Datainc, Datasf, Inchiriere, Proprietar_nr, Proprietar_nume)
FN2
Client (Client_nr, Cnume)
Inchiriere_proprietate (Client_nr, proprietate_nr, Padresa,
Datainc, Datasf, Inchiriere, Proprietar_nr, Proprietar_nume)
Exemplul 1
FN2
Client (client_nr, Cnume)
Inchiriere_proprietate (client_nr, proprietate_nr, Pdresa, Datainc,
Datasf, inchiriere, proprietar_nr, Proprietar_nume)
Df1 :(client_nr, proprietate_nr) - >Datainc, Datasf cheie primara
Df2: client_nr ->Cnume dependenta partiala
Df3: proprietate_nr -> Pdresa,inchiriere, proprietar_nr, Proprietar_nume ; dep. partiala
Df4: proprietar_nr -> Proprietar_nume; dependenta tranzitiva
Df5: (client_nr, Datainc) -> proprietate_nr, Pdresa, Datasf, inchiriere, proprietar_nr, Proprietar_nume;
cheie candidata
Df6:( proprietar_nr, Datainc) ->client_nr, Cnume, Datasf; cheie candidata
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)
Dependentele functionale pentru relatii
Relatia client
Df2 : client_nr -> Cnume
Relatia Inchiriere
Df1 : (client_nr, proprietate_nr) -> Datainc, Datasf
Df5’ : (client_nr, Datainc)-> proprietate_nr, Datasf
Df6’: (proprietar_nr, Datainc)->client_nr, Datasf
Relatia Proprietar
Df3: proprietate_nr -> Pdresa,inchiriere, proprietar_nr, Proprietar_nume
Df4: proprietar_nr -> Proprietar_nume; dependenta tranzitiva
DEF FN3 : O relatie aflata in FN2 si FN1 , pentru care nu exista
dependente tranzitive intre atributele ce nu sunt cheie primara si
respectiv cheia primara
Solutie : eliminarea dependentelor tranzitive
Crearea unei noi relatii ( separarea DF tranzitive) astfel :
Proprietar (proprietate_nr, Pdresa, inchiriere,proprietar_nr,Proprietar_nume)
devine:
Proprietate (Proprietate_nr, Pdresa, inchiriere, proprietar_nr )
Proprietar (Proprietar_nr , Proprietar_nume)
Schemele BD in FN3 sunt:
Client (client_nr, Cnume)
Inchiriere (client_nr, proprietate_nr, Datainc, Datasf)
Proprietate (proprietate_nr, Pdresa, inchiriere, proprietar_nr)
Proprietar (Proprietar_nr , Proprietar_nume)
 mecanismul cheie primara – cheie straina
 descompunere prin operatii de proiectie, fara pierdere de info, refacere prin join
natural
FN3
Def . FN- BC – orice determinant este o cheie candidata
Relatia Inchiriere contine 3 determinanti :
(client_nr, proprietate_nr), (client_nr, Datainc), (proprietar_nr, Datainc)
identificati de dependentele functionale DF:
DF1 : client_nr, proprietate_nr-> Datainc, Datasf
DF5‟ : client_nr, Datainc-> proprietate_nr, Datasf
DF6‟: proprietar_nr, Datainc->client_nr, Datasf
Determinantii sunt chei candidate, deci relatiile sunt in FNBC
Violarea constrangerilor BC pot surveni in relatiile in care:
 exista mai multe chei candidate compozite
 chei ce partajeaza cel putin un atribut
FNBC
Exemplul 2
Interviu_client (Client_nr, interviu_d, interviu_t, staff_nr, nr_cam)
chei candidate, compuse cu partajare atribut
(Client_nr, interviu_d)
(staff_nr , interviu_d, interviu_t)
(nr_cam, interviu_d, interviu_t), se alege cheia primara (Client_nr, interviu_d)
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
=>
Relatia este in FN3, nu e in BC, determinantul (staff_nr,
interviu_d ) nu e cheie candidata pt relatie
Exemplul 2
Interviu_client (Client_nr, interviu_d, interviu_t, staff_nr, nr_cam)
noile relatii in FN-BC: sunt
Interviu (Client_nr, interviu_d, interviu_t, staff_nr)
Staff_cam( Staff_nr, interviu_d, nr_cam)
Dependente multivalorice
FN-BC – elimina anomaliile datorate DF
Exista si alte tipuri de dependente mai putin restrictive –
dependentele multivalorice (DMV) si de cuplare ce pot crea
probleme similare sub aspectul redundantei datelor
Definitie : Fie schema de relatie R (X,Y,Z), cu X,Y, Z atribute
simple sau compuse ,exista o dependenta multivalorica a
atributului Y fata de X , sau X determina multivaloric Y ,
(notatie X->->Y , respectiv X->->Z) ,
daca pentru fiecare valoare a atributului X exista
un set de valori pentru Y ,si respectiv un set de
valori pentru Z, cu seturile de valori Y si Z
independente.
Dependente multivalorice
Definitie formala : X÷÷Y , X ÷÷Z, (X multidetermina Y, X
multidetermina Z)
daca si numai daca pentru toate relatiile posibile r (R )
cu Y si Z independente
< x
1
, y
1
, z
1
> e r si < x
1
, y
2
, z
2
> e r
atunci
< x
1
, y
1
, z
2
> e r si < x
1
, y
2
, z
1
> e r
 orice dependenta functionala este si o dependenta
multivalorica (generalizarea DF)
DMV pot cauza anomalii de aceeasi natura ca si DF
DMV pot fi :
Triviale – X->-> Y este triviala , daca Y este un subset a lui X ,sau
X Y=R
Nontriviale – daca nici una din conditiile anterioare nu sunt satisfacute.
Def. FN4 . O relatie este in FN4 , daca se afla in
forma normala BC si nu contine dependente
nontriviale multivalorice
FN4 este mai puternica decat FN-BC,este o generalizare a acesteia
elimina redundanta datelor prin eliminarea dependentelor MV
procesul de normalizare FN4 este similar cu FN BC
– proprietatea de conservare dependentelor este
satisfacuta daca din DF si DMV existente in
descompunere se pot deduce toate dependentele bazat
pe setul de axiome A1 - A8
Dependente multivalorice
Dependente de cuplare
Trecerea de la o FN la alta – prin descompuneri bazat pe
generarea altor doua relatii si eliminarea DF si/sau DMV
O relatie aflata in FN4 nu mai poate fi descompusa bazat pe
aceeasi strategie! desi exista situatii in care in FN4 exista
inca redondante ce genereaza anomalii
Probleme determinate de dependentele de cuplare pot fi
eliminate prin descompunerea relatiei initiale in mai mult
de doua relatii a caror cuplare va genera relatia R initiala
Definitie – O relatie R , este n - decompozabila daca poate fi
descompusa fara pierdere de info in mai multe relatii.
Prin eliminarea dependentelor de cuplare se obtin relatii
aflate in FN5, trecerea la FN5 este un proces de
normalizare care se aplica relatiilor n- decompozabile (n>2)
Forme normale
 1 FN
 O relaţie R este în 1FN atunci când atributele sale nu pot fi
descompuse
 2 FN
 O relaţie R este în 2FN, dacă este în 1FN şi toate dependenţele
între cheia primară a lui R şi celelalte atribute a lui R sunt
elementare (atributele nu depind de o parte din cheie)
 3 FN
 O relaţie R este în 3FN, dacă este în 2FN şi dacă sunt
eliminate toate dependenţele funcţionale tranzitive (dacă nu
există nici o dependenţă funcţională între atributele non-
prime)
 Boyce-Codd
 O relaţie R este în forma BC dacă este în 3FN şi dacă fiecare
determinant în diagrama de dependenţe este un candidat
pentru a deveni cheia relaţiei.
 Dacă o relaţie are o un determinant compus, unul dintre
elementele care-l compun nu trebuie să depindă de alt atribut
 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
1NF
2NF
3NF
BCNF
4NF
5NF
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
O relatie R este in FN-BC( FN4, FN5 ) daca si numai daca singurele
dependente functionale ( MV si de cuplare) existente sunt cele
implicate de o cheie a relatiei R
=> orice dependenta ( F, MV, C) determina redondanta si
anomalii atunci cand nu este implicata de o cheie a relatiei
Exemplu
Separare cf DF, orice
atribut ce nu este cheie
primara este total
dependent functional de
cheia primara
nu exista dependente tranzitive
intre atributele ce nu sunt cheie
primara si cheia primara
Exemplu
Exemplu
orice atribut ce nu este
cheie primara este total
dependent functional de
cheia primara
FN3- nu exista dependente
tranzitive intre atributele ce nu
sunt cheie primara si cheia
primara
FN-BC :orice determinant este o cheie candidata
Concluzii
Normalizarea – tehnica pentru producerea unui set de relatii cu proprietati
dorite, controlate, formal utilizata pentru a identifica relatiile bazat pe
cheile lor si a DF intre atribute
Relatia transformata in forme normale superioare , devine in mod progresiv
mai restrictiva in format si mai putin vulnerabila anomaliilor de
actualizare
Teoria normalizarii – cadru de ghidare pentru realizarea unor scheme de
relatii mai bune
Este la latitudinea proiectantului de BD decizia de a aplica o anumita etapa
de normalizare , functie de contextul existent (aplicatiile)
In anumite situatii normalizarea completa e posibil sa devina
dezvantajoasa!
Prin aplicarea corecta a unei metodologii de proiectare descendenta bazat
pe modelul EER , modelele rezultate au tendinta de a fi deja normalizate

Concepte introductive
Proiectarea schemelor de relatii – proiectarea conceptuala a BD
Descompunerea relatiilor bazat pe tehnici ce utilizeaza analiza dependentelor functionale Teoria dependentelor functionale = NORMALIZAREA descompunere si forme normale testarea mentinerii dependentelor initiale si a consistentei datelor

Forme normale ale BD : FN1-3, forma normala BC, FN4-5

Elemente de proiectare conceptuala
Schemele relatiilor – elementele constitutive ale unei BD

Schema = nume, structura relatiei, atributele (domeniile)
Problema de proiectare :
»

alegerea setului de scheme de relatii prin care se modeleaza optim entitatile gruparea optima a atributelor in scheme specificarea tipurilor de legaturi intre tipuri de entitati

»

»

Proiectare conceptuala
Criteriu de proiectare a BD relationale : dependenta datelor : intre atributele relatiilor exista legaturi logice (dependente) ce influenteaza operatiile curente de exploatare a BD Tipuri de dependente : functionale ,multivalorice, join Anumite scheme de relatii introduc redundanta datelor relativ la anumite atribute, ce pot conduce la anomalii : de adaugare, stergere, de actualizare Alegerea unui model conceptual corect pentru o BDR = determinarea unei descompuneri capabile sa izoleze dependentele si sa elimine anomaliile

Normalizarea
Proiectarea eronata a unui sistem de BD, poate conduce la :


Informatie redundanta Dificultati in reprezentarea anumitor informatii Dificultati in verificarea constrangerilor de integritate

Obiective in proiectarea corecta a BD- gruparea in relatii a atributelor a.i. sa existe
 Reprezentare

corecta a relatiilor dintre atribute redundantei datelor

 Minimizarea/evitarea

 Suport

pentru verificarea constrangerilor de integritate

de cuplare . prin realizarea de teste/restructurari asupra relatiilor pentru a le trasforma intr-o forma optima Teoria normalizarii (Codd 1972) si procesul de proiectare conceptuala a BD are la baza dependentele functionale.multivalorice. 2. fara pierdere de informatie si cu evitarea redundantei Normalizarea – proces formal de identificare 1.Normalizarea Descompunerea relatiilor astfel incat acestea sa ajunga intr-o forma relationala corecta . a dependentelor functionale intre atribute . a relatiilor intre scheme.

pret) problema : redondanta pe atributul adresa anomalii in actualizarea datelor:  anomalia de adaugare : nu se poate inregistra adresa atat timp cat nu livreaza un produs  anomalia de stergere : stergerea tuturor produselor furnizorului determina pierderea adresei  anomalia de actualizare : modificarea adresei impune parcurgerea intregii relatii pentru a identifica si actualiza aparitiile furnizorului O structurare in 2 relatii . adresa . separa dependentele functionale intre atribute FA (nume. produs . produs . adresa) FP (nume.Anomalii in actualizare Fie relatia Furnizor ( nume. pret) .

astfel relatiile sunt proiectate incat sa nu genereze tuple “parazite “ (suplimentare . Relatiile vor fi proiectate cu cat mai putine valori null. nu trebuie sa apara in aceeasi schema de relatie   Se vor folosi atribute cu rol de chei straine pentru a referi alte relatii Schema creata . inexistente in relatia initiala) .vor fi plasate in relatii separate Refacerea relatiei initiale (prin cuplare join) se va realiza cu mentinerea dependentelor si a continutului de informatie.Cateva reguli… Fiecare tupla de relatie trebuie sa reprezinte o entitate sau o instanta de relatie  Atributele entitatilor diferite . Atributele cu valori null frecvente .trebuie sa fie explicabila relatie cu relatie Proiectarea corecta schemei conceptuale – nu “sufera” de anomalii.

exista in relatia R daca si numai daca: oricarei valori a atributului  ii corespunde o singura valoare a atributului  Observatii: daca    . atunci avem    pentru orice atribut compus ce contine pe  . 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 . dependenta functionala (FD)    (atributul  determina functional atributul  sau  este dependent functional de  .Dependente functionale (1) Definitie: Fie R o schema de relatie . si doua atribute   R si   R.unde  este numit determinant) .

respectiv este partiala in caz contrar. daca nu exista nici un subset al atributului  astfel incat    .Dependente functionale (2) DF = generalizarea notiunii de cheie . » DF pot fi specificate complex prin asertiuni diverse ce specifica constrangeri de tipul : » (t1) = (t2)   (t1) =  (t2) ( proiectii de tuple) Deducerea sistematica a DF existente intr-o schema de relatii presupune aplicarea unui set de reguli : regulile lui Armstrong . Pornind de la un set de dependente functionale date. reprezinta constrangeri aplicate unui set de relatii valide Dependenta functionala este totala . se pot deduce logic o serie de alte dependente functionale derivate din acestea.

produs. produs) -> adresa (DF totala) (DF partiala. adresa. produs) -> pret (nume. pret) -> adresa (nume. pret) Nume -> adresa (DF totala) (nume. Furnizor ( nume. DF totale netriviale sunt : pret-> pret…. adresa .Exemple dependente functionale Dependente functionale triviale sunt dependente satisfacute de toate instantele relatiei Ex. nu contine info suplimentara) nume -> adresa (nume produs) -> pret fiecare furnizor are o singura adresa fiecare furnizor are un pret propriu /produs . (DF triviala . produs) -> pret (nume. produs . adresa e atribut redondant) nume -> nume.

functie de adoptarea diferitelor ipoteze ce refera semnificatia atribuita componentelor relatiei.Dependente functionale Dependentele existente in schema de relatie : reflecta entitatile modelate refera constrangeri ce se constituie ca informatii suplimentare ce nu pot fi ingobate direct in schema relatiei. 2. atributele sunt dependente functional de cheile relatiei – (cheia identifica unic fiecare tupla a relatiei determinand in mod univoc valorile tuplei). ci se reflecta direct prin valorile atributelor Observatii: 1. . in orice relatie .pentru aceeasi schema de relatie putem avea seturi diferite de dependente.

 . A2… An) A1 : reflexivitatea: daca    atunci  ->  genereaza dependentele triviale A2: multiplicare : daca  ->  atunci.    ->    A3: tranzitivitate : daca  ->  si  ->  atunci  ->  singura regula ce introduce noi dependente Inchidere tranzitiva : multimea tuturor dependentelor ce se pot obtine prin aplicarea repetata a setului de reguli Armstrong asupra unui set initial de dependente functionale este notata F+ Axiomele lui Armstrong ofera un set complet de reguli ce permit deducerea tuturor DF si numai a acelor ce sunt logic deductibile din setul initial de dependente F .Axiomele Armstrong Fie  .  submultimi ale multimii de atribute (A1.

a testa relatiile .Inchiderea tranzitiva DF sunt utilizate pentru : 1. specificarea constrangerilor asupra setului legal de relatii Nota : o anumita instanta a unei scheme de relatii poate satisface o anumita DF chiar daca aceasta nu este valida pentru toate instantele legale de relatii ale schemei Axiomele Armstrong – set complet si sigur de reguli de inferenta . pentru a le verifica “ legalitatea” 2. ce permit deducerea tuturor dependentelor functionale => Orice relatie ce satisface setul dependentelor initiale va satisface si setul dependentelor din inchiderea tranzitiva ( F+) Exprimarea formala a inchiderii tranzitive bazat pe axiomele lui Armstrong F+ = F repeat for each DF f in F+ aplica reguli de reflexivitate si multiplicare asupra setului F adauga rezultatul DF la F+ for each pereche f1 si f2 in F+ if f1 si f2 pot fi combinate prin tranzitivitate then adauga rezultatul DF la F+ until F+ nu mai comporta modificari .

atunci     Decompozitia : daca     . B. G. H.setul minimal de DF . atunci    si    Pseudotranzitivitatea : daca    si     atunci     Exemplu : R = (A. C. I) F = { A  B.CG  H . A  C . B  H} DF din F+ : A  H (tranzitivitate A  B si B  H) AG  I CG  HI ( augmentare AG  CG tranzitivitate CG  I uniune CG  H si CG  I opusul inchiderii tranzitive .Alte axiome Exista si reguli aditionale : Uniunea : daca    .echivalent lui F ce nu contine redundante . si    .CG  I.

B  C. A  D} {A  B. fara dependente redundante sau parti redundante in dependente . AC  D} devine {A  B. inferabile din altele Ex. B  C} Parti ale unei dependente functionale pot fi redundante {A  B.: A  C e redundant in: {A  B. B  C. B  C. B  C. A  D} Acoperirea canonica F – SETUL MINIMAL de dependente functionale echivalente lui F.Acoperire canonica Setul dependentelor functionale poate avea dependente functionale redundante . A  CD} poate fi simplificat la {A  B.

AB  C} A este „extern‟ in AB  C verifica daca rezultatul stergerii lui A din AB  C este implicat de alte dependente Da : exista B  C Setul devine {A  BC.Exemplu R = (A. Da: bazat pe tranzitivitate A  B and B  C. B. B  C. B  C} C este „extern‟ in relatia A  BC Verifica daca A  C e implicata logic de A  B si exista alte dependente. Acoperirea canonica: AB BC . C) F = {A  BC BC AB AB  C} Combina A  BC si A  B in A  BC (uniune) Setul devine {A  BC.

fara dependente redundante sau parti redundante in dependente . setul atributelor determinate functional de  din F Acoperirea canonica F – SETUL MINIMAL de dependente functionale echivalente lui F.Recap Axiome Armstrong : if   . then    and    If    and    . then    if   . then      Alte reguli: If    and   . then     (uniune) (decompozitie) (pseudotranzitivitate) (reflexivitate) (multiplicare) if    and   . then    (tranzitivitate) Inchidere tranzitiva : multimea tuturor dependentelor ce se pot obtine prin aplicarea repetata a setului de reguli Armstrong asupra unui set initial de dependente functionale este notata F+ Fie un set de atribute . then     If    . se defineste inchiderea setului  aferent relatiilor functionale F (notat +) .

dintre aceste descompuneri . A2. doar o parte au proprietatea ca din relatiile corespunzatoare schemelor descompunerii se poate reconstitui relatia initiala.Descompunerea schemelor de relatii Descompunerea relatiilor – solutia de eliminare a dependentelor functionale din scheme . 2. reconsituirea relatiei : refera atat continutul de informatie si regasirea dependentelor functionale din relatia initiala . sau o legatura intre doua entitati 1. astfel incat schemele rezultate sa reprezinte un singur tip de entitate . deci si a anomaliilor de manipulare a datelor Descompunerea unei scheme de relatie R ( A1.…An) presupune ca toate atributele schemei initiale (R) vor aparea in descompunerile (R1. R2): R = R1  R2 unde relatiile Ri vor fi proiectii nedisjuncte ale relatiei corespunzatoare schemei initale Scop : separarea semantica a continutului de informatie din relatia initiala .

sau R2 . daca si numai daca cel putin una din dependentele urmatoare face parte din F+: R1  R2  R1  (R1 .Descompunerea schemelor de relatii Descompunerea are proprietatea de cuplare fara pierdere de informatie daca pentru toate relatiile posibile r ale schemei R.R2) R1  R2  R2 (R1 .R2) Daca intersectia proiectiilor descompunerii este . sau contine o cheie a uneia din componentele R1 . R2 DEF : (Teorema lui Ullman) Descompunerea relatiei R in R1 si R2 este fara pierdere de informatie . este adevarata relatia : r = R1 (r) ⋈ R2 (r) unde r este rezultatul cuplarii proiectiilor sale dupa schemele de relatie R1. descompunerea este fara pierdere de informatie .

deci descompunerea e cu pierdere de informatie : R1  R2=manager R1 .R1= angajat insa dependentele manager-> contract.Conservarea informatiei Fie relatia R( contract. manager . descompunerea propusa este fara pierdere de informatie . din cele conduse de managerul sau fie descompunerea : R1( contract. un angajat poate lucra la mai multe contracte. angajat) Cuplarea relatiilor dupa atributul manager => angajatii figureaza in toate contractele conduse de managerii lor.R2= contract R2 . manager) R2 (manager. deci si in unele in care nu lucreaza (tuple suplimentare) . manager. angajat) cu dependentele functionale din relatia initiala : contract-> manager angajat -> manager Ipoteze: un manager poate conduce mai multe contracte.>angajat nu sunt verificate Daca se introduce restrictia ca un manager sa conduca un singur contract: manager -> contract .

include toate dependentele din schema initiala descompunerea conserva dependentele Ex. prefix) ce respecta cuplarea fara pierdere de informatie .oras) ->prefix… => probleme la cuplarea intre relatiile OP si JP Observatie : proprietatile de conservare a info si dependentelor sunt INDEPENDENTE.>prefix. deci conserva continutul de informatie Dependetele din OP SI JP nu permit deducerea dependentei : (judet .oras). oras. pe baza depedentelor existente in descompunere DEF : Daca inchiderea tranzitiva a dependentelor functionale din schemele de relatie ale descompunerii. sau ambele conservari . prefix) Exista dependentele : (judet . prefix->judet Descompunerea genereaza relatiile OP (oras. JP( judet. exista scheme de descompunere ce asigura cate una .Conservarea dependentelor Refera proprietatea unei descompuneri de a asigura deducerea tuturor dependentelor din relatia initiala . Telefoane ( judet. prefix).

verificarea actualizarilor pentru a identifica violarea DF necesita operatii join costisitoare . R2… Rn are drept obiective: descompunerea fara pierderea de informatie lipsa redundantei mentinerea dependentelor functionale : fie Fi un set de DF din F+ ce include atributele din Ri mentinerea dependentelor prin descompunere : (F1  F2  …  Fn)+ = F+ » in caz contrar.Descompunere folosind DF descompunerea unei scheme de relatii R ce poseda un set de dependente functionale DF in relatiile R1.

C) Descompunere fara pierdere de info : R1  R2 = {B} si B  BC Mentinerea dependentelor Var2. C) Descompunere fara pierdere de info : R1  R2 = {A} si A  AB Fara mentinerea dependentelor (nu verifica B  C . R2 = (B. B. B  C) Poate fi descompus in mai multe moduri Var1. C) dependentele functionale DF = {A  B. fara a calcula in prealabil R1 ⋈ R2) .Exemplu R = (A. R2 = (A. R1 = (A. B). B). R1 = (A.

chei Supercheie .Atribute .membru al unei chei candidate (posibil compusa) atribut nonprim .astfel incat exista proprietatea pentru orice doua tuple t1 si t2 .nu e membru al unei chei candidate .a unei scheme de relatii R refera setul de atribute S ca subset al schemei R . in orice relatie permisa r din R este indeplinita conditia t1[S]=t2[S] Cheie candidata – orice cheie din relatia R ( exista mai multe posibile chei). una din cheile candidate devine cheie primara Cheie compusa – din mai multe atribute Dependente partiale = relatia detine o cheie compusa atribut prim .

Scheme si restrictii SCHEMA unei relaţii este formată din: Numele relaţiei Atributele relaţiei Restricţiile de integritate RESTRICŢIILE DE INTEGRITATE depind de semantica valorilor domeniilor Integritatea entităţii prin care valorile cheii primare trebuie să fie diferite de zero si in domeniu Integritatea referirii potrivit căreia valorile unei chei externe trebuie să se refere la tuplele relaţiei .

reducerea redundantei si cresterea gradului de independenta reciproca a datelor Nivelurile de normalizare definite in termenii tipurilor de dependente.Forme normale Anomaliile pot fi evitate daca se inlocuiesc schemele de relatie cu scheme echivalente pentru care depedentele satisfac anumite restrictii SCHEMELE DE RELATII ECHIVALENTE – Forme normale Formele normale – criterii de proiectare corecta a schemelor de relatii ce asigura :evitarea anomaliilor. stegere. adaugare si mai putin in sisteme ce presupun INTEROGARI complexe  . impun conditii din ce in ce mai restrictive asupra relatiilor : astfel o relatie aflata pe un anumit nivel de normalizare satisface TOATE RESTRICTIILE CERUTE DE NIVELURILE INFERIOARE Observatie :NORMALIZAREA poate afecta NEGATIV eficienta cu care sunt rezolvate interogarile (bazele de date necesita cuplare)  este utila pentru operatii frecvente de actualizare.

daca si numai daca . compozite…) DEF : O schema de BD relationala se afla in prima forma normala FN1.Prima forma normala Un domeniu de atribute este ATOMIC . daca elementele sale sunt unitati indivizibile (ex nonatomice – atribute set. toate atributele sale iau numai valori atomice 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 .

din dependentele functionale ale componentelor se pot reconstitui dependentele eliminate prin descompunere => Descompunerea este un proces reversibil . din relatiile descompunerii se poate reconsititui prin cuplare intreg continutul informational al relatiei initiale.A doua forma normala FN2 .ale atributelor neprime fata de oricare cheie a relatiei DEF: O relatie R este in 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 . daca este in FN1 si orice atribut neprim este total dependent fata de oricare cheie a relatiei Orice atribut ce nu e cheie primara ( neprim) este dependent total de cheia primara Nota : Pentru orice relatie in FN1 se poate gasi o descompunere in relatii aflate in FN2 echivalenta cu relatia initiala . 2. astfel incat : 1.

salar.Exemplu FN2 Profesori_note ( nume_prof. respectiv fata de cheia (nume_prof. nota) Respecta : conservarea continutului de info si conservarea dependentelor functionale Principiu : orice relatie urmareste un singur tip de entitate .nota) DF : nume_prof -> functie. (nume_prof .> functie si resepectiv salar .functia-salariul = redondante Se pot elimina prin crearea schemelor : Profesori (nume_prof. nume_stud.nume_stud) determina anomalii :    de adaugare – nu se poate adauga cadru didactic cat timp nu acorda o nota de stergere . nume_stud.daca se sterge tupla unei singure note acordate se pierd info profesor de actualizare . functie -> salar. functie.nume_stud )-> nota nume_prof -> salar. salar) Note (nume_prof. cheia compusa unica a relatiei : (nume_prof . functie. nume_stud) DF partiala atributelor : nume_prof .

exista o descompunere echivalenta in FN3. daca este in FN2 si nici un atribut neprim nu este dependent functional de un alt atribut neprim 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) identifica dependentele tranzitive ( de tipul: A->B. astfel transformarea echivalenta determina eliminarea anomaliilor cauzate de dependentele tranzitive intre atribute neprime .A treia forma normala DEF : o relatie este in a treia forma normala FN3 . B->C => A->C pentru orice relatie aflata in FN2 .

nota) Elimina toate anomaliile datorate dependentelor functionale dintre atribute neprime Permite reconstituirea continutului de info si a setului de dependente functionale .nota) DF : functie->salar determina o serie de anomalii   Anomalia de adaugare :nu se poate inregistra salariul unei functii daca nu exista un cadru didactic cu functia ( stergerea . nume_stud. functie) FS( functie. salar) +Note (nume_prof.parcurgere inutila de relatii anomaliile pot fi eliminate prin descompunerea relatiei Profesori in subrelatii astfel : NF ( nume_prof. nume_stud..Exemplu FN3 Separarea continutului de informatie anterioara cf FN2 nu a fost COMPLETA! Profesori_note ( nume_prof.este inversa!) Anomalia de actualizare : redondanta salariu pentru fiecare cadru didactic la functia respectiva . functie. salar.

unde   R si   R se respecta relatiile:    este trivial (i. 2. sau include o cheie din relatia R Definitie formala : o relatie R este in FN-BC raportat la un set de dependente functionale daca:  pentru toate DF din F+ de forma  . FN1 . atributul X (posibil compus) este cheie in relatia R . daca pentru orice dependenta functionala X->A din relatia R. cu A atribut ce nu face parte din X . FN3 izoleaza dependentele functionale pentru atributele neprime insa nu si pentru cele prime ( membre ale unei chei) DEF: o relatie este in forma BCNF . Nici un atribut neprim nu poate fi dependent functional de un alt atribut daca nu este cheie.e..  O relatie in BC este si in FN3 si in FN2.. In FN-BC singurele dependente functionale permise sunt cele in care o cheie determina un alt atribut.   ).Forma normala BCNF FN2. sau  este supercheie pentru relatia R Concluzii : 1.

BCNF. =>nu exista intotdeauna o descompunere care sa conserve dependentele functionale ale relatiei R 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 .concluzii Pentru o relatie data . nu exista intotdeauna o descompunere in forma BC Observatie : desi exista intotdeauna o descompunere in relatii BC ce poseda proprietatea de cuplare fara pierdere de informatie .

mentine dependentele insa si redundanta partiala in date FN-BC .asigura eliminarea redundantelor insa nu garanteaza mentinerea dependentelor    . tabelele generate (schemele) nu necesita normalizare DF permit . Daca diagrama E-R e conceputa atent.identificarea cheilor candidate minimale Obiectivele normalizarii :  eliminarea redundantelor /anomaliilor de actualizare prin descompunerea relatiilor initiale mentinerea posibilitatii de refacere a dependentelor initiale si a consistentei datelor FN3 ..Cateva concluzii . cu identificarea corecta a entitatilor.

Proprietate_nr.Exemplul 1 Relatia initiala Client_inchiriere (Client_nr. Padresa. Proprietar_nr. Proprietar_nr. Padresa. Inchiriere. Datainc. Cnume. Cnume) Inchiriere_proprietate (Client_nr. proprietate_nr. Datainc. Proprietar_nume) FN2 Client (Client_nr. Inchiriere. Datasf. Proprietar_nume) . Datasf.

inchiriere.FN2 Client (client_nr. proprietar_nr. proprietate_nr. proprietate_nr. Datainc) ->client_nr. Datainc) -> proprietate_nr. Pdresa. Proprietar_nume. Datasf. Datasf) Proprietar (proprietate_nr. Datasf. Datasf cheie primara Df2: client_nr ->Cnume dependenta partiala Df3: proprietate_nr -> Pdresa. Cnume. Cnume) Inchiriere_proprietate (client_nr. Cnume) Inchiriere (client_nr. proprietar_nr. Pdresa. proprietar_nr. inchiriere. cheie candidata Df6:( proprietar_nr. Datasf. Proprietar_nume . Pdresa.>Datainc. daca este in FN1 si orice atribut ce nu este cheie primara este total dependent functional de cheia primara Client (client_nr. Datainc. cheie candidata Def : O relatie este in FN2. proprietar_nr. Proprietar_nume) Df1 :(client_nr. partiala Df4: proprietar_nr -> Proprietar_nume. proprietate_nr) . Datainc. inchiriere. inchiriere. dependenta tranzitiva Df5: (client_nr.Proprietar_nume) . dep.

inchiriere. proprietate_nr) -> Datainc. Datainc)-> proprietate_nr. proprietate_nr . pentru care nu exista dependente tranzitive intre atributele ce nu sunt cheie primara si respectiv cheia primara Solutie : eliminarea dependentelor tranzitive .FN3 Client (client_nr. proprietar_nr. Pdresa. Datainc)->client_nr. dependenta tranzitiva DEF FN3 : O relatie aflata in FN2 si FN1 . Datasf) este in FN3 este in FN3 Proprietar (proprietate_nr. Proprietar_nume) Dependentele functionale pentru relatii Relatia client Df2 : client_nr -> Cnume Relatia Inchiriere Df1 : (client_nr.inchiriere. proprietar_nr. Datasf Df5’ : (client_nr. Proprietar_nume Df4: proprietar_nr -> Proprietar_nume. Datasf Df6’: (proprietar_nr. Datainc. Datasf Relatia Proprietar Df3: proprietate_nr -> Pdresa. Cnume) Inchiriere (client_nr.

Pdresa. proprietar_nr) Proprietar (Proprietar_nr .FN3 Crearea unei noi relatii ( separarea DF tranzitive) astfel : Proprietar (proprietate_nr. Datainc. refacere prin join natural . Cnume) Inchiriere (client_nr.Proprietar_nume) devine: Proprietate (Proprietate_nr. Pdresa. inchiriere. fara pierdere de info.proprietar_nr. proprietate_nr. Proprietar_nume)   mecanismul cheie primara – cheie straina descompunere prin operatii de proiectie. Datasf) Proprietate (proprietate_nr. inchiriere. proprietar_nr ) Proprietar (Proprietar_nr . Pdresa. Proprietar_nume) Schemele BD in FN3 sunt: Client (client_nr. inchiriere.

deci relatiile sunt in FNBC Violarea constrangerilor BC pot surveni in relatiile in care:   exista mai multe chei candidate compozite chei ce partajeaza cel putin un atribut . Datasf proprietar_nr. (client_nr.FNBC Def . (proprietar_nr. Datainc) identificati de dependentele functionale DF: DF1 : DF5‟ : DF6‟: client_nr. proprietate_nr). Datainc->client_nr. proprietate_nr-> Datainc. Datasf client_nr. Datainc-> proprietate_nr. Datainc). FN.BC – orice determinant este o cheie candidata Relatia Inchiriere contine 3 determinanti : (client_nr. Datasf Determinantii sunt chei candidate.

compuse cu partajare atribut (Client_nr. interviu_t. interviu_t). DF3 chei candidate = nu creaza probleme. interviu_d) -> Client_nr DF3: (nr_cam . interviu_d ) -> nr_cam . interviu_t) -> staff_nr. interviu_d.cheie candidata . nu e in BC. DF4 nu are dependente tranzitive => Relatia este in FN3. se alege cheia primara (Client_nr. interviu_d.cheie candidata DF1. nr_cam) chei candidate. interviu_d) dependente functionale DF1: (Client_nr. interviu_t. interviu_d ) nu e cheie candidata pt relatie .Exemplul 2 Interviu_client (Client_nr. interviu_d. determinantul (staff_nr. interviu_t) (nr_cam. Client_nr DF4: (staff_nr.cheie primara . interviu_d ) -> interviu_t. nr_cam DF2: (staff_nr. interviu_d) (staff_nr . DF2. interviu_d. staff_nr. staff_nr.

interviu_t. nr_cam) . interviu_d. staff_nr) Staff_cam( Staff_nr.Exemplul 2 Interviu_client (Client_nr. interviu_d. staff_nr. interviu_d. interviu_t. nr_cam) noile relatii in FN-BC: sunt Interviu (Client_nr.

si respectiv un set de valori pentru Z. Z atribute simple sau compuse . respectiv X->->Z) . cu seturile de valori Y si Z independente. .Y.Dependente multivalorice FN-BC – elimina anomaliile datorate DF Exista si alte tipuri de dependente mai putin restrictive – dependentele multivalorice (DMV) si de cuplare ce pot crea probleme similare sub aspectul redundantei datelor Definitie : Fie schema de relatie R (X. (notatie X->->Y . cu X.exista o dependenta multivalorica a atributului Y fata de X .Y.Z). daca pentru fiecare valoare a atributului X exista un set de valori pentru Y . sau X determina multivaloric Y .

X multidetermina Z) daca si numai daca pentru toate relatiile posibile r (R ) cu Y si Z independente < x1.Dependente multivalorice Definitie formala : X Y . z1 >  r  orice dependenta functionala este si o dependenta multivalorica (generalizarea DF) . y2. y2. z2 >  r atunci < x1. z2 >  r si < x1. z1 >  r si < x1. X  Z. y1. y1. (X multidetermina Y.

A8 .Dependente multivalorice DMV pot cauza anomalii de aceeasi natura ca si DF DMV pot fi : Triviale – X->-> Y este triviala .sau X  Y=R Nontriviale – daca nici una din conditiile anterioare nu sunt satisfacute. daca Y este un subset a lui X . O relatie este in FN4 .este o generalizare a acesteia elimina redundanta datelor prin eliminarea dependentelor MV procesul de normalizare FN4 este similar cu FN BC – proprietatea de conservare dependentelor este satisfacuta daca din DF si DMV existente in descompunere se pot deduce toate dependentele bazat pe setul de axiome A1 . FN4 . daca se afla in forma normala BC si nu contine dependente nontriviale multivalorice FN4 este mai puternica decat FN-BC. Def.

Prin eliminarea dependentelor de cuplare se obtin relatii aflate in FN5.decompozabila daca poate fi descompusa fara pierdere de info in mai multe relatii. trecerea la FN5 este un proces de normalizare care se aplica relatiilor n. este n .Dependente de cuplare Trecerea de la o FN la alta – prin descompuneri bazat pe generarea altor doua relatii si eliminarea DF si/sau DMV O relatie aflata in FN4 nu mai poate fi descompusa bazat pe aceeasi strategie! desi exista situatii in care in FN4 exista inca redondante ce genereaza anomalii Probleme determinate de dependentele de cuplare pot fi eliminate prin descompunerea relatiei initiale in mai mult de doua relatii a caror cuplare va genera relatia R initiala Definitie – O relatie R .decompozabile (n>2) .

 Dacă o relaţie are o un determinant compus. dacă este în forma BC şi dacă nu există dependenţe funcţionale multivaloare în aceeaşi relaţie 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  5 FN  . dacă este în 2FN şi dacă sunt eliminate toate dependenţele funcţionale tranzitive (dacă nu există nici o dependenţă funcţională între atributele nonprime) Boyce-Codd  O relaţie R este în forma BC dacă este în 3FN şi dacă fiecare determinant în diagrama de dependenţe este un candidat pentru a deveni cheia relaţiei.Forme normale 1NF  4NF 1 FN  O relaţie R este în 1FN atunci când atributele sale nu pot fi descompuse 2NF 3NF BCNF 5NF  2 FN  O relaţie R este în 2FN. dacă este în 1FN şi toate dependenţele între cheia primară a lui R şi celelalte atribute a lui R sunt elementare (atributele nu depind de o parte din cheie)  3 FN O relaţie R este în 3FN. unul dintre elementele care-l compun nu trebuie să depindă de alt atribut    4 FN  O relaţie R este în 4FN.

MV. FN4. eliminarea dependentelor join – FN5 7. FN5 ) daca si numai daca singurele dependente functionale ( MV si de cuplare) existente sunt cele implicate de o cheie a relatiei R => orice dependenta ( F. forma nenormalizata (UNF) – eliminarea grupurilor de atribute – atribute atomice ->FN1 2. eliminarea anomaliilor generate de DF(orice determinant este o cheie candidata) ->FNBC 5. C) determina redondanta si anomalii atunci cand nu este implicata de o cheie a relatiei . similaritatea existenta intre FN-BC. eliminarea dependentelor tranzitive intre atributele ce nu sunt cheie primara si cheia primara ->FN3 4. eliminarea dependentelor partiale (orice atribut ce nu este cheie primara este total dependent functional de cheia primara) ->FN2 3. eliminarea dependentelor MV nontriviale ->FN4 6.Procesul normalizarii 1. FN5 O relatie R este in FN-BC( FN4.

Exemplu Separare cf DF. orice atribut ce nu este cheie primara este total dependent functional de cheia primara .

Exemplu nu exista dependente tranzitive intre atributele ce nu sunt cheie primara si cheia primara .

Exemplu orice atribut ce nu este cheie primara este total dependent functional de cheia primara .

nu exista dependente tranzitive intre atributele ce nu sunt cheie primara si cheia primara .FN3.

FN-BC :orice determinant este o cheie candidata .

controlate. modelele rezultate au tendinta de a fi deja normalizate . functie de contextul existent (aplicatiile) In anumite situatii normalizarea completa e posibil sa devina dezvantajoasa! Prin aplicarea corecta a unei metodologii de proiectare descendenta bazat pe modelul EER .Concluzii Normalizarea – tehnica pentru producerea unui set de relatii cu proprietati dorite. devine in mod progresiv mai restrictiva in format si mai putin vulnerabila anomaliilor de actualizare Teoria normalizarii – cadru de ghidare pentru realizarea unor scheme de relatii mai bune Este la latitudinea proiectantului de BD decizia de a aplica o anumita etapa de normalizare . formal utilizata pentru a identifica relatiile bazat pe cheile lor si a DF intre atribute Relatia transformata in forme normale superioare .

Sign up to vote on this title
UsefulNot useful