Documente Academic
Documente Profesional
Documente Cultură
Problema 1. S se extrag din tabelele bazei de date toate informaiile aferente unei singure
facturi, introdus de la tastatur de ctre utilizator. De exemplu, se extrag toate datele care
urmeaz a fi listate pe factura emis ctre un client (figura de mai jos reprezint exemplul de
factur folosit pentru introducerea datelor n laboratorul 2).
Ce format v ateptai s aib datele estrase din baza de date?
Rezolvare: n esen, este necesar unirea tuturor datelor aflate n acest moment stocate n cele 5
tabele ale bazei de date. Pentru a ajunge la rezultatul final se poate proceda n dou feluri: fie
crend o singur interogare complex, fie crend mai multe interogri intermediare. Vom
compara cele dou abordri, pentru a evalua avantajele si dezavantajele.
1. Se agreg datele din toate tabelele printr-o singur nregistrare. Se unesc datele din tabelele
Parteneri, Facturi, Coninut_Fact, Produse i Istoric_Pret. Se filtreaz datele dup numrul
facturii, printr-un parametru. Se salveaz interogarea cu numele ListareFactura_1.
1
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
2
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
2.2. Se unesc datele din tabelele Produse i Istoric_Pret. Se salveaz interogarea cu numele
ListareFactura_22.
Se ruleaz interogarea.
3
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
Rezolvare:
1. Se creeaz o integrare care extrage ultima tranzacie pentru fiecare produs. Aceast interogare
este una de tip Select Query. Se salveaz interogarea sub numele MakeTableStoc_1.
2. Se creeaz o interogare care stocheaz n tabelul Stoc valorile stocului curent, mpreun cu
data ultimei facturi cu care s-au tranzacionat produse. Pentru a crea o interogare de tip Make
Table, se urmeaz paii:
4
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
2.1. Se creeaz, n Design View, o interogare Select Query care extrage datele necesare. n acest
caz, sursa de date este o interogare (MakeTableStoc_1) i un tabel (Produse). Se traseaz relaia
ntre cmpul CodProd al interogrii MakeTableStoc_1 i cmpul Cod al tabelului Produse,
pentru a evita extragerea unui produs cartezian.
2.2. Se convertete interogarea Select Query ntr-una Make Table prin selectarea filei Query
Tools Design, opiunea Make Table. Rezultatul este apariia ferestrei din figura urmtoare, n
care se poate introduce sau selecta tabelul de destinaie. n acest caz, deoarece tabelul Stoc nu
exist, se introduce de la tastatur denumirea lui.
5
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
Problema 3. Se modific toate preurile curente ale produselor din tabelul Istoric_Pre cu zece
puncte procentuale (10%). Se consider c data curent este 20.10.2014.
Rezolvare:
1. Se creeaz o interogare Select Query care va extrage toate nregistrrile din tabelul
Istoric_Pret cu preul n perioada de valabilitate (data curent se afl ntre data de nceput i data
de sfrit a preului).
2. Se convertete interogarea Select Query ntr-una Update prin selectarea filei Query Tools
Design, opiunea Update. Rezultatul este apariia n cadrul zonei de output a rndului Update
To. Se introduce n linia Update To a cmpului PU expresia care calculeaz noua valoare (se
poate folosi Expression Builder), conform figurii urmtoare:
6
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
4. Rezultatul interogrii de tip update va fi cel din fereastra de mai jos. Pentru comparaie se
poate vedea varianta iniial a tabelului Istoric_Pre.
7
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
3. Se creeaz o a doua interogare Select Query, care extrage cantitatea aferent ultimei tranzacii.
Dat fiind c una din sursele de date este interogarea UpdateStocCumparari_1, pentru a evita
produsul cartezian, se vor crea 2 relaii: intre CodProd i Continut_Fact.CodProd respectiv ntre
MaxofData i Facturi.Data. n acest fel ne asigurm c se extrag, pe de o parte doar facturile care
au data egala cu ultima factura, iar pe de alta parte dintre facturile nregistrate cu data respectiv
doar produsul cu codul care prezint interes (introdus ca parametru). Se convertete interogarea
ntr-una de tip Make Table, iar numele tabelului creat va fi Actualizare_Stoc. Se salveaz
interogarea cu numele UpdateStocCumparari_2.
4. Se creeaz o interogare Update care adun la stocul anterior din tabelul Stoc, cantitatea de pe
aceast ultim factur. Atenie, pentru a evita produsul cartezian, se creeaz o relaie ntre
Stoc.Cod i Actualizare_Stoc.CodProd. Se salveaz interogarea cu numele
UpdateStocCumparari_3.
8
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
5. La rulare se va afia mesajul de avertizare You are about to update 1 row(s). Rezultatele
comparative (nainte de rulare i dup rulare) sunt afiate n figura urmtoare, diferenele fiind
subliniate:
Problema 5. Pentru a putea face descrcarea de gestiune (folosind metode ca FIFO sau LIFO)
e nevoie ca intrrile i ieirile s fie afiate mpreun (ntr-o interogare sau tabel). S se separe pe
o coloan toate cumprrile de produse, iar pe alt coloan toate vnzrile de produse.
Vom rezolva aceast problem astfel nct rezultatele s se stocheze ntr-un tabel denumit
Fi_Magazie care va conine cmpurile: Data Factur, Numr Factur, Cod Produs, Cantitate
Cumprat, Cantitate Vndut.
Rezolvare:
1. Se creeaz tabelul Fi_Magazie care conine coloanele indicate.
2. Se construiesc dou interogri de tip Select Query, care extrag toate cumprrile respectiv
toate vnzrile de produse. Se salveaz cu numele Fisa_Magazie_C respectiv Fisa_Magazie_V.
9
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
3. Se modific cele dou interogri din Select Query n Append Query. Modificarea se face prin
selectarea filei Query Tools Design i a opiunii Append. Rezultatul este apariia unei ferestre
n care trebuie introdus tabelul n care se face adugarea nregistrrilor (n cazul acesta tabelul
Fisa_Magazie vezi figura urmtoare)
4. n zona de output a nregistrrii apare un nou rnd n care se poate specifica n ce cmp vor fi
adugate datele. Se vor alege cmpurile de destinaie conform figurii urmtoare.
10
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
11
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
12
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
3. Se creeaz o nou interogare i se vizualizeaz n SQL View (fereastra va conine doar clauza
SELECT, care se terge).
4. Se copiaz codul SQL din prima interogare Select, se scrie de la tastatur clauza UNION,
dup care se copiaz codul SQL al celei de-a doua interogri. Atenie: interogrile Union
funcioneaz doar dac interogrile Select din care sunt compuse extrag acelai numr de
cmpuri. Se salveaz sub numele UnionFisaMagazie.
5. Se testeaz rezultatul, care va fi cel din figura urmtoare. Este cel ateptat?
13
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
7. Se repet punctul 4.
Atenie: Care este rezultatul unei interogri de tip Join creat pe baza interogrilor
UnionFisaMagazie_C i UnionFisaMagazie_V? Cum i de ce difer fa de interogarea Union?
Problema 8. Care este ponderea fiecrui produs n totalul veniturilor din vnzri? Se salveaz
interogarea final sub numele PondereVanzariProdus.
Rezolvare:
14
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
15
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
produs n veniturile aduse de produsul respectiv). Se salveaz interogarea final sub numele
VenitProdus.
Problema 11 Care este profitul adus de un vnzrile unui produs ntr-o perioad aleas de
utilizator/manager (de ex. laptopuri)? Profitul se calculeaz ca sum a profiturilor aduse de
fiecare vnzare (Cantitate Vndut * (Pre Vnzare Pret Cumprare)). Se salveaz interogarea
final sub numele ProfitProdus. Care sunt cele mai profitabile produse?
Problema 12 Care sunt regiunile (localitile) care aduc cele mai mari vnzri. Dar cele din
care se fac cele mai mari aprovizionri?
Probleme Propuse
Problema 1. S se extrag numrul de abonamente valabile de fiecare tip, pentru liniile de
troleibuz. Se presupune c data curent este 15.12.2014.
Problema 2. S se extrag capacitatea total de transport a mijloacelor de transport aferente
fiecrei linii. Rezultatul s conin numrul liniei i capacitatea aferent i s fie stocat n tabelul
CapacitatiTransport.
Problema 3. Se creeaz o nou staie Fabrica de bere. S se creeze o interogare care s
introduc o staie preluat de la tastatur pe traseul liniei selectate de utilizator, avnd poziia
introdus de utilizator. La rularea interogrii se introduce staia Fabrica de Bere pe traseul liniei
25 pe poziia 2.
Sugestie: se vor utiliza un Append Query i dou Update Query.
Soluii
Problema 1
Problema 2
16
Universitatea Babe-Bolyai din Cluj-Napoca
Facultatea de tiine Economice i Gestiunea Afacerilor Lucrri de laborator
Departamentul de Informatica Economic Baze de date i programe
Problema 3
17