Normalizare
Factura
Proces normalizare - etape
● Stabilirea dicționarului atributelor și a regulilor de gestiune
(restricţiilor) ce se aplică acestora.
● Eliminarea sinonimelor și a celor derivate din altele.
● Identificarea cheilor primare.
● Stabilirea dependențelor dintre atribute ( matricea
dependențelor funcționale, graful dependențelor
funcționale, lista dependentelor functionale)
● Determinarea tabelelor în FN3, a restricțiilor și a legăturilor
2
Studiu de caz
Studiu de caz
4
Reguli de gestiune
5
6
Cheile primare sunt
# NrFactura IBANClient este cheie candidat
# CodClient pentru client, dar preferăm
# CodProdus alegerea câmpului CodClient drept
cheie primară.
Dependențele funcționale pot fi reprezentate sub formă de
listă, sub formă de graf sau sub formă de matrice a
dependențelor funcționale.
7
Lista dependențelor funcționale
NrFactura → DataFactura, DataScadenta, CodClient, CotaTVA
CodClient → DenumireClient, LocalitateClient,
IBANClient, TelefonClient, AdresaClient
CodProdus → DenumireProdus, UnitateMasura
NrFactura+CodProdus → Cantitate, Pret
8
a). Determinarea dependentelor funcționale dintre atribute –
chei candidat
9
b). Stabilitea determinanților compuși pentru atributele rămase
libere
10
b). Stabilitea determinanților compuși pentru atributele rămase
libere
11
c). Determinarea dependentelor funcționale dintre atribute –
eliminarea dependențelor funcționale reciproce
12
d). Determinarea dependentelor funcționale tranzitive (FN3)
13
Graful
dependențelor
funcționale
14
Modelul relațional al BD (FN3)
15
Modelul
relațional al BD
Restrictiile de integritate
Restrictia PK:
RI1. NrFactura este PK in tabelul Factura
RI2. CodClient este PK in tabelul CLient
….
RI5. CodClient din Factura este FK pentru tabelul Client
RI6. NrFactura din FacturaProdus este FK pentru Factura
RI7. CodProdus din FacturaProdus este FK pentru Produs
RI8. Cantitate > 0
RI9. Pret >0
RI10. DenumireClient <> NULL
….