Sunteți pe pagina 1din 26

ACADEMIA DE STUDII ECONOMICE

ZARA S.A
PROIECT Baze de date

Student :IRIMIA CATALIN Grupa :

An: I I
1/14/2013

2013 BAZE DE DATE ORACLE CONTENTS


1.INTRODUCERE ........................................................................................................................................................3 2.DESCRIEREA FIRMEI ..............................................................................................................................................4 3.SCHEMA CONCEPTUALA PENTRU TEMA ALEASA .................................. ERROR! BOOKMARK NOT DEFINED. 4.CONSTRUIREA BAZEI DE DATE .................................................................. ERROR! BOOKMARK NOT DEFINED. 5.EXEMPLE CU OPERATII DE ACTUALIZARE A DATELOR ......................... ERROR! BOOKMARK NOT DEFINED. 6. EXEMPLE INTEROGARI ............................................................................... ERROR! BOOKMARK NOT DEFINED.

2013 BAZE DE DATE ORACLE

1.iNTRODUCERE

Acest proiect are ca scop gestionarea activitatii unei firme distribuitoare de produse vestimentare. Proiectul va tine evidenta mai ampla a firmei,se va realiza gestiunea comenzilor,a furnizorilor, a produselor cat si a clientilor care ne trec pragul magazinului. Necesitatea proiectului este data de cerintele actuale de pe piata muncii si de confruntarea angajatilor firmei cu diversele probleme de gestiune care pot sa apara ,atunci cand clientii apeleaza la serviciile firmei .Prin realizarea unei baze de date a comenzilor se va reduce considerabil aparitia erorilor ,iar utilizarea programelor de creare de baze de date gen SQL-developer a devenit o necesitate in lumea contemporana .

Mijloacele de realizare Proiectul este realizat cu ajutorul programului : SQL developer , Microsoft Word

2013 BAZE DE DATE ORACLE

2.DESCRIEREA FIRMEI

Zara S.A
Sediul social: Str. B.P. Hasdeu nr. 22, Campina ,105600, Prahova. Capital social: 21.820 lei. Obiectul de activitate: Comert. Asociati: Milu Mihail-Ioan 54% Milu Mihail Daniel 23% Milu Ciprian Eduard 23% Firma Zara S.A este un depozit de haine engross localizat in Campina .Oferim imbracaminte engross atat in Romania cat si in tarile vecine precum Ungaria sau Bulgaria. Povestea noastra a inceput in anul 2007. Placerea si dorinta de a cumpara in scop personal imbracaminte s-a transformat putin cate putin intr-o afacere .In momentul de fata, avem pe stoc peste 400 de modele de imbracaminte, Am inceput sa castigam tot mai mult teren in fata concurentei noastre datorita materialelor calitative si a preturilor f.competitive , a tuturor modelelor pe care le importam direct din PARIS . Multi client de-ai nostril au renuntat la complexiurile En-gros de genul europa in favoarea noastra ,datorita relatiei stranse pe care o avem cu fiecare client in parte. Multumirea si zambetul clientilor nostril dupa fiecare achizitie facuta, contribuie cel mai mult in succesul pe care il avem .

Livrarea prompta a produselor este asigurata de parcul auto alcatuit din 220 de masini,care parcurg zilnic aproximativ 40000 de km ,deci in stil stafeta ar putea inconjura Pamantul. Acoperirea complete a regiunii este asigurata de 41 de reprezentante in Ungaria ,20 in Romania si 10 in Bulgaria Pe langa livrarile locale din ora in ora,zilnic sunt effectuate si 2 livrari la distante mai mari in aria de deservire a reprezentantelor . Angajatii instruiti la ZARA S.A au convingerea ca succesul companiei este garantat si reprezentat printr-un mecanic sau comerciant de pierse auto multumit

2013 BAZE DE DATE ORACLE

3. SCHEMA CONCEPTUTALA

2013 BAZE DE DATE ORACLE

4. CONSTRUIREA BAZEI DE DATE


create table LOCATIE (id_locatie number(38) constraint PKey_FURNIZORI primary key, oras varchar2(30), tara varchar2(30) );

create table DETALII_FURNIZORI ( nume varchar2(38) constraint Pkey_DETALII_FURNIZORI primary key, adresa varchar2(38), angajati number , capital_social number(7,2) );

create table PRODUSE (id_produs number(3,0) constraint PKey_PRODUSE primary key, nume_produs varchar2(20), tip_produs varchar2(20), pret_achiz number(4,0), pret_vanzare number(4,0), stoc number(4,0) , date_exp date );

