pirlitu raluca proiect

Upload: ralucaanamaria

Post on 15-Oct-2015

60 views

Category:

Documents


20 download

TRANSCRIPT

PROIECT

PROIECTBAZE DE DATE

Prlitu Anamaria Raluca Seria D, grupa 1036

ACADEMIA DE STUDII ECONOMICE, BUCURESTI FACULTATEA DE CIBERNETICA,STATISTICA SI INFORMATICA ECONOMICA

CUPRINS

CUPRINS2DEFINIREA SCHEMEI BAZEI DE DATE-TABELE, RESTRICII DE INTEGRITATE3Operaiile ALTER, DROP8EXEMPLE CU OPERAIILE DE ACTUALIZARE A DATELOR11OPERAIA INSERT11Operaiile UPDATE, DELETE, MERGE186.S se tearg din tabela COMENZI ultima comand care a fost nregistrat n tabel.20EXEMPLE DE INTEROGRI VARIATE(SELECT)20

DEFINIREA SCHEMEI BAZEI DE DATE-TABELE, RESTRICII DE INTEGRITATE

Baza de date creat se va ocupa de gestiunea informaiilor legate de activitatea firmei Coca-Cola HBC Romnia. Pentru aceast baz de date am creat 7 tabele: ANGAJATI DEPARTAMENTE CONCEDII PRODUSE COMENZI PRODUSE_VANDUTE CLIENTITabela ANGAJATI ofer informaii despre angajaii firmei Coca-Cola HBC Romnia: CNP, nume, prenume, telefon, vrst, codul departamentului din care face parte, ID-ul funciei i salariul acestora. CNP-ul acestora are rol de cheie primar n tabel, iar codul departamentului i ID funciei sunt chei externe ce fac legtura cu tabelele DEPARTAMENTE i CONCEDII. Tabela DEPARTAMENTE cuprinde date despre fiecare departament al companiei, cum ar fi denumirea, bugetul alocat i numrul de angajai al fiecruia. Tabela are ca i cheie primar atributul COD_DEP, dup care sunt identificate departamentele. Tabela CONCEDII ofer informaii despre concediul alocat fiecrui angajat-durata concediului(numr de zile), data nceperii i data finalizrii, avnd ca i cheie primar ID_funiei acestora. Tabela PRODUSE conine lista produselor fabricate de Coca-Cola HBC Romnia, avnd detalii despre preul acestora i stocul fiecruia. Cheia primar a acestui tabel este ID_PRODUS. Tabela CLIENTI cuprinde numele firmelor care cumpr produse de la companie, telefonul acestora i oraul de provenien. Firmele sunt identificate printr-un numr unic dat de cheia primar ID_CLIENT. Tabela COMENZI stocheaz date despre comenzile ce au loc la nivelul companiei, oferind informaii despre angajatul care a nregistrat comanda, despre clientul care a dat comanda i data la care a fost aceasta efectuat. Tabelul conine o cheie primar NR_COMANDA prin care se identific fiecare comanda i 2 chei externe CNP i ID_CLIENT preluate din tabelele ANGAJATI i COMENZI. Tabela PRODUSE_VANDUTE ne arat produsele care au fost vndute la fiecare comand, ct i cantitatea vndut. Tabelul are o cheie primar compus din cmpurile NR_COMANDA i ID_PRODUS, care au de asemenea i rol de chei externe care fac legtura cu tabelele COMENZI i PRODUSE.

CONCEDII#ID_FUNCTIEDURATADATA_INCEPEREDATA_FINALIZAREANGAJATI#CNPNUMEPRENUMETELEFONVARSTACOD_DEPID_FUNCTIESALARIULDEPARTAMENTE#COD_DEPDENUMIREBUGETNR_ANGAJATI

COMENZI#NR_COMANDACNPID_CLIENTDATA_COMANDAPRODUSE_VANDUTE#NR_COMANDA#ID_PRODUSPRETCANTITATEPRODUSE#ID_PRODUSDENUMIREPRETSTOC

CLIENTI#ID_CLIENTNUME_FIRMATELEFONORAS

Tabela ANGAJATICNPNUMEPRENUMETELEFONVARSTACOD_DEPID_FUNCTIESALARIUL

CREATE TABLE ANGAJATI(CNP VARCHAR2(13),NUME VARCHAR2(25),PRENUME VARCHAR(25),TELEFON VARCHAR2(10) ,VARSTA NUMBER(2),COD_DEP NUMBER(5),ID_FUNCTIE NUMBER(3),SALARIUL NUMBER(9));ALTER TABLE ANGAJATIADD CONSTRAINT PK_CNP PRIMARY KEY(CNP);ALTER TABLE ANGAJATIADD CONSTRAINT UN_FCT UNIQUE(ID_FUNCTIE);ALTER TABLE ANGAJATIADD CONSTRAINT FK_DEP FOREIGN KEY(COD_DEP) REFERENCES DEPARTAMENTE(COD_DEP);ALTER TABLE ANGAJATIADD CONSTRAINT FK_FCT FOREIGN KEY(ID_FUNCTIE) REFERENCES CONCEDII(ID_FUNCTIE);

