Sei sulla pagina 1di 14

ACADEMIA DE STUDII ECONOMICE BUCURETI FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

PROIECT BAZE DE DATE

Propuntor: Coer Alexandru Anul II, Seria B, Grupa 1027 Profesor coordonator: Vlad Diaconi

Coer Alexandru Grupa 1027, Seria B

Evidena fotografilor liberi profesioniti


Baza de date realizeaz o eviden financiar a fotografilor liber profesioniti. Acetia au o clientel variat i ocazional efectund servicii de fotografiere de tip evenimente (exemple: nuni, 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 numr de fotografii, la un tarif pe fotografie impus de acetia pentru fiecare comand intermediat, n funcie de preferinele clientului. Comenzile sunt nregistrate cu un numr de comand la data efecturii 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 locaie, urmnd ca apoi comanda s fie finalizat.

Schema conceptual a bazei de date

-2-

Coer Alexandru Grupa 1027, Seria B

Crearea tabelei FOTOGRAFI 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 CLIENI 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-

Coer Alexandru Grupa 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-

Coer Alexandru Grupa 1027, Seria B

S se modifice numele atributului telefon n telefon_client din tabela CLIENI. alter table clienti rename column telefon to telefon_client;

S se adauge n tabela CLIENI atributul email de tip varchar2(20). alter table clienti add email varchar2(20);

S se tearg atributul creat anterior din tabela CLIENI. alter table clienti drop column email;

S se adauge o restricie 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 cmpului categorie la varchar2(20). alter table echipamente_foto modify categorie varchar2(20); -5-

Coer Alexandru Grupa 1027, Seria B

S se modifice dimensiunea cmpului valoare din ECHIPAMENTE_FOTO la number(6,2). alter table echipamente_foto modify valoare number(6,2); S se adauge n tabela COMENZI cmpul valoare_comanda number(5,2). alter table comenzi add valoare_comanda number(5,2);

S se modifice n tabela COMENZI numele cmpului data_c n data_comanda. alter table comenzi rename column data_c to data_comanda; S se modifice n tabela COMENZI numele cmpului valoare_comanda n stare_comanda. alter table comenzi rename column valoare_comanda to stare_comanda;

S se modifice n tabela COMENZI tipul cmpului 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-

Coer Alexandru Grupa 1027, Seria B

S se adauge o restricie 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 afieze toi fotografii. (Coer 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-

Coer Alexandru Grupa 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 CLIENI. 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-

Coer Alexandru Grupa 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-

Coer Alexandru Grupa 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 afieze 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 afieze 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 -

Coer Alexandru Grupa 1027, Seria B

S se afieze echipamentele la care denumirea ncepe cu literele Ni. select * from echipamente_foto where denumire like Ni%;

S se afieze comenzile unde numrul 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 afieze clientul care are comanda cu numrul 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 afieze 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 -

Coer Alexandru Grupa 1027, Seria B

S se afieze numrul de fotografii i id_ fotograf al crei 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 afieze att cea mai mic valoare a echipamentului foto ct i cea mai mare valoare a unui astfel de echipament. select min(valoare), max(valoare) from echipamente_foto;

S se afieze media tarifelor tuturor fotografilor din eviden. select avg(tarif_foto_lei) from fotografi;

S se afieze fotografii care au tariful_foto_lei mai mare dect media tarifelor tuturor fotografilor din eviden. select * from fotografi where tarif_foto_lei > (select avg(tarif_foto_lei) from fotografi); - 12 -

Coer Alexandru Grupa 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 cmpul stare_comanda din tabela comenzi n funie 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, case when 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 -

Coer Alexandru Grupa 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 afieze clienii care au litera a pe a doua poziie din nume din tabela clieni. select * from clienti where substr(lower(nume_client),2,1)='a';

S se afieze comenzile realizate n ultimul an. select * from comenzi c where data_comanda between sysdate-360 and sysdate;

- 14 -

Potrebbero piacerti anche