create table FURNIZORI

2013 BAZE DE DATE ORACLE


(id_furnizor number(2) constraint PKey_FURNIZORI_2 primary key, nume varchar2(38), id_locatie number(38), CONSTRAINT FKLOCATIE FOREIGN KEY (id_locatie) REFERENCES LOCATIE(id_locatie), CONSTRAINT FKDETALII_FURNIZORI FOREIGN KEY (nume) REFERENCES DETALII_FURNIZORI(nume) );

create table COMENZI (id_comanda number(6) constraint Pkey_COMENZI primary key, id_produs number(4,0), id_furnizor number(2), cantitate_prod number(6,0), data_Scadenta date, CONSTRAINT FKFURNIZORI_1 FOREIGN KEY (id_furnizor) REFERENCES FURNIZORI(id_furnizor), CONSTRAINT FKFURNIZORI_2 FOREIGN KEY (id_produs) REFERENCES PRODUSE(id_produs));

create table PLATI ( id_plata number(6), id_comanda number(6), data_achitplatii date, CONSTRAINT FKPLATI FOREIGN KEY(id_comanda) REFERENCES COMENZI(id_comanda)); create table CLIENTI (id_client number(6), id_produs number(4,0), cantitate_produs number(4,0),

2013 BAZE DE DATE ORACLE


CONSTRAINT FKPRODUSE FOREIGN KEY (id_produs) REFERENCES PRODUSE(id_produs));

ALTER,DROP TABLE exemple 1) Sa se adauge in tabela CLIENTI coloana NUMECLIENTI

2) Sa se redenumeasca tabela DETALII_FURNIZORI cu numele INFORMATII

3) Sa se modifice in tabela PRODUSE extensia coloanei NUME_PRODUS

4)Sa se elimine din tabela FURNIZORI coloana cu numele ID_LOCATIE

5)Sa se stearga tabela PLATI

2013 BAZE DE DATE ORACLE

6) Sa se elimine restrictia de intergritate FKPRODUSE din tabela CLIENTI

5) EXEMPLE CU OPERATII DE ACTUALIZARE A DATELOR


1) Sa se INSEREZE in tabela FURNIZORI ,valorile (4,AUTOTAL,3) INSERT INTO FURNIZORI (ID_FURNIZOR, NUME ,ID_LOCATIE ) VALUES (4 ,GUCI ,3)

2) Sa se INSEREZE in tabela CLIENTI valorile (6,5,6) INSERT INTO CLIENTI (ID_CLIENT ,ID_PRODUS,CANTITATE_PRODUS ) VALUES (6,5,6)

3) Sa se INSEREZE in tabela DETALII_FURNIZORI valorile 2 randuri ( PULL&BEAR ,STRADA RADNEI NR 23 ARAD ,4,10000) si (ADIDAS STORE ,STRADA GRIVITEI NR 29 IASI,23,16000) INSERT INTO DETALII_FURNIZORI (NUME,ADRESA,ANGAJATI, CAPITAL_SOCIAL) VALUES ( PULL&BEAR, STRADA RADNEI NR 23 ARAD , 10000) INSERT INTO DETALII_FURNIZORI (NUME,ADRESA,ANGAJATI,CAPITAL_SOCIAL ) VALUES (ADIDAS STORE. STRADA GRIVITEI NR 29 IASI ,23,16000 )

4) Sa se INSEREZE in tabela COMENZI valorile (1901,1,2,1,10-MAR-12) INSERT INTO COMENZI (ID_COMANDA ,ID_PRODUS ,ID_FURNIZOR ,CANTITATE_PROD, DATA_SCADENTA) VALUES (1901,1,2,1, TO_DATE (10-MAR-12 ,DD-MON-RR))

2013 BAZE DE DATE ORACLE 5) Sa se scada cu 10 unitati ,numarul de TRICOU POLO BARBATI din stocul din tabela PRODUSE

6) Presupunem ca toti furnizorii romani cu care colaboram din diferite orase din tara, isi muta sediul la BUCURESTI . Sa se updateze locatia FURNIZORILOR din ROMANIA care au avut locatia in alt oras in afara de Bucuresti

10

2013 BAZE DE DATE ORACLE

7) S-a constatat ca stocul de PRODUSE care au avut pretul de vanzare <300 ron ,s-a epuizat. Sa se updateze cu 0 in baza de date stocul PRODUSELOR care au avut pretul <300 RON

11

2013 BAZE DE DATE ORACLE

8) Sa se stearga din tabela LOCATIE,furnizorii care au locatia in BUCURESTI

