Sunteți pe pagina 1din 16

UNIVERSITATEA TEHNIC GH ASACHI IAI

FACULTATEA AUTOMATIC I CALCULATOARE


SECTIA CALCULATOARE I TEHNOLOGIA INFORMAIEI
SPECIALIZAREA CALCULATOARE
DISCIPLINA BAZE DE DATE PROIECT

Gestiunea activitatii intr-o banca


comerciala

Coordonator,

Student,

Iai, 2016

Titlu proiect : Gestiunea clientilor unei banci


Analiza, proiectarea si implementarea unei baze de date si a aplicatiei aferente care sa modeleze
activitatea unei banci cu privire la gestiunea clientilor (doar cazul particular de clienti persoane juridice,
adica societatile comerciale).
Descrierea cerintelor si modul de organizare al proiectului
Volumul mare de informaii existente n cazul unei banci cu numerosi clieni determin necesitatea
fluidizarii fluxurilor de date ce traverseaza sistemele informationale bancare, gestiunea acestora fiind o
adevarata provocare. Activitatea de gestiune a unei banci implic o munc intens in ceea ce priveste
numeroase documente care in de nregistrarea clienilor (care in acest caz sunt societati comerciale), a
relatiilor in care se afla acestia cu banca (daca depun bani, fac imprumuturi sau isi platesc furnizorii prin
intermediul acesteia), de prelucrare a tranzactiilor i de nregistrare permanent a situatiei soldurilor, dat
fiind faptul ca pentru o banca este vital sa stie ntr-un timp ct mai scurt care este situatia sa cu privire la
conturi, sume debitate, creditate si clienti.
Informatiile de care avem nevoie sunt cele legate de :
- reprezentanti banca: ne intereseaza sa stim cine este angajatul care opereaza datele (de exemplu, in
cazul unei probleme sa identificam angajatul )
- clienti: datele referitoate la clienti se afla in tabela societati, dat fiind faptul ca acesti clienti sunt
persoane juridice, ne intereseaza codul fiscal al societatii, denumirea firmei, capitalul social,
administratorul, cnp-ul adiministratorului, contul IBAN al societatii.
- credite: in cazul informatiilor despre credite acestea se vor stoca in doua tabele pentru a respecta
conditia ca baza de date sa se afle in 3FN. Astfel, intr-o tabela parinte vom stoca informatiile cu privire la
tipul de credite; ne intereseaza sa stim tipul de credit, dobanda aferenta respectivului credit, suma minima
si maxima intre care se claseaza creditul, perioada minima/maxima de acordare a sa. De aici va fi o relatie
one-to-many catre credite acordate, unde vor fi inregistrate creditele acordate clientilor.
- depozite: in cazul informatiilor despre depozite, informatiile se vor stoca in doua tabele pentru a
respecta conditia ca baza de date sa se afle in 3FN. Astfel, intr-o tabela parinte vom stoca informatiile cu
privire la tipul de depozit si ne intereseaza datele legate de tipul depozitului, dobanda aferenta sumei
depuse, suma minima si numarul de luni pe care se efectueaza depozitul , iar in tabela copil vom stoca
depozitele facute de clientii bancii;
- comision: fiecarui tip de tranzactie, fie ca vorbim de credite sau de depozite i se asigneaza un anume
tip de comision ( comision de retragere, depunere, administrare, etc);
- plati: in ceea ce priveste platile, acestea sunt mai multe tipuri: clientii isi pot plati furnizorii
(plata_furnizor) prin intermediul bancii, isi vor achita rata pentru creditul facut la respectiva banca
(plata_rata) sau vor depune lunar o suma de bani in depozitul personal. Pentru toate cele trei tabele ne va
interesa sa stim data la care se efectueaza plata, suma, contul din care se retrag/depun bani, si cine
realizeaza tranzactia.
- tranzactii: pentru fiecare zi se vor inregistra creditele, depozitele, platile; pentru fiecare tranzactie vom
utiliza un anumit tip de document ce-l vom putea alege din tabela documente (spre exemplu CEC, BObilet la ordin pentru plati).
- parteneri: sunt acele entitati care nu interactioneaza in mod direct cu banca; acestia nu au cont curent la
aceasta banca, dar este necesara o tabela in care sa fie memorati deoarece sunt partenerii de afaceri ai
clientilor acestei banci si prin intermediul bancii clientii isi vor stinge datoriile catre acestia.

Descrierea functionala a aplicatiei


