Proiect Baze de Date - Coser Alexandru

17
ACADEMIA DE STUDII ECONOMICE BUCUREŞTI FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ PROIECT – BAZE DE DATE –

description

proiect bd ase cibernetica

Transcript of Proiect Baze de Date - Coser Alexandru

Page 1: Proiect Baze de Date - Coser Alexandru

ACADEMIA DE STUDII ECONOMICE BUCUREŞTIFACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

PROIECT– BAZE DE DATE –

Propunător: Coşer AlexandruAnul II, Seria B, Grupa 1027

Profesor coordonator: Vlad Diaconiţă

Page 2: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Evidenţa fotografilor liberi profesionişti

Baza de date realizează o evidenţă financiară a fotografilor liber profesionişti. Aceştia au o clientelă variată şi ocazională efectuând servicii de fotografiere de tip evenimente (exemple: nunţi, botezuri, evenimente corporate, şi altele).

Se ştie că fiecare fotograf realizează serviciile cu un anumit echipament din dotare, specificat prin denumire, valoare (preţ) şi categoria din care face parte (Aparat foto, Obiectiv, Blitz, Accesorii).

Fotografii realizează un anumit număr de fotografii, la un tarif pe fotografie impus de aceştia pentru fiecare comandă intermediată, în funcţie de preferinţele clientului. Comenzile sunt înregistrate cu un număr de comandă la data efectuării serviciului de fotografie, iar valoarea comenzii este încasată pe loc.

Odată ce a fost efectuată comanda la locul evenimentului, fotograful o va executa ulterior la un laborator foto agreat de acesta dintr-o anumită locaţie, urmând ca apoi comanda să fie finalizată.

Schema conceptuală a bazei de date

Crearea tabelei FOTOGRAFI- 2 -

Page 3: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

create table fotografi(id_fotograf char(3),nume varchar2(10),prenume varchar2(20),tarif_foto_lei number(3,2),constraint fotograf_pk primary key (id_fotograf));

Crearea tabelei ECHIPAMENTE_FOTO

create table echipamente_foto(id_echipament char(3),denumire varchar2(30),categorie varchar2(10),valoare number(5,2),id_fotograf char(3),constraint echip_pk primary key (id_echipament),constraint foto_fk foreign key (id_fotograf) references fotografi (id_fotograf) );

Crearea tabelei CLIENŢI

create table clienti(id_client number(3),nume_client varchar2(10),prenume_client varchar2(20),telefon varchar2(10),constraint clienti_pk primary key (id_client));

- 3 -

Page 4: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Crearea tabelei LABORATOR_FOTO

create table laborator_foto(id_laborator char(2),nume_laborator varchar2(20),adresa varchar2(30),oras varchar2(25),constraint laborator_pk primary key (id_laborator));

Crearea tabelei COMENZI

create table comenzi(id_comanda char(3),data_c date,id_client number(3),id_laborator char(2),nr_fotografii number(4),id_fotograf char(3),constraint comenzi_pk primary key (id_comanda),constraint client_fk foreign key (id_client) references clienti (id_client),constraint fotograf_fk foreign key (id_fotograf) references fotografi (id_fotograf),constraint laborator_fk foreign key (id_laborator) references laborator_foto (id_laborator));

- 4 -

Page 5: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se modifice numele atributului telefon în telefon_client din tabela CLIENŢI.

alter table clienti rename column telefon to telefon_client;

Să se adauge în tabela CLIENŢI atributul email de tip varchar2(20).

alter table clienti add email varchar2(20);

Să se şteargă atributul creat anterior din tabela CLIENŢI.

alter table clienti drop column email;

Să se adauge o restricţie în tabela ECHIPAMENTE_FOTO în care atributul categorie să fie cheie unică.

alter table echipamente_foto add constraint categorie_uk unique (categorie);

Să se modifice dimensiunea câmpului categorie la varchar2(20).

alter table echipamente_foto modify categorie varchar2(20);

- 5 -

Page 6: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se modifice dimensiunea câmpului valoare din ECHIPAMENTE_FOTO la number(6,2).

alter table echipamente_foto modify valoare number(6,2);

Să se adauge în tabela COMENZI câmpul valoare_comanda number(5,2).

alter table comenzi add valoare_comanda number(5,2);

Să se modifice în tabela COMENZI numele câmpului data_c în data_comanda.

alter table comenzi rename column data_c to data_comanda;

Să se modifice în tabela COMENZI numele câmpului valoare_comanda în stare_comanda.

alter table comenzi rename column valoare_comanda to stare_comanda;

Să se modifice în tabela COMENZI tipul câmpului stare_comanda.

alter table comenzi modify stare_comanda varchar2(20);

Să se dezactiveze cheia unică categorie_uk din tabela ECHIPAMENTE_FOTO.alter table echipamente_foto disable constraint categorie_uk;

- 6 -

Page 7: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se adauge o restricţie de tip CHECK la tabela FOTOGRAFI prin care să se verifice dacă tariful pe fotografie înregistrat în tabelă este pozitiv.

alter table fotografi add constraint verifica_tarif_ck check (tarif_foto_lei > 0);

o Inserarea valorilor în tabela FOTOGRAFI.

insert into fotografi values (’f1’,’Grecescu’,’Mircea’,4);insert into fotografi values (’f2’,’Dan’,’Viorica’,3.5);insert into fotografi values (’f7’,’Coser’,’Alexandru’,5);insert into fotografi values (’f10’,’Nasturica’,’Adrian’,6);insert into fotografi values (’f8’,’Aurel’,’Virlan’,3);commit;

Să se afişeze toţi fotografii. (Coşer Alexandru).

select * from fotografi;

o Inserarea valorilor în tabela ECHIPAMENTE_FOTO.

insert into echipamente_foto values (’e11’,’Pentax P20’,’Aparat foto’,1800.50, ’f1’);insert into echipamente_foto values (’e12’,’Flash Pentax 120’,’Blitz’, 960.30, ’f1’);insert into echipamente_foto values (’e21’,’Nikon D3100’,’Aparat foto’,2799.90, ’f2’);insert into echipamente_foto values (’e22’,’Nikon Speedlite 80DX’,’Blitz’,860,’f2’);insert into echipamente_foto values (’e23’,’Nikon ASPX’,’Accesorii’,34.70,’f2’);insert into echipamente_foto values (’e71’,’Canon 5D’,’Aparat foto’,8999.90,’f7’);insert into echipamente_foto values (’e72’,’Canon Speedlight 580EX II’,2100,’f7’);insert into echipamente_foto values (’e73’,’Canon Battery Grip 5D2’,’Accesorii’,1100,’f7’);insert into echipamente_foto values (’e74’,’Maha Powerex Charger’,’Accesorii’,470,’f7’);insert into echipamente_foto values (’e75’,’Canon 24-105mm L IS’,’Obiective’,4399.90,’f7’);insert into echipamnete_foto values (’e01’,’Nikon D3s’,’Aparat foto’,21999.50,’f10’);insert into echipamnete_foto values (’e02’,’Nikon Speedlite SB910 ’,’Blitz’,2499.90,’f10’);

- 7 -

Page 8: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

insert into echipamnete_foto values (’e03’,’Filtru Hoya UV’,’Accesorii’,68,’f10’);commit;select * from ehipamente_foto;

o Inserarea valorilor în tabela CLIENŢI.

insert into clienti values (111,’Barsan’,’Andrei’,’0745678932’);insert into clienti values (121,’Barbu’,’Florin’,’0742135873’);insert into clienti values (123,’Anamariei’,’Radu’,’0765322119’);insert into clienti values (145,’Relu’,’Calota’,’0723683140’);insert into clienti values (256,’Munteanu’,’Stefan’,’0755325478’);insert into clienti values (711,’Curelaru’,’Narcisa’,’0745678932’);insert into clienti values (381,’Volocaru’,’Mihai’,’0732859125’);insert into clienti values (467,’Costin’,’Mihalache’,’0767318932’);insert into clienti values (583,’Galateanu’,’Mariela’,’0745678932’);insert into clienti values(968,’Marinela’,’Irina’,’0758743098’);commit;select * from clienti;

o Inserearea valorilor în tabela LABORATOR_FOTO. insert into laborator_foto values (’l1’,’Fuji Film’,’Str. Primaverii 4’,’Barlad’);insert into laborator_foto values (’l2’,’Agfa’,’Str. Republicii 21’,’Roman’);insert into laborator_foto values (’l3’,’Aden Albums’,’Str. Cihovschi 78’,’Brasov’);insert into laborator_foto values (’l4’,’Kodak’,’Str. Ghencea 17’,’Bucuresti Sector 5’);commit;select * from laborator_foto;

- 8 -

Page 9: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

o Inserearea valorilor în tabela COMENZI.

insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c11’,’12-May-2009’,111,’f2’,’l2’,100);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c12’,’28-Jun-2009’,121,’f1’,’l1’,320); insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c13’,’17 -Jul-2010’,123,’f7’,’l3’,150); insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c45’,’08-Jan-2010’,145,’f10’,’l4’,200); insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c56’,’30-Apr-2011’,256,’f7’,’l2’,80);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c71’,’24-Apr-2011’,711,’f2’,’l3’,600);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c38’,’19-Aug-2012’,381,’f2’,’l1’,400);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c67’,’02-Feb-2012’,467,’f7’,’l4’,170);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c83’,’21-Sep-2012’,583,’f1’,’l2’,60);insert into comenzi (id_comanda,data_comanda,id_client,id_fotograf,id_laborator,nr_fotografii) values (’c68’,’14-Jan-2013’, 968,’f7’,’l2’,100);commit;select * from comenzi;

Să se modifice în tabela LABORATOR_FOTO denumirea laboratorului foto ‘Aden Albums’ în ‘Aden’.

update laborator_foto set nume_laborator=’Aden’ where nume_laborator=’Aden Albums’;commit;

- 9 -

Page 10: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se modifice în tabela ECHIPAMENTE_FOTO denumirea echipamentului foto pentru fotograful cu id_fotograf=’f7’

update echipamente_foto set denumire=’Canon EOS 5D FX’ where id_fotograf=’f7’;commit;

Să se şteargă fotograful care are id_fotograf=’f8’.

delete from fotografi where id_fotograf =’f8’;commit;

Să se afişeze fotografii care au tariful pe fotografie egal cu 4,5 sau 7 lei.

select * from fotografi where tarif_foto_lei in (4,5,7);

Să se afişeze echipamentele din tabela ECHIPAMENTE_FOTO pentru care valoarea lor este în intervalul (1000,9000).

select id_echipament, denumire, categorie, valoare from echipamente_foto where valoare between 1000 and 9000;

- 10 -

Page 11: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se afişeze echipamentele la care denumirea începe cu literele ’Ni’.

select * from echipamente_foto where denumire like ’Ni%’;

Să se afişeze comenzile unde numărul de fotografii este mai mare decat 210.

select id_comanda, data_comanda, id_client, id_laborator, nr_fotografii from comenzi where nr_fotografii >= 210;

Să se afişeze clientul care are comanda cu numărul ‘c38’.

select cl.id_client, cl.nume_client, cl.prenume_client, co.nr_comanda from clienti cl, comenzi co where cl.id_client=co.id_client and co.nr_comanda=’c38’;

Să se afişeze fotografii care nu au nicio comandă intermediată cu tarif_foto_lei < 5 lei.

select f.* from fotografi f, comenzi c where f.id_fotograf=c.id_fotograf(+) and f.tarif_foto_lei < 5;

- 11 -

Page 12: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se afişeze numărul de fotografii şi id_ fotograf al cărei comenzi este comanda care corespunde clientului cu id_client=’c13’

select nr_fotografii, id_fotograf,data_comanda from comenzi where id_comanda = (select id_comanda from comenzi where id_client=467);

Să se afişeze atât cea mai mică valoare a echipamentului foto cât şi cea mai mare valoare a unui astfel de echipament.

select min(valoare), max(valoare) from echipamente_foto;

Să se afişeze media tarifelor tuturor fotografilor din evidenţă.

select avg(tarif_foto_lei) from fotografi;

Să se afişeze fotografii care au tariful_foto_lei mai mare decât media tarifelor tuturor fotografilor din evidenţă.

select * from fotografi where tarif_foto_lei > (select avg(tarif_foto_lei) from fotografi);

- 12 -

Page 13: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

update comenzi set stare_comanda=’1’ where id_comanda=’c13’;update comenzi set stare_comanda=’1’ where id_comanda=’c38’;update comenzi set stare_comanda=’1’ where id_comanda=’c67’;

Să se afiseze câmpul stare_comanda din tabela comenzi în funţie de stare: achitat/neachitat.

select id_comanda, data_comanda, nvl2(stare_comanda,’achitat’,’neachitat’) comanda_nvl2 from comenzi;

alter table fotografi add nivel_tarif varchar2(10);

Să se afiseze un indicator pentru nivelul tarifului pe fotografie (scazut, mediu, ridicat).

select id_fotograf, nume, prenume, casewhen tarif_foto_lei between 3 and 4 then nivel_tarif=’scazut’when tarif_foto_lei < 5 then nivel_tarif='mediu'when tarif_foto_lei > 5 then nivel_tarif='ridicat'else nivel_tarif end tarif_case from fotografi;

Să se afiseze anul fiecarei comenzi.

select id_comanda, extract(year from data_comanda) from comenzi;

- 13 -

Page 14: Proiect Baze de Date - Coser Alexandru

Coşer AlexandruGrupa 1027, Seria B

Să se realizeze conversia la tip CHAR pentru data_comanda din tabela comenzi.

select id_comanda, id_client, id_fotograf, to_char(data_comanda,'DD-MM-YY') from comenzi;

Să se afişeze clienţii care au litera ‘a’ pe a doua poziţie din nume din tabela clienţi.

select * from clienti where substr(lower(nume_client),2,1)='a';

Să se afişeze comenzile realizate în ultimul an.

select * from comenzi c where data_comanda between sysdate-360 and sysdate;

- 14 -