Sunteți pe pagina 1din 74

Cuprins

Introducere ......................................................................................................................................3

Capitolul 1. Descrierea problemei economice ..............................................................................4 1.1 Prezentarea firmei sau domeniului abordat.............................................................................4 1.2 Principalele atribuii i responsabiliti pe compartimente.....................................................5 1.3 Activitile firmei ..................................................................................................................6 1.4 Prezentarea activitii care va fi informatizat ......................................................................8

Capitolul 2. Tehnologii informatice utilizate .............................................................................10 2.1 Oracle Database 10g Enterprise Edition ..............................................................................10 2.2 SQL .......................................................................................................................................12 2.3 Visual C#.NET ......................................................................................................................15

Capitolul 3. Analiza i proiectarea sistemului informatic .......................................................20 3.1 Specificarea cerinelor sistemului informatic .......................................................................20 3.2 Analiza sistemului existent ...................................................................................................23 3.2.1 Identificarea entitilor i a caracteristicilor acestora.....................................................23 3.2.2 Identificarea procedurilor necesare ................................................................................27 3.3 Proiectarea noului sistem ......................................................................................................28 3.3.1 Proiectarea schemelor bazei de date ..............................................................................28 3.3.2 Proiectarea prelucrrilor ...............................................................................................37

Capitolul 4. Realizarea aplicaiei informatice ............................................................................41 4.1 Implementarea aplicaiei .......................................................................................................41 4.2 Prezentarea aplicaiei ............................................................................................................48

Concluzii ........................................................................................................................................55 Bibliografie ....................................................................................................................................56 Anexe .............................................................................................................................................58

Introducere
Sistemul financiar bancar ce are ca obiect instrumentele i tehnicile de plat reprezint un domeniu de pregnant importan n desfurarea operaiunilor economice i financiare n economia de pia. Evoluiile n domeniu, care au fost determinate att de creterea considerabil a dimensiunilor fluxului de pli i respectiv de eforturi organizatorice de a opera cu maxim eficien, dar i cu tehnologii noi angajate n domeniu au condus la constituirea unui segment independent de abordare tiinific a sistemului bancar. Sistemul financiar bancar, ca o parte specific a relaiilor monetare privind instrumentele i tehnicile de plat s-a dezvoltat puternic susinut de tehnologia modern, de progresiile informaticii i telecomunicaiilor. Sistemul bancar al unei ri este definit prin reeaua instituiilor de credit rezidente n ara respectiv i a relaiilor economice n care componentele acesteia sunt parte. Banca este definit ca fiind o entitate de stat sau particular ale crei funcii principale sunt atragerea mijloacelor bneti temporar disponibile ale clienilor n conturile deschise ale acestora, acordarea de credite pe diferite termene, efectuarea de viramente ntre conturile deschise la diferite bnci, emiterea de instrumente de credit i efectuarea de tranzacii cu asemenea instrumente, vnzarea-cumprarea de valut i alte operaiuni valutare.Bncile au devenit instituii indispensabile vieii economice contemporane. Ele nlesnesc tranzaciile comerciale din interiorul su din exteriorul unei ri,ofer instrumente pentru efectuarea plilor, se implic n schimbul valutar. Aceste instituii sunt astzi universul n jurul cruia graviteaz banii. Astfel, bncile s-au impus ca autoriti supreme, datorit puterii pe care o au asupra banilor. Totodat, n contextul epocii moderne, nu trebuie omise mutaiile care au aprut n relaiile banc-client, n produsele i serviciile oferite i, nu n ultimul rnd, n managementul bancar. n prezent, componenta IT a devenit deosebit de important n orice banc comercial, de aceast depinznd nsi existena bncii. Utilizri ale tehnologiilor informaiei n domeniul bancar i propune s evidenieze nu numai multiplele posibiliti de valorificare a potenialului 2

IT, dar i soluiile adoptate de o serie de bnci comerciale de-a lungul timpului. Utilizarea depozitelor de date n sistemele informatice bancare s-a dezvoltat ca urmare a contientizrii impactului componentei informaionale asupra business-ului.

Capitolul 1. Descrierea problemei economice

1.1 Prezentarea firmei sau domeniului abordat


n [1] detaliile despre banc sunt prezentate prin faptul c BRD - Groupe Socit

Gnrale este a doua banc romneasc, dup activele bancare i deine a doua capitalizare la Burs de Valori Bucureti. BRD - Groupe Socit Gnrale este prezent n toate judeele Romniei printr-o reea de 930 de agenii . La 31 decembrie 2008, BRD numra 2,6 milioane clieni activi individuali i corporativi i peste 2,3 millioane de carduri. Calitatea servicilor este garantat de cei peste 9500 de profesioniti care formeaz echip BRD. Acionarul principal al BRD este Socit Gnrale, unul dintre cele mai mari grupuri bancare din zona euro, ale crui servicii sunt utilizate de 27 milioane clieni din ntreaga lume. Banca i exercit n principal activitatea pe 3 piee: Banca persoanelor fizice; Banca ntreprinderilor; Banca de investiii. Filialele Groupe Socit Gnrale: BRD Sogelease: leasing; RD Corporate Finance: consiliere n domeniul privatizrilor, fuziunilor i achiziiilor; BRD Finance : credite de consum; ALD Automotive: gestiunea flotelor de vehicule; BRD Asset Management: gestiunea activelor; BRD Pensii: pensii private; ECS Romnia: leasing i managementul echipamentelor IT; SOGEPROM: dezvoltare i promovare imobiliar. Strategia bncii n materie de comunicare financiar este susinut de urmtoarele principii: 3

Egalitatea accesului la informaii pentru toi acionarii i disponibilitatea imediat a acestora; Respectarea termenelor n materie de publicare de rezultate; Transparena i coerena informaiilor furnizate.

1.2 Principalele atribuii i responsabiliti pe compartimente


n [2] sunt prezentate urmtoarele atribuii i responsabiliti existente n instituia bancar: Director grup: conduce i dinamizeaz i urmrete activitatea comercial,coordoneaz elaborarea strategiei locale, grupului. Director Financiar Contabil Logistic: asigur logistica n ceea ce privete implementarea unor noi tehnologii (sisteme informatice, mesagerie, etc.) i a unor noi produse / servicii. Director Comercial Clieni persoane juridice /persoane fizice: asigur buna imagine a bncii pe piaa cu reocupare special n ceea ce privete calitatea, rentabilitatea i gestiunea riscurilor; poate nlocui directorul de grup pe perioada absenei acestuia; gestioneaz portofoliul marilor clieni corporativi i urmrete atragerea clienilor int. Controlor general: realizeaz controlul ulterior care se exercit asupra tuturor activitilor derulate de uniti; acioneaz n scopul prevenirii i eliminrii pierderilor, prejudiciilor i fraudelor, a minimizarii riscurilor activitii bancare precum i a creterii veniturilor i diminurii cheltuielilor. Compartiment juridic: coordoneaz activitatea juridic n ceea ce privete legalitatea garaniilor propuse n conformitate cu normele de credit ale Bncii; execut toate celelalte activiti de natur juridic. Comitetul de Recuperare Credite Neperformante: este organizat, funcioneaz i i exercit atribuiile n cadrul competenei stabilite de normele de recuperare a creditelor neperformante aprobate de Consiliul de Administraie; asigur examinarea i aprobarea msurilor de recuperare a creditelor neperformante la nivelul Grupului. Back-office - Recuperarea creditelor neperformante: supravegheaz aplicarea normelor i procedurilor de lucru pentru recuperarea creditelor neperformante; analizeaz portofoliul de credite neperformante. Trezorerie, Compensare: pregtete borderourile de centralizare pentru operaiunile n lei; efectueaz operaiunile de back-office inter i intra bancare; supravegheaz i coordoneaz asigurnd politicile pentru implementarea acesteia la nivelul

organizarea activitii de trezorerie la nivelul Grupului pentru aplicarea unitar a strategiei de trezorerie la nivelul Bncii . Ghieu- casierie lei i devize clieni persoane fizice: asigur serviciile de ghieu (primire / predare documente, informaii depre cont etc.); efectueaz operaiuni de schimb valutar. Creditare i consiliere clientel persoane fizice: ntocmete dosarele de credit; efectueaz operaiuni contabile n legtur cu gestiunea conturilor de clieni. Consilieri clientel: asigur dezvoltarea relaiilor ntre clieni i Banc; asigur legtur dintre clieni i Banc, avnd i rol operaional pentru anumite produse i servicii. Ghieu - casierie lei i devize clieni persoane juridice: asigur serviciile de ghieu(primire/predare documente,informaii despre cont etc.); efectueaz operaiuni de schimb valutar. Operaiuni i transferuri n lei - persoane juridice i fizice: efectueaz operaiuni de ncasri i plti n lei; efectueaz operaiuni cu cecuri n lei. Operaiuni de transferuri n valut - persoane juridice i fizice: efectueaz operaiuni de ncasri i pli n valut; pregtete raportrile pentru operaiunile n valut ale compartimentului. Analiz i urmrire credite i scrisori de garanie bancar: rspunde la toate interveniile privitoare la analiz (inclusiv pe teren, deci este necesar i interveniile administrative asupra unui dosar de credit); emite / modific / anuleaz scrisori de garanie bancar. Activitatea de marketing urmrete atingerea unor obiective precum: extinderea niei de pia prin lansarea unor oferte complete de servicii i produse dedicate;mbuntirea relaiei banc-client, prin identificarea punctelor slabe n calitatea serviciilor i n satisfacerea cerinelor clienilor.

1.3 Activitile firmei


Obiectul de activitate: Efectuarea de operaiuni i servicii bancare pentru proiectele de investiii economice i financiare ale statului, ce se realizeaz, integral sau parial, din fonduri de la buget i din mprumuturi n valut de la bncile de dezvoltare internaionale, instituii financiare i de la alte bnci. Atragerea de fonduri bneti, acordarea de credite n lei i valut i efectuarea de servicii bancare pentru activitatea de investiii, de producie, comercial i de

prestri servicii, desfurat de regii autonome, societi comerciale, societi mixte, instituii de stat, uniti cooperatiste, organizaii obteti, asociaii familiale sau persoane fizice.

n [3] este prezentat faptul ca BRD-Groupe Socit Gnrale i concentreaz activitatea pe trei axe majore:

Banca de retail: Banca se bucur de o bun imagine n rndul populaiei ,avnd peste 1,4 milioane de clieni i peste 1.000.000 posesori de carduri, deinnd o treime din piaa cardurilor i fiind lider dup volumul tranzaciilor nregistrat. Cu o cot de peste 25% din pia creditelor de consum, BRD-Groupe Socit Gnrale ocup primul loc n acest domeniu bancar. Banca de referin a societilor comerciale BRD-Groupe Socit Gnrale este banca de referin pentru ntreprinderile private din Romnia ,avnd peste 65% din plasamente n credite acordate sectorului privat. Cu peste 11.000 faciliti de credit acordate , BRD- Groupe Socit Gnrale este prezent n toate ramurile economiei jucnd un rol important fa de companiile multinaionale, franceze sau internaionale ,clieni pe care Groupe Socit Gnrale i urmeaz peste tot n lume. Banca de investiii Prin intermediul celor 2 entiti specializate - BRD/SG Corporate Finance care ofer consultan n investiii i privatizri, precum i n domeniul fuziunilor i achiziiilor i BRD Securitiers- Groupe Socit Gnrale S.A, una din primele cinci societi de brokeraj de pe piaa romneasc - BRD - Groupe Socit Gnrale ofer servicii integrate marilor clieni romni i strini. Printre clienii cu nume de rezonan ai BRD- Groupe Socit Gnrale se numra importante societi multinaionale dar i autoritile romneti, care au beneficiat din partea

BRD- Groupe Socit Gnrale de servicii de consultan pentru privatizarea unor companii romneti.

1.4. Prezentarea activitii care va fi informatizat


