Documente Academic
Documente Profesional
Documente Cultură
Coordonator,
Student,
Iai, 2016
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.
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;
('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');
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