Sunteți pe pagina 1din 7

BAZA DE DATE PENTRU

GESTIUNEA APROVIZIONARII
LA UN SUPERMARKET
Un supermarket urmeaza sa implementeze o baza de date pentru evidenta
informatizata a aprovizionarii. Pentru fiecare produs ce poate constitui obiectul
aprovizionarii, alaturi de nume (denumire produs) sunt inregistrate urmatoarele
informatii: unitatea de masura (UM), stoc initial si prêt catalog; fiecarui produs I
se atribuie un cod unic (cod produs).
Supermarket-ul se aprovizioneaza cu produse de la mai multi furnizori,
identificati prin: cod furnizor, nume frunizor, adresa furnizor, numar telefon, iar
in momentul aprovizionarii de la un furnizor se intocmeste o factura pe care sunt
consemnate: numar factura, data factura si cod furnizor.
Aceste facturi sunt achitate prin documente de plata pentru care se
completeaza numar document plata, tip document plata si data document plata.
Aprovizionarea supermarket-ului se face pe baza unei comenzi prin care
se pot solicita mai multe produse. In comanda sunt specificate: numar comanda,
data comanda, data livrare, ora livrare si cod curier.
Produsele sunt aduse la supermarket de catre curieri identificate prin: cod
curier, nume curier, adresa curier; o comanda fiind livrata de un singur curier.

Consideram urmartorul dictionar de atribute:

CodProdus, DenumireProdus, UM, StocInitial, PretCatalog, CodFurnizor,


NumeFurnizor, AdresaFurnizor, NumarTelefon, NumarFactura, DataFactura,
IDFactura, NumarComanda, DataComanda, DataLivrarii, OraLivrarii,
CantitateaComandata, CodCurier, NumeCurier, AdresaCurier,
NumarDocumentPlata, DataDocumentPlata, SumaPlata,
NumarTotalProduseComandate.

Reguli de gestiune:

(1) Preturile din catalog sunt fixe.

(2) O livrare este realizata de un singur curier.

(3) Un curier poate realize mai multe livrari.

(4) Se poate solicita pe aceeasi comanda mai multe produse.

(5) Cu un document de plata se pot achita mai multe facturi.

(6) Un furnizor poate da un singur fel de produs.

(7) O factura corespunde unui singur furnizor.

(8) Pot exista documente de plata cu acelasi numar, dar de tipuri diferite.
Intocmirea Dictionarului de Date:

Pentru intocmirea dictionarului de date inlaturam din dictionarului de


attribute elementele sinonime (IDFactura) si atributele calculate
(NumarTotalProduseComandate) rezultand urmatorul dictionar de date:

 C o Pd or d ,uDs e n u Pm or i dr e,uUs M, S t o c I ln, Pi ter i taC al ot agC , o d F ur,r n i z o


 
 N u m e Fo u,rAr nd ir ze s ai zFo, uNr ri nv, Ne lu m a rrFa, Da ca ttua F aa, c t u r

DD N u m a r Cd a,oDm a at an C oa, m D a nt ad L i i, Ov r raar L ii,v r a r i 
 
 C a n t i Ct a ot em a a n, Cd oa dt aC ,uN r ui emr e C, Au dr ir ee rs ae r,C u r i 
 N u m a r De no t cP u,lDma taat a D no tc Pu lm,aS teuam a P l a t a 
 

Stabilirea dependentelor functionale:

a) Dependenta functionala simpla:

CodProdus : → DenProdus
→ UM
→ StocInitial
→ PretCatalog (1)

NrFactura : → DataFactura
→ CodFz (7)

CodFz : → NumeFz
→ Adresa Fz
→ NrTel
→ CodProdus (6)

NrComanda : → DataComanda
→ DataLivrare
→ OraLivrare
→ CodCurier (2)

CodCurier : → NumeCurier
→ AdresaCurier

NrDocPlata : → DataDocPlata
TipDocPlata :

b) Dependente functionale multivaloare:

CodCurier →→ NrComanda (3)


NrComanda →→ CodProduse (4)
NrDocPlata →→ NrFactura (5)
TipDocPlata

Chei primare:

CodProdus NrComanda
CodFz si
NrFactura CodProdus
NrComanda
CodCurier NrFactura
NrDocPlata + TipDocPlata si
NrDocPlata

Atribute izolate:

NrComanda
si → CantitateaComandata
CodProdus

NrFactura
si
NrDocPlata
si → SumaPlata
TipDocPlata

Construirea tabelelor:

Produse ( CodProdus, DenProdus, UM, StocInitial, PretCatalog )


Furnizori ( CodFz, NumeFz, AdresFz, NrTel, CodProdus )
Facturi ( NrFactura, DataFactura, CodFz )
Comenzi ( NrComanda, DataComanda, DataLivrare, OraLivrare, CodCurier )
Curieri ( CodCurier, NumeCurier, AdresaCurier )
DocumentPlata ( NrDocPlata + TipDocPlata, DataDocPlata )
ProduseComandate ( NrComanda, CodProdus, CantitateComandata )
PlatiFacturi ( NrFactura, NrDocPlata + TipDocPlata, SumaPlata )

Modelul Relational:
Produse ProduseComandate ∞ 1 Comenzi
CodProduse 1 NrComanda NrComanda
DenProduse 1 ∞ CodProdus DataComanda
UM CantComandata DataLivrare
StocInitial OraLivrare ∞
PretCatalog CodCurier

1 Furnizori Curieri 1
CodFz CodCurier
NumeFz NumeCurier
AdresaFz AdresaCurier
∞ NeTel
ddddddddd CodProdus
d

Facturi PlatiFacturi 1 DocumentePlata


NrFactura 1 ∞ NrFactura NrDocPlata +
DataFactura NrDocPlata + ∞ TipDocPlata
CodFz ∞ TipDocFactura DataPlata
LunaPlata

In tabelele modelului realizat se vor stabili urmatoarele proprietati:

a) in cadrul tabelei “ Produse ”, campul “ UM “ poate lua valorile: buc, l, kg;


b) campul “ CodFz “ din tabela “ Facturi “ sa poata fi selectata prin
intermediul unei liste in care s figureze codurile din tabela Fz;
c) “ DataLivrare “trebuie sa fie ulterioara ( sau cel mult aceeasi )
momentului “ DataComandata “;
d) Tipul documentelor de plata pentru achitarea facturilor poate lua valorile:
“ ordin de plata “, “ chitanta “, “ foaie de varsamant ”;
e) Data facturii va fi implicit data curenta;
f) “ PretCatalog “ si “ CantComandata “ trebuie sa aibe valori mai mari de
zero;
g) la stabilirea tipurilor de date se va avea in vedere ca: Numele Furnizorului
poate avea lungimea maxima de 40 de caractere, iar selectarea produselor
25 de caractere.

QBE

Sa se afiseze toate facturile din anul curent emis de furnizor din Bucuresti;
Sa se afiseze lista alfabetica a produselor care au ca uitate de masura “buc“.
Sa se calculeze numarul de facturi pt fiecare furnizor in ultiml an;
Sa se calculeze numarul de comenzi effectuate de un curier;
Sa se calculeze numarul total de produse comandate.

Sa se creeze o tabela noua denumita ProduseNoi care sa contina denumirea


fiecarui produs si pretul afferent numai in cazul in care acesta este mai mic
de 20 lei;
Sa se modifice suma de plata micsorandu-se cu 10%. PlatiFact.

Sa se realizeze o interogar pentu a evidential pretul maxim al fiecarui


produs in fiecare UM;
Sa se calculeze valoarea fiecarui produs comandat;
Sa se calculeze numarul total de facturi pe fiecare furnizor pe anul current.

SQL

1.Sa se afiseze numele si adresele furnizorilor de la care supermarketul a


aprovizionat sucuri;
2.Sa se calculeze cantitatea medie aprovizionata la o comandadin fiecare
produs. Voi ordona lista descrescator, dupa cantitatea medie determinate;
3.Sa se afiseze lista furnizorilor de la care s-au realizat cel mult 4 facturi
dupa data de 1 ianuarie 2009;
4.Care este cel mai ieftin produs in 2008?;
5.Pe baza cantitatii comandate, sa se realizeze un clasament al primelor 3
produse solicitate de supermarket;
6.Sa se determine numarul de curieri cu care opereaza supermarket-ul din
fiecare localitate, rezultatele vor fi odonate alphabetic in functie de
localitate;
7.Sa se afiseze toate facturile emise in ultima luna de catre furnizorul din
localitatile al caror nume incepe cu “B” mare, afisarea se va realize
cronologic;
8.Sa se stearga toti furnizori care nu au emis factura in ultimul an.
9.Sa se calculeze numarul documentelor de plata care au fost necesare pentru
achitatrea fiecarui dintre facturi;
10Sa se afiseze in ordinea alfabetica tipurile documentelor de plata.