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


Top Related