Activitile principale ale BRD sunt cele specifice unei bnci comerciale n general, adic: S permit clienilor s-i retrag banii sau s-i transfere n alte conturi; Clienilor care solicita credite, folosind depozite atrase (plasarea fondurilor); S acorde mprumuturi; S atrag depozitele bneti ale clienilor persoane fizice sau juridice (atragerea fondurilor). Operaiuni pasive legate de depozitele la vedere i la termen, adic primirea depunerilor spre fructificare i depozitelor de la unitile cooperatiste asociate, de la ceilali asociai fondatori, de la unitile cooperatiste neasociate i de la ali ageni economici ,persoane fizice i juridice, romne i strine, inclusiv a garaniilor depuse de ctre gestionri. Operaiuni active referitoare la acordarea de mprumuturi pe termen mediu i lung organizaiilor i agenilor economici ai Cooperaiei de Consum i Credit, productorilor agricoli, meseriailor, altor particulari precum i ai agenilor economici cu capital privat ,public sau de stat. Operaiuni accesorii: n aceast grup pot fi incluse: Decontarea operaiunilor interne privind livrrile de mrfuri, prestrile de servicii; Cumprarea, vnzarea, inerea n custodie i/sau administrarea de active monetare; Alte operaiuni de virament pe cont propriu sau n contul clienilor.

Banca de retail: 7

Banca numra peste 2,6 milioane clieni persoane fizice i peste 2,3 milioane de carduri. Cota sa de pia variaz ntre 15% i 20%, n funcie de produse. Se numra printre liderii pieei cardurilor bancare i a creditelor pentru consum. Activitatea de credite de consum la locul de vnzare se deruleaz prin intermediul filialei specializate BRD Finance.

Banca de referin a ntreprinderilor romneti i internaionale: BRD este banc de referin n sectorul privat din Romnia, peste 65 % din totalul creditelor fiind acordate acestui sector att pentru ntreprinderile mici i mijlocii i microntreprinderi, ct i pentru marile corporaii. Este implicat n toate ramurile economiei i n cadrul colectivitilor locale. n afar finanrilor clasice, gama de produse i servicii acoper n totalitate gestiunea fluxurilor de numerar, serviciile de leasing, prin intermediul filialei BRD Sogelease, factoring-ul intern i extern ct i soluii complete de externalizare a flotelor de vehicule prin filiala ALD Automotive. Beneficiind de sprijinul Grupului Socit Gnrale, BRD joac un rol important n relaia cu societile multinaionale.

Capitolul 2 Tehnologii informatice utilizate


2.1 Oracle Database 10g Enterprise Edition
n lucrarea [4] autorul susine ca Oracle este un sistem de gestiune al bazelor de date complet relaional, extins, cu faciliti din tehnologia orientat obiect (OO). Sistemul Oracle este realizat de firma Oracle Corporation care a fost nfiinat n anul 1977 n SUA - California i acum este cel mai mare furnizor de software de gestiunea datelor. Acesta este operaional pe toat gama de calculatoare (micro, mini, mainframe) sub diverse sisteme de operare. Prima versiune de SGBD Oracle a fost realizat la sfritul anilor '70 respectnd teoria relaional. n lucrarea [5] autorul ne prezinta faptul ca tehnologia Oracle Database 10g Enterprise Edition este ideal pentru ntreprinderile care au nevoie pentru a susine un volum mare de procesare a tranzaciilor on-line i de aplicaii de depozitare intensive de date de interogare. Acesta ofer scalabilitate dovedita pe toate configuraiile hardware i poate fi folosit pentru a gestiona cantiti foarte mari de informaii, cu cel mai nalt nivel de asigurare de securitate din industrie. Oracle Database 10g Enterprise Edition suport toate tipurile standard de date relaionale, precum i stocarea nativa a XML, text, documente, imagini, audio, video i date de locaie. Un sprijin suplimentar pentru date spaiale complexe pot fi adugate cu opiunea Oracle Spatial. Accesul la datele stocate se face prin intermediul interfeelor standard, cum ar fi SQL, JDBC, SQLJ, ODBC, OLE DB i ODP.NET, SQL / XML, XQuery i WebDAV. Logica de afaceri desfurat n baza de date poate fi scris att n Java ct i n PL / SQL. Odat stocate, toate datele pot fi transformate, indexate i sintetizate folosind n paralel operaiuni puternice. Aplicaiile Business Intelligence vor beneficia n special din Enterprise Edition, de indexarea bitmap unica i capabilitile de jonciune, interogari transparente de re-scriere pentru a utiliza date pre-rezumate i cuprinztoare cu operaiuni paralele de interogare, toate avnd ca rezultat imbunatatirea performantei de interogare. 9

Oracle Database 10g Enterprise Edition accept interogri distribuite i tranzacii ntre dou sau mai multe baze de date i include suport ncorporat pentru conectarea prin ODBC la pentru a treia baza de date comune. n plus, Transparent Gateways pentru baze de date specifice sunt disponibile, oferind o soluie extrem de optimizat de integrare a informaiei. Oracle Database 10g Enterprise Edition ofer de asemenea un framework built-in pentru capturare, ateptare i prelucrare a evenimentelor n baza de date, cum ar fi cele care sunt cauzate de schimbrile de date sau create prin intermediul aplicaiilor de afaceri. Aceste evenimente, mpreun cu modificrile asociate datelor sau a mesajelor aplicatiei, pot fi repercutate n mod automat i aplicate de ctre unul sau mai multe baze de date sau aplicaii, oferind o solutie integrata pentru coada de mesaje i replicare a datelor. Oracle Database 10g Enterprise Edition poate fi folosit ca un depozit central de stocare al datelor coordonat ntr-o ramur de mediu de birou, mpreun cu un Standard Edition local sau Standard Edition One database. Baza de date Oracle ofer cel mai puternic securitate disponibil n industria de azi. n ultimul deceniu Oracle a finalizat cu succes 17 evaluri de securitate independente. Consolidarea datelor, cerinele de confidenialitate i reglementrile guvernamentale, cum ar fi HIPAA necesit caracteristici sofisticate de securitate. Oracle Database 10g ofer industriei funcii de securitate pentru conducere, cum ar fi nivelul de securitate bob /rnd, securitatea coloanei,filtrarea coloanei, criptarea datelor, autentificarea proxy, contextul de aplicare i roluri sigure de aplicare. Acestea sunt n plus fa de caracteristici de securitate banale, cum ar fi audit, controalele pentru complexitatea parolei, suport robust pentru rolurile bazei de date, proceduri stocate i funcii. Grid Computing este utilizarea coordonat a unui numr mare de servere low-cost i a dispozitivelor de stocare acionnd ca o singur resurs de calculator partajat. Ca prima baz de date proiectat pentru grid, Oracle Database 10g Enterprise Edition permite adoptarea Grid Computing n trei pai simpli, cu investiii minime, zero ntreruperi i recuperarea rapid a investiiei: Prin standardizarea pe servere low-cost i de stocare; Prin intermediul dinamic de provizionare a tuturor bazelor de date i serverele de aplicaii; Prin automatizarea end-to-end a gestionarii sarcinilor de zi cu zi, care s permit unui singur administrator s se ocupe simultan de sute de servere.

10

Oracle Database 10g Enterprise Edition uureaz instalarea i configurarea unui mediu de baze de date care folosete aceste servere hardware cu costuri reduse, inclusiv de provizionare dinamica a resurselor i de echilibrare a volumului de munc pentru a satisface definit nivelurile de servicii.

2.2 SQL

SQL (Structured Query Language) este un limbaj de programare specific lucrului cu bazele de date, devenit un standard n domeniu, fiind cel mai popular limbaj utilizat pentru crearea, modificarea, regsirea i manipularea datelor de ctre Sistemele de Gestiune a Bazelor de Date (SGBD) relaionale. Domeniul su de aplicare include date de interogare i actualizare, crearea i modificarea de scheme, precum i controlul accesului la date. Este un limbaj neprocedural i declarativ, deoarece utilizatorul descrie ce date vrea s obin, fr a fi nevoie s stabileasc modalitile de a ajunge la datele respective. Foarte frecvent, este utilizat n administrarea bazelor de date client/server, aplicaia client fiind cea care genereaz instruciunile SQL. Pentru c exist o standardizare a limbajului SQL, multe SGBD-uri (Oracle, Access, Sybase) recunosc principalele instruciuni ale acestuia. Caracteristicile adugate standardului se numesc extensii. n lucrarea [4] autorul ofer urmtoarele informaii : Conceptele necesare a fi cunoscute pentru lucrul cu acest limbaj sunt: tabela, cheie primar, coloan, rnd, viziune, index, sinonim, cluster, baz de date relaional, comand, blocul, cererea,raportul etc. Tabela sau relaia este un ansamblu format din n coloane (atribute/subansambluri) i m rnduri (tupluri/linii) care respect urmtoarele condiii minime: nu conine date la nivel agregat (valorile aflate la intersecia liniilor cu coloanele s fie la un nivel elementar); liniile sunt distincte unele fa de altele; nu conine coloane repetitive n descriere. Cheia primar este un atribut care are valori distincte. Deci, fiecare linie se identific printr-o valoare distinct. Dou sau mai multe atribute care pot fi chei primare se numesc chei candidate. Coloana tabelei este format din valorile pe care le ia atributul n liniile tabelei respective. Rndul/tuplul/linia este format din valorile coloanelor ce se refer la o entitate a tabelei.

11

