Documente Academic
Documente Profesional
Documente Cultură
TEMA PROIECT
S se proiecteze i s se modeleze o baz de date pentru:Fabrica
masini unelte achizitii/vanzari.
Aceast baz de date va fi conceput pe un model relaional
care va conine 7 tabele. n fiecare tabel sunt inserate cel puin 9
nregistrri.
Sunt utilizare urmtoarele tipuri de date:
modelul relaional al bazei de date;
tabele;
vederi;
funcii utilizator;
secvene;
declanatori;
date utilizator.
3. Crearea tabelelor
Pentru baza de date, am creat urmtoarele tabele :
Furnizor;
Produs;
Comanda;
Factura;
Stoc;
Cumparator;
Angajat.
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(3, 'DOBRE', 'LUIZA', '12-02-1967', '2671202203078', 'DOROBANTI, NR.22',
'0755456733', 'LUIZADOBRE@GMAIL.COM', 'DIRECTOR VANZARI', '12-08-2001',
'SUPERIOARE','3700.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(4, 'NEGOITA', 'GABRIEL', '07-02-1983', '1830207100573', 'STR. RACHITEI,
NR. 17', '0749646768', 'NEGOITAGABRIEL@YAHOO.COM','SUPERVIZOR', '09-13-2009',
'MEDII', '2300.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(5, 'DUMITRU', 'IUSTIN', '10-22-1965', '1651022443521', 'DOROBANTI,
NR.17', '0772314353', 'DUMITRUIUS@YAHOO.COM', 'OPERATOR VANZARI', '04-041998', 'MEDII', '1800.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(6,'BORCEA','MIHAI','12-29-1989', ' 189122968754','STR CRIZANTEMEI NR
25','0249875699','BORCEA1229@YAHOO.COM',' OPERATOR VANZARI' ,'06-05-2014',
'SUPERIOARE','2560.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(7,'CALIN','MARCEL','11-14-1981','1811114587624','ALEA GAROFITEI
NR5A','0795825556','BORCEA_1@GMAIL.CO.UK','ING PROGRAMARE CNC','03-112010','SUPERIOARE','8450.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(8,'CHIRITA','SIMONA','06-30-1972','2720630726489','SPLAIUL
INDEPENDENTEI NR 102','0215877964','CHIRITA_SIMO@GMAIL.COM','TEHNICIAN MU','07-10-1998','SUPERIOARE','6700.00');
insert into
angajat(codang,nume,prenume,datanasterii,CNP,adresa,telefon,email,functie,data
angajare,studii,salariu)
VALUES(9,'POPESCU','MIRUNA','02-06-1978','2780206562497','STR IZVORULUI
NR90','0725846975','POPUNA@YAHOO.COM','GRAPHIC DESIGNER','12-121999','SUPERIOARE','7500.00');
VALUES(6,'GHEORGHE','COSMIN','1891212697482','GL','900829','0725896566','STR
MIHAI BRAVU NR56');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(7,'PARASCHIVESCU','MATEI','1691104679534','ZL','786618','0786349563','B
LVD IULIU MANIU NR 78');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(8,'COMANESCU','IULIAN','1851209354486','KX','448556','0146587236','SOS
PATRIOTILOR NR 12');
INSERT INTO CUMPARATOR(CODCUMP,NUME,PRENUME,CNP,NRCI,SERIECI,TELEFON,ADRESA)
VALUES(9,'JIPESCU','CRISTIAN','1780108329966','CJ','887641','0458792956','SOS
OPORTUNITATII');
10
11
values(2,5,'4738902','Ioan
Elena','RO76BRDESV78567283353531','ioanelena@yahoo.co.uk','0768931343','Libert
atii,nr4');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(3,1,'234135','Zamfir
Didina','RO34BRDESV98765678923334','zamfiradelina@yahoo.com','0764224323',
'Constanta, Cartier Golgota, Nr. 54');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(4,7,'5776547','Luca
Diana','RO80WBAN2511000036603741','didi_luca86@yahoo.com','0742253555','Buleva
rdul Republicii, nr 17');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(5,8,'3732354','Iovan
Mirela','RO05RZBR0000060012238696','mirelaiov@gmail.com','0723537583','Aleea
Maracinilor ,nr56');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(6,2,'6724933','Mirica
Gabriel','RO93BTRL0410120579132422','mirica_gab@yahoo.com','0248763821','Blvd
Mantuirii nr8');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(7,4,'764927','Oprea
Teodor','RO42BTRL0410120579132433','o.teo@gmail.com','0452836284','Alee
Mocanita nr6');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(8,9,'729414','Andrei
Mirel','RO49RNCB0080005303200001','andrei_m@gmail.com','0351739299','Str
Victoriei nr 32');
insert into
Furnizor(codfurnizor,codfact,CUI,persoanacontact,IBAN,email,telefon,adresa)
values(9,6,'125729','Cozma
Roxana','RO22RNCB0080005630200002','rox_coz@yahoo.com','0745729321','Str
Margaritarului nr 78');
12
13
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(5,125,5,8,6,4,'4000.00','06-24-2005',1,19,'345673');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(6,126,5,1,4,2,'72000.00','02-02-2014',1,24,'743824');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(7,127,5,9,8,1,'29160.00','08-18-2012',6,24,'987632');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(8,128,6,3,1,6,'57000.00','04-03-2010',1,24,'843567');
INSERT INTO
FACTURA(codfact,nrinregistrare,codang,codcomanda,codcump,codfurnizor,pret,data
facturarii,cantitate,cotatva,CUI)
VALUES(9,129,6,5,3,5,'99900.00','07-06-2006',9,19,'486384');
14
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
CANTITATE, DATASTOC)
15
16
4.INTEROGARI
4.1. Select
1. S se afieze PRETURILE >=72000 din tabelul FACTURA
select pret
from FACTURA
where pret>= 72000;
17
18
4.2 Update
1. S se actualizeze data comenzi cu 01-01-2015 din tabelul comanda
pentru codul comenzii3
update comanda
set datacomanda = '01-01-2015'
where codcomanda= '3';
19
20
4.3. Delete
1.S se stearga angajatii cu studii medii.
delete from angajat
where studii = 'MEDII';
21
22
5.Vederi
1.Sa se creeze vederea detaliu care sa contina nume, prenume si cnp din tabelul
comparator.
create view detaliu as
select nume, prenume, cnp
from cumparator;
2.S se creeze vederea detaliu 1 care s conin numele, prenume, adresa, telefon
din tabelul angajat pentru persoanele care sunt nascute dupa 02-06-1982.
23
6.Indeci
S se creeze indecii client, personal, comanda pe baza tebelelor client,
angajati,comanda.
connect to magscule;
create index client
on client (nume, prenume,adresa);
24
connect to magscule;
create index angajati
on angajati (cnp, nume, prenume, adresa );
connect to magscule;
create index comanda
on comanda (cod_com, cantitate, cod_prod, achitat);
7.Declanatori
1. S se creeze declanatorul tr1 care sa adauge automat electrocasnice si stocul
=1.
Connect to magscule;
CREATE TRIGGER tr1 AFTER INSERT ON
comanda REFERENCING NEW ROW AS n FOR EACH ROW MODE DB2SQL
UPDATE electrocasnice SET electrocasnice.stoc=electrocasnice.stoc-1
WHERE cod_el=n.cod_prod;
select * from electrocasnice;
25
8. Join
1. S se afieze din tabelele client i angajati toate datele din
firma, utilizndu-se clauza join.
connect to magscule;
select *
from "DORINIK".client as client left outer join "DORINIK".angajati as angajati
on client.cod_client =angajati.cnp;
Concluzii
S-a creat o baz de date pe baza unei firme de vanzarii scule baze cu 4 tabele.
Pe baza acestor tabele s-au realizat interogri :
o client
o comanda
o angajati
26
o electrocasnice
Pentru realizarea aceste baze, s-au folosit:
-comenzi SQL: CREATE, ALTER, UPDATE, DELETE, DROP,
INSERT;
-clauze: GROUP BY, ORDER BY, JOIN, CASCADE, HAVING;
-funcii agregat: MIN, MAX, COUNT;
-funcii calendaristice: DATE, YEAR;
-funcii scalare: CONCAT, CHAR;
-expresia CASE;
-obiecte: vederi, indeci, declanatori;
-operatori: BETWEEN, ON, IN, LIKE
27
28