Baze de Date Curs 2-3 Fabbv
-
Author
mada-cionila -
Category
Documents
-
view
247 -
download
1
Embed Size (px)
Transcript of Baze de Date Curs 2-3 Fabbv
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
1/32
CURSURILE 2-3
NORMALIZAREA BAZELOR DE DATE
1
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
2/32
Normalizarea BAZELOR DE DATE
Obiectivul central al normalizrii l reprezint concepereabazelor de date. O baz de date normalizat trebuie s conintabele (relaii) n care s nu existe anomalii sau pierderi deinformaii si s respecte att restriciile modelului relaional cti cerinele definite de ctre utilizator.
DE CE NORMAL IZARE? PENTRU A EVITA EXISTENA UNEI SINGURE RELAIISUPRADIMENSIONATE
PENTRU C DESCOMPUNEREA N RELAIIDIMENSIONATE OPTIM ASIGUR OMOGENITATEASEMANTIC
LIMITEAZ DUPLICAREA INFORMAIILOR N TABELE IELIMIN POTENTIALELE ANOMALII DE ACTUALIZARE
!!! Descompunerea eronat conduce la PIERDERI DEINFORMAII I RECOMPUNERI ERONATE.
2
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
3/32
3
EXEMPLU DE
DESCOMPUNERE
ERONAT
COMPUNERE natural
dac pe campul Model
Maini Numr Culoare Model Marca
12 B113 alb r4 Renault
13 B666 verde 2cv Citroen
11B999 negru r4 Renault
13B777 alb ds CitroenMasina Numar Model
12 B113 r4
13 B666 2cv
11B999 r4
13B777 ds
Constructor Model Marca Culoare
r4 Renault alb
2cv Citroen verde
r4 Renault negru
ds Citroen alb
Masini numar Culoare Model marca
12 B113 alb r4 Renault
12 B113 negru r4 Renault
13B666 verde 2cv Citroen
11B999 alb r4 Renault
11B999 negru r4 Renault
13B777 alb ds Citroen
Nu rezult aceeai relaie!!!!
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
4/32
4
Maini Numr Culoare Model Marca
12 B113 alb r4 Renault
13 B666 verde 2cv Citroen
11B999 negru r4 Renault
13B777 alb ds Citroen
VEHICUL Numr Culoare Model
12 B113 alb r4
13 B666 verde 2cv
11B999 negru r4
13B777 alb ds
Constructor Model Marca
r4 Renault
2cv Citroen
ds Citroen
COMPUNERE natural dacpe campul Model sunt valori
egale
Descompunere corect
Maini Numr Culoare Model Marca
12 B113 alb r4 Renault
13 B666 verde 2cv Citroen
11B999 negru r4 Renault
13B777 alb ds Citroen
Prin recompunere rezultaceeai relaie!!!
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
5/32
Serie factur Numar
factura
Data factur Cod furnizor Denumire furnizor Adresfurnizor
A01 1 01/01/2008 111 S.C. Alfa S.A. Bucureti
A02 2 12/05/2008 112 S.C. Beta S.A. Braov
A03 3 15/05/2008 112 S.C. Beta S.A. Braov
5
Tabela Furnizori-Facturi
Tabela Furnizori-Facturi prezint urmtoarele anomalii:
Redundanpentru facturile emise de acelai furnizor;Anomalii la adugare: se refer la faptul c anumite date ce urmeaz a fi adugate,fac parte din tupluri incomplete (ex: nu pot fi adugai furnizori care nu au emisfacturi)
Anomalii la modificare:se refer la faptulc e dificil s se modifice o realizare,dac ea se repet n mai multe tupluri. Dac un furnizor i schimb denumirea,atunci, ea trebuie modificat n toate nregistrrile aferente facturilor emise de acelfurnizor;
Anomalii la tergere: constau n faptul c anumite informaii ce se doresc a fi terse,fac parte dintr-un tuplu ce conine i alte date care sunt utile n continuare. Deexemplu, tergerea unei facturi din tabela Furnizori-Facturi, conduce la eliminareadin baza de date a furnizorului emitent.
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
6/32
Eliminarea acestor anomalii se poate realiza prin descompunerearelaiei n mai multe tabele, legate ntre ele prin restriciaintegritii refereniale.
2.2. Conceptul de dependene
Dependenelesunt legturi logice, ce se stabilesc ntre
atributele modelului relaional.Dependene funcionale
ntre dou atribute A i B exist o dependenfuncionaldac fiecrei valori a lui A i corespunde o
singur valoare a lui B (simbolizat AB).
6
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
7/32
CodFurnizor DenumireFurnizor
CodMaterial DenumireMaterial
Unei realizri a cmpului CodFurnizor i corespunde o singur realizare acmpului DenumireFurnizor. De asemenea, unei realizri a cmpuluiCodMaterial, i corespunde o singur realizare a cmpului
DenumireMaterial
Se numete dependen funcional complet,odependen funcional de forma A B n care B estedependent funcional de A, fr s fie dependent
functional de nici una din componentele lui A.
7
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
8/32
De exemplu, ntre grupul de cmpuri (NrFactura,
CodProdus) i Cantitate exist o dependenfuncional complet, deoarece cmpul Cantitatedepinde funcional deambele atribute ale grupului(NrFactur, CodProdus) fr s depind funcionalnumai de NrFactur sau de CodProdus.
(NrFactur, CodProdus) Cantitate NRFactur Cantitate CodProdus Cantitate
8
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
9/32
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
10/32
De exemplu, n relaia R1{CodSectie,NumarInventarMijlocFix,
MarcaAngajat}exist dependenemultivaloare (ntr-o secie lucreaz maimuli muncitori, la mai multe mijloace fixe).
Dac fiecare muncitor lucreaz la toatemijlocele fixe, atunci exist urmtoareledependene multivaloare:
CodSectieNumarInventarMijlocFix CodSectieMarcaAngajat
10
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
11/32
O dependenta tranzitiva poate fi stabilita pe baza dependentelor
functionale dintre 3 atribute :A,B,C.
11
B C.
A B A----- > C
Dependena multipl: exist o dependen multipl de laAlaB(A
B) atunci cnd o realizare a luiAdetermin mai multe realizri
ale luiB;
Exemple: NrFactur CodProdus; DataFactur NrFacturTrebuie observat faptul, c dac ntre dou atribute A i B exist o
dependen multivaloare (A B), atunci ntre A i B exist i odependen multipl (AB). Dac ntre A i B exist odependen multipl, asta nu nseamn c ntre cele dou atributeexist i o dependen multivaloare, deoarece n cazul
dependenelor multivaloare sunt necesare trei atribute.
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
12/32
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
13/32
Cod Denumire Domiciliu
01 Ionescu Bucuresti, str. Stefan cel Mare,nr.2
02 Popescu Ploiesti, str. Viitorului, nr.4
Numarcomanda Data Material1 Material2
11 01/01/2008 Ciment Var
12 02/01/2008 Ciment
13 02/01/2008 Var Nisip
13
Relatiile Persoana, respectiv Comanda nu respecta FORMA
NORMALA 1.
Relatia PERSOANA
Relatia Comanda
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
14/32
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
15/32
Forma normal 2 (FN2)
O relaie se afl in FN2 dac respect FN1 i dac oriceatribut noncheie se afl n dependen funcional
complet fa de cheia primar a relaiei.FN2 interzice existena dependenelor funcionale parialentre atributele cu rol de cheie primar i celelalte atribute.
EX:Relaia PieseComandate{NumrComand, CodPies,
Cantitate, PreUnitar, DenumirePies}nu se afl n FN2pentru c ntre (NumrComand, CodPies)iDenumirePiesexist o dependen parial:
(NumrComand, CodPies) DenumirePies
CodPies DenumirePiesOBS:Atribut noncheie este un atribut care nu intr n componenachei i pr imare
15
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
16/32
NumrComand CodPies Cantitate PretUnitar DenumirePies
1 01 100 20 Saiba
1 02 150 25 Rotor
2 01 200 20 Saiba
16
RelaiaMaterialeComandateprezint urmtoarele anomalii:Redundanpentru cmpurile care depind parial de cheiaprimar. Realizrile cmpuluiDenumirePies, se repet inutil.Anomalii la adugare: nu se pot aduga piese dac nu s-au fcutcomenzi pentru acestea;
Anomalii la modificare: dac se modific denumirea unei piese,atunci trebuie modificate toate nregistrrile care conindenumirea piesei respective;
Anomalii la tergere: tergerea unei comenzi poate conduce latergerea definitiv a unor piese.
RelaiaMaterialeComandate
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
17/32
Pentru aducerea relaiilor din FN1 n FN2, se parcurgurmtoarele etape:
Se identific eventualele dependene funcionale
pariale; Fiecare dependen funcional parial va genera
cte o relaie nou. O relaie nou format va avea castructur atributele participante n dependenafuncional parial;
Atributele determinante devin chei externe n relaiileiniiale i chei primare n relaiile nou formate.
17
18
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
18/32
Parcurgnd aceste etape, relaiaPieseComandate{NumrComand, CodPies, Cantitate,PreUnitar, DenumirePies}se va descompune n urmtoarelerelaii:
PieseComandate{NumrComand, CodPies, Cantitate,PreUnitar} i
Piese{CodPies, DenumirePies}
Forma normal 3 (FN3)
O relaie verific FN3 dac se afl n FN2 idac toate atributele noncheie sunt dependentefuncional netranzitiv de cheia primar a relaiei
( toate atributele care nu aparin cheii primares nu depind funcional de un alt atribut sauansamblu de atribute noncheie).
18
19
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
19/32
De exemplu, relaia Comand{NumrComand, Data,CodClient, DenumireClient}nu respect FN3, pentru c ntreNumrComandi DenumireClientexist o dependen
funcional tranzitiv:
19
NumrComand CodClientDenumireClientNumrComand-------DenumireClient
Pentru aducerea unei relaii din FN2 n FN3, se parcurgurmtoarele etape:
Se identific eventualele dependene funcionale tranzitive;
Determinantul noncheie mpreun cu atributul sau atributele
determinate funcional de ctre acesta, vor forma o nou relaie;
Determinantul noncheie devine cheie primar n relaia nou formati cheie extern n relaia iniial.
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
20/32
21
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
21/32
Forma normal Boyce-Codd (BCNF)
Relaiile din baza de date trebuie proiectate astfel nct s nuaib nici dependene pariale, nici dependene tranzitive,deoarece acestea duc la apariia anomaliilor de actualizare.Formele FN2i FN3 elimin dependenele pariale i tranzitivepe cheia primar.
Forma normal Boyce-Codd se bazeaz pe dependenelefuncionale care iau n consideraie toate cheile candidat
dintr-o relaie. Pentru o relaie cu o singur cheie candidat, formele FN3i
BCNF sunt echivalente.
Forma normal Boyce-Codd: o relaie se afl n BCNF dac inumai dac fiecare determinant este o cheie candidat.
Pentru a testa dac o relaie este n BCNF, se identific toideterminanii i se verific dac sunt chei candidat. Amintim cun determinant este un atribut sau un grup de atribute, decare alte atribute sunt total dependente funcional.
21
22
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
22/32
Proiectarea modelului relaional prin normalizare
Proiectarea BD prin procedeul de normalizare presupuneobinerea modelului relaionalal BD prin aplicarea formelornormale asupra unui set de atribute ce formeaz iniial un singurtabel. Aceast metod se poate aplica numai n cazul unor baze
de date de dimensiuni mici.Conceperea bazelor de date prin normalizare se poate realizaprin:
a. descompunerea relaiei universale iniiale n mai multe
tabele;b.compunerea unei mulimi de atribute n tabele utiliznd matricea
dependenelor
c.Compunerea unei multimi de atribute in tabele utiliznd graful
dependenelor.
22
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
23/32
2 Specif icarea regu l i lor de gestiune: diversele 24
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
24/32
2. Specif icarea regu l i lor de gestiune: diverselerestricii/condiii impuse datelor sunt atent studiate deoarece vorconstitui logica dependenelor dintre atribute i a regulilor devalidare.
Exemplu:- o factur este emis de un singur furnizor;- codul materialului este unic;
- o factur conine mai multe materiale ;
- furnizorii pot fi numai persoane juridice etc.Algoritmii de calcul sunt asimilai regulilor de gestiune.Exemplu:
RG5:Valoare_factura=Cantitate*Pret Unitar
24
25
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
25/32
3. Intocmirea dictionarului de date
Atributele inventariate se trec in dictionarul de date o singura data
cu respectarea urmatoarelor reguli:
-nu se trec atributele derivate/calculate-nu se trec atributele sinonime (Cod material, Simbol material)
-nu se trec grupurile de atribute repetitive.
25
Nr.atribut
Identificator Explicatie
1. CodFurnizor Cod Furnizor
2. DenumireFurnizor Denumirea furnizorului
3. AdresaFurnizor Adresa Furnizorului
4. NrFactura Numar Factura
5. DataFacturii Data Factura
26
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
26/32
4.Stabilirea dependentelor functionale
A.Graful dependentelor functionale
26
CodFurnizor
Denumirefurnizor
AdresaFurnizor
Nrfactura Data facturii
27
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
27/32
B.Matricea dependentelor functionale
Cod furnizor Denumire
furnizor
Adresa
furnizor
Numar
factura
Data facturii
Cod
furnizor1 1
Denumire
furnizor1 1
Adresa
furnizor1 1
Numarfactura
1 1T 1T 1
Data facturii
27
4 Pentru atributele rmase izolate se vor cuta grupuri de cmpuri ce pot28
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
28/32
4. Pentru atributele rmase izolate se vor cuta grupuri de cmpuri ce potconstitui determinani ai acestora. Toate atributele (grupuri de atribute)determinante devin chei candidate. Cheile candidate ce vor aparine aceluiaitabel sunt caracterizate prin dependene funcionale reciproce.
(CodFurnizorDenumireFunizor, CodFurnizorAdresa)
5. Se stabilesc c heile prim are dintre atributele candidate.Exemplu:CodFurnizor,NumrFactur
6. Cu fiecare cheie primar i atributele determinate direct (netranzitiv) de
aceasta se va forma o relaie (un tabel).Exemplu:Furnizor(CodFurnizor, DenumireFurnizor, AdresaFurnizor)
Factur(NumrFactur, Data, CodFurnizor)
7. Se stabilesc cheile externe (cmpuri ce sunt chei primare n alte tabele)
Exemplu:
Furnizor(CodFurnizor, DenumireFurnizor, AdresaFurnizor)
Factur(NumrFactur, Data, CodFurnizor)
28
29
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
29/32
Exemplu de proiectare a BD prin
descompunerea relaiei universale Relaia universal este o relaie alctuit din toate atributele identificate,
necesare aplicaiei. Normalizarea presupune descompunerea relaieiuniversale iniiale n alte relaii, prin trecerea gradual a acesteia prin fiecareform normal.
Exemplu: n vederea obinerii unei baze de date necesare evidenei crediteloracordate clienilor, se au n vedere urmtoarele reguli de gestiune:
un client poate ncheia mai multe contracte. Un contract e ncheiat de un
singur client.
rambursarea contractelor de credit, se poate realiza prin dispoziii de plat. O
dispoziie de plat se refer la un singur contract de credit, iar pentru uncontract, se pot ntocmi mai multe dispoziii de plat.
Se consider iniial, relaia universal R{CodClient, Denumire, Domiciliu,NrContract, DataContract, ProcentDobanda,ProcentComision, ValoareCredit,
NumrDP, DataDP, SumaDP}
29
30
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
30/32
FN1. Relaia nu respect FN1, deoarece nu toateatributele sunt elementare. Atributul Domiciliu se descompune n
atributele Adresa i Localitate (intereseaz pentru aplicaie o
grupare/selectare a informaiilor dup localiti). Astfel, relaiauniversal devine:
R{CodClient, Denumire, Localitate, Adres, NrContract,DataCon tract, ProcentDobanda,ProcentCom ision,
ValoareCredit, NumrDP, DataDP, SumaDP}
Se observ ca n relaia R, exist anomalii la actualizare.
Acestea vor fi eliminate n urmtoarele forme normale.
FN2: Relaia R respect FN2
30
31
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
31/32
FN3: Relaia Rnu respect FN3. Exist urmtoareledependene funcionale tranzitive:
(1)NumarDP CodClient Denumire
(2)NumarDP CodClient Localitate
(3)NumarDP CodClient Adresa
(4)NumarDP NrContract DataContract
(5)NumarDP NrContract ProcentComision (6)NumarDP NrContract ProcentDobanda
(7)NumarDP NrContract ValoareCredit
(8)NumarDP NrContract CodClient
Vor rezulta urmtoarele relaii: Clieni(Codclient, Denumire, localitate, Adresa)
Contract(NrContract,DataContract,ProcentComision,Proc
entDobanda,ValoareCredit, Codclient)
31
-
8/14/2019 Baze de Date Curs 2-3 Fabbv
32/32