Sunteți pe pagina 1din 24

PROIECT BAZE DE DATE

GESTIUNE STEAM

STUDENT:
NEGREA ROBERT
Gestiune STEAM
Steam este o platformă online ce are rolul de a comercializa jocuri şi aplicaţii software,
stimulând astfel creşterea substanţială a achiziţiilor legale de jocuri. Obiectivul principal este
reprezentat de îmbunătăţirea calităţii experienţei utilizatorului prin reducerea distanței dintre
conținutul furnizat de dezvoltatori și audiența acestora. În prezent, Steam deţine o colecţie
impresionantă de peste 3000 de titluri de jocuri şi aproximativ 65 milioane de utilizatori.
Platforma rulează atât pe sistemul de operare Windows, cât şi pe Linux, Mac, Smart TV sau
dispozitive mobile.

Pe scurt, un utilizator Steam poate întâlni alţi jucători, se poate alătura grupurilor dedicate
jocurilor preferate, poate crea conferinţe cu prietenii, le poate oferi cadouri acestora, poate face
schimb de obiecte, poate crea conţinut nou pentru jocurile din atelierul Steam sau poate chiar
naviga pe internet direct din platformă, în timp ce este activ într-un joc.

La sfârşitul anului precedent Steam a celebrat 10 ani de activitate, iar pentru 2014
promite o reinventare a conceptului, sub forma unor produse hardware noi, Steam Controller şi
Steam Machines, dar şi a unei platforme noi dedicate gamingului. Membrii companiei speră ca
acest lucru să amplifice comunitatea de utilizatori şi să trezească interesul creatorilor de jocuri.
Pentru a ajuta la realizarea acestui lucru, în prima luna a anului 2014 va fi organizată o conferinţă
deschisă în Seattle Washington, dedicată în special altor creatori de jocuri, care se vor grăbi să
anunţe titluri noi în următoarea perioadă.

Schemă conceptuală
Construirea bazei de date

1) Să se creeze tabela “LICENTE” cu


ajutorul datelor din schema conceptuală.

create table LICENTE (

id_licenta number(6) primary key,

denumire_joc varchar2(40) not null,

descriere_joc varchar2(2000),

categorie varchar2(40),

pret number(8,2) not null,

nr_comanda number(10))

2) Să se creeze tabela “CLIENTI” cu ajutorul datelor din schema conceptuală.

create table CLIENTI (

id_client varchar2(20) primary key,

prenume varchar2(20) not null,

nume varchar2(20) not null,

telefon varchar2(20),

email varchar2(30) not null,

nr_comanda number(10))
3) Să se creeze tabela “STEAM_SERVER” cu ajutorul datelor din schema conceptuală.

create table STEAM_SERVER (

id_server number(2),

nr_comanda number(10),

constraint steam_server_pk primary key(id_server))


4) Să se creeze tabela “COMENZI” cu ajutorul datelor din schema conceptuală.

create table COMENZI (

nr_comanda number(10),

data timestamp(6),

modalitate varchar2(10),

stare_comanda varchar2(20),

id_server number(6),

id_client varchar2(20),

id_licenta number(6),

constraint comenzi_pk primary key(nr_comanda),

constraint comenzi_steam_server_fk foreign key(id_server) references steam_server,

constraint comenzi_clienti_fk foreign key(id_client) references clienti,

constraint comenzi_licente_fk foreign key(id_licenta) references licente)


5) Să se adauge coloana “TARA” în tabela “CLIENTI”.

alter table Clienti add (Tara varchar2(20))

6) Să se modifice coloana “CATEGORIE” din tabela “LICENTE”, astfel încât să poată


conține maxim 20 de caractere.

alter table licente modify categorie varchar2(20)


7) Să se adauge o restricție de tip check coloanei “LICENTE”, care să verifice dacă
descrierile jocurilor conțin mai mult de 200 de caractere.

alter table Licente add constraint descriere_joc_ch1 check(descriere_joc>200)

8) Să se dezactiveze restricția de tip check a coloanei “LICENTE”.

alter table Licente disable constraint descriere_joc_ch1

9) Să se redenumească tabela “STEAM_SERVER” în “SERVER”.

alter table Steam_server rename to Server


10) Să se elimine tabela “CLIENTI” și să fie readăugată.

drop table comenzi

create table COMENZI (

nr_comanda number(10),

data timestamp(6),

modalitate varchar2(10),

stare_comanda varchar2(20),

id_server number(6),

id_client varchar2(20),

id_licenta number(6),

constraint comenzi_pk primary key(nr_comanda),

constraint comenzi_server_fk foreign key(id_server) references server,

constraint comenzi_clienti_fk foreign key(id_client) references clienti,

constraint comenzi_licente_fk foreign key(id_licenta) references licente)


