You are on page 1of 14

Proiectarea bazelor de date

Descriere
Sa se proiecteze o baza de date pentru un
magazin de tipul Showroom Auto care sa
tina evidenta: masinilor, testdrive-urilor,
vanzarilor, clientilor si angajatilor.
Cerintele clientului sunt:
Sa se tina evidenta masinilor cu
specificatiile lor.
Sa se tina evidenta angajatilor si a
clientilor.
Sa se tina evidenta testdrive-urilor
oferite clientilor.
Regulile structurale sunt determinate de entitatile: client,
masina, angajat, departament si legaturile dintre acestea
DEPARTAMENT
#id_departament
*den_departament AUTOMOBIL
*nume_sef_dep #nr_inregistrare
*telefon *an_fabricatie
*locatie

ANGAJAT
#cnp
*nume
*prenume
*adresa
*telefon
*salariu MODEL
*id_sef #id_model
*data_angajarii *nume_model
e-mail *marime_motor
*tip_combustibil
*grad_lux
*pret
TEST_DRIVE dotare_optionala
*id_test
*feedback
*cnp_tester

CLIENT
#id_client
*nume
*prenume
Intr-o prima faza a proiectarii se
obtine diagrama entitate-relatie
urmatoare:
DEPARTAMENT MODEL
#id_departament #id_model
*den_departament *nume_model TEST DRIVE
este sustinut #id_test
*nume_sef_dep *marime_motor
*telefon *tip_combustibil *feedback
*locatie *grad_lux este supus *cnp_tester
*pret
are
dotari_optionale

lucreaza la apartine

ANGAJAT
#cnp
*nume
*prenume are
*adresa
*telefon AUTOMOBIL
*salariu #nr_inregistrare
*id_sef *an_fabricatie
*data_angajarii
e-mail este cumparat

devine PERSOANA FIZICA


#CNP
telefon

cumpara
CLIENT este devine
#id_client
*nume PERSOANA JURIDICA
*prenume #cod_fiscal
este * fond_fiscal
Normalizarea:
Atributul dotari_optionale al entitatii
MODEL nu memoreaza o valoare
singulara, deci nu se afla in NF1. Prin
urmare vom crea o noua entitate,
DOTARE OPTIONALA care va memora
toate dotarile optionale posibile.
MODEL
#id_model are
MODEL *nume_model
#id_model *marime_motor
*tip_combustibil
*nume_model *grad_lux
*marime_motor *pret
*tip_combustibil apartine
*grad_lux
*pret DOTARE OPTIONALA
dotari_optionale #id_dotare
*tip_dotare
*pret_dotare
Normalizarea (cont.):
Toate entitatile au UID simplu deci ERD-ul
se afla in NF2.
Toate atributele nonUID depind doar de UID
si nu de alt atribut nonUID deci ERD-ul se
afla in NF3.
DEPARTAMENT TEST DRIVE
MODEL este supus #id_test
#id_departament
#id_model *feedback
*den_departament
*nume_model este sustinut *cnp_tester
*nume_sef_dep
*marime_motor
*telefon
*tip_combustibil
*locatie
*grad_lux are
are *pret

lucreaza la apartine

ANGAJAT
#cnp
*nume
*prenume
are
*adresa
*telefon AUTOMOBIL
*salariu #nr_inregistrare
*id_sef *an_fabricatie DOTARE OPTIONALA
*data_angajarii
apartine
#id_dotare
e-mail este cumparat *tip_dotare
*pret_dotare

devine PERSOANA FIZICA


#CNP
telefon

cumpara
CLIENT este devine
#id_client
*nume PERSOANA JURIDICA
*prenume #cod_fiscal
este * fond_fiscal
Rezolvarea relatiilor m:m
MODEL
#id_model este sustinut TEST DRIVE
*nume_model #id_test
*marime_motor *cnp_tester
*tip_combustibil *feedback
*grad_lux este supus
*pret

MODEL este efectuat


#id_model
TEST DRIVE
*nume_model este testat #id_test
*marime_motor *feedback
*tip_combustibil
*grad_lux
*pret

testeaza efectueaza

TESTER
*cnp
Rezolvarea relatiilor m:m (cont.)

AUTOMOBIL AUTOMOBIL determina


#nr_inregistrare #nr_inregistrare
*an_fabricatie *an_fabricatie

este cumparat CUMPARARE


*nr_factura
*garantie
cumpara *data

CLIENT CLIENT
#id_client #id_client
*nume *nume realizeaza
*prenume *prenume
In urma normalizarii si a rezolvarii
relatiilor m:m se obtine ERD-ul final
urmator:
DEPARTAMENT MODEL
#id_departament #id_model
*den_departament *nume_model
*id_sef_dep *marime_motor este testat este efectuat TEST DRIVE
#cod
*telefon *tip_combustibil
*feedback
*locatie *grad_lux
*numar_pasageri
are
*pret

lucreaza la apartine
ANGAJAT
#cnp
*nume testeaza efectueaza
*prenume
*adresa are TESTER
*telefon *cnp
*salariu AUTOMOBIL
*id_sef #nr_inregistrare
*data_angajarii *an_fabricatie DOTARE OPTIONALA
e-mail #id_dotare
determina *tip_dotare
*pret_dotare

CUMPARARE este determinata


*nr_factura devine PERSOANA FIZICA
*garantie #CNP
*data telefon
este realizata
realizeaza
CLIENT este
#id_client
devine PERSOANA JURIDICA
*nume
*prenume #cod_fiscal
este * fond_fiscal
Agavriloaie Sorin Andrei
Ion Bogdan
Mantu Adrian Lucian
Rezmerita Cosmin Valentin
Tofan Alexandru Alin

You might also like