10)

12

2013 BAZE DE DATE ORACLE

5)EXEMPLE INTEROGARI

a) Firma incearca sa detina cat mai multe produse la un prt mediu de 1000 ron ,pentru a avea cat mai multe vanzari. Insa exista si anumite produse scumpe.,iar pretul acestora este unul pe masura . Sa se afle cate produse scumpe exista in stoc

b) Sa se afiseze numele firmelor distribuitoare al caror nume incepe cu A, si au capitalul social cuprins intre 10000 si 15000 SELECT NUME from DETALII_FURNIZORI WHERE NUME LIKE A% AND CAPITAL_SOCIAL BETWEEN 10000 AND 150000

13

2013 BAZE DE DATE ORACLE c) Sa se afiseze numele si tipul produselor care au pretul de achizitie intre 300 si 900 ron SELECT NUME_PRODUS ,TIP_PRODUS FROM PRODUSE WHERE PRET_ACHIZ IN (300,900)

1) JONCTIUNI ( INNER ,OUTER) a) Sa se afiseze toate informatiile legate de produsul cumparat de clientul ALEX DUDULEA(j.ega) SELECT PRODUSE.* ,CLIENTI.* FROM PRODUSE, CLIENTI WHERE PRODUSE,ID_PRODUS=CLIENTI.ID_PRODUS AND ID_CLIENT=1;

14

2013 BAZE DE DATE ORACLE

b) Sa se calculeze valoarea fiecarui produs (val_prod =cant* pret) si sa se afiseze cantitatea existenta in stoc

c) Firma are in stoc produse scumpe si anume cele care depasesc valoarea de 60000 ron . Sa se afle numele produselor care intra in categoria celor scumpe.

15

2013 BAZE DE DATE ORACLE

UTILIZAREA FUNCTIILOR LA NIVEL DE GRUP-group by ,having


1)Sa se afiseze suma totala din fiecare categorie de produse.

16

2013 BAZE DE DATE ORACLE 2)sa se afiseze in ordine crescatoare dupa pret , fiecare categorie de produse a carei suma depaseste 5000 ron

2) UTILIZAREA FUNCTIILOR LA NIVEL DE RAND

a)Sa se afiseze numele produselor care expira in luna MARTIE anul 2011.

b)Sa se afiseze ID_PRODUS, ID_FURNIZOR, ID_COMANDA de la produsul care are data scadenta a platii 10-MAR-12

17

2013 BAZE DE DATE ORACLE

c)Sa se afiseze in ordine crescatoare cate saptamani au trecut de la ultima zi pentru plata comenzilor.

18

2013 BAZE DE DATE ORACLE

d) Sa se afiseze numele clientilor care au in componenta numelui a 2-a litera a si lungimea numelui >10 caractere.

Sa se afiseze in ce categorie intre firmele care au locatia in romania si cele care au locatia in strainatate. Asfel : daca firma este din ROMANIA -> afiseaza companie interna , daca NU ,afiseaza companie externa.

19

2013 BAZE DE DATE ORACLE

3) Utilizarea operatorilor UNION, MINUS, INTERSECT; a) ) Sa se afiseze produsele care au stocul intre 45 si 90 fara cele care au stocul intre 1si 44 de unitati:

20

2013 BAZE DE DATE ORACLE

B) Afiseaza numele produselor care au pretul de achizitie <200 si numele produselor al caror stoc <5

21

2013 BAZE DE DATE ORACLE

4)SUBCERERI SIMPLE SI CORELATE a) Afiarea numelui i tipului de produs avnd pret de vanzare si achizitie cu cel mediu +/- 30%. Se folosete operatorul BETWEEN avnd ca parametri dou subcereri:

4) TABELE VIRTUALE a) Sa se realizeze o tabela virtuala cu toate firmele distribuitoare din ROMANIA. Tabela nu va putea fi actualizata.

22

2013 BAZE DE DATE ORACLE

b)Sa se creeze o tabela virtuala cu toti clientii firmei care cumpara mai mult de 2 produse

23

2013 BAZE DE DATE ORACLE

c)Sa se creeze un index pe tabela FURNIZORI pe coloana NUME:


CREATE INDEX NUMEID ON FURNIZORI (NUME)

24

2013 BAZE DE DATE ORACLE

5) CREATE-INSERT-UPDATE-DELETE + SELECT a) Update+SELECT Sa se afiseze cu litere mici,numele clientilor care au comandat mai putin de 3 produse intr-o comanda.

25

2013 BAZE DE DATE ORACLE

26