Sunteți pe pagina 1din 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)

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

ProduseClienti (idClient, idProdus)


Ex:
idClient

idProdus

cantitateProdus

pretProdus

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

UtilajeOperatori (idUtilaj, idAngajat)


Ex:
idUtilaj

idAngajat

stareUtilaj

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
*/

S-ar putea să vă placă și