Baza de date relaional este un ansamblu de tabele normalizate, grupate n jurul unui subiect, n principiu, bine definit. ntr-o baz de date relaional, entitile i legturile sunt transpuse n tabele. Viziunea este o tabela logic i reprezint o fereastr la date, dintr-una sau mai multe tabele. Pentru ca accesul la date sa se fac mai rapid, se utilizeaz indexarea. Un index reprezint o cheie pe una sau mai multe coloane. Indexarea este dinamic deoarece se pot adaug sau terge indeci oricnd, fr ca datele memorate sau aplicaiile scrise s fie afectate. Pentru realizarea unor operaii sau pentru a utiliza n cereri nume mai scurte, se pot defini sinonime ale unor nume de tabele sau viziuni. Un cluster reprezint o anumit modalitate de grupare a rndurilor uneia sau mai multor tabele. Aceast grupare mrete viteza de execuie a unor operaii consumatoare de timp. Comanda este o instruciune emis din SQL ctre o baz de date Oracle. Blocul reprezint un grup de instruciuni SQL i PL/SQL. Cererea este o comanda SQL (SELECT) care regsete date din baza de date. Rezultatul cererii l formeaz datele regsite din baza de date. Raportul este rezultatul cererii formatat cu ajutorul comenzilor SQL. Numele unei baze de date, al unei tabele, coloane sau variabile utiliz ator trebuie s aib lungimea ntre 1 i 30 caractere. Un nume nu poate conine apostrofuri. Cu att mai puin, un nume utilizat ntr-o comand nu va fi introdus ntre apostrofuri. Literele mici i mari sunt echivalente (nu se face distincia ntre literele mici i mari). Un nume trebuie s nceap cu o liter, s conin numai anumite caractere (A-Z, 0-9, $, #, @, -), s nu duplice numele unui alt obiect de acelai tip i s difere de un cuvnt rezervat ORACLE. Exist 3 metode de baz privind implementarea limbajului SQL: Apelare direct (Direct Invocation): const n introducerea instruciunilor direct de la prompter; Modular (Modul Language): folosete proceduri apelate de programele aplicaie; ncapsulat (Embedded SQL): conine instruciuni ncapsulate n codul de program.

12

Instruciunile SQL pot fi grupate n: Instruciuni de definire a datelor, care permit descrierea structurii bazei de date; Instruciuni de manipulare a datelor: adaug, terge, modific nregistrri; Instruciuni de selecie a datelor, care permit consultarea bazei de date ; Instruciuni de procesare a tranzaciilor; Instruciuni de control al cursorului; Instruciuni pivind controlul accesului la date.

Elementele limbajului: Clauzele, care sunt n unele cazuri opionale, sunt componente constitutive ale declaraiilor i interogrilor; Expresiile,care pot produce fie valori scalare sau tabele constnd din coloane i rnduri de date; Predicate, care precizeaz condiiile care pot fi evaluate n SQL three -valued logic (3VL) i care sunt folosite pentru a limita efectele declaraiilor i interogrilor, sau pentru a schimba fluxul de program; Interogri, care preiau date pe baza unor criterii specifice; Declaraii, care pot avea un efect persistent asupra schemelor i datelor, sau care pot controla tranzacii, fluxul de program, conexiuni, sesiuni, sau diagnosticare; Spaiile libere nesemnificative, sunt n general ignorate n declaraiile i interogrile SQL, ceea ce uureaz formarea i citirea de cod SQL. Scrierea comenzilor SQL - O instruciune SQL este format din cuvinte rezervate i cuvinte definite de utilizator. Cuvintele rezervate au o denumire fix, iar cuvintele definite de utilizator reprezint denumirile diverselor obiecte din baza de date (BD). Instruciuni pentru definirea datelor - Teoretic, comenzile pentru definirea datelor fac parte din modulul corespunztor componenei DDL din SGBD. Totui, n majoritatea implementrilor SQL comenzile pentru definire a datelor sunt prelucrate de acelai interpretor ce rezolv i interogrile i operaiile de manipulare ale datelor. Componentele DML i DDL ale SGBD sunt implementate n acelai modul software. Instruciuni pentru selecia datelor

13

Cereri de interogare simple: instruciunile de selecie - reprezint una din categoriile cele mai importante ale limbajului SQL. Indiferent dac sunt cereri simple sau complexe, cuvntul cheie este SELECT. Cereri de interogare complexe : sunt acele interogri n care apar funciile agregat (COUNT,SUM,AVG,MIN ), asocierile ( interogrile JOIN ) sau combinrile ( interogrile UNION ). Instruciuni pentru manipularea datelor - Foarte utile n exploatarea unei BD, aceste instruciuni se implementeaz prin interogrile de aciune. Este necesar o mare precauie n utilizarea lor deoarece aciunile sunt ireversibile, putnd influien inclusiv integritatea referenial a bazei de date. Cele mai importante sunt: CREATE, INSERT, UPDATE i DELETE.

2.3 Visual C#.NET


n lucrarea [6] tehnologia este prezentat prin faptul c C # este un limbaj elegant i type-safe (de tip n condiii de siguran) orientat-obiect care permite dezvoltatorilor sa construiasca o varietate de aplicaii sigure i robuste, ce ruleaza pe. NET Framework. Se poate folosi C # pentru a crea aplicaii client Windows tradiionale, servicii Web XML, compon ente distribuite, aplicatii client-server, aplicatii de baze de date, si multe altele. Sintaxa C# este foarte expresiva, dar este, de asemenea, simpla i uor de nvat. Sintaxa tipica C# va fi instantaneu recunoscuta pentru oricine este familiarizat cu C, C + + sau Java. Dezvoltatorii care nu cunosc niciuna din aceste limbi sunt, de obicei n msur s nceap s lucreze productiv n C#, ntr-un timp foarte scurt. Sintaxa C# simplific multe dintre complexitatile C++ i ofer caracteristici puternice cum ar fi tipuri de valoare 'nullable', enumerri, delegai i acces direct la memorie, proprietai ce nu se regsesc n Java. Ca un limbaj orientat pe obiect, C# sprijin conceptele de ncapsulare, motenire i polimorfism. Toate variabilele i metodele, inclusiv metoda Main, punctul de intrare al aplicatiei, sunt ncapsulate n definiii de clas. O clas poate moteni direct din clasa parinte, dar poate pune n aplicare orice numr de interfee. Metode care suprascriu metodele virtuale ntr-o clas printe solicit cuvntul cheie override ca o modalitate de a evita redefinirea accidentale. n C#, o structura este ca o clasa

14

uoara, este un tip 'stack-alocate', care pot pune n aplicare interfee, dar nu are suport pentru motenire. n plus fa de aceste principii de baz orientate pe obiect, C# faciliteaza dezvoltarea componentelor software prin intermediul constructiilor de limbaj inovatoare, inclusiv urmtoarele: Metoda semnturilor ncapsulate numita delegai, care permit notificrile de tip type-safe; Proprieti, care servesc drept accesorii pentru variabilele membru private; Atribute, care furnizeaz metadatele declarative despre tipurile la timpul de rulare; Comentarii nline XML pentru documentaie; Limbaj-integrat de interogare (Language-Integrated Query-LINQ), care furnizeaza interogri ncorporate n capacitile unei varieti de surse de date.

Arhitectura platformei .NET Framework Programele C# ce ruleaza pe. NET Framework, sunt o component integrant a Windows, care include un sistem de execuie virtual numit Common Language Runtime (CLR) i un set unificat de biblioteci de clas. CLR este implementarea comercial fcuta de ctre Microsoft a infrastructurii limbajului comun (CLI), un standard internaional care este baza crearea in execuie si a mediilor de dezvoltare n care limbajele i bibliotecile lucreaza perfect mpreun. Cnd programul C# este executat, ansamblul este ncrcat n CLR, care ar putea lua divers e aciuni pe baza informaiilor. Apoi, dac sunt ndeplinite cerinele de securitate, CLR efectueaza doar in timp (just in time-JIT) de compilare pentru a converti codul de IL la instruciunile main. Urmtoarea diagram ilustreaz relaii de tip timp-compilare i timp-executie din fiiere de cod surs C#, . NET Framework biblioteci de clasa, ansambluri, precum i CLR.

15

Figura 2.1 Arhitectura platformei .NET Framework

n lucrarea [7] autorul prezint caracteristicile limbajului astfel: Pentru gruparea fiierelor surs i a altor resurse utilizate n cadrul aplicaiei, mediul Visual Studio .Net (VS) utilizeaz dou concepte: Proiect: fiier care conine toate informaiile necesare pentru a compila un modul dintr -o aplicaie .Net ; Soluie: fiier care conine lista proiectelor care compun o aplicaie, precum i dependinele dintre ele. Proiectele sunt fiiere XML care conin urmtoarele informaii: Lista fiierelor necesare, poziia pe disc a acestora precum i modul n care vor fi utilizate (compilate in cod executabil, incluse n executabil, ); Lista de module externe referite ; Mai multe seturi de parametri de compilare numite configuraii (implicit sunt doar dou Debug i Release dar se pot defini i alte configuraii); Diverse opiuni legate de proiect.

16

Soluiile sunt fiiere text cu extensia sln care conin lista tuturor proiectelor care compun aplicaia, dependinele dintre ele i configuraiile disponibile. Orice proiect este inclus obligatoriu ntr-o soluie (creat explicit de ctre utilizator sau creat implicit de ctre Visual Studio).

Anatomia unui program C# Programele C# pot fi constituite din mai multe fiiere surs cu extensia cs. Fiecare fiier poate conine mai multe domenii de nume (namespaces). Acestea la rndul lor pot conine declaraii de tipuri (clase, structuri, interfee, delegai sau enumeraii) sau alte domenii de nume. Pot exista declaraii de tipuri i n afara domeniilor de nume, dar aceast abordare nu este recomandat (mai multe detalii n seciunea urmtoare).

Domenii de nume Domeniile de nume sunt entiti sintactice care permit gruparea logic a denumirilor de tipuri. Folosirea domeniilor de nume permite evitarea coliziunilor generate de utilizarea acelorai identificatori n biblioteci diferite. Operaii de intrare/ieire pentru consol Operaiile de I/E cu consola sunt implementate prin metode statice n cadrul clasei System.Console. Cele mai utilizate metode sunt Write (scrie un mesaj la consol), WriteLine (scrie un mesaj i trece la un rnd nou) i ReadLine (citete un rnd de text de la tastatur). Metodele Write i WriteLine primesc aceiai parametri i au acelai comportament (singura diferen este c WriteLine trece la un rnd nou dup afiarea mesajului).

Tipuri simple n C# toate tipurile de date sunt de fapt clase derivate direct sau indirect din clasa System.Object. Limbajul permite utilizarea unor nume alternative pentru tipurile simple de date. Declararea i iniializarea variabilelor (pentru tipuri simple) se face la fel ca n C++. Fiind de fap t clase, toate tipurile de baz conin i metode. Aceste metode pot fi aplicate chiar i n cazul constantelor literale. Toate tipurile conin metoda ToString (motenit din object i suprascris n clasele derivate) care permite transformarea valorii respective n string. n cazul tipurilor numerice, transformarea n string se poate face si cu formatare. Tipurile numerice i tipul bool conin o metod static numit Parse care permite transformarea unui ir de caractere n valoarea corespunztoare. Limbajul poate efectua conversii ntre tipurile de date numerice: automat n 17

cazul n care tipul destinaie este mai puternic dect tipul surs sau explicit dac exist posibilitatea pierderii de informaii (ex convertire din long n int). irurile de caractere pot fi stocate i prelucrate utiliznd tipul string. Acesta este de fapt o colecie imutabil de caractere Unicode (caracterele n C# sunt reprezentate pe 2 octei). Orice modificare efectuat asupra unui string va genera un nou obiect. Tipuri valorice i tipuri refereniale n .NET, tipurile de date se mpart n dou categorii principale: tipuri valoare si tipuri referin. Diferena dintre ele este c variabilele de tip referin conin referine (pointeri) spre datele propriu-zise, care se afla n heap, pe cnd variabilele de tip valoare conin valorile efective. Aceast deosebire se observ, de exemplu, la atribuiri sau la apeluri de funcii. La o atribuire care implic tipuri referin, referina spre un obiect din memorie este duplicat, dar obiectul n sine este unul singur (are loc fenomenul de aliasing mai multe nume pentru acelai obiect). La o atribuire care implic tipuri valoare, coninutul variabilei este duplicat n variabila destinaie. Tipurile refereniale sunt alocate explicit folosind operatorul new i sunt stocate n heap. Manipularea se face utiliznd referine. Conversia dintre tipurile valorice i tipurile refereniale se poate realiza prin mecanismele de mpachetare i despachetare (boxing i unboxing). Aceste mecanisme sunt necesare pentru a permite o tratare unitar a claselor (de exemplu n cadrul coleciilor). mpachetarea presupune copierea valorii de pe stiv n heap i alocarea unei referine la aceasta pe stiv. Despachetarea presupune alocarea spaiului pentru valoare pe stiv i copierea coninutului de pe heap. n cazul despachetrii este obligatorie efectuarea unui cast.

Clase O clas este o structur care conine date constante si variabile, funcii (metode, proprieti, evenimente, operatori suprancrcai, operatori de indexare, constructori, destructor i constructor static) i tipuri imbricate. Clasele sunt tipuri refereniale. Constructori i destructori Constructorii au o sintax asemntoare cu cea din C++ (au acelai nume cu clasa de care aparin i nu au tip returnat). Diferena apare la lista de iniializare: n C# n lista de iniializare nu pot aprea dect cuvintele cheie this (care permite apelarea unui alt constructor din aceeai clas) i base (care permite iniializarea clasei de baz n cazul claselor derivate). 18

Proprieti Proprietile sunt membri n clas care faciliteaz accesul la diferite caracteristici ale clasei. Dei sunt utilizate la fel ca atributele, proprietile sunt de fapt metode i nu reprezint locaii de memorie. Interfee Interfeele reprezint contracte ntre clase. Clasele sau structurile care implementeaz o interfa trebuie s respecte contractul definit de aceasta. Interfeele se declar folosind cuvntul cheie interface, pot conine orice fel de membri mai puin atribute. Membrii interfeelor nu pot conine implementarea acestora i nu pot avea modificatori de acces (sunt obligatoriu publici). Tratarea excepiilor Tratarea excepiilor permite interceptarea i tratarea erorilor care altfel ar conduce la terminarea programului i ofer un mecanism pentru semnalarea condiiilor excepionale care pot aprea n timpul execuiei programului.

Capitolul 3. Analiza si proiectarea sistemului informatic


3.1. Specificarea cerinelor sistemului informatic
O metodologie de analiz i proiectare reprezint o colecie de concepte, tehnici de reprezentare grafice ale acestor concepte, precum i un ansamblu de etape, activiti i pai care trebuie urmai pentru realizarea specific de dezvoltare a produsului.1 In aceasta parte a descrierii sistemului informatic se vor prezenta cerinele privind: informaiile de intrare; informaiile de ieire; funcionalitile realizate de sistem.

Sistemul informatic ce va fi prezentat n cele ce urmeaz este proiectat pentru a fi util n sistemul financiar-bancar i anume pentru grupul bancar BRD - Groupe Societe Generale. Aplicaia cuprinde o baz de date Oracle n care sunt stocate informaii despre clienii i angajaii grupului bancar, informaii despre conturile acestora i modificrile ce au loc pe parcurs, cum ar fi retragere sau depunere numerar, pli, tranzacii, transferuri etc.

A. U Cursuri CSIE 2009-2010

19

Date de intrare

Date de iesire

Prelucrari

Figura 3.1 Circuitul datelor in sistem

Date de intrare Datele de intrare sunt acele valori (informaii) pe care un program le primete dintr-o surs oarecare. n aplicaie acestea sunt Date despre angajai: CNP, nume, prenume, data naterii, sex, stare civil, numr de telefon, e-mail, data angajrii, funcie, salariul, banc la care este angajat; Date despre clieni: CNP, nume, prenume, data naterii, sex, stare civil, numr de telefon, ora, venit lunar, e-mail; Date despre bnci: denumire banc, adres, ora; Date despre adrese: nume strad, numr strad, numr bloc, numr scar, cod potal, ora; Date despre orae: nume ora, ara; Date despre ri: nume ara; Date despre grupuri servicii: denumire grup servicii; Date despre servicii: denumire serviciu, denumire grup serviciu; Date despre funcii: denumire funcie; Date despre tipurile de cont: denumire, IS_credit, IS_debit; Date despre conturi: IBAN, soldul actual, tipul de cont; 20

Date despre arhiv contului: IBAN, sold, suma depus, suma retras, data; Date despre autentificare: CNP, parol.

Rapoartele obinute Datele de ieire reprezint valorile pe care programul le genereaz ca urmare a executrii instruciunilor sale i le transmite utilizatorului. n aplicaie, n funcie de fiecare utilizator, informaiile de ieire sunt:

Client Raport despre situaia conturilor pe care le deine; Raport de efectuare a plilor; Raport despre tranzaciile efectuate din conturile deinute; Calculator virtual pentru a calcula ratele unui credit; Microsoft Outlook pentru a trimite reclamaii sau nemulumiri.

Angajat banc Cutare dup un anumit IBAN i afiarea soldului la momentul respectiv; Retragere numerar dintr-un anumit cont; Depunere numerar ntr-un anumit cont; Cutare angajat dup CNP; Posibilitatea de a modifica anumite detalii despre client; Creare cont pentru un anumit angajat; Lichidare cont pentru un anumit angajat; Raport pentru calculul ratelor lunare ale unui credit i suma restant de pltit; Calculator virtual pentru a calcula ratele unui credit.

Administrator Cutare client dup CNP; Posibilitatea de a modifica anumite detalii despre un client; Cutare angajat dup CNP; Posibilitatea de a modifica anumite detalii despre un angajat; 21

Raport ce afieaz toi clienii ce au luat un anumit credit; Raport ce caut toi angajaii cu un salariu mai mare dect o anumit sum;

Funcionaliti Funcionalitile sistemului sunt ceea ce trebuie s realizeze sistemul. Acestea sunt n funcie de fiecare utilizator ce se autentific la baza de date:

Client Consultarea conturilor deinute cu tot cu soldul disponibil; Efectuarea de tranzacii att ctre clienii BRD ct i ctre clienii altor bnci; Consultarea tranzaciilor efectuate din conturile sale, ct i data la care au fost realizate; Consultarea calculatorului virtual de rate pentru detalii despre credit; Posibilitatea de a face o reclamaie sau o sugestie.

Angajat banc Cutare dup un anumit IBAN; Retragere numerar din contul respectiv; Depunere numerar n contul respectiv; Cutare client dup CNP; Posibilitate de a edita starea civil, numrul de telefon, oraul i venitul lunar pentru un anumit client; Lichidarea unul anumit cont deja existent; Crearea unui cont pentru un anumit client; Calculator rate pentru un anumit tip de credit; Afiarea scadentarului

Administrator Cutare client dup CNP; Posibilitate de a edita starea civil, numrul de telefon, oraul i venitul lunar pentru un anumit client; 22

Cutare angajat dup CNP; Posibilitate de a edita funcia, numrul de telefon, salariul i denumire banc pentru un anumit angajat; Creare raport ce afieaz toi clienii ce au un anumit tip de cont; Creare raport ce afieaz toi angajaii cu un salariu mai mare de un anumit prag.

3.2.Analiza sistemului existent


3.2.1. Identificarea entitilor i a caracteristicilor acestora Entitile necesare proiectrii bazei de date prezente n aplicaie i caracteristicile acestora vor fi prezentate n continuare.

Tabelul nr. 3.1 Entitatile si atributele tabelelor

Entitate

Atribute
ID_Banci Denumire_Banca ID_Adrese ID_Adrese Strada Numar

Banci

Adrese

Bloc Scara Cod_Postal ID_Orase

ID_Orase

Orase

Denumire_Oras 23

Entitate

Atribute
ID_Tari

Tari

ID_Tari Denumire_Tara CNP_Angajat Nume_Angajat Prenume_Angajat Data_Nasterii

Angajati

Sex Stare_Civila Nr_telefon EMAIL ID_Orase Data_Angajarii ID_Functii Salariu ID_Banci ID_Functii

Functii

Denumire_Functie Descriere CNP_Client Nume_Client Prenume_Client Data_Nasterii

Clienti

Sex Stare_Civila Nr_Telefon ID_Orase Venit_Lunar EMAIL

24

Entitate Grupuri_Servicii

Atribute
ID_Grupuri_Servicii Denumire_Grup_Servicii Descriere ID_Servicii

Servicii

Denumire_Serviciu Descriere ID_Grupuri_Servicii

Clienti_Servicii

ID_Clienti_Servicii CNP_Client ID_Servicii ID_Tipuri_Cont

Tipuri_Cont

Denumire Descriere IS_Credit IS_Debit

IBAN

IBAN Sold_Actual ID_Tipuri_Cont ID_IBAN_Arh

IBAN_Arh

IBAN Sold Suma_Depusa Suma_Retrasa Data

Clienti_IBAN

ID_Clienti_IBAN IBAN CNP_Client

Angajati_IBAN

ID_Angajati_IBAN 25

Entitate

Atribute
IBAN CNP_Angajat

Entitile Clieni i Angajai sunt cele mai importante deoarece pe baza lor se realizeaz majoritatea procedurilor i funciilor din baza de date. n baza de date sunt stocate datele personale i conturile clienilor i angajailor, ct i alte activiti cum ar fi pli, tranzacii etc.

Tabelul nr. 3.2 Relatiile tabelelor m-m Entiti Clienti Servicii Relaie multi-la-multi Explicaie Un client poate avea mai multe servicii si un serviciu poate avea mai multi clienti.

3.2.2. Identificarea procedurilor necesare O procedur este un modul care ndeplinete una sau mai multe aciuni. O funcie este un modul care returneaz o valoare i spre deosebire de proceduri, un apel la o funcie nu poate exista dect ca parte a unui executabil, cum ar fi un element ntr-o expresie sau valoarea atribuit n mod implicit ntr-o declaraie a unei variabile. Pentru o mai uoar administrare toate procedurile i funcii se menin ntr-un pachet.

Client Procedura ce calculeaz ratele n funcie de tipul creditului, valoarea creditului i perioad; Procedura ce returneaz IBAN i soldul disponibil pentru un anumit client identificat prin CNP; Funcie care testeaz dac IBAN-ul se afl n baz de date BRD; 26

Efectuarea unei pli ctre un IBAN BRD sau ctre unul care nu se afl n baza de date a bncii; Trigger care se declaneaz n momentul n care se face un update n tabela de IBAN-uri i insereaz IBAN, sold dinainte de update, retragere/depunere i data la care a avut loc tranzacia.

Angajati Procedura care caut un anumit IBAN i afiarea acestuia cu tot cu soldul disponibil; Procedura care caut un client dup CNP; Procedura ce realizeaz depunerea unei anumite sume n cont; Procedura ce realizeaz retragerea unei anumite sume din cont.

Administrator Procedura care caut client dup un anumit CNP; Procedura care caut un angajat dup un anumit CNP; Procedura care returneaz toi clienii care au un anumit cont; Procedura returneaz toi angajaii care au un salariu mai mare fa de o anumit sum.

3.3. Proiectarea noului sistem

3.3.1. Proiectarea schemelor bazei de date. Pe baza entitilor prezentate la punctul 3.2.1, se ilustreaz baza de date cu tabelele i coloanele corespunztoare fiecreia dintre ele, ct i legturile dintre tabele i tipul lor. n continuare vor fi prezentate coloanele i tipurile de date specifice fiecreia dintre tabele: Tabelul nr. 3.3 Tabela Clienti

Camp
CNP_Client Nume_Client

Tip
number varchar2(50) 27

Prenume_Client Data_Nasterii Sex Stare_Civila Nr_Telefon ID_Orase Venit_Lunar EMAIL

varchar2(50) date varchar2(10) varchar2(30) number number number varchar2(30)

n tabela Clienti vor fi stocate informaii referitoare la clienii grupului bancar,cum ar fi informaii personale ca nume, prenume, numr de telefon etc. Cheia primar a tabelei este reprezentat de CNP_Client, iar n tabela mai este prezent o cheie secundar i anume ID_orae,care face referire ctre tabela Orase.

Tabelul nr. 3.4 Tabela Angajati

Camp
CNP_Angajat Nume_Angajat Prenume_Angajat Data_Nasterii Sex Stare_Civila Nr_telefon EMAIL ID_Orase Data_Angajarii

Tip
number varchar2(30) varchar2(30) date varchar2(10) varchar2(30) number varchar2(30) number date 28

ID_Functii Salariu ID_Banci

number number number

n tabela Angajati vor fi stocate informaii referitoare la angajaii grupului bancar cum ar fi informaii personale ca nume, prenume, numr de telefon etc. Cheia primar a tabelei este reprezentat de CNP_Angajat, iar n tabel mai sunt prezente trei chei secundare i anume ID_orae care face referire ctre tabela Orase, ID_Funcii care face referire la tabela Functii i ID_Bnci care face referire la tabela Banci. Tabelul nr. 3.5 Tabela Banci

Camp
ID_Banci Denumire_Banca ID_Adrese ce orae se afl i ce adrese au fiecare dintre ele.

Tip
number varchar2(40) number

In tabela Banci vor fi stocate informaii despre numele sucursalelor grupului bancar, n Cheia primar a tabelei este reprezentat de ID_Bnci, iar n tabel mai exist o cheie secundar i anume ID_Adrese ce face referire la tabela Adrese. Tabelul nr. 3.6 Tabela Adrese"

Camp
ID_Adrese Strada Numar Bloc Scara Cod_Postal ID_Orase

Tip
number varchar2(40) number number number number number

n tabela Adrese vor fi stocate informaii despre adresele la care se afl sediile bncilor; vor fi stocate numele strzii, numrul strzii, numrul blocului, numrul scrii, codul potal i oraul n care se localizeaz. 29

Cheia primar a tabelei este reprezentat de ID_Adrese, iar n tabela mai exist o cheie secundar i anume ID_Orae care face referire la tabela Orase. Tabelul nr. 3.7 Tabela Orase

Camp
ID_Orase Denumire_Oras ID_Tari

Tip
number varchar2(45) number

In tabela Orase vor fi stocate informaii despre oraele n care i au reedina clienii i angajaii bncilor, ct i cele n care se afl sucursalele bncilor. Cheia primar a tabelei este reprezentat de ID_Orae, iar n tabel mai este prezent o cheie secundar i anume ID_Tari ce face referire la tabela Tari. Tabelul nr. 3.8 Tabela Tari

Camp
ID_Tari Denumire_Tara

Tip
number varchar2(50)

n tabela Tari vor fi stocate informaii despre rile n care i au reedina clienii i angajaii bncilor, ct i cele n care se afl sucursalele bncilor. Cheia primar a tabelei este ID_ri. Tabelul nr. 3.9 Tabela Functii

Camp
ID_Functii Denumire_Functie Descriere ct i descrierea acestora.

Tip
number varchar2(50) varchar2(264)

n tabela Functii vor fi stocate informaii despre funciile deinute de angajaii bncilor, Cheia primar a tabelei este reprezentat de ID_Funcii. Tabelul nr. 3.10 Tabela Grupuri_Servicii

Camp
ID_Grupuri_Servicii

Tip
number 30

Denumire_Grup_Servicii Descriere

varchar2(40) varchar2(264)

n tabela Grupuri_Servicii vor fi stocate informaii despre grupurile de servicii pe care le ofer banca clienilor si, ct i descrierea fiecruia. Cheia primar a tabelei este ID_Grupuri_Servicii Tabelul nr. 3.11 Tabela Servicii

Camp
ID_Servicii Denumire_Serviciu Descriere ID_Grupuri_Servicii

Tip
number varchar2(50) varchar2(264) number

n tabela Servicii se vor stoca informaii despre serviciile oferite de banca clienilor si, ct i descrierea fiecruia i grupul de servicii din care face parte. Cheia primar a tabelei este ID_Servicii, iar n tabel mai exist o cheie secundar i anume ID_Grupuri_Servicii ce face referire ctre tabela Grupuri_Servicii.

Tabelul nr. 3.12 Tabela Clienti_Servicii

Camp
ID_Clienti_Servicii CNP_Client ID_Servicii

Tip
number number number

Tabela Clienti_Servicii este o tabel intermediar ce a fost creat pentru a elimina relaia muli-la-muli dintre tabelele Clienti i Servicii. Aici vor fi stocai toi clienii i ce servicii folosete fiecare. Cheia primar a tabelei este ID_Clieni_Servicii, iar n tabela mai exist dou chei secundare i anume CNP_Client ce face referire la tabela Clienti i ID_Servicii ce face referire la tabela Servicii. 31

Tabelul nr. 3.13 Tabela Tipuri_Cont

Camp
ID_Tipuri_Cont Denumire Descriere IS_Credit IS_Debit

Tip
number varchar2(80) varchar2(264) varchar2(50) varchar2(50)

n tabela Tipuri_Cont vor fi stocate informaii despre tipurile de cont pe care clienii le pot deschide n cadrul bncilor. Se vor stoca denumirea tipului de cont, descrierea i dac este de tip credit sau de tip debit. Cheia primar a tabelei este ID_Tipuri_Cont. Tabelul nr. 3.14 Tabela IBAN

Camp
IBAN Sold_Actual ID_Tipuri_Cont

Tip
number number number

n tabela IBAN vor fi stocate informaii despre conturile clienilor, de ce sold actual dispun i ce tip de cont dein. Cheia primar a tabelei este IBAN, iar n tabel mai exist o cheie secundar i anume ID_Tipuri_Cont ce face referire ctre tabela Tipuri_Cont. Tabelul nr. 3.15 Tabela IBAN_Arh

Camp
ID_IBAN_Arh IBAN Sold Suma_Depusa Suma_Retrasa Data

Tip
number number number number number date 32

n tabela IBAN_Arh sunt stocate informaii despre tranzaciile ce au loc n conturile clienilor. Se reine soldul iniial apoi i se va modifica valoarea n funcie de sumele depuse sau retrase din cont, coloana fiind constant actualizat. Se va mai reine data la care au loc aceste modificri, iar clientul poate avea acces la aceste informaii despre conturile sale. Cheia primar a tabelei este ID_IBAN_Arh, iar tabela mai conine o cheie secundar i anume IBAN ce face referire ctre tabela IBAN. Tabelul nr. 3.16 Tabela Clienti_IBAN

Camp
ID_Clienti_IBAN IBAN CNP_Client

Tip
number number number

Tabela Clienti_IBAN este o tabela intermediar ce a fost creat pentru a uura lucrul cu tabelele Clienti i IBAN. Aici vor fi stocai toi clienii i conturile fiecruia. Cheia primar a tabelei este reprezentat de ID_Clieni_IBAN, iar n tabel mai sunt prezente dou chei secundare i anume IBAN ce face referire la tabela cu acelai nume i CNP_Client ce face referire la tabela Client.

Tabelul nr. 3.17 Tabela Angajati_IBAN

Camp
ID_Angajati_IBAN IBAN CNP_Angajat

Tip
number number number

Tabela Angajati_IBAN este o tabela intermediar ce a fost creat pentru a uura lucrul cu tabelele Angajati i IBAN. Aici vor fi stocai toi angajaii i conturile fiecruia. Cheia primar a tabelei este reprezentat de ID_Angajai_IBAN, iar n tabel mai sunt prezente dou chei secundare i anume IBAN ce face referire la tabela cu acelai nume i CNP_Angajat ce face referire la tabela Angajati.. Legturile dintre tabele 33

Relaia reprezint o asociere ntre dou entiti. Exist 3 tipuri de relaii: unu-la-unu, unula-muli i muli-la-muli. Relaiile muli la muli, prin normalizare, sunt aduse n una din celelalte dou forme: unu-la-unu sau unu-la-muli. n cele ce urmeaz vor fi prezentate legturile dintre tabelele bazei de date:

Tabelul nr. 3.18 Legaturile dintre tabele Entitati Relatie unu-la-muli Observatii O banca poate avea mai multi angajati, insa un angajat nu poate lucra la mai multe banci. O banca poate avea o singura adresa, iar la adresa respectiva se poate localiza doar o banca. Mai multe adrese pot exista intr-un oras, insa mai multe orase nu pot avea aceeasi adresa. Mai multe orase pot apartine unei tari, insa mai multe tari nu pot face parte dintr-un oras. Mai multi angajati pot avea resedinta intr-un oras, insa un angajat nu poate avea resedinta in mai multe orase. Mai multi angajati pot avea aceeasi functie, insa mai multe functii nu pot fi detinute de un singur angajat. Banci_ Angajati unu-la-muli Mai multi angajati pot lucra intr-o banca, insa mai multe banci nu pot avea acelasi angajat. Mai multi clienti pot avea resedinta intr-un singur oras, insa un singur client nu poate avea resedinta in mai multe orase. Un grup de servicii poate contine mai multe servicii, insa un singur serviciu nu poate face parte din mai multe 34

Banci_Angajati

Banci_Adrese

unu-la-unu unu-la-muli

Orase_ Adrese

Tari_ Orase

unu-la-muli unu-la-muli

Orase_ Angajati

Functii_ Angajati

unu-la- muli

Orase_ Clienti

unu-la-muli

Grupuri_Servicii_ Servicii

unu-la-muli

Clienti_Servicii

muli-la-muli

IBAN_ Tipuri_Cont IBAN_Arh_IBAN Clienti_IBAN

unu-la-muli unu-la-unu unu-la-muli

Angajati_IBAN

unu-la-muli

grupuri de servicii. Mai multe servicii pot fi folosite de mai multi clienti. Un tip de cont poate avea mai multe IBAN-uri, insa un IBAN nu poate apartine mai multor tipuri de cont. Informatiile referitoare la un anumit IBAN sunt unice. Un client poate avea mai multe IBAN-uri, iar un IBAN poate fi atribuit unui singur client. Un angajat poate avea mai multe IBAN-uri, iar un IBAN poate fi atribuit unui singur angajat.

35

Schema bazei de date este reprezentat n imaginea de mai jos:


Banci Banci_Adrese_FK Banci_Angajati_FK ID_Banci Number <M> Denumire_Banca Variable characters (128) ID_Adrese Number

Adrese ID_Adrese Strada Numar Bloc Scara Cod_Postal ID_Orase ... Number <M> Variable characters (128) Number Number Number Number Number Orase_Adrese_FK Tari_Orase_FK

Orase ID_Orase Number Denumire_Oras Variable characters (128) ID_Tari Number ... Orase_Clienti_FK

Tari ID_Tari Number Denumire_Tara Variable characters (128) Angajati CNP_Angajat Nume_Angajat Prenume_Angajat Data_Nasterii Sex Stare_Civila Nr_Telefon EMAIL ID_Orase Data_Angajarii ID_Functii Salariu ID_Banci Number Variable Variable Date Variable Variable Number Variable Number Date Number Number Number Orase_Angajati_FK characters (128) characters (128) characters (128) characters (128) characters (128) CNP_Client Nume_Client Prenume_Client Data_Nasterii Sex Stare_Civila Nr_Telefon ID_Orase Venit_Lunar EMAIL Clienti Grupuri_Servicii ID_Grupuri_Servicii Number Denumire_Grup_Servicii Variable characters (128) Descriere Variable characters (512) Number Variable Variable Date Variable Variable Number Number Number Variable characters (128) characters (128) characters (128) characters (128)

Grupuri_Servicii_FK

characters (128)

Functii_Angajati_FK ID_Servicii Denumire_Serviciu Descriere ID_Grupuri_Servicii

Servicii Number Variable characters (128) Variable characters (512) Number Clienti_Clienti_Servicii_FK

Functii ID_Functii Number Denumire_Functie Variable characters (128) Descriere Variable characters (512) ...

Clienti_Servicii ID_Clienti_Servicii Number CNP_Client Number ID_Servicii Number Clienti_Clienti_IBAN_FK

Angajati_Angajati_IBAN_FK

Sevicii_Clienti_Servicii_FK

Tipuri_Cont ID_Tipuri_Cont Denumire Descriere IS_Credit IS_Debit IBAN_Angajati_IBAN_FK Tipuri_Cont_IBAN_FK IBAN_Clienti_IBAN_FK IBAN IBAN Number Sold_Actual Number ID_Tipuri_Cont Number ... Number Variable Variable Variable Variable characters (128) characters (512) characters (128) characters (128) Clienti_IBAN ID_Clienti_IBAN Number CNP_Client Number IBAN Number

Angajati_IBAN ID_Angajati_IBAN Number CNP_Angajat Number IBAN Number

IBAN_IBAN_ARH_FK

IBAN_Arh ID_IBAN_Arh IBAN Sold Suma_Depusa Suma_Retrasa Data ... Number Number Number Number Number Date

Figura 3.1 Schema bazei de date

36

3.3.2. Proiectarea prelucrrilor n cadrul acestui punct se vor prezenta algoritmii necesari implementrii funcionalitilor. Partea de GUI a acestei aplicaii a fost dezvoltat n C# folosind Microsoft Visual Studio 2005. Pentru conectarea la baza de date s-a folosit librria deja existent n Microsoft Framework 2.0 adaugandu-se aadar o referin ctre systemdata.oracleclient. Prin urmare s-a creat un obiect de tipul OracleConnection cruia i s-au atribuit ca parametri username i password ale bazei de date.
string oradb = "Data Source=orcl;User Id=project;Password=project;"; OracleConnection conn = new OracleConnection(oradb);

Ca mod de interogare al bazei de date Project s-a folosit pe lng proceduri i funcii stocate interogri SQL incorporate n C#. Exemplu de procedur stocat care aduce informaii despre client pe baza CNP-ului: objCmd.CommandText = "admin_pkg.cautare_cnp";
objCmd.CommandType = CommandType.StoredProcedure; objCmd.Parameters.Add("v_cnp", OracleType.Number).Value = UtilInfo.cnp; objCmd.Parameters.Add("v_nume", ParameterDirection.Output; objCmd.Parameters.Add("v_prenume", OracleType.VarChar, 2000).Direction = ParameterDirection.Output; objCmd.Parameters.Add("v_stare_civila", 2000).Direction = ParameterDirection.Output; objCmd.Parameters.Add("v_numar_telefon", ParameterDirection.Output; objCmd.Parameters.Add("v_oras", ParameterDirection.Output; objCmd.Parameters.Add("v_venit_lunar", ParameterDirection.Output; OracleType.Number).Direction = OracleType.VarChar, 2000).Direction = OracleType.Number).Direction = OracleType.VarChar, OracleType.VarChar, 2000).Direction =

37

Exemplu de operaie SQL pentru modificarea strii civile a unui client:


OracleConnection conn = new OracleConnection(oradb); conn.Open(); string sql = " update clienti set stare_civila = '" + textBox4.Text + "' where cnp_client='" + UtilInfo.cnp + "'"; OracleCommand cmd = new OracleCommand(sql, conn); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery();

Pentru afiarea informaiilor sub forma unei tabele n C# (grid) s-a apelat o procedur stocat PL/SQL ce returneaz un parametru de tip REF CURSOR:
objCmd.CommandType = CommandType.StoredProcedure; objCmd.Parameters.Add("v_cnp", OracleType.Number).Value = UtilInfo.cnp; objCmd.Parameters.Add("cur_clienti",OracleType.Cursor).Direction ParameterDirection.Output; =

Pentru o mai facil administrare a procedurilor i funciilor pl/sql acestea au fost incorporate n pachete pl/sql. n cazul nostru, innd cont de faptul c avem 3 tipuri de useri, am creat 3 pachete pl/sql cu denumirile Clieni_pkg, Angajai_pkg i Admin_pkg. n continuare vom explicita toate procedurile i funciile: a) Clieni_pkg

Calculatorul virtual de rate este simulat prin procedura procedure calculator_rate


(v_perioada number, v_valoare_credit number, v_tip_credit number, v_rate out number, v_suma_finala out number);

care primete ca parametri de intrare perioada,

valoarea creditului i tipul de credit i returneaz rata lunar i suma final de rambursat. Parametrii IN i OUT sunt de tip NUMBER. Un client i poate vedea situaia conturilor sale cu ajutorul procedurii
client_general (v_cnp number,cur_clienti out t_cursor) procedure

care primeste din aplicatie

CNP-ul clientului care s-a logat si returneaza intr-un REF CURSOR situatia tuturor conturilor sale. n momentul n care un client vrea s fac o plat dintr-un cont al sau trebuie s verificm dac exist n baz de date BRD contul destinatarului pentru a-l actualiza n mod corespunztor. Pentru asta folosim funcia function test_iban (v_iban number) ce returneaz 1 dac exist acel IBAN i 0 dac nu exist. 38

Cnd un client face o plat se apeleaz procedura


number,v_suma number, v_iban_beneficiar

procedure client_plati (v_iban out number)

number,v_sold

unde se

actualizeaza conturile la fiecare tranzactie. De fiecare dat cnd se face o plat i se actualizeaza n cont deja existent n baz se apeleaz triggerul IABN_BEFORE_UPDATE care insereaz n tabela iban_arh IBAN-ul, soldul dinainte de modificare, suma depus/retras n funcie de operaia fcut i data la care a avut loc. Cnd un client vrea s-i vad un istoric al tranzaciilor se apeleaz procedura procedure
client_tranzactii (v_cnp number,cur_clienti out r_cursor )

care primeste ca

parametru CNP-ul clientului si returneaza detaliile din tabela de arhiva mai sus mentionata. Angajai_pkg

a)