Tabela DEPARTAMENTE COD_DEPDENUMIREBUGETNR_ANGAJATI

CREATE TABLE DEPARTAMENTE(COD_DEP NUMBER(5) ,DENUMIRE VARCHAR2(25),BUGET NUMBER(9),NR_ANGAJATI NUMBER(5));ALTER TABLE DEPARTAMENTEADD CONSTRAINT PK_DEP PRIMARY KEY(COD_DEP);

Tabela CONCEDIIID_FUNCTIEDURATADATA_INCEPEREDATA_FINALIZARE

CREATE TABLE CONCEDII (ID_FUNCTIE NUMBER(3) CONSTRAINT PK_FCT PRIMARY KEY,DURATA NUMBER(2),DATA_INCEPERE DATE,DATA_FINALIZARE DATE);

Tabela PRODUSEID_PRODUSDENUMIREPRETSTOC

CREATE TABLE PRODUSE(ID_PRODUS NUMBER(2) CONSTRAINT PK_PRODUS PRIMARY KEY,DENUMIRE VARCHAR2(25) NOT NULL,PRET NUMBER(4,2),STOC NUMBER(9));

Tabela CLIENTIID_CLIENTNUME_FIRMATELEFONORAS

CREATE TABLE CLIENTI(ID_CLIENT NUMBER(5) CONSTRAINT PK_CLIENT PRIMARY KEY,NUME_FIRMA VARCHAR2(50) NOT NULL,TELEFON VARCHAR2(10),ORAS VARCHAR2(20));

Tabela COMENZINR_COMANDACNPID_CLIENTDATA_COMANDA

CREATE TABLE COMENZI(NR_COMANDA NUMBER(10) CONSTRAINT PK_CMD PRIMARY KEY,CNP VARCHAR2(13),ID_CLIENT NUMBER(5),DATA_COMANDA DATE);ALTER TABLE COMENZIADD CONSTRAINT FK_CNP1 FOREIGN KEY(CNP) REFERENCES ANGAJATI(CNP);ALTER TABLE COMENZIADD CONSTRAINT FK_IDCL FOREIGN KEY(ID_CLIENT) REFERENCES CLIENTI(ID_CLIENT);

Tabela PRODUSE_VANDUTE#NR_COMANDA#ID_PRODUSPRETCANTITATE

CREATE TABLE PRODUSE_VANDUTE(NR_COMANDA NUMBER(10) NOT NULL,ID_PRODUS NUMBER(2) NOT NULL,PRET NUMBER(4,2),CANTITATE NUMBER(9));ALTER TABLE PRODUSE_VANDUTEADD CONSTRAINT PK_PV PRIMARY KEY(NR_COMANDA,ID_PRODUS);ALTER TABLE PRODUSE_VANDUTEADD CONSTRAINT FK_IDPR FOREIGN KEY(ID_PRODUS) REFERENCES PRODUSE(ID_PRODUS);ALTER TABLE PRODUSE_VANDUTEADD CONSTRAINT FK_NRCMD FOREIGN KEY(NR_COMANDA) REFERENCES COMENZI(NR_COMANDA);

Operaiile ALTER, DROP

1. S se adauge la tabela ANGAJATI cmpul E-MAIL.ALTER TABLE ANGAJATIADD(EMAIL VARCHAR2(30));

2. Pentru a putea terge o tabel, am creat mai nti tabela REGIUNI, de care nu vom mai avea nevoie.CREATE TABLE REGIUNI(ID_REGIUNE VARCHAR2(20) CONSTRAINT PK_REG PRIMARY KEY,DENUMIRE VARCHAR2(20));

Pentru a terge tabela vom folosi comanda DROP.

DROP TABLE REGIUNI CASCADE CONSTRAINTS;

3. S se tearg coloana EMAIL pe care ai adugat-o la primul exerciiu.ALTER TABLE ANGAJATIDROP COLUMN EMAIL;

4. La tabela DEPARTAMENTE s se adauge o restricie pentru a verifica dac numrul angajailor pe fiecare departament este mai mare de 50 i mai mic de 500.ALTER TABLE DEPARTAMENTE ADD(CONSTRAINT CK_ANGAJATI CHECK(NR_ANGAJATI>50 AND NR_ANGAJATI