Principalele funcii care se pot ntlni ntr-o banca sunt:
Evidena operatiunilor referitoare la conturile bancare
Evidena clienilor
Evidena tranzactiilor efectuate
Descrierea detaliata a entitatilor si a relatiilor dintre tabele
Tabelele din aceasta aplicatie sunt:
comisioane ;
conturi ;
credite ;
depozite ;
documente ;
parteneri ;
plata_depozit ;
plata_furnizor ;
plata_rata ;
reprezentanti_banca ;
societati ;
tipuri_depozite ;
tipuri_credite ;
tip_tranzactii ;
In proiectarea acestei baze de date s-au identificat tipurile de relatii 1:n, n:1 si n:n.
Intre tabelele societate si conturi se intalneste o relatie de tip 1:n deoarece o o societate paote avea mai
multe conturi la aceeasi banca: poate avea cont in lei sau cont in valuta. Reciproca insa nu este valabila,
deoarece un cont nu se poate asigna la mai multe societati. Legatura dintre cele doua tabele este realizata
prin campul cod_fiscal.
Intre tipuri_depozite si depozite se stabileste o legatura de tip one-to-many. Tabela tipuri_depozite
descrie toate categoriile de depozite ce le pune banca la dispozitia clientilor, in timp ce tabela depozite
prezinta depozitele clientilor. Legatura dintre cele doua tabele este facuta de campul tip_depozit, tabela
parinte fiind tipuri_depozite deoarece pot fi mai multi clienti care isi vor face un anume tip de depozit ,
dar un depozit facut nu se poate incadra decat intr-un singur tip; un depozit nu poate fi in acelasi timp si
depozit pe 9 luni si depozit pe 6 luni de exemplu.
De asemenea intre tabela depozit si tabela conturi se stabileste o legatura de many_to_one. Un client isi
poate selecta mai multe depozite pe acelasi cont, iar pentru a realiza un depozit trebuie sa existe cel putin
un cont bancar.Legatura intre cele doua se realizeaza prin campul nrcontiban.
Intre tipuri_credite si credite se stabileste o legatura de tip one-to-many. Tabela tipuri_credite descrie
toate categoriile de credite puse de catre banca la dispozitia clientilor, in timp ce tabela clienti prezinta

imprumuturile clientilor. Legatura dintre cele doua tabele este facuta de campul tip_credit, tabela parinte
fiind tipuri_credite deoarece pot fi mai multi clienti care isi vor face un anume tip de credit , dar un credit
facut nu se poate incadra decat intr-un singur tip; un credit nu poate fi in acelasi timp si credit pentru
nevoi personale si credit personal.
Intre tabela credit se stabileste o legatura de many_to_one cu tabela conturi. Un client isi poate face mai
multe credite pe acelasi cont, dar pentru a realiza un imprumut trebuie sa existe cel putin un cont
bancar.Legatura intre cele doua se realizeaza prin campul nrcontiban.
Intre tabela comisoane si tipuri_depozite este o legatura de tip many-to-many deoarece unui tip de
depozit ii pot corepunde mai multe comisioane gen comision de administrare, comision de retragere,
depunere dar in acelasi timp iar un comision se paote aplica mai multor tipuri de depozite. Pentru ca
tabela sa se afle in 3FN aceasta relatie se va sparge in doua, rezultand doua relatii 1:m si legatura intre
cele doua tabele se va realzia cu ajutorul unei alte tabele comisioane tipuri_depozite care va contine
cheia primara a fiecarei din cele doua tabele. Atfel spus legatura se face doua campuri id_comision si
tip_depozit reunite intr-o tabela comuna.
Intre tabela comisoane si tipuri_credite este o legatura de tip many-to-many deoarece unui tip de credit
ii pot corepunde mai multe comisioane gen comision de administrare, comision depunere dar in acelasi
timp iar un comision se poate aplica mai multor tipuri de credite. Pentru ca tabela sa se afle in 3FN
aceasta relatie se va sparge in doua, rezultand doua relatii 1:m si legatura intre cele doua tabele se va
realiza cu ajutorul unei alte tabele comisioane tipuri_credite care va contine cheia primara a fiecarei
din cele doua tabele. Atfel spus legatura se face doua campuri id_comision si tip_credit reunite intr-o
tabela comuna.
Intre tabelele reprezentanti_banca si tip_tranzactii se stabileste o legatura de tip 1:n deoarece un
angajat al bancii va putea realiza mai multe tranzactii dar o tranzactie nu va putea fi efectuata de mai
multi angajati. Campul comun intre aceste doua tabele este cnp_reprez.
De asemenea, tabela tip_tranzactii stabileste o legatura de tip m:1 cu tabela documente, mai multe
tranzactii putandu-se efectua cu acelasi tip de document spre exemplu BO, dar niciodata pentru o
tranzactie nu se vot folosi mai multe tipuri de documente. Spre exemplu nu vom putea depune numerar
intr-un depozit platind si cu BO si cu CEC. Legatura intre cele doua se realizeaza prin campul tip_doc.
Intre tabela parteneri si plata_furnizori de stabileste o relatie de tip 1:m prin campul nrcontpartener
deoarece putem efectua mai multe plati catre un partener, dar nu putem avea o plata spre mai multi
parteneri.
Mai sunt 3 relatii de tip 1:m; datorita faptului ca seamana foarte mult intre ele vor fi tratate toate in acest
paragraf. Este vorba de relatiile intre tip_tranzactii si plata_rata prin campul id_plata_rata,
tip_tranzactii si plata_depozit prin campul plata_depozit precum si tip_tranzactii si plata_credit prin
campul id_plata_credit. Toate aceste relatii descriu tipuri de tranzactii ce se pot realiza in cadrul acestei
banci depunere de numerar, acordare de credite si plati catre partenerii de afaceri.