n momentul n care angajatul vrea s caute dup un anumit IBAN al clientului se apeleaz procedura procedure cautare_iban (v_iban number,v_iban1 out number,v_sold out
number);

care primete ca parametru IN ibanul i returneaz ibanul i soldul disponibil.


(v_cnp out number,v_nume varchar, out varchar,v_prenume out number, out varchar, out

Dac se dorete cutarea unui client dup CNP se apeleaz procedura procedure
cautare_cnp v_stare_civila v_numar_telefon v_oras

varchar,v_venit_lunar out number);

care returneaza toate datele editabile in afara de nume

si prenume. Pentru depunere de numerar se apeleaz procedura


(v_iban number,v_suma number, v_sold out procedure angajati_depunere

number)

iar pentru retragere numerar

procedura procedure angajati_retragere (v_iban number,v_suma number, v_sold out


number).

a) Admin_pkg Administratorul are posibilitatea s caute dup cnp orice client prin procedura procedure
cautare_cnp (v_cnp out number,v_nume varchar2, out (v_cnp out varchar2,v_prenume out out varchar2, out v_stare_civila v_numar_telefon number,v_oras

varchar2,v_venit_lunar cautare_angajat_cnp

number)

sau orice angajat prin procedura procedure


out varchar2,v_prenume out

number,v_nume

varchar2,v_numar_telefon out number,v_denumire_functie out varchar2,v_salariu out number, v_denumire_banca out varchar2).

