8/16/2019 Normalizare Depozit de Marfa
1/4
STEICI Radu-Cristian,
Student an III TST sgr. 2.3
Facultatea de Electronica si Telecomunicatii
NORMALIZARE BAZA DE DATE
-DEPOZIT MARFA-
In cele ce urmeaza am sa prezint o baza de date care are ca scop simularea unui Depozit de
marfuri.
-constrangerea de integritate a entitatii,
-constrangerea de integritate referentiala,
-baza de date contine cel putin 6 tabele,
-baza de date contine cel putin un table referential.
Ca si procedeu de normalizare am ales urmatoarele forme normale:
1NF
2NF
3NF
Pentru baza mea de date am in vedere urmatoarele concepte:
Clienti, cu atributele: idClient, numeClient, prenumeClient, adresaClient, telefonClient
Produse, cu atributele: idProdus, denProdus, marcaProdus, cantitateProdus, pretProdus
Angajati, cu atributele: idAngajat, numeAngajat, prenumeAngajat, adresaAngajat,
salarAngajat
Utilaje, cu urmatorul set de atribute: idUtilaj, modelUtilaj, producatorUtilaj, stareUtilaj
Cu precizarile: 1. Un client poate cumpara mai multe produse (asociere 1:N)
8/16/2019 Normalizare Depozit de Marfa
2/4
2. Un angajat poate conduce mai multe utilaje si un utilaj poate fi
condus de mai multi angajati (asociere N:M)
Se considera relatiile rezultate, supuse procesului de normalizare:
ClientiProduse (idClient, numeClient, prenumeClient, adresaClient, telefonClient, idProdus,denProdus, marcaProdus, cantitateProdus, pretProdus).
Relatia nu respecta forma normala 1NF, datorita faptului ca avem grupuri repetitive. Am
extras grupul repetitiv din relatia initiala si am creat o noua relatie care contine cheia primara a
tabelului initial si campurile care fac parte din grupul repetitiv. Ca atare, rezulta 2 relatii:
1NF
Clienti (idClient, numeClient, prenumeClient, adresaClient, telefonClient)
Ex:
idClient numeClient prenumeClient adresaClient telefonClient
ComandaProduse (idClient, idProdus, denProdus, marcaProdus, cantitateProdus,
pretProdus)
Ex:
idClient idProdus denProdus marcaProdus cantitateProdus pretProdus
Mai departe relatia ComandaProduse nu respecta forma normala 2NF, datorita
dependentelor partiale, prin faptul ca denProdus, marcaProdus, cantitateProdus, pretProdus,
determina doar idProdus, nu si idClient. Prin urmare, rezulta alte 2 relatii:
2NF
Produse (idProdus, denProdus, marcaProdus, cantitateProdus, pretProdus)
Ex:
idProdus denProdus marcaProdus cantitateProdus pretProdus
ProduseClienti (idClient, idProdus)
Ex:
idClient idProdus
8/16/2019 Normalizare Depozit de Marfa
3/4
AngajatiUtilaje (idAngajat, numeAngajat, prenumeAngajat, adresaAngajat, salarAngajat,
idUtilaj, modelUtilaj, producatorUtilaj, stareUtilaj).
Ca si in cazul precedent, noua relatie AngajatiUtilaje nu respecta cele 3 forme normale: 1NF,2NF, 3NF. Prin urmare, urmam procesul de normalizare.
Relatia nu respecta forma normala 1NF, datorita faptului ca avem grupuri repetitive. Am
extras grupul repetitiv din relatia initiala si am creat o noua relatie care contine cheia primara a
relatiei initiale si campurile care fac parte din grupul repetitiv. Ca atare, rezulta 2 relatii:
1NF
Angajati (idAngajat, numeAngajat, prenumeAngajat, adresaAngajat, salarAngajat)
Ex:
idAngajat numeAngajat prenumeAngajat adresaAngajat salarAngajat
OperatoriUtilaje (idAngajat, idUtilaj, modelUtilaj, producatorUtilaj, stareUtilaj)
Ex:
idAngajat idUtilaj modelUtilaj producatorUtilaj stareUtilaj
Mai departe relatia OperatoriUtilaje nu respecta forma normala 2NF, datorita
dependentelor partiale, prin faptul ca modelUtilaj, producatorUtilaj, stareUtilaj, determina doar
idUtilaj, nu si idAngajat. Prin urmare, rezulta alte 2 relatii:
2NF
Utilaje (idUtilaj, modelUtilaj, producatorUtilaj, stareUtilaj)
Ex:
idUtilaj modelUtilaj producatorUtilaj stareUtilaj
UtilajeOperatori (idUtilaj, idAngajat)
Ex:
idUtilaj idAngajat
8/16/2019 Normalizare Depozit de Marfa
4/4
Se observa ca relatia Utilaje nu respecta forma normala 3NF, datorita dependentei
tranzitive, atributele producatorUtilaj si stareUtilaj determinand doar atributul modelUtilaj, iar
modelUtilaj determina idUtilaj. Prin urmare, in urma aplicarii formei normale 3NF imi vor rezulta din
nou, alte 2 relatii.
3NF
UtilajeModel (idUtilaj, modelUtilaj)
Ex:
idUtilaj modelUtilaj
Model (modelUtilaj, producatorUtilaj, pretUtilaj)
Ex:
modelUtilaj producatorUtilaj pretUtilaj
In consecinta, in urma procesului de normalizare, baza mea de date contine un numar de 7
tabele:
1. Clienti (idClient, numeClient, prenumeClient, adresaClient, telefonClient)
2. Produse (idProdus, denProdus, marcaProdus, cantitateProdus, pretProdus)
3. ProduseClienti (idClient, idProdus)
4. Angajati (idAngajat, numeAngajat, prenumeAngajat, adresaAngajat, salarAngajat)
5. UtilajeOperatori (idUtilaj, idAngajat)
6. UtilajeModel (idUtilaj, modelUtilaj)
7. Model (modelUtilaj, producatorUtilaj, pretUtilaj)
Istoric:
/*
cheiePrimara PK
*/
Top Related