19
SEMINARSKI RAD Тема: BAZA PODATAKA ZA BANKU Studenti: Profesori: Tatomir Radošević 159/2006 Dr Danijela Milošević Srđan Radosavljević 41/2006 Mr Radojica Petrović

Baze Podataka - Banka

Embed Size (px)

Citation preview

Page 1: Baze Podataka - Banka

SEMINARSKI RAD

Тема:

BAZA PODATAKA ZA BANKU

Studenti: Profesori:

Tatomir Radošević 159/2006 Dr Danijela Milošević

Srđan Radosavljević 41/2006 Mr Radojica Petrović

Page 2: Baze Podataka - Banka

1. UVOD

Zadatak projekta je baza podataka banke Credit Bank, koja se bavi dodelom kredita klijentima. Banka se nalazi u Čačku i ima filijale u dosta gradova i opština u okolini. Banka kao instiucija koja tokom celog dana komunicira sa klijentima, treba je da ima dobro projektovanu bazu podataka. Ovaj projekat biće orijentisan na kreditiranje klijenata. Projekat obuhvata definisanje poslovnih ciljeva, informacionih potreba, konceptualnog i relacionog modela, implementaciju i na kraju zaključak.

2. POSLOVNI SISTEM

2. 1 Poslovni ciljevi

Banka je u obavezi da zadovolji klijenta na što bolji način, jer znamo da banka daje i usluge kao što je podizanje kredita na određen period, a njen cilj je da pridobije poverenje klijenta. Početni cilj banke je da pridobije veći broj klijenata, a dok je krajnji cilj i zadovoljstvo banke i samih klijenata. Cilj banke je da ponudi što manju kamatnu stopu, kako bi pridobila klijente, a samim tim i smanji mogućnost pojave konkurentnih banaka.

2. 2 Informacione potrebe

Što se tiče zahteva za kredit, baza podataka mora da bude na dobro organizovana, jer prilikom tog zahteva unose se brojne informacije o klijentu, kao što su:

osnovni informacije o klijentu: ime i prezime, ime jednog roditelja, JMBG, mesto rođenja (mesto i postanski broj), adresa iz lične karte (ulica i broj), adresa trenutnog boravka (ulica i broj, mesto i postanski broj), vrsta kredita, iznos kredita u RSD, rok otplate, depozit (procenat i apsolutni iznos), učešće (procenat i apsolutni iznos, kamatna stopa (visina i nivo), naknade, obezbeđenje kredita.

podaci o priloženoj ispravi: lična karta(broj isprave).

podaci o zaposlenju podnosioca zahteva: ime i prezime, JMBG, pun naziv poslodavca i matični broj, PIB, adresa, status zaposlenja podnosioca zahteva (neodređeno-dužina radnog staža kod trenutnog poslodavca, određeno-dužina ukupnog radnog staža), iznos prosečne tromesečne bruto zarade podnosioca zahteva u RSD, iznos prosečne tromesečne neto zarade podnosioca zahteva u RSD, kontakt.

3. Konceptualni model

Na osnovu poslovnog sistema Credit Bank formiran je ER dijagram, prikazan na slici 1., koji prikazuje glavne entitete, njihove atribute i veze među njima.

Glavni zadatak baze je da omogući evidenciju o načinu kreditiranja. Iz tog razloga se uvodi entitet KREDIT, čiji atributi predstavljaju osnovne informacije o njemu: id, iznos kredita u RSD, vrsta kredita, rok otplate, kamatna stopa, procenat depozita, procenat učešća.

Page 3: Baze Podataka - Banka

Kako svaki kredit u banci mora biti zahtevan od klijenta, uvodi se entitet KLIJENT. Ali pošto podizanje kredita zahteva i postojanje trećeg lica, kao neki vid garancije, uvodi se entitet ŽIRANT, koji sa svojim atributima pruža neophodne informacije o njemu, a to su: JMBG, broj lične karte, ime, prezime, adresa, ime jednog roditelja, iznos prosečne bruto zarade, iznos prosečne neto zarade i kontakt. Atributi koji opisuju entitet KLIJENT su: JMBG, mesto rođenja, broj lične karte, broj računa na koji se vrši uplata, ime, prezime, adresa, ime jednog roditelja, iznos prosečne bruto zarade, iznos prosečne neto zarade, kontakt.

Znamo da je za dodeljivanje kredita potrebna institucija i odgovarajući čelnici te ustanove, pa se uvode još dva entiteta: FILIJALA i BANKAR.

FILIJALA ima svoje atribute, a to su: id, naziv, sedište, adresa sedišta, kontakt telefon. Dok BANKAR-a opisuju sledeći atributi: id, ime, prezime, pozicija u banci.

Na kraju, entitet IZVEŠTAJ se uvodi iz tog razloga, što klijentu banka treba da dostavi izveštaj o tome kako je prošla dodela kredita. Taj izveštaj se sastoji iz atributa koji ga opisuju, a to su: suma koja je odobrena, datum uplate novca, datum podizanja novca, vreme podizanja novca.

Svaki KLIJENT mora imati jednog ili više ŽIRANTA. A sa druge strane, svaki ŽIRANT mora garantovati za jednog i samo jednog KLIJENTA. Ova veza je mandatorna i za klijenta i za žiranta.

Svaki KLIJENT može zahtevati jedan i samo jedan KREDIT. A sa druge strane, svaki KREDIT može biti dodeljen jednom ili više klijenata. Ova veza je mandatorna i za klijenta i za kredit.

Svaki KREDIT može biti ponuđen od jedne i samo jedne FILIJALE. A sa druge strane, svaka FILIJALA mora da ponudi jedan ili više KREDITA. Ova veza je opcionalna za kredit, a mandatorna za filijalu.

Svaka FILIJALA mora imati jednog ili više BANKARA. A sa druge strane, svaki BANKAR mora mora da radi za jednu i samo jednu FILIJALU. Ova veza je mandatorna i za filijalu i za bankara.

Svaki BANKAR mora da potpiše jedan ili više IZVEŠTAJA. A sa druge strane, svaki IZVEŠTAJ mora biti potpisan od strane jednog i samo jedog BANKARA. Ova veza je mandatorna i za bankara i za izveštaj.

Svaki KLIJENT mora imati jednu ili više ZARADA. A sa druge strane, svaka ZARADA mora pripadati jednom i samo jednom KLIJENTU. Ova veza je mandatorna i za klijenta i za zaradu.

Svaki ŽIRANT mora imati jednu ili više ZARADA. A sa druge strane, svaka ZARADA mora pripadati jednom i samo jednom ŽIRANTU. Ova veza je mandatorna i za žiranta i za zaradu.

Page 4: Baze Podataka - Banka

potpisuje

potpisan

pripada

ima

pripada

Na sledećoj slici je prikazan ER dijagram, koji prikazuje entitete, atribute i veze među njima.

Slika 1. ER dijagram za Credit Bank

KLIJENT# JMBG* ime* prezime* mesto rođenja* broj računa * broj lične karte º ime jednog roditeljaº adresa º kontakt

KREDIT# id* iznos kredita u RSDº rok otplateº kamatna stopaº procenat depozitaº procenat učešća

FILIJALA# id* naziv* sedište º kontakt telefon

ŽIRANT# JMBG* ime* prezime* mesto rođenja*broj lične karteº ime jednog roditeljaº adresa º kontakt

BANKAR# id* ime* prezimeº pozicija u banci

zahteva

dodeljen

ponuđen

ponudi

ima

radi

ima

garantuje

IZVESTAJ# id* suma koja je odobrena* datum uplate novcaº datum podizanja novcaº vreme podizanja novca

ZARADA_K#idº iznos prosečne bruto zaradeº iznos prosečne neto zarade

ZARADA_Z#idº iznos prosečne bruto zaradeº iznos prosečne neto zarade

ima

Page 5: Baze Podataka - Banka

4. Relacioni model

Konceptualni model baze podataka se prevodi u relacioni model baze podataka. To znači da će navedeni entiteti, atributi, veze i jedinstveni identifikatori biti prevedeni u objekte relacione baze podataka.

Svaki od entiteta se prevodi u šemu tabele, atribut u kolonu, jedinstveni identifikatori postaju primarni ključevi, a veze među entitetima se transformišu u strane ključeve. Na slici 2. je prikazan dijagram relacionog modela baze podataka za banku koji se dobija transformacijom konceptualnog modela.

Slika 2. Relacioni model baze podataka za banku

KLIJENTIpk *JMBG * ime * prezime *mesto rođenja * broj računa * broj lične karte  º ime jednog roditelja º adresa º kontaktfk *id_kr

ZIRANTIpk *JMBG * ime * prezime * mesto rođenja

* broj racuna * broj lične karte  º ime jednog roditelja º adresa º kontaktfk *JMBG_kl

KREDITIpk *id *iznos kredita u RSD º vrsta kredita º rok otplate º kamatna stopa º procenat depozita º procenat učešćafk *id_ban

FILIJALEpk *id * naziv * adresa sedišta º kontakt telefon

BANKARIpk *id * ime * prezime º pozicija u bancifk *id_ban

IZVESTAJIpk *id * suma koja je odobrena * datum uplate novca º datum podizanja novca º vreme podizanja novcafk *id_bankar

ZARADE_Kpk * id º iznos prosečne bruto zarade º iznos prosečne neto zaradefk *JMBG_kl

ZARADE_Zpk * id º iznos prosečne bruto zarade º iznos prosečne neto zaradefk *JMBG_zir

Page 6: Baze Podataka - Banka

5.Implementacija

Baza podataka Credit Bank implementirana je korišćenjem Oracle Application Express alata. Implementacija je izvršena kroz nekoliko koraka.

5.1 Kreiranje tabela i stranih ključevaPostupak kreiranja tabela izvršen je unošenjem SQL komandi. Nakon logovanja na OAE

pokrenuta je ikona SQL/SQL Commands/Enter Command. Kreirano je ukupno 8 tabela, na osnovu relacionog modela. Kôd na osnovu koga su kreirane tabele:

Tabela FILIJALECREATE TABLE filijale(id NUMBER(4) PRIMARY KEY,naziv VARCHAR2(40) NOT NULL,adresa_sedista VARCHAR2(30) NOT NULL,kontakt_telefon VARCHAR2(20));

Tabela BANKARI

CREATE TABLE bankari (id NUMBER(4)PRIMARY KEY, ime VARCHAR2(15) NOT NULL, prezime VARCHAR2(15) NOT NULL, pozicija_u_banci VARCHAR2(20), id_ban NUMBER(4) NOT NULL, CONSTRAINT bankari_banka_id_fk FOREIGN KEY(id_ban) REFERENCES filijale(id));

Page 7: Baze Podataka - Banka

Tabela IZVE ŠTAJI CREATE TABLE izvestaji(id NUMBER(10) PRIMARY KEY,suma_koja_je_odobrena NUMBER(20) NOT NULL,datum_uplate_novca DATE NOT NULL,datum_podizanja_novca DATE,vreme_podizanja_novca VARCHAR2(5),id_bankara NUMBER(4) NOT NULL,CONSTRAINT izvestaji_bankar_id_fk FOREIGN KEY(id_bankara) REFERENCES bankari(id));

Tabela KREDITICREATE TABLE krediti(id NUMBER(6) PRIMARY KEY,iznos_kredita_u_RSD NUMBER(20) NOT NULL,vrsta_kredita VARCHAR2(20),rok_otplate VARCHAR2(20),kamatna_stopa VARCHAR2(5),procenat_depozita VARCHAR2(5),procenat_ucesca VARCHAR2(5),id_ban NUMBER(4),CONSTRAINT krediti_banka_id_fk FOREIGN KEY(id_ban) REFERENCES filijale(id));

Page 8: Baze Podataka - Banka

Tabela KLIJENTICREATE TABLE klijenti(jmbg NUMBER(13) PRIMARY KEY,ime VARCHAR2(15) NOT NULL,prezime VARCHAR2(15) NOT NULL,mesto_rodjenja VARCHAR2(20) NOT NULL,broj_racuna VARCHAR2(20) NOT NULL,br_licne_karte NUMBER(10) NOT NULL,ime_jednog_roditelja VARCHAR2(15),adresa VARCHAR2(30),kontakt VARCHAR2(20),id_kredita NUMBER(4),CONSTRAINT klijenti_krediti_id_fk FOREIGN KEY(id_kredita) REFERENCES krediti(id));

Tabela ZIRANTICREATE TABLE ziranti(jmbg NUMBER(13) PRIMARY KEY,ime VARCHAR2(15) NOT NULL,prezime VARCHAR2(15) NOT NULL,mesto_rodjenja VARCHAR2(20) NOT NULL,broj_racuna VARCHAR2(20) NOT NULL,br_licne_karte NUMBER(10) NOT NULL,ime_jednog_roditelja VARCHAR2(15),adresa VARCHAR2(30),kontakt VARCHAR2(20),jmbg_kl NUMBER(13) NOT NULL,CONSTRAINT ziranti_klijenti_id_fk FOREIGN KEY(jmbg_kl) REFERENCES klijenti(jmbg));

Page 9: Baze Podataka - Banka

Tabela ZARADE_KCREATE TABLE zarade_k(id NUMBER(10) PRIMARY KEY,iznos_prosecne_bruto_zarade NUMBER(20),iznos_prosecne_neto_zarade NUMBER(20),jmbg_kl NUMBER(13) NOT NULL,CONSTRAINT zarade_k_klijenti_id_fk FOREIGN KEY(jmbg_kl) REFERENCES klijenti(jmbg));

Tabela ZARADE_ZCREATE TABLE zarade_z(id NUMBER(10) PRIMARY KEY,iznos_prosecne_bruto_zarade NUMBER(20),iznos_prosecne_neto_zarade NUMBER(20),jmbg_zir NUMBER(13) NOT NULL,CONSTRAINT zarade_z_ziranti_id_fk FOREIGN KEY(jmbg_zir) REFERENCES ziranti(jmbg));

5.2 Unos podataka u tabele

INSERT INTO filijale (id, naziv, adresa_sedista, kontakt_telefon)VALUES(1234, 'Credit Bank Pozega', 'Knjaza Milosa 8', '031/817-656')INSERT INTO filijaleVALUES(1235, 'Credit Bank Cacak', 'Devet Jugovica 0', '032/564-523')INSERT INTO filijaleVALUES(1236, 'Credit Bank Ivanjica', 'Zorana Djinkica 10', '032/852-001')

INSERT INTO bankari(id, ime, prezime, pozicija_u_banci, id_ban)VALUES(0000, 'Tatomir', 'Radosevic', 'sef filijale', '1234')INSERT INTO bankariVALUES(0001, 'Mitar', 'Poslezime', 'krediti', '1234')INSERT INTO bankariVALUES(0002, 'Srdjan', 'Radosavljevic', 'direktor', '1235')

INSERT INTO krediti(id, iznos_kredita_u_rsd, vrsta_kredita, rok_otplate, kamatna_stopa, procenat_depozita, procenat_ucesca, id_ban)VALUES(0000, 50000, 'poljoprivredni', '36 meseci', '3 %', '5%', '5%', '1236')

Page 10: Baze Podataka - Banka

INSERT INTO kreditiVALUES(0001, 60000, 'poljoprivredni', '12 meseci', '5 %', '10%', '12%', '1234')INSERT INTO kreditiVALUES(0002, 600000, 'stambeni', '48 meseci', '6 %', '10%', '8%', '1234')

INSERT INTO klijenti(jmbg,ime, prezime, mesto_rodjenja, broj_racuna, br_licne_karte, ime_jednog_roditelja, adresa, kontakt, id_kredita)VALUES (3107987797622, 'Borko', 'Nikolic', 'Vranje', '642-184567-245', '69727', 'Mirko', 'Petra Pana 12', null, 0002)

INSERT INTO klijentiVALUES (0405987622532, 'Zivadin', 'Jaric', 'Pozega', '568-532689-455', '568923', 'Srdjan', 'Popeciteljska 18', '063/112-223', 0001)

INSERT INTO izvestaji (id, suma_koja_je_odobrena, datum_uplate_novca, datum_podizanja_novca, vreme_podizanja_novca, id_bankara)VALUES(000, 50000, '02-MAY-08', '03-MAY-08', '11:36', 0000)

INSERT INTO izvestaji VALUES(001, 80000, '15-MAR-09', '20-MAR-09', '15:28', 0002)

INSERT INTO ziranti(jmbg,ime, prezime, mesto_rodjenja, br_licne_karte, ime_jednog_roditelja, adresa, kontakt, jmbg_kl)VALUES(2112965123456, 'Marko', 'Peric', 'Pancevo', 654321, 'Zivadin', 'Ljubic kej 16', '064/589-652', '3107987797622')

INSERT INTO zirantiVALUES(2507967548692, 'Mitar', 'Nebojsic', 'Ivanjica', 889665, 'Djura', 'Djure danicica 45', null, '0405987622532')

INSERT INTO zarade_z (id, iznos_prosecne_bruto_zarade, iznos_prosecne_neto_zarade, jmbg_zir)VALUES(00, 50000, 40000, 2112965123456)

INSERT INTO zarade_zVALUES(01, 80000, 75000, 2507967548692)

INSERT INTO zarade_k (id, iznos_prosecne_bruto_zarade, iznos_prosecne_neto_zarade, jmbg_kl)VALUES(00, 90000, 79000, 0405987622532)

INSERT INTO zarade_k VALUES(01, 79000, 75000, 3107987797622)

Page 11: Baze Podataka - Banka

5.2 Kreiranje aplikacije

Iz Home prozora OAE bira se nova ikona Application Builder/Create. Prvi korak u u kreiranju aplikacije je davanje imena aplikacije. U ovom slučaju to je ime Credit Bank.

Slika 3. Imenovanje aplikacije

Nakon toga vrši se kreiranje strana aplikacije. Ukupno ima 9 strana aplikacije.

Page 12: Baze Podataka - Banka

Slika 4. Kreiranje strana aplikacije

Prva strana je prazna (Blank) i ona će biti prikazana kao početna strana prilikom izvršavanja aplikacije. U njoj će biti naveden naziv baze podataka.Prilikom kreiranja aplikacije bira se i izgled korisničkog interfejsa. Oracle Application Express nudi veliki broj tema za korisnički interfejs. Izgled mogućih tema je prikazan na slici 5.

Slika 5. Izgled tema za korisnički interfejs

Page 13: Baze Podataka - Banka

Kada su kreirane sve osnovne strane i određena tema korisničkog interfejsa, dobija se prozor koji daje pregled nove aplikacije (slika 6.).

Slika 6. Pregled aplikacije Credit Bank

5.2 Pokretanje aplikacijeNakon formiranja svih formi i izveštaja za kreirane tabele vrši se pokretanje aplikacije. Aplikacija Credit Bank se nalazi u okviru prozora Application Builder. Klikom na aplikaciju otvara se novi prozor u okviru koga treba odabrati ikonu Run Application (slika 7).

Slika 7. Pokretanje aplikacije

Page 14: Baze Podataka - Banka

Prilikom pokretanja aplikacije, otvara se strana koja je pri kreiranju aplikacije formirana prva, u našem slučaju, to je Naslovna strana.

Slika 8. Naslovna strana

U gornjem delu aplikacije nalaze se kartice za svaku kreiranu tabelu. Prilikom testiranja i unošenja podataka pre predaje aplikacije korisniku, treba voditi računa da bude unet dovoljan broj podataka kako bi demonstracija baze bila uspešna. Klikom na karticu FILIJALE otvara se strana na kojoj se nalazi izveštaj o već unetim podacima, kao i link Filijale u gornjem levom uglu ispod Navigation koje poziva formu za unos novog zapisa.

Slika 9. Izveštaj o filijalama

Slika 10. Forma za unos u tabelu FILIJALE

6. ZaključakPolazeći od misije, ciljeva i informacionih potreba korisnika, kreirana je baza podataka i aplikacija Credit Bank da bi bilo omogućeno kvalitetnije poslovanje sa klijentma i uvećanje poslovnog uspeha banke. Ovom bazom se banci olakšava poslovanje i uvid u prethodno i aktuelno stanje.