39

Administratorul mai are posibilitatea s fac rapoarte. Pentru afiarea tuturor clienilor care au un anumit tip de cont se apeleaz procedura procedure raport_clienti (v_cont number,
cur_rap_clienti out r_cursor)

care primete ca parametru tipul contului i returneaz

numele i prenumele clientului precum i ibanul i denumirea tipului de cont. Pentru afiarea tuturor angajailor care au un salariu mai mare dect o anumit sum se apeleaz procedura
procedure raport_angajati (v_salariu number, cur_rap_angajati out t_cursor)

ce

returneaz cnp-ul angajatului, numele i prenumele su precum i numrul de telefon, funcia sa n banc i denumirea bncii unde e angajat.

40

Capitolul 4. Realizarea aplicaiei informatice


4.1. Implementarea aplicaiei
Principalii pai care se parcurg pentru realizarea aplicaiei se vor prezenta n cele ce urmeaz. Aplicaia faciliteaz accesul la informaiile din baza date, prin interediul unei ferestre cu trei butoane de autentificare i anume pentru clieni, angajai ai bncii i respectiv admini stratorul bazei de date. Aceasta se poate observa n figura de mai jos:

Figura 4.1 Fereastra de start

Client Clientul are acces limitat la baza de date, ntruct poate vizualiza doar informaiile proprii. Asfel, el are acces la serviciul bancar prin internet denumit Home Bank. Clientul poate vizualiza descrierea acestui serviciu i de asemenea se poate autentifica, introducnd n fereastra de logare User numele i prenumele su i Password ce reprezint parola de acces pentru propriul cont. Fereastra de nceput a serviciului bancar prin internet este prezentata in Figura 4.1 din ANEXE. Fereastra pentru autentificare client se poate observa in figura de mai jos:

Figura 4.2 Autentificare client

41

Dup ce clientul s-a autentificat are posibilitatea de a alege dintre patru opiuni, fiecare dintre ele fiind reprezentate prin cte un buton cu nume reprezentativ:

Figura 4.3 Optiunile clientului

Dac opiunea clientului este butonul Detalii client atunci i va aprea urmtoarea fereastr ce va putea oferi informaii i acces la conturile i detaliile proprii:

Figura 4.4 Informatii si detalii cont

Dac opiunea clientului este butonul General atunci vor fi afiate toate conturile pe care le deine, cu informaiile aferente i anume IBAN, denumire i sold actual. Dac opiunea clientului este butonul "Plati atunci acesta poate realiza transferuri din conturile proprii ctre alte conturi proprii sau ale altor persoane. Acest lucru este posibil doar dac sunt completate toate cmpurile i anume IBAN personal, suma ce se dorete a fi transferat i IBAN-ul beneficiarului. Astfel, prin apsarea butonului "Trimite, din soldul contului clientului din care se realizeaz tranzacia, va fi sczut suma aferent pltii i se va afia soldul actualizat. Iar dac IBAN-ul beneficiarului se gsete n baz de date a bncii, atunci soldul acestuia va fi actualizat dup realizarea tranzaciei, adic suma retras din contul clientului se va 42

aduna la soldul beneficiarului. Dac se apas butonul Renunta se ntoarce la fereastr cu "Informatii si detalii cont. Operaiile descrise mai sus se pot observa n Figura 4.2 din ANEXE. Prin apsarea butonului "Tranzactii clientul are posibilitatea de a vizualiza tranzaciile efectuate din conturile sale, fiindu-i afiat IBAN-ul contului, soldul, suma depus, respectiv suma retras i data la care a avut loc tranzacia. Clientul isi poate printa situatia conturilor cu ajutorul butonului Printeaza. Dac se alege butonul "Inapoi atunci aplicaia va reveni la fereastra "Optiunile clientului. De aici dac se selecteaz Calculator virtual rate, clientul are posibilitatea de a calcula n funcie de tipurile de cont de credit, ratele pe care le-ar putea plti pentru creditul de care este interesat. Astfel, acesta alege tipul de cont de credit dorit, perioada n luni i valoarea creditului dorit. Dac se apsa butonul "Calculeza atunci clientul va afla rata lunar i suma rambursat ce este format din suma iniial mprumutat la care se adaug dobnda aferent; iar dac se alege butonul "Inapoi atunci aplicaia se va ntoarce la fereastra "Optiunile clientului. Fereastra de calculator virtual rate arat astfel:

Figura 4.5 Calculator virtual rate

Clientul are posibilitatea de a trimite reclamaii i sugestii personalului bncii. Apsnd butonul "Reclamatii/Sugestii se deschide Microsoft Outlook ce permite trimiterea de mesaje scrise. La alegerea butonului "Logout clientul iese din cont. 43

Angajat Angajatul are acces la baza de date, avnd posibilitatea de a vizualiza i modifica informaii despre clieni. Astfel, acesta se autentific, introducnd n fereastra de logare "User numele i prenumele su i "Password ce reprezint parola de acces pentru cont. Fereastra de autentificare cu care angajatul interacioneaz prezentat n Figura 4.3 din ANEXE. Dup ce s-a autentificat, angajatului i apare o fereastr cu opiuni i anume butoanele "Client, "Calculator rate i "Inapoi.

Figura 4.6 Optiuni angajati

La apsarea butonului Clienti angajatul are posibilitatea de a face mai multe operaii legate de clieni. Acestea sunt reprezentate de trei butoane: dou butoane de cutare client "Cautare dup IBAN i "Cutare dup CNP i un buton pentru modificarea conturilor denumit Conturi. Mai exist un buton denumit "Inapoi care aduce aplicaia la fereastra de "Optiuni angajati. Aceste operaii sunt ilustrate prin intermediul formei de mai jos:

Figura 4.7 Modificari clienti

44

Dup gsirea unui client dup IBAN se afieaz IBAN-ul i soldul contului respectiv. De aici angajatul are opiunea de a depune numerar n contul clientului sau de a retrage numerar. Acest lucru poate fi observat n Figur 4.4 din ANEXE. Mai exist un buton "Inapoi ce aduce aplicaia la fereastra "Modificari clienti. La cutarea client dup CNP se vor putea vizualiza detaliile clientului i anume: nume, prenume, stare civil, numr telefon, ora i venit lunar. Starea civil, numrul de telefon, oraul i venitul lunar pot fi actualizate de ctre angajatul bncii cu ajutorul butoanelor Modifica plasate pentru fiecare dintre cele patru atribute. Mai exist un buton "Inapoi ce aduce aplicaia la fereastra "Modificari clienti. Acest lucru poate fi vizualizat n imaginea de mai jos:

Figura 4.8 Cautare client dupa CNP

La apsarea butonului Conturi angajatul va avea mai multe optiuni i anume "Lichidare cont, "Creare cont, Retragere numerar, Depunere numerar si Inapoi. La Lichidare cont va fi introdus IBAN-ul contului ce se dorete s se lichideze, acesta fiind ters din baza de date din toate tabelele n care se gasete. Butonul "Creare cont ofer posibilitatea angajatului de a crea un nou cont pentru client introducnd un IBAN corespunztor, CNP-ul clientului, soldul iniial al contului i tipul de cont. Crearea contului se realizeaz la apsarea butonului "Adauga si va fi introdus in baza de date. Forma de creare cont este prezentata de Figura 4.5 din ANEXE. La Retragere numerar, respectiv Depunere numerar se va introduce IBAN -ul contului din care se dorete s se fac tranzacia i suma ce va fi transferat. Butonul "Inapoi aduce aplicaia la fereastra "Modificari clienti. 45

Fereastra ce inglobeaz ceea ce este descris mai sus este urmtoarea:

Figura 4.9 Operatiuni conturi

Din fereastra "Optiuni angajati, exist butonul "Calculator rate cu ajutorul cruia angajatul poate calcula mpreun cu clientul, n funcie de tipul de cont, de perioada n luni i valoarea creditului, rata lunar i suma rambursat ce este format din nsumarea creditului iniial i dobnda aferent. Dup calcularea celor din urm, exist posibilitatea vizualizrii unui scadenar, ce afieaz data scadent, rata lunar, rata efectiv, dobnda i restul de plat. Acesta poate fi printat cu ajutorul butonului Printeaza.

