Date post: | 15-Oct-2015 |
Category: |
Documents |
Upload: | ralucaanamaria |
View: | 58 times |
Download: | 20 times |
of 28
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