Popularea Bazei de date
1) Să se adauge 8 înregistrări în tabela “CLIENTI”.

insert into clienti values


('1','Lucian','Vasile','0726278569','lucian.vasile@gmail.com','001','Romania');

insert into clienti values


('2','Razvan','Teodorescu','0754620186','razvan.teodorescu@yahoo.com','002','Romania');

insert into clienti values


('3','Vlad','Soimareanu','0730021478','vlad.soimareanu@yahoo.com','003','Romania');

insert into clienti values


('4','Valentin','Draganescu','0785203477','valentin.draganescu@gmail.com','004','Romania');

insert into clienti values


('5','Octavian','Olteanu','0746302599','octavian.olteanu@gmail.com','005','Romania');

insert into clienti values


('6','Robert','Tanase','0735641235','robert.tanase@yahoo.com','006','Romania');

insert into clienti values ('7','Daniel','Radu','0758921461','dan.radu@yahoo.com','007','Romania');

insert into clienti values


('8','Adrian','Ionescu','0765521404','adrian.ionescu@gmail.com','008','Romania');

insert into clienti values


('9','George','Mutu','0728021697','george.mutu@gmail.com','009','Romania');
2) Să se adauge 5 înregistrări în tabela “LICENTE”.

insert into licente values ('100','Counter-Strike: Global Offensive','Counter-Strike took the


gaming industry by surprise when the unlikely MOD became the most played online PC
action game in the world almost immediately after its release in August 1999, said Doug
Lombardi at Valve. For the past 12 years, it has continued to be one of the most-played
games in the world, headline competitive gaming tournaments and selling over 25 million
units worldwide across the franchise. CS: GO promises to expand on CS award-winning
gameplay and deliver it to gamers on the PC as well as the next gen consoles and the
Mac.','Actiune','10.99','');

insert into licente values ('101','Assassin’s Creed IV Black Flag','Among these outlaws is a
brash young captain named Edward Kenway. His fight for glory has earned him the
respect of legends like Blackbeard, but also drawn him into the ancient war between
Assassins and Templars, a war that may destroy everything the pirates have built.
','Aventura','49.99','');

insert into licente values ('102','Left 4 Dead 2','This co-operative action horror FPS takes
you and your friends through the cities, swamps and cemeteries of the Deep South, from
Savannah to New Orleans across five expansive campaigns. You will play as one of four
new survivors armed with a wide and devastating array of classic and upgraded weapons.
In addition to firearms, you will also get a chance to take out some aggression on infected
with a variety of carnage-creating melee weapons, from chainsaws to axes and even the
deadly frying pan. ','Actiune','13.99','');

insert into licente values ('103','Prison Architect','Prison Architect is the world`s latest
Prison Management Sim. Starting with an empty plot of land you must construct a holding
cell with basic water and electricity to house your first batch of prisoners, to buy you
enough time to create a proper cell block. You`ll need to hire some guards, get some
showers built and unless the kitchen is up and running with chefs working away you`re
going to end up with a riot on your hands. From there you take your prison in which-ever
direction you like. A monsterous super-max or comfortable center for rehabilitation, the
choice is up to you. ','Strategie','20.99','');

insert into licente values ('104','Need For Speed: Hot Pursuit','Need for Speed Hot Pursuit
launches you into a new open-world landscape behind the wheel of the world`s fastest and
most beautiful cars. From Criterion, the award-winning studio behind the Burnout series,
Hot Pursuit will redefine racing games for a whole new generation.','Curse','19.99','');
3) Să se adauge 2 înregistrări în tabela “SERVER”.

insert into server values ('10','');

insert into server values ('20','');

4) Să se adauge 7 înregistrări în tabela “COMENZI”.

insert into comenzi values ('1000','02.jan.2014','telefon','efectuata','10','2','100');

insert into comenzi values ('1001','03.jan.2014','online','efectuata','10','6','100');

insert into comenzi values ('1002','03.jan.2014','online','efectuata','10','9','103');

insert into comenzi values ('1003','03.jan.2014','telefon','efectuata','10','7','100');

insert into comenzi values ('1004','15.mar.2014','online','efectuata','20','3','102');

insert into comenzi values ('1005','22.mar.2014','telefon','efectuata','20','5','104');

insert into comenzi values ('1006','15.mar.2014','telefon','efectuata','20','8','101');


5) Să se mărească cu 50% prețurile jocurilor din categoria “STRATEGIE”.

update Licente set pret=pret*1.5 where categorie='Strategie'

Înainte de update: După update:


6) Modificați tabela “CLIENTI” astfel încât coloanele cu numele și prenume clienților să fie
scrise numai cu majuscule.

update Clienti set nume=upper(nume);

update Clienti set prenume=upper(prenume);

Înainte de update: După update::

7) Să se șteargă comanda cu numarul 1003 din tabela “COMENZI”.

delete from Comenzi

where nr_comanda=1003
Înainte de update:

După update:

8) Să se adauge 3 comenzi efectuate în data de 20 iunie 2013 pentru jocul “Left 4 Dead 2” și
o comandă efectuată în data de 12 septembrie 2013 pentru jocul Prison Architect.

insert into comenzi values ('1010','20.jun.2013','telefon','efectuata','20','8','102');

insert into comenzi values ('1011','20.jun.2013','online','efectuata','10','6','102');

insert into comenzi values ('1012','20.jun.2013','online','efectuata','20','6','102');

insert into comenzi values ('1013','12.sep.2013','online','efectuata','10','3','103');


Înainte de update:

După update:

9) Să se modifice numele de familie al clientului cu id-ul 8 din tabela “CLIENTI” în


“VOICU”.

update Clienti set nume='VOICU'


where id_client=8

Înainte de update:
După update:

10) Să se transfere toate comenzile efectuate pe server-ul steam cu id-ul 20 pe cel inițial, cu
id-ul 10.

update Comenzi set id_server=10


where id_server=20

Înainte de update: După update:


Comenzi de selecție
1) Afișați clienții care dețin numărul comenzii situat între 1 și 4.

select * from clienti where nr_comanda between 1 and 4

2) Realizați un inner join între tabelele “CLIENTI” (coloanele id_client, nume, prenume) și
“COMENZI” (nr_comanda, data_comanda).

select a.id_client, a.nume, a.prenume, c.nr_comanda, trunc(data) data_c from clienti a

inner join comenzi c on a.id_client=c.id_client


3) Să se afișeze clienții care au ca inițială a prenumelui litera ‘R’.

select t.* from clienti t where upper(substr(t.prenume,1,1))='R'

4) Să se afișeze toate comenzile efectuate pe data de 20.06.2013.

select * from comenzi t where trunc(data)=

to_date('20.06.2013','dd.mm.yyyy')
5) Folosind o subinterogare, să se afișeze licențele care au fost comandate cel puțin o dată.

select * from licente t where t.id_licenta in (select id_licenta from comenzi)

6) Să se afișeze licențele cu prețul mai mare de 15 euro sau diferit de 19.99 euro și care au
numărul comenzii null.

select * from licente t where (t.pret <=15 or t.pret !=19.99) and nr_comanda is null
7) Să se afișeze id-ul, denumirea și prețul celei mai costisitoare licențe.

select id_licenta, denumire_joc, pret from licente

where pret=(select max(pret) from licente)

8) Să se afișeze id-urile licențelor care au fost comandate de maxim 2 ori.

select id_licenta from comenzi

group by id_licenta having count(*)<=2


9) Să se afișeze jocurile din categoriile “Actiune” și “Curse”, fără cele din categoria
“Strategie”.

10) Să se selecteze, în mod distinct, denumirile, categoriile și prețurile jocurilor care costă
mai mult decât primul joc cu prețul mai mare de 15 euro.

select distinct denumire_joc, categorie, pret from licente

where pret > any (select pret from licente where pret>15)

order by pret
11) Să se afișeze numărul, data, și modalitatea comenzilor care îndeplinesc condiția ca data
efectuării lor + 10 zile să fie mai mare decât data sistemului.

select nr_comanda, data, modalitate, sysdate data_curenta from comenzi

where data+10 > sysdate

12) Să se adauge 3 clienți noi din țările Elvetia, Singapore și Cipru, urmați de afișarea
tabelei actualizate.

insert into clienti values


('10','Daniel','Soptareanu','0726278569','daniel.soptareanu@gmail.com','010','Elvetia')
;

insert into clienti values


('11','Cristian','Neagu','0754620186','cristian.neagu@gmail.com','011','Singapore');

insert into clienti values


('12','Iustin','Toma','0730021478','iustin.toma@yahoo.com','012','Cipru');

select * from client


13) Să se realizeze o tabelă virtuală cu toți clienții români.

create view clienti_ro as select * from clienti

where tara='Romania';

select * from clienti_ro;


14) Să se afișeze comenzile date de clientul cu id-ul 6, în anul 2013.

select * from comenzi t where to_char(data,'yyyy')='2013' intersect

select * from comenzi t where id_client='6'

15) Să se afișeze toate prețurile jocurilor, rotunjite.

select denumire_joc, categorie, pret, round(pret) from licente

S-ar putea să vă placă și