46

Din scadenar butonul "Inapoi ntoarce la "Calculator rate:

Figura 4.10 Calculator rate

Butonul "Inapoi al "Calculator rate aduce aplicaia la "Optiuni angajati. Butonul "Inapoi din "Optiuni angajati ofer angajatului posibilitatea ieirii din cont.

Administrator Administratorul are acces la baza de date, avnd posibilitatea de a vizualiz i modifica informaii despre clieni i angajai i de a realiza rapoarte. Astfel, acesta se autentific, introducnd n fereastra de logare "User numele "Admin i "Password ce reprezint parola de acces pentru cont. Fereastra de autentificare cu care administratorul interacioneaz este prezentata n figura 4.6 din ANEXE. Dup autentificare, administratorul are posibilitatea d e a cuta clieni i angajai dup CNP i de a realiza rapoarte.

47

Dup gsirea clienilor are posibilitatea modificrii detaliilor despre acetia. n figura de mai jos se pot observa aceste funcionaliti:

Figura 4.11 Optiuni administrator

La cutarea client dup CNP se vor putea vizualiza detaliile clientului i anume: nume, prenume, stare civil, numr telefon, ora i venit lunar. Starea civil, numrul de telefon, oraul i venitul lunar pot fi actualizate de ctre administrator cu ajutorul butoanelor "Modifica plasate pentru fiecare dintre cele patru atribute. Mai exist un buton "Inapoi ce aduce aplicaia la fereastra "Optiuni administrator. Acest lucru poate fi vizualizat n Figur 4.7 din ANEXE. La cutarea angajat dup CNP se vor putea vizualiza detaliile angajatului i anume: nume, prenume, stare civil, numr telefon, ora i venit lunar. Starea civil, numrul de telefon, oraul i venitul lunar pot fi actualizate de ctre administrator cu ajutorul butoanelor "Modifica plasate pentru fiecare dintre cele patru atribute. Mai exist un buton "Inapoi ce aduce aplicaia la fereastra a "Optiuni administrator. Acest lucru poate fi vizualizat n Figura 4.8 din ANEXE. Butonul "Inapoi din "Optiuni administrator ofer angajatului posibilitatea ieirii din cont.

4.2. Prezentarea aplicaiei


Funcionalitile aplicaiei, tipurile de rapoarte obinute, utilitatea i caracteristicile sale vor fi prezentate n cele ce urmeaz. La toate cele trei ferestre de autentificare, respectiv pentru client, angajat i administrator, atunci cnd sunt introduse greit User i/sau Password va aprea urmtorul mesaj: 48

Figura 4.12 Eroare identificare

Client Clientul, dupa autentificare poate vizualiza situaia conturilor pe care le deine. Acest lucru este observat astfel:

Figura 4.13 Situatia conturilor

La alegerea opiunii Plati, atunci clientul poate realiza transferuri din conturile proprii ctre alte conturi proprii sau ale altor persoane. Acest lucru este posibil doar dac sunt completate toate cmpurile i anume IBAN personal, suma ce se dorete a fi transferat i IBAN-ul beneficiarului. Astfel, prin apsarea butonului "Trimite, din soldul contului clientului din care se 49

realizeaz tranzacia, va fi sczut suma aferent plii i se va afia soldul actualizat. Iar dac IBAN-ul beneficiarului se gsete n baza de date a bncii, atunci soldul acestuia va fi actualizat dup realizarea tranzatiei, adic suma retras din contul clientului se va aduna la soldul beneficiarului. Iniial n contul cu IBAN-ul 478265436785295 soldul era 10500, iar dup realizarea plii a rmas sold actualizat 8500. Dac se apas butonul "Renunta se ntoarce la fereastra cu a"Informatii i detalii cont. Rezultatul este afiat n figura de mai jos:

Figura 4.14 Plati

Prin apsarea butonului "Tranzactii clientul are posibilitatea de a vizualiza tranzaciile efectuate din conturile sale, fiindu-i afiat IBAN-ul contului, soldul, suma depus, respectiv suma retras i data la care a avut loc tranzacia. Aici clientul are posibilitatea printarii documentului cu ajutorul butonului Printeaza. Rezultatul este afiat n Figura 4.9 din ANEXE. Dac se alege butonul "Inapoi atunci aplicaia va reveni la fereastra "Optiunile clientului. Dac se selecteaz butonul "Calculator virtual rate, clientul are posibilitatea de a calcula n funcie de tipurile de cont de credit, ratele pe care le-ar putea plti pentru creditul de care este interesat. Astfel, acesta alege tipul de cont de credit dorit, perioada n luni i valoarea creditului dorit. Dac se apas butonul "Calculeza atunci clientul va afla rata lunar i suma rambursat ce este format din suma iniial mprumutat la care se adaug dobnda aferent; iar dac se alege butonul Inapoi atunci aplicaia se va ntoarce la fereastra "Optiunile clientului. 50

Rezultatul calculatorului virtual rate arat astfel:

Figura 4.15 Calculator rate

Angajat La opiunea "Clienti se alege "Cautare dup IBAN , se introduce IBAN-ul corespunztor i afisaza IBAN, sold i ofer posibilitatea retragerii de numerar i a depunerii de numerar, ct i a ntoarcerii la forma iniial. Astfel, un exemplu de cutare dup IBAN este ilustrat n Figura 4.10 din ANEXE. Apoi vom arta un exemplu de retragere de numerar din acest cont. Rezultatul este prezentat n Figurile 4.11 i 4.12 din ANEXE. La depunere numerar se va realiza la fel ca la retragere, cu diferena c n soldul contului va fi adugata suma i nu sczuta ca la retragere de numerar.

51

Opiunea "Lichidare cont, rezultatul va fi:

Figura 4.16 Lichidare cont

Optiunea Calculator rate calculeaza la fel ca la Client, insa aici apare si scadentarul. Acesta arata in felul urmator:

Figura 4.17 Scadentar

52

Administrator Administratorul realizeaz dou tipuri de rapoarte. Primul este : Cautare client dupa tip cont. Se alege tipul de cont dup care se dorete a se face cutarea, iar rezultatul este prezentat n figura de mai jos, afindu-se :

Figura 4.18 Cautare client dupa tip cont

La fel se realizeaz pentru toate cele unsprezece tipuri de cont: prima cas, imobiliar, ipotecar, nevoi personale, auto, studeni, CLASIC, SELECT, PREMIUM, Cont curent i Cont economii.

53

Al doilea raport este "Cautare angajat dup salariu. Se introduce de la tastatur salariul dup care dorim a se face cutarea, iar rezultatul este ilustrat n figura de mai jos, afindu -se CNP angajat, nume angajat, prenume angajat, numr telefon, denumire funcie, denumire banc:

Figura 4.19 Cautare angajat dupa salariu

54

Concluzii
Sistemele informatice sunt realizate pentru a facilita activitile din toate instituiile din societatea contemporan. Obiectivele sistemului nou proiectat sunt ndeplinite cu succes n msura n care clientul interacioneaz mai bine cu instituiile bancare. Aceast relaie se concretizeaz prin interfaa primitoare i uor de folosit care ajut clientul s-i vizualizeze conturile i tranzaciile efectuate, s realizeze pli, astfel acesta are un control ridicat asupra relaiei cu instituia bancar. Facilitarea activitilor angajailor din sistemul bancar este rezultatul pe care aceast aplicaie l realizeaz printr-un control ridicat asupra ntregii activiti din instituie. Cu ajutorul acestei aplicaii, angajaii vor putea schimba modul prin care se desfoar relaiile dintre banc i client, precum i mbuntirea serviciilor pe care instituia bancar le ofer clienilor. n ceea ce privete impactul asupra modului de lucru al administratorilor, acetia pot avea o imagine de ansamblu att asupra clienilor, ct i asupra angajailor instituiilor bancare. Rapoartele pe care le pot face cu ajutorul aplicaiei informatice pot fi naintate spre nivelurile superioare din instituii, astfel controlul asupra ntregii instituii se realizeaz mai uor. Obiectivul general care a fost definit la proiectarea sistemului informatic a fost atins, componenta IT din sistemul bancar devenind mai fiabil, iar relaiile banc-client i bancangajat se desfoar n condiii de eficien maxim. n funcie de mediul extern al instituiei bancare, se pot dezvolta sisteme adiionale care pot face legtura cu aplicaia curent. Aceste subsisteme pot fi de calcul al datoriei clienilor, care poate fi vizualizat att de ctre client ct i de ctre angajat, se pot dezvolta subsisteme de resurse umane n care dup anumite evaluri ale angajailor din banc s se poat determina gradul de motivare al fiecrui angajat din instituie. Totodat aplicaia a fost proiectat pentru a putea permite extinderea anumitor componente, astfel se poate extinde gradul de control pe care l poate avea administratorul, acesta putnd fi extins spre toate detaliile angajailor i clienilor, controlul fiind unul i mai riguros. n concluzie aplicaia respect parametrii pentru care a fost proiectat, dar se recomand o evaluare ale mediilor intern i extern ale sistemului bancar i n funcie de aceast evaluare s se ia hotrrea adaptrii la cerine a aplicaiei, a mbuntirii sau n cele din urm a schimbrii pariale sau totale a aplicaiei dac aceasta nu mai corespunde din punct de vedere calitativ i al noutii tehnologice. 55

Bibliografie
[1] - http://brd.ro/banca/profil/ (consultat la data de 15 ianuarie 2010) [2] - Documente i informaii BRD Groupe Socit Gnrale sucursala Focani [3] brd. ro/ banca/ axe- de- activitate/ (consultat la data de 15 ianuarie 2010) [4] Lungu I. - Baze de date oracle limbajul SQL Editura ASE, 2008

[5]http://www.net130.com/Class/oracle_tech_cp/ds_general_oracle_database10g_ee_0104.pdf (consultat la data de 15 martie 2010)

[6] - http://msdn.microsoft.com/library/z1zx9t92(VS.100).aspx (consultat la data de 15 martie 2010)

[7] - http://cristianciurea.ase.ro/PAW.aspx (consultat la data de 15 martie 2010) [8] Sabu G. Baze de date Editura Matrix Rom, 2008 [9] Velicanu M. Muntean M. - ORACLE : platforma pentru baze de date Editura Petrion, 2002 [10] Velicanu M. Lungu I. - Sisteme de baze de date : teorie si practica Editura Petrion 2003 [11] Morgan B. Perkins J - SQL fara profesor in 14 zile Editura Teora, 1997 [12] Smeureanu I. Dardala M. - Visual C#.Net Editura Cison, 2004 [13] - Schildt H. C# - Editura Teora, 2002 56

[14] Sharp J. Jagger J - Microsoft Visual C#. Net step by step Editura Microsoft Press, 2002 [15] - http://education.oracle.com - Oracle Database 10g: Administration Workshop (consultat la data de 24 iunie 2010)

57

ANEXE
Cod pentru crearea tabelei Banci: drop table Banci cascade constraints; create table Banci (ID_Banci number, Denumire_Banca varchar2(40), ID_Adrese number, constraint Banci_pk primary key (ID_Banci)); alter table Banci add constraint Banci_Adrese_fk foreign key (ID_Adrese) references Adrese(ID_Adrese); Cod pentru crearea tabelei Adrese: drop table Adrese cascade constraints; create table ADRESE (ID_Adrese number, Strada varchar2(40), Numar number, Bloc number, Scara number, Cod_Postal number, ID_Orase number, constraint Adrese_pk primary key (ID_Adrese)); alter table Adrese add constraint Orase_Adrese_FK foreign key (ID_Orase) references Orase(ID_Orase); Cod pentru crearea tabelei Orase: drop table Orase cascade constraints; create table Orase (ID_Orase number,

Denumire_Oras varchar2(45), ID_Tari number, constraint Orase_pk primary key (ID_Orase)); alter table Orase add constraint Tari_Orase_FK foreign key (ID_Tari) references Tari(ID_Tari); Cod pentru crearea tabelei Tari: drop table Tari cascade constraints; create table Tari (ID_Tari number, Denumire_Tara varchar2(50), constraint Tari_pk primary key (ID_Tari)); Cod pentru crearea tabelei Angajati: drop table Angajati cascade constraints; create table Angajati (CNP_Angajat number, Nume_Angajat varchar2(30), Prenume_Angajat varchar2(30), Data_Nasterii date, Sex varchar2(10), Stare_Civila varchar2(30), Nr_telefon number, EMAIL varchar2(30), ID_Orase number, Data_Angajarii date, ID_Functii number, Salariu number, ID_Banci number, constraint Angajati_pk primary key (CNP_Angajat));