Diagrama Entitate Relatie

Crearea bazei de date in ORACLE


CREATE TABLE comisioane (
id_comision VARCHAR2(4) NOT NULL,
den_comision VARCHAR2(30),
valoare
NUMBER(3, 0),
CONSTRAINT pk_id_comision PRIMARY KEY (id_comision)
);
CREATE TABLE "comisioane tipuri_credite"(
id_comision VARCHAR2(4) NOT NULL,
tip_credit VARCHAR2(4) NOT NULL,
CONSTRAINT PK25 PRIMARY KEY (id_comision, tip_credit)
);
CREATE TABLE "comisioane tipuri_depozite" (
id_comision VARCHAR2(4) NOT NULL,
tip_depozit VARCHAR2(3) NOT NULL,
CONSTRAINT PK28 PRIMARY KEY (id_comision, tip_depozit)
);
CREATE TABLE conturi (
nrcontiban CHAR(24)
NOT NULL
CONSTRAINT ck_nrcontiban CHECK (nrcontiban=ltrim(upper(nrcontiban))),
codfiscal VARCHAR2(9),
sold
NUMBER(9, 0),
CONSTRAINT pk_nrcontiban PRIMARY KEY (nrcontiban)
);
CREATE TABLE credite (
id_credit
VARCHAR2(5) NOT NULL,
nrcontiban CHAR(24),
suma_credit NUMBER(9, 0),
perioada
NUMBER(3, 0),
rata
NUMBER(9, 0),
tip_credit VARCHAR2(4),
CONSTRAINT pk_credite1 PRIMARY KEY (id_credit)
);
CREATE TABLE depozite (
id_depozit
VARCHAR2(5) NOT NULL,
tip_depozit VARCHAR2(3),
nrcontiban
CHAR(24),
suma_depozit NUMBER(9, 0),
data_depozit DATE
DEFAULT sysdate,
CONSTRAINT pk_id_depozit PRIMARY KEY (id_depozit)
);
CREATE TABLE documente (
tip_doc VARCHAR2(3) NOT NULL,
den_doc VARCHAR2(20),
CONSTRAINT pk_tip_doc PRIMARY KEY (tip_doc)
);

