baza de date pentru gestiunea aprovizionarii la un supermarket
TRANSCRIPT
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:
DD
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 : DataDocPlataTipDocPlata :
b) Dependente functionale multivaloare:
CodCurier NrComanda (3)
NrComanda CodProduse (4)NrDocPlata NrFactura (5)TipDocPlata
Chei primare:
CodProdus CodFz NrFactura NrComanda CodCurier NrDocPlata + TipDocPlata
NrComanda si CodProdus
NrFactura 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
1ProduseComandate ∞ 1 Comenzi
CodProduse NrComanda NrComanda
DenProduseUM
StocInitialPretCatalog
1 ∞
CodProdusCantComandata
DataComandaDataLivrareOraLivrareCodCurier
1
∞ dddddddddd
Furnizori Curieri 1
CodFzNumeFzAdresaFz
NeTelCodProdus
CodCurierNumeCurierAdresaCurier
Facturi1 ∞ ∞
PlatiFacturi 1
∞
DocumentePlataNrFactura
DataFacturaCodFz
NrFacturaNrDocPlata +
TipDocFacturaLunaPlata
NrDocPlata + TipDocPlata
DataPlata
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.