alter table Angajati add constraint Orase_Angajati_FK foreign key (ID_Orase) references Orase(ID_Orase); alter table Angajati add constraint Functii_Angajati_FK foreign key (ID_Functii) references Functii(ID_Functii); alter table Angajati add constraint Banci_Angajati_FK foreign key (ID_Banci) references Banci(ID_Banci); alter table Angajati add constraint Sex_Angajat_ck check (Sex in('F','M')); Cod pentru crearea tabelei Functii: drop table Functii cascade constraints; create table Functii (ID_Functii number, Denumire_Functie varchar2(50), Descriere varchar2(264), constraint Functii_pk primary key (ID_Functii)); Cod pentru crearea tabelei Clienti: drop table Clienti cascade constraints; create table Clienti (CNP_Client number, Nume_Client varchar2(50), Prenume_Client varchar2(50), Data_Nasterii date, Sex varchar2(10), Stare_Civila varchar2(30), Nr_Telefon number, ID_Orase number,

Venit_Lunar number, EMAIL varchar2(30), constraint Clienti_pk primary key (CNP_Client)); alter table Clienti add constraint Orase_Clienti_Clienti_FK foreign key (ID_Orase) references Orase(ID_Orase); alter table Clienti add constraint Sex_ck check (Sex in('F','M')); Cod pentru crearea tabelei Grupuri_Servicii: drop table Grupuri_Servicii cascade constraints; create table Grupuri_Servicii (ID_Grupuri_Servicii number, Denumire_Grup_Servicii varchar2(40), Descriere varchar2(264), constraint Grupuri_Servicii_pk primary key (ID_Grupuri_Servicii)); Cod pentru crearea tabelei Servicii: drop table Servicii cascade constraints; create table Servicii (ID_Servicii number, Denumire_Serviciu varchar2(50), Descriere varchar2(264), ID_Grupuri_Servicii number, constraint Servicii_pk primary key (ID_Servicii)); alter table Servicii add constraint Grupuri_Servicii_FK foreign key (ID_Grupuri_Servicii) references Grupuri_Servicii(ID_Grupuri_Servicii); Cod pentru crearea tabelei Clienti_Servicii: drop table Clienti_Servicii cascade constraints; create table CLIENTI_SERVICII

(ID_Clienti_Servicii number, CNP_Client number, ID_Servicii number, constraint Clienti_Servicii_pk primary key (ID_Clienti_Servicii)); alter table Clienti_Servicii add constraint Clienti_Clienti_Servicii_FK foreign key (CNP_Client) references Clienti(CNP_Client); alter table Clienti_Servicii add constraint Servicii_Clienti_Servicii_FK foreign key (ID_Servicii) references Servicii(ID_Servicii); Cod pentru crearea tabelei Tipuri_Cont: drop table Tipuri_Cont cascade constraints; create table Tipuri_Cont (ID_Tipuri_Cont number, Denumire varchar2(80), Descriere varchar2(264), IS_Credit varchar2(50), IS_Debit varchar2(50), constraint Tipuri_Cont_pk primary key (ID_Tipuri_Cont)); alter table Tipuri_Cont add constraint IS_Credit_ck check (IS_Credit in('Y','N')); alter table Tipuri_Cont add constraint IS_Debit_ck check (IS_Debit in('Y','N')); Cod pentru crearea tabelei IBAN: drop table IBAN cascade constraints; create table IBAN (IBAN number, Sold_Actual number, ID_Tipuri_Cont number, constraint IBAN_pk primary key (IBAN));

alter table IBAN add constraint Tipuri_Cont_IBAN_FK foreign key (ID_Tipuri_Cont) references Tipuri_Cont(ID_Tipuri_Cont); Cod pentru crearea tabelei IBAN_Arh: drop table IBAN_Arh cascade constraints; create table IBAN_Arh (ID_IBAN_Arh number, IBAN number, Sold number, Suma_Depusa number, Suma_Retrasa number, Data date, constraint IBAN_Arh_pk primary key (ID_IBAN_Arh)); alter table IBAN_Arh add constraint IBAN_IBAN_Arh_FK foreign key (IBAN) references IBAN(IBAN); Cod pentru crearea tabelei Clienti_IBAN: drop table Clienti_IBAN cascade constraints; create table Clienti_IBAN (ID_Clienti_IBAN number, IBAN number, CNP_Client number, constraint Clienti_IBAN_pk primary key (ID_Clienti_IBAN)); alter table Clienti_IBAN add constraint IBAN_Clienti_IBAN_FK foreign key (IBAN) references IBAN(IBAN); alter table Clienti_IBAN add constraint Clienti_Clienti_IBAN_FK foreign key (CNP_Client) references Clienti(CNP_Client);

Cod pentru crearea tabelei Angajati_IBAN: drop table Angajati_IBAN cascade constraints; create table Angajati_IBAN (ID_Angajati_IBAN number, IBAN number, CNP_Angajat number, constraint Angajati_IBAN_pk primary key (ID_Angajati_IBAN)); alter table Angajati_IBAN add constraint IBAN_Angajati_IBAN_FK foreign key (IBAN) references IBAN(IBAN); alter table Angajati_IBAN add constraint Angajati_Angajati_IBAN_FK foreign key (CNP_Angajat) references Angajati(CNP_Angajat);

Pachetul pentru functia de administrator: create or replace package Admin_pkg is type r_cursor is ref cursor; type t_cursor is ref cursor; procedure cautare_cnp (v_cnp number,v_nume out varchar2,v_prenume out varchar2, v_stare_civila out varchar2, v_numar_telefon out number, v_oras out varchar2,v_venit_lunar out number); procedure cautare_angajat_cnp (v_cnp number,v_nume out varchar2,v_prenume out varchar2, v_numar_telefon out number,v_denumire_functie out varchar2,v_salariu out number, v_denumire_banca out varchar2);

procedure raport_clienti (v_cont number, cur_rap_clienti out r_cursor); procedure raport_angajati (v_salariu number, cur_rap_angajati out t_cursor); end Admin_pkg;

Pachetul pentru functia de angajat al bancii: create or replace package Angajati_pkg is

type t_cursor is ref cursor; type r_cursor is ref cursor; procedure cautare_iban (v_iban number,v_iban1 out number,v_sold out number); procedure cautare_cnp (v_cnp number,v_nume out varchar,v_prenume out varchar,

v_stare_civila out varchar, v_numar_telefon out number, v_oras out varchar,v_venit_lunar out number); procedure angajati_depunere (v_iban number,v_suma number, v_sold out number); procedure angajati_retragere (v_iban number,v_suma number, v_sold out number);

end Angajati_pkg;

Pachetul pentru functia de client: create or replace package body clienti_pkg as procedure calculator_rate (v_perioada number, v_valoare_credit number, v_tip_credit number, v_rate out number, v_suma_finala out number) is begin if (v_tip_credit=1) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*1)/100; v_suma_finala := v_rate * v_perioada; end if; if (v_tip_credit=2) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*1.5)/100; v_suma_finala := v_rate * v_perioada; end if; if (v_tip_credit=3) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*1.25)/100; v_suma_finala := v_rate * v_perioada; end if; if (v_tip_credit=4) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*0.75)/100;

v_suma_finala := v_rate * v_perioada; end if;

if (v_tip_credit=5) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*2.25)/100; v_suma_finala := v_rate * v_perioada; end if;

if (v_tip_credit=6) then v_rate := (v_valoare_credit/v_perioada) + ((v_valoare_credit/v_perioada)*3)/100; v_suma_finala := v_rate * v_perioada; end if; end calculator_rate;

procedure client_general (v_cnp number,cur_clienti out t_cursor) is begin

open cur_clienti for select b.iban,a.denumire,b.sold_actual from tipuri_cont a, iban b, clienti_iban c where a.id_tipuri_cont=b.id_tipuri_cont and c.iban=b.iban and c.cnp_client = v_cnp;

end client_general;

--functie ce testeaza daca IBANUL se afla sau nu in tabela IBAN function test_iban (v_iban number) return number

is cursor iban_cur is select iban from iban where iban=v_iban; c_number number;

begin open iban_cur; fetch iban_cur into c_number;

if (iban_cur%rowcount=1) then return 1; else return 0; end if;

close iban_cur; end test_iban; procedure client_plati (v_iban number,v_suma number, v_iban_beneficiar number,v_sold out number) is cursor test_cur is select (clienti_pkg.test_iban(v_iban_beneficiar)) from dual; c_number number;

begin open test_cur; fetch test_cur into c_number; if (c_number=1) then update iban set sold_actual = sold_actual - v_suma where iban=v_iban; update iban set sold_actual = sold_actual + v_suma where iban=v_iban_beneficiar; else update iban set sold_actual = sold_actual - v_suma where iban=v_iban; end if;

close test_cur; commit; Select sold_actual into v_sold from iban where iban=v_iban; end client_plati; procedure client_tranzactii (v_cnp number,cur_clienti out r_cursor ) is begin open cur_clienti for select a.iban,a.sold,a.suma_depusa,a.suma_retrasa,a.data from iban_arh a, clienti_iban b where a.iban=b.iban and b.cnp_client = v_cnp; end client_tranzactii; end clienti_pkg;

Fereastra de nceput a serviciului bancar prin internet pentru client:

Figura 4.1 Fereastra de start pentru client

Fereastra Plati pe care o poate folosi clientul:

Figura 4.2 Fereastra Plati

Fereastra de autentificare cu care angajatul interacioneaz este urmatoarea:

Figura 4.3 Autentificare angajat

Dupa gasirea unui client dupa IBAN se afiseaza IBAN-ul si soldul contului respectiv:

Figura 4.4 Depunere/Retragere numerar

Butonul Creare cont ofera posibilitatea angajatului de a crea un nou cont pentru client introducand un IBAN corespunzator, CNP-ul clientului, soldul initial al contului si tipul de cont. Crearea contului se realizeaza la apasarea butonului Adauga:

Figura 4.5 Creare cont

Fereastra de autentificare cu care administratorul interactioneaza

Figura 4.6 Autentificare administrator

La cautare client dupa CNP se vor putea vizualiza detaliile clientului si anume: nume, prenume, stare civila, numar telefon, oras si venit lunar. Starea civila, numarul de telefon, orasul si venitul lunar pot fi actualizate de catre administrator cu ajutorul butoanelor Modifica plasate pentru fiecare dintre cele patru atribute:

Figura 4.7 Cautare client dupa CNP

La cautarea angajat dupa CNP se vor putea vizualiza detaliile angajatului si anume: nume, prenume, stare civila, numar telefon, oras si venit lunar. Starea civila, numarul de telefon, orasul si venitul lunar pot fi actualizate de catre administrator cu ajutorul butoanelor Modifica plasate pentru fiecare dintre cele patru atribute:

Figura 4.8 Cautare angajat dupa CNP

Prin apasarea butonului Tranzactii clientul are posibilitatea de a vizualiza tranzactiile efectuate din conturile sale:

Figura 4.9 Tranzactii

La optiunea Clienti se alege Cautare dupa IBAN, se introduce IBAN-ul corespunzator si afiseaza IBAN, sold si ofera posibilitatea retragerii de numerar si a depunerii de numerar, cat si a intoarcerii la forma initiala:

Figura 4.10 Cautare client dupa IBAN

Apoi vom arata un exemplu de retragere de numerar din acest cont:

Figura 4.11 Retragere numerar

Figura 4.12 Operatiune realizata cu succes