CREATE TABLE parteneri (


nrcontpartener CHAR(24)
NOT NULL,
codfiscpartener CHAR(9),
banca
VARCHAR2(20)
CONSTRAINT ck_banca CHECK (banca=ltrim(upper(banca))),
numepartener
VARCHAR2(15)
CONSTRAINT ck_numepartener CHECK (numepartener=ltrim(upper(numepartener))),
CONSTRAINT pk_nrcontpartener PRIMARY KEY (nrcontpartener)
);
CREATE TABLE plata_depozit (
id_plata_depozit CHAR(10)
NOT NULL,
suma_platita
NUMBER(10, 2),
data_plata
DATE,
tip_tranzactie VARCHAR2(4),
id_depozit
VARCHAR2(5) NOT NULL,
CONSTRAINT PK21 PRIMARY KEY (id_plata_depozit)
);
CREATE TABLE plata_furnizor (
id_plata_furnizor NUMBER(5, 0) NOT NULL,
nrcont
CHAR(24),
nrcontpartener
CHAR(24),
suma_platita
NUMBER(9, 0),
data_plata
DATE
DEFAULT sysdate,
tip_tranzactie
VARCHAR2(4),
CONSTRAINT pk_plata_furnizor PRIMARY KEY (id_plata_furnizor)
);
CREATE TABLE plata_rata (
id_plata_rata NUMBER(5, 0) NOT NULL,
id_credit
VARCHAR2(5),
suma_platita NUMBER(9, 0),
data_plata
DATE
DEFAULT sysdate,
tip_tranzactie VARCHAR2(4),
CONSTRAINT pk_plata_rata PRIMARY KEY (id_plata_rata)
);
CREATE TABLE reprezentanti_banca (
cnp_reprez VARCHAR2(14) NOT NULL,
nume_reprez VARCHAR2(20)
CONSTRAINT ck_nume_reprez CHECK (nume_reprez=LTRIM(INITCAP(nume_reprez))),
CONSTRAINT nn_cnp_reprez PRIMARY KEY (cnp_reprez)
);
CREATE TABLE societati (
codfiscal
VARCHAR2(9) NOT NULL
CONSTRAINT ck_codfiscal CHECK (SUBSTR(codfiscal,1,1) =
UPPER(SUBSTR(codfiscal,1,1))),
cnp_rep
NUMBER(13, 0),
reprezentant VARCHAR2(30),
den_soc
VARCHAR2(30)
CONSTRAINT ck_den_soc CHECK (den_soc=LTRIM(INITCAP(den_soc))),

adresa

VARCHAR2(40)
CONSTRAINT ck_adresa CHECK (SUBSTR(adresa,1,1) = UPPER(SUBSTR(adresa,1,1))),
nrrc
VARCHAR2(13),
tel
VARCHAR2(10),
forma_jur
VARCHAR2(5),
capital
NUMBER(10, 0),
CONSTRAINT pk_codfiscal PRIMARY KEY (codfiscal)
);
CREATE TABLE tip_tranzactii (
tip_tranzactie VARCHAR2(4) NOT NULL,
den_tranzactie VARCHAR2(30),
tip_doc
VARCHAR2(3),
cnp_reprez
VARCHAR2(14),
CONSTRAINT pk_id_tranzactii PRIMARY KEY (tip_tranzactie)
);
CREATE TABLE tipuri_credite (
tip_credit
VARCHAR2(4) NOT NULL,
den_credit
VARCHAR2(40)
CONSTRAINT ck_den_credit CHECK (den_credit=ltrim(upper(den_credit))),
dobanda
NUMBER(4, 2),
sumamin
NUMBER(9, 0),
sumamax
NUMBER(9, 0),
valuta
CHAR(3)
NOT NULL
CONSTRAINT ck_valuta_credite CHECK (valuta in ('RON','EUR','USD')),
perioada_max NUMBER(3, 0),
CONSTRAINT pk_tipuri_credite PRIMARY KEY (tip_credit) );
CREATE TABLE tipuri_depozite (
tip_depozit VARCHAR2(3) NOT NULL
CONSTRAINT ck_tip_depozit CHECK (tip_depozit=ltrim(upper(tip_depozit))),
dobanda
NUMBER(4, 2),
sumamin
NUMBER(9, 0),
den_depozit VARCHAR2(40)
CONSTRAINT ck_den_depozit CHECK (den_depozit=ltrim(upper(den_depozit))),
valuta
CHAR(3)
NOT NULL
CONSTRAINT ck_valuta CHECK (valuta in ('RON','EUR','USD')),
nr_luni
NUMBER(3, 0),
CONSTRAINT pk_tip_depozit PRIMARY KEY (tip_depozit)
);
Alte obiecte din baza de date
-- View care sa includa numai societati cu adresa in Iasi
CREATE VIEW Soc_Iasi_view AS
SELECT * FROM societati
WHERE adresa like '%Iasi%';
-

Secventa - poate fi folosita pentru generare valori unice pt cheia primara (din tabela Credite de
exemplu)
CREATE SEQUENCE seq_credit start with 100 Increment by 10 Maxvalue 1000 nocycle;

Inserarea de date in tabelele bazei de date:


---insert into societati
insert into societati values ('R1570298','2780221350102','Stroescu Mihaela','Otiolida','Str. Calarasi,nr
3,iasi','J40/6202/1991','0232302411','SA',2500);
insert into societati values ('R1242536','1580930378954','Mihaila Eugen','Francuta','Str. libertatii, nr
32,pascani,jud iasi','J53/2541/2000','0232455198','SRL',1000);
insert into societati values ('R2148791','2480131456789','Murariu Narcisa','Romcasa','Str. pacurari,nr
121,iasi','J21/1001/1998','0232455788','SA',65000);
insert into societati values ('R1054605','1650524214598','Ionescu Mihai','Doratex','Str. carol,nr 432,
botosani','J65/8493/2001','0231478988','SRL',54630);
insert into societati values ('R4377784','2681014256487','Dumitriu Ionela','Recor','Str. gen teleman,nr
1,husi,jud vaslui','J23/3200/1997', '0235481107','SA',2600);
--insert into reprezenti banca
insert into reprezentanti_banca values ('2780221350102','Stroescu Mihaela');
insert into reprezentanti_banca values ('1580930378954','Mihaila Eugen');
insert into reprezentanti_banca values ('2480131456789','Murariu Narcisa');
insert into reprezentanti_banca values ('1650524214598','Ionescu Mihai');
insert into reprezentanti_banca values ('2681014256487','Dumitriu Ionela');
insert into reprezentanti_banca values ('1710808124569','Lupascu Viorel');
--insert into documente
insert into documente values ('CEC','Cec');
insert into documente values ('FV','Foaie de varsamant');
insert into documente values ('BO','Bilet la ordin');
insert into documente values ('OP','Ordin de plata');
--insert into conturi
insert into conturi values ('RO23BRDE220SV03805172200','R1570298',2000);
insert into conturi values ('RO25BRDE102SV03452162400','R1242536',1500);
insert into conturi values ('RO32BRDE146SV14568924001','R2148791',3000);
insert into conturi values ('RO25BRDE231SV01246662400','R1054605',25630);
insert into conturi values ('RO25BRDE231SV01246662411','R1054605',25630);
insert into conturi values ('RO25BRDE231SV01246662422','R1054605',25630);
insert into conturi values ('RO04BRDE123LC24568230012','R4377784',45300);

--insert into parteneri


insert into parteneri values ('RO12RBCN124SV126487249XX','R15498630','BCR','HELIORET');
insert into parteneri values ('RO12RBCN1241212648724XXX','R15494234','BCR','INTERTRANS');
insert into parteneri values
('RO12BTRL12412126414678XX','R15493021','TRANSILVANIA','RECON');
insert into parteneri values
('RO12BTRL12124536488724XX','R15214041','TRANSILVANIA','ECOSIF');
insert into parteneri values ('RO51BRMA0730073850330000','R15126432','BANCA
ROMANEASCA','OPTINERG');
insert into parteneri values ('RO39BRMA0730073850395400','R84500314','BANCA
ROMANEASCA','CONDIOS');
insert into parteneri values ('RO04BRMA0730073850300000','R24361001','BANCA
ROMANEASCA','VALICO');
insert into parteneri values ('RO34BPOS70001038788USD02','R23164870','BANCPOST','ANAEC');
insert into parteneri values ('RO17BPOS70003038788EUR01','R12030141','BANCPOST','SELGROS');
insert into parteneri values ('RO12BPOS70003038788ROL06','R24301610','BANCPOST','ROMCARD');
insert into parteneri values ('RO82BPOS70003038788ROL07','R21304121','BANCPOST','DILODOL');
--insert into tipuri_depozite
insert into tipuri_depozite values ('VD',0.25,0,'LA VEDERE','RON',0);
insert into tipuri_depozite values ('T1',5.50,2500,'LA TERMEN DE 1 LUNA','RON',1);
insert into tipuri_depozite values ('T3',5.75,2500,'LA TERMEN DE 3 LUNI','RON',3);
insert into tipuri_depozite values ('T6',6.00,2500,'LA TERMEN DE 6 LUNI','RON',6);
insert into tipuri_depozite values ('T9',6.25,2500,'LA TERMEN DE 9 LUNI','RON',9);
insert into tipuri_depozite values ('T12',6.50,2500,'LA TERMEN DE 12 LUNI','RON',12);
insert into tipuri_depozite values ('T18',7.00,2500,'LA TERMEN DE 18 LUNI','RON',18);
insert into tipuri_depozite values ('OVN',3.50,3000,'DEPOZIT OVERNIGHT','RON',0);
insert into tipuri_depozite values ('E1',2.50,0,'DEPOZIT LA TERMEN DE 1 LUNA IN EURO','EUR',1);
insert into tipuri_depozite values ('E3',3.00,0,'DEPOZIT LA TERMEN DE 3 LUNI IN EURO','EUR',3);
insert into tipuri_depozite values ('E6',3.10,0,'DEPOZIT LA TERMEN DE 6 LUNI IN EURO','EUR',6);
insert into tipuri_depozite values ('E9',3.25,0,'DEPOZIT LA TERMEN DE 9 LUNI IN EURO','EUR',9);
insert into tipuri_depozite values ('E12',3.50,0,'DEPOZIT LA TERMEN DE 12 LUNI IN
EURO','EUR',12);
insert into tipuri_depozite values ('E18',4.00,0,'DEPOZIT LA TERMEN DE 18 LUNI IN
EURO','EUR',18);
insert into tipuri_depozite values ('D1',2.75,0,'DEPOZIT LA TERMEN DE 1 LUNA IN USD','USD',1);
insert into tipuri_depozite values ('D3',3.25,0,'DEPOZIT LA TERMEN DE 3 LUNI IN USD','USD',3);

insert into tipuri_depozite values ('D6',3.50,0,'DEPOZIT LA TERMEN DE 6 LUNI IN USD','USD',6);


insert into tipuri_depozite values ('D9',3.75,0,'DEPOZIT LA TERMEN DE 9 LUNI IN USD','USD',9);
insert into tipuri_depozite values ('D12',4.00,0,'DEPOZIT LA TERMEN DE 12 LUNI IN
USD','USD',12);
insert into tipuri_depozite values ('D18',4.25,0,'DEPOZIT LA TERMEN DE 18 LUNI IN
USD','USD',18);
--insert into tipuri_credit
insert into tipuri_credite values ('C1','CREDIT PENTRU NEVOI
TEMPORARE',0.25,1500,80000,'RON',2);
insert into tipuri_credite values ('C2','CREDIT PENTRU CAPITAL DE
LUCRU',0.12,20000,150000,'RON',12);
insert into tipuri_credite values ('C3','CREDIT PENTRU INVESTITII',0.11,5000,1000000,'EUR',60);
insert into tipuri_credite values ('C4','CREDIT START-UP',0.12,1000,85000,'RON',60);
insert into tipuri_credite values ('C5','CREDIT PENTRU NEVOI
DIVERSE',0.16,1000,200000,'EUR',240);
insert into tipuri_credite values ('C6','CREDIT MICRO PT IMM-URI',0.15,2000,50000,'EUR',12);
--insert into comisioane
insert into comisioane values ('DES','Comision de deschidere',0.25);
insert into comisioane values ('RET','Comision de retragere',0.40);
insert into comisioane values ('ADM','Comision de administrare',7);
insert into comisioane values ('VIR','Comision de virament',20);
insert into comisioane values ('FC','Fara comision',0);
--insert into depozite
insert into depozite values
(1,'T6','RO32BRDE146SV14568924001',5000,TO_DATE('15/09/2006','DD/MM/YYYY'));
insert into depozite values
(2,'T12','RO04BRDE123LC24568230012',7500,TO_DATE('16/10/2006','DD/MM/YYYY'));
insert into depozite values
(3,'OVN','RO32BRDE146SV14568924001',80000,TO_DATE('04/12/2006','DD/MM/YYYY'));
insert into depozite values
(4,'E6','RO32BRDE146SV14568924001',5000,TO_DATE('11/06/2006','DD/MM/YYYY'));
insert into depozite values
(5,'T6','RO23BRDE220SV03805172200',10000,TO_DATE('23/11/2006','DD/MM/YYYY'));
insert into depozite values
(6,'E12','RO32BRDE146SV14568924001',4500,TO_DATE('13/05/2006','DD/MM/YYYY'));

--insert into credite


INSERT INTO CREDITE VALUES '10','RO23BRDE220SV03805172200',50000,6,null,'C2');
INSERT INTO CREDITE VALUES ('11','RO04BRDE123LC24568230012',25000,36,null,'C3');
INSERT INTO CREDITE VALUES ('12','RO04BRDE123LC24568230012',5000,240,null,'C5');
INSERT INTO CREDITE VALUES ('14','RO25BRDE102SV03452162400',10000,1,null,'C1');
INSERT INTO CREDITE VALUES ('16','RO04BRDE123LC24568230012',50000,120,null,'C5');
INSERT INTO CREDITE VALUES ('18','RO25BRDE102SV03452162400',75000,2,null,'C1');
INSERT INTO CREDITE VALUES ('20','RO23BRDE220SV03805172200',900000,36,null,'C3');
--insert into tip tranzactii
insert into tip_tranzactii values ('PR','plata rata','OP',2780221350102);
insert into tip_tranzactii values ('PF','plata furnizor','BO',1580930378954 );
insert into tip_tranzactii values ('INC','incasari','CEC',2480131456789);
insert into tip_tranzactii values ('ICR','incasare_credit','FV',1650524214598 );
insert into tip_tranzactii values ('CD','calcul dobanda','FV',2681014256487);
insert into tip_tranzactii values ('CC','calcul comision','FV',1710808124569);
insert into tip_tranzactii values ('CCC','calcul comision credit','FV',1710808124569);
insert into tip_tranzactii values ('CDC','calcul dobanda credit','FV',2480131456789);
--insert into plata_rata
insert into plata_rata values (100,'10',2003,TO_DATE('15/09/2006','DD/MM/YYYY'),'PR');
insert into plata_rata values (101,'11',102,TO_DATE('14/03/2006','DD/MM/YYYY'),'PR');
insert into plata_rata values (102,'12',120,TO_DATE('14/03/2007','DD/MM/YYYY'),'PR');
insert into plata_rata values (103,'20',1500,TO_DATE('02/03/2007','DD/MM/YYYY'),'PR');
insert into plata_rata values (104,'11',300,TO_DATE('10/05/2007','DD/MM/YYYY'),'PR');
insert into plata_rata values (105,'14',580,TO_DATE('09/11/2006','DD/MM/YYYY'),'PR');
insert into plata_rata values (106,'16',8623,TO_DATE('05/01/2007','DD/MM/YYYY'),'PR');
insert into plata_rata values (107,'18',2130,TO_DATE('24/12/2006','DD/MM/YYYY'),'PR');
-- insert into plata_furnizor
insert into plata_furnizor values
('201','RO25BRDE102SV03452162400','RO12BPOS70003038788ROL06',1500,TO_DATE('24/12/2006'
,'DD/MM/YYYY'),'PF');
insert into plata_furnizor values
('202','RO04BRDE123LC24568230012','RO17BPOS70003038788EUR01',200,TO_DATE('15/11/2006','
DD/MM/YYYY'),'PF');
insert into plata_furnizor values

('203','RO32BRDE146SV14568924001','RO04BRMA0730073850300000',150,TO_DATE('24/02/2007','
DD/MM/YYYY'),'PF');
insert into plata_furnizor values
('204','RO04BRDE123LC24568230012','RO82BPOS70003038788ROL07',320,TO_DATE('02/06/2007','
DD/MM/YYYY'),'PF');
insert into plata_furnizor values
('205','RO23BRDE220SV03805172200','RO12BTRL12412126414678XX',100,TO_DATE('31/12/2006','
DD/MM/YYYY'),'PF');
insert into plata_furnizor values
('207','RO25BRDE102SV03452162400','RO12RBCN1241212648724XXX',231,TO_DATE('24/03/2007'
,'DD/MM/YYYY'),'PF');
insert into plata_furnizor values
('208','RO04BRDE123LC24568230012','RO12BPOS70003038788ROL06',5000,TO_DATE('14/05/2007'
,'DD/MM/YYYY'),'PF');
--insert into plata_depozit
insert into plata_depozit values
('301', 5000,TO_DATE('24/12/2006','DD/MM/YYYY'),'PR',1);
insert into plata_depozit values
('302', 200,TO_DATE('24/01/2007','DD/MM/YYYY'),'PR',1);
insert into plata_depozit values
('303',260,TO_DATE('28/02/2008','DD/MM/YYYY'),'PR',2);
insert into plata_depozit values
('304', 99000,TO_DATE('14/12/2009','DD/MM/YYYY'),'PR',3);
insert into plata_depozit values
('305', 700,TO_DATE('15/04/2008','DD/MM/YYYY'),'PR',4);
insert into plata_depozit values
('306', 52500,TO_DATE('24/12/2009','DD/MM/YYYY'),'PR',4);
insert into plata_depozit values
('307', 8900,TO_DATE('07/12/2006','DD/MM/YYYY'),'PR',5);
--insert into "comisioane tipuri_credite"
insert into "comisioane tipuri_credite" values ('DES', 'C1');
insert into "comisioane tipuri_credite" values ('DES', 'C2');
insert into "comisioane tipuri_credite" values ('DES', 'C3');
insert into "comisioane tipuri_credite" values ('DES', 'C4');
insert into "comisioane tipuri_credite" values ('FC', 'C5');
insert into "comisioane tipuri_credite" values ('FC', 'C6');

--insert into "comisioane tipuri_depozite"


insert into "comisioane tipuri_depozite" values('DES', 'VD');
insert into "comisioane tipuri_depozite" values('DES', 'D9');
insert into "comisioane tipuri_depozite" values('FC', 'VD');
insert into "comisioane tipuri_depozite" values('FC', 'D6');
Interogarea bazei de date
Adaugati coloana Cifra_afaceri in tabela Societati, de tip numeric(10)
ALTER TABLE societati
ADD (cifra_afaceri number(10));
Modificai n Stroescu Mirela numele reprezentantului societatii care are nr de telefon 0232302411:
UPDATE societati
SET reprezentant='Stroescu Mirela'
WHERE codfiscal=( select codfiscal
from societati
where tel= '0232302411');
In tabela tipuri_credite modificati valoarea dobanzii pentru tipul de credit CREDIT PENTRU
INVESTITII cu 5 %
UPDATE tipuri_credite
SET dobanda=dobanda*1.05
WHERE den_credit='CREDIT PENTRU INVESTITII';
Stergeti inregistrarea din tabela depozite pentru depozitul cu data 04-12-2006
DELETE FROM tipuri_depozite
WHERE den_depozit='DEPOZIT LA TERMEN DE 1 LUNA IN EURO';
Care sunt depozitele care contin comision de deschidere?
select den_depozit
from tipuri_depozite t inner join "comisioane tipuri_depozite" cd
on t.tip_depozit= cd.tip_depozit
inner join comisioane c
on cd.id_comision= c.id_comision
where c.id_comision='DES';
Care sunt creditele pentru care nu se percepe comision ?
select den_credit
from tipuri_credite t inner join "comisioane tipuri_credite" cc
on t.tip_credit= cc.tip_credit
inner join comisioane c
on cc.id_comision= c.id_comision
where c.id_comision='FC';
Sa se afiseze tipul documentelor care au loc in tranzactiile facute de angajata Mihaela Stroescu
select den_doc
from documente d , tip_tranzactii tt
where d.tip_doc= tt.tip_doc

and tt.tip_tranzactie= (select tip_tranzactie


from reprezentanti_banca rb inner join tip_tranzactii tt
on rb.cnp_reprez=tt.cnp_reprez
where nume_reprez='Stroescu Mihaela');
Sa se specifice numarul de tranzactii realizate de fiecare reprezentant al bancii
select cnp_reprez, count(den_tranzactie)
from tip_tranzactii
group by cnp_reprez, tip_tranzactie;
Sa se specifice denumirea societatii, capitalul social si suma credita pentru societatile care au credite intre
25000 si 50000
select den_soc Denumire_societate, s.capital Capital_social, suma_credit
from societati s inner join conturi c
on s.codfiscal= c.codfiscal
inner join credite cr
on c.nrcontiban=cr.nrcontiban
where suma_credit BETWEEN 25000 and 50000;
Care este creditul cu cea mai mare dobanda
select den_credit
from tipuri_credite
where dobanda=( select max(dobanda)
from tipuri_credite);
Care este creditul cel mai avantajos
select den_credit
from tipuri_credite
where dobanda=( select min(dobanda)
from tipuri_credite);
Care este cel mai avantajos depozit
select den_credit
from tipuri_credite
where dobanda=( select min(dobanda)
from tipuri_credite);
Suma totala a depozitelor pentru anul 2015
select sum( suma_depozit) suma_totala_2015
from tipuri_depozite tp inner join depozite d
on tp.tip_depozit=d.tip_depozit
where data_depozit like '%06%';
Suma medie depusa in anul 2015
select round(avg( suma_depozit)) suma_totala_2015
from tipuri_depozite tp inner join depozite d
on tp.tip_depozit=d.tip_depozit
where data_depozit like '%15%';
Suma totala pentru fiecare tip de credit
select tip_credit ,sum(suma_credit ) suma_imprumutata
from credite
group by tip_credit;

Sa se afiseze numele partenerilor care au conturi deschise la BCR si cei al caror cont incepe cu 'RO82%'
select numepartener
from parteneri
where banca='BCR'
union
select numepartener
from parteneri
where codfiscpartener like 'RO82%';
Sa se afiseze societatile care au aceeasi forma juridica ca si clientul R2148791
select den_soc
from societati
where forma_jur=( select forma_jur
from societati
where codfiscal=R2148791);

10