You are on page 1of 11

SuperMarket

Proiectarea bazelor de date

Proiectarea bazelor de date


Descriere
Sa se proiecteze o baza de date pentru
un magazin de tipul SuperMarket care
sa tina evidenta: produselor, evolutia
preturilor, vanzarilor pe case de marcat,
clientilor, furnizorilor si angajatilor

Proiectarea bazelor de date


Cerintele clientului sunt:
- sa se tina evidenta preturilor produselor
- sa se grupeze produsele pe categorii

- sa se tina evidenta clientilor prin


intermediul unui card de inregistrare
- sa se tina evidenta vanzarilor pe case
de marcat pentru diferite perioade si
pentru fiecare client
- sa se calculeze valoarea cosului pentru
un client
- sa se tina evidenta angajatilor (salarii,
data angajarii, date personale) pe
departamente
- pentru angajati sa se elaboreze
structuri ierarhice de tipul coordonat:
coordonator

Proiectarea bazelor de date


Regulile structurale sunt determinate de entitatile: client, produs,
furnizor, angajat, departament si legaturile dintre acestea

CLIENT
# card_client
* nume_client
* prenume_client
* cnp

FURNIZOR DEPARTAMEN
# id_furnizor T
* den_furnizor # id_dept
* adresa * den_dept
* telefon *nume_sef
* e-mail * telefon
* locatie

PRODUS ANGAJAT
# id_produs # id_angajat
*denumire_prod * nume_angajat
*categoria * pren_angajat
*prt_unitar * data_angajarii
* UM * profesia
*stoc * salariu
* id_sef

Proiectarea bazelor de date


CLIENT
# card_client
* nume_client
* prenume_client
* cnp DEPARTAMENT
# id_departament
cumpara * denumire_departament
* nume_sef_departament
m:m * telefon
* locatie
este cumparat are Intr-o prima faza
PRODUS
# id_produs
1:m a proiectarii se
* denumire_produs
* prt_unitar
lucreaza
obtine diagrama
* unitate_de_masura
* stoc
ANGAJAT
# id_angajat
entitate-relatie
este oferit
* nume_angajat
* prenume_angajat lucreaza
alaturata
* data_angajarii
1:m * profesia este condus
* salariu
ofera
* id_sef
FURNIZOR conduce
# id_furnizor 1:m
* denumire_furnizor
* adresa
* telefon
* e-mail
Proiectarea bazelor de date
Rezolvarea relatiei m:m

CLIENT
# card_client CLIENT
* nume_client # card_client
* prenume_client * nume_client realizeaza
* cnp * prenume_client
* cnp 1:m

este realizata
cumpara VANZARE
m:m # data
# casa_marcat
e determinata * nr_bucati
este cumparat PRODUS
# id_produs 1:m
PRODUS * denumire_produs determina
# id_produs * prt_unitar
* denumire_produs * unitate_de_masura
* prt_unitar * stoc
* unitate_de_masura
* stoc

Proiectarea bazelor de date


PRODUS
# id_produs
* denumire_produs
* prt_unitar
* unitate_de_masura
* stoc

PRODUS Istoricul
preturilor se
# id_produs
* denumire_produs

realizeaza
* unitate_de_masura
* stoc are
1:m
ISTORIC_PRET prin
modelarea
apartine # data_inceput
o data_sfarsit

timpului
* pret

Proiectarea bazelor de date


CLIENT
Diagrama Entitate- Relatie
# card_client DEPARTAMENT
* nume_client # id_departament
realizeaza
* prenume_client * denumire_departament
1:m * nume_sef_departament
* cnp
este realizata * telefon
VANZARE * locatie
# data
# casa_marcat are
e determinata
PRODUS 1:m
# id_produs 1:m
lucreaza
* denumire_produs determina
* categoria
* unitate_de_masura are
ANGAJAT
* stoc 1:m # id_angajat
ISTORIC_PRET * nume_angajat
apartine # data_inceput
este oferit * prenume_angajat
o data_sfarsit * data_angajarii
* pret
1:m * profesia este condus
ofera * salariu
* id_sef

FURNIZOR conduce
# id_furnizor 1:m
* denumire_furnizor
* adresa
* telefon
* e-mail

Proiectarea bazelor de date


Normalizare:
- fiecare atribut memoreaza o valoare singulara deci cele doua entitati se gasesc in FN1
- entitatea PRODUS contine un UID simplu, fiind in FN1 este implicit si in FN2
- entitatea ISTORIC_PRET contine un UID compus: (id_produs,data_inceput) determinat de o
relatie barata. Atributele data_sfarsit si pret depind de intreg UID, deci este in FN2
- entitatea ISTORIC_PRET contine atributul nonUID data_sfarsit. Acesta depinde doar de UID si
nu de atributul nonUID pret. Acelasi lucru e valabil si pentru atributul nonUID pret care depinde
doar de UID, prin urmare entitatea este si in FN3
-pentru entitatea ISTORIC atributele nonUID: denumire_produs, unitate_de_masura, stoc
depind de UID (nu depind de atribute nonUID) deci entitatea se gaseste in FN3

PRODUS
# id_produs
* denumire_produs
* unitate_de_masura
* stoc are
1:m
ISTORIC_PRET
apartine # data_inceput
o data_sfarsit
* pret

Proiectarea bazelor de date


Reguli procedurale:
Se vor realiza proceduri
pentru:
- determinarea valorii cosului
unui client
- afisarea orarului de lucru al
angajatilor
(casieri/case,
soferi/masini_aprovizionare
etc.)

Proiectarea bazelor de date


Proiectarea bazelor de date

You might also like