Proiect Baze de Date - Coser Alexandru

download Proiect Baze de Date - Coser Alexandru

of 14

description

alexandru bd ase r

Transcript of Proiect Baze de Date - Coser Alexandru

Coer AlexandruGrupa 1027, Seria B

ACADEMIA DE STUDII ECONOMICE BUCURETIFACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

PROIECT BAZE DE DATE

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

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

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));

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));

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);

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;

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);

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;

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);insert into echipamnete_foto values (e03,Filtru Hoya UV,Accesorii,68,f10);commit;select * from ehipamente_foto;

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;

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;

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;

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;

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;

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);

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, casewhen tarif_foto_lei between 3 and 4 then nivel_tarif=scazutwhen 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;

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 -