Sunteți pe pagina 1din 76

Introducere

Orice aplicaie a calculatoarelor n economie are la baz o colecie de date intercorelate numit,
evident, baz de date.
Un sistem client-server are o parte a softului, necesar pentru lucrul cu baza de date, pe server i
alt parte pe fiecare client.
Oracle introduce cu APPE un alt mod de lucru! Avem pe server tot softul necesar i la orice
client un bro"ser cu care accesm prin intermediul internetului aplicaia server. #arele avanta$ este c
clientul este orice calculator care nu mai trebuie pre%tit dinainte.
Pentru a nva s lucrezi cu Application E&press 'APPE(, Oracle pune la dispoziie spaiu de
lucru %ratuit pe serverele pentru dezvoltatorul aplicaiei.
)ucrarea de fa conine * capitole.
+n primul capitol am prezentat c,teva concepte importante din teoria bazelor de date relaionale.
-apitolul al doilea prezint, pe scurt, sistemul Oracle i c,teva caracteristici ale sistemului APPE.
Proiectul lo%ic al aplicaiei pentru activitatea de sc.imb valutar dintr-o banc se afl n capitolul al treilea.
-onform cu acest proiect lo%ic, capitolul patru prezint, pas cu pas, modul de realizare a proiectului fizic.
+n ultimul capitol, n cadrul manualului de utilizare, este desccris modul n care poate fi folosit aceast
aplicaie n practica sc.imbului valutar dintr-o banc.
-ontribuia autorului const din
selectarea i or%anizarea materialului biblio%rafic,
analiza activitii de sc.imb valutar, cuprins n proiectul lo%ic,
proiectul fizic realizat cu APPE
manualul de utilizare
.
/
CUPRINS
/ntroducere......................................................................................................................................................................................../
-apitolul 0. 1aze de date relaionale................................................................................................................................................2
0.0. Abstractizarea datelor............................................................................................................................................................2
0.3 /ndependena datelor..............................................................................................................................................................2
0.2. Principalele componente ale unui 4516..............................................................................................................................7
0.7. #odelul relaional.................................................................................................................................................................*
0.*.. 6efinirea sistemelor de %estiune a bazelor de date relaionale............................................................................................*
0.8. 9e%ulile lui -odd..................................................................................................................................................................8
-apitolul 3. 6espre O9A-)E i Oracle Application E&press'APPE(.........................................................................................:
3.0. Oracle....................................................................................................................................................................................:
3.3. APPE..................................................................................................................................................................................:
-apitolul 2. Proiectul lo%ic al aplicaiei activitatea de sc.imb valutar ntr-o banc......................................................................00
2.l. 6escrierea unitii economice la care se afl activitatea de sc.imb valutar........................................................................00
2.3. -erinele utilizatorului........................................................................................................................................................00
2.2 -9EA9EA #O6E)U)U/ -O;-EP<UA) )O-A), PE;<9U =E6E9/)E U</)/>A<O9/)O9................................03
2.2.0. /dentificarea tipurilor de entiti...................................................................................................................................03
2.2.3 /dentificarea tipurilor de relaii.....................................................................................................................................03
2.2.2 /dentificarea i asocierea atributelor la tipurile de entiti i tipurile de relaii.............................................................03
2.2.7. 6eterminarea domeniilor de definiie a atributelor......................................................................................................02
2.2.*. 6eterminarea atributelor care compun c.eile candidate i primare.............................................................................02
2.2.8. 6esenarea dia%ramei entit?-relations.ip.....................................................................................................................0*
2.7. -9EA9EA @/ =A)/6A9EA #O6E)U)U/ )O5/- )O-A).........................................................................................0*
2.7.0. Proiectarea modelului conceptual local pe un model lo%ic local.................................................................................0*
2.7.3. -rearea relaiilor pentru modelul lo%ic local................................................................................................................08
2.7.2. =alidarea modelului, utiliz,nd normalizarea...............................................................................................................08
2.7.7. =alidarea modelului utiliz,nd tranzaciile...................................................................................................................0A
2.7.*. 6efinirea re%ulilor de inte%ritate a bazei de date.........................................................................................................0:
2.7.8. =erificarea modelului lo%ic local cu a$utorul utilizatorului.........................................................................................0B
-apitolul 7. Proiectarea fizic........................................................................................................................................................3C
7.0. -erere de spaiu de lucru ' DorE space(.............................................................................................................................3C
7.3. <abele APPE....................................................................................................................................................................32
7.2. Formulare APPE..............................................................................................................................................................3:
7.7 )iste de valori.......................................................................................................................................................................23
7.* Formular cu subformular......................................................................................................................................................28
7.*. 9apoarte APPE.................................................................................................................................................................7C
7.*. -rearea unui buton..............................................................................................................................................................*3
7.8. -ompletare pa%ina de start..................................................................................................................................................*8
-apitolul *. #anual de utilizare.....................................................................................................................................................*B
*.0. /ntrarea n aplicaie..............................................................................................................................................................*B
*.3. /ntroducerea clienilor.........................................................................................................................................................8C
*.2. /ntroducerea cursului valutar...............................................................................................................................................80
*.7. /ntroducerea cumprrii de valut.......................................................................................................................................83
*.*. /ntroducerea v,nzrii de valut...........................................................................................................................................88
*.8 9apoarte...............................................................................................................................................................................8B
1iblio%rafie....................................................................................................................................................................................A8

//
Capitolul 1. Baze de date relaionale.
1.1. Abstractizarea datelor
Un scop important al unui sistem de %estiune a bazelor de date este s poat asi%ura o viziune
abstract asupra realitii. Este necesar s se rein, din mulimea vast de informaii, doar acele informaii
care sunt necesare unei anumite aplicaii.
4e poate face referire spre e&emplu la ncercarea de modelare a unei aplicaii ntr-o intreprindere.
<rebuie modelate GobiecteleH i relaiile dintre ele. ;u realitatea, comple& n totalitatea ei, intr n
discuie ci doar o mic parte a ei, constituit din anumite GobiecteH i pentru acele obiecte se iau n
considerare doar o parte din caracteristici 'acele caracteristici care sunt importante pentru aplicaia n
cauz(. Astfel n cazul modelarii GobiectuluiH 'sau entitii( client, trebuie alese doar acele proprieti 'sau
atribute( care intereseaz. Acestea ar putea fi, de e&emplu! numele, actul de identitate, numrul,. O
mulime impresionant de informaii, care contribuie la descrierea unei persoane anume, nu sunt luate n
seam deoarece nu prezint interes pentru intreprindere. 6e e&emplu, nu intereseaz dac cliantul are
oc.ii albatri, dac este blond sau brunet, dac ascult cu placere muzic sau dac este o fire sentimental.
-omponentele bazei de date pot fi structurate pe trei nivele, n functie de clasa utilizatorilor
implicati i de viziunea asupra structurrii informaiei, dup cum urmeaz!
- nivelul logic de vizualizare (vie! sau nivelul e"tern. Este dat de viziunea pro%ramatorului de
aplicaii, care realizeaz pro%ramele de aplicaii pentru manipularea datelor la nivel de structur lo%ic
'subsc.ema( corespunzatoare descrierii datelor aplicaieiI
#nivelul conceptual 'global(. Este dat de viziunea administratorului bazei de date, care realizeaz
structura conceptuala 'sc.ema( corespunztoare descrierii ntre%ii baze de date i administreaz
componentele bazei de date. Acest nivel descrie ce date sunt memorate n baza de date i ce relaii sunt
stabilite ntre date. ;ivelul conceptual reprezint!
- toate entitile, atributele lor i relaiile dintre eleI
- restriciile impuse datelor
- informaiile semantice despre date
- informaiile privitoare la securitatea i inte%ritatea datelor.
#nivelul $izic. Este dat de viziunea in%inerului de sistem care realizeaz structura fizic corespunztoare
descrierii datelor pe suportul fizic 'periferic(. Acest nivel descrie cum sunt memorate datele n baza de
date. ;ivelul intern se ocup de!
-alocarea spatiului de memorie pentru date i indeciI
-descrierea nre%istrrilor pentru memorareI
-plasarea nre%istrrilor pe suportI
-te.nicile de compresie i de criptare a datelor.
1.% Independena datelor
Un obiectiv ma$or al ar.itecturii pe trei nivele de abstractizare este realizarea independenei
datelor. O aplicaie, n %eneral, este dependent de date n sensul c modificarea structurii de memorare a
datelor sau a strate%iei de acces la date afecteaz i aplicaia. /ndependena datelor fa de aplicaie este
totui necesar cel puin din urmtoarele considerente!
-diferite aplicaii au nevoie de viziuni diferite asupra acelorai dateI
2
-administratorul bazei de date trebuie s aib libertatea de a sc.imba structura de memorare sau strate%ia
de acces, ca rspuns la cerine 'sc.imbi de standarde, prioritile aplicaiilor, unitile de memorare etc.(,
fr a modifica aplicaiile e&istente, baza de date e&istent, precum i pro%ramele de e&ploatare a ei, care
au fost folosite o perioad de timp i care reprezint o investiie ma$or la care nu trebuie s se renune
prea uor.
&igura 1.1. Ar.itectura A;4/-4PA9- pe trei nivele
6e aceea, se impune ca atunci cand apar noi cerine n cadrul sistemului informaional, sistemele
informatice s poat funciona cu pro%ramele i procedurile e&istente, iar datele e&istente s poat fi
convertite.
/ndependena datelor trebuie privit din dou puncte de vedere! independena fizic i
independena lo%ic a datelor.
/ndependena fizic a datelor face ca memorarea datelor i te.nicile fizice de memorarea s poat
fi modificate fr a determina rescrierea pro%ramelor de aplicaie.
1.'. Principalele co(ponente ale unui S)B*
Jin,nd seama de faptul c e&ist diferite tipuri de sisteme de %estiune, care se difereniaz!
- prin limba$ele utilizate,
- prin anumite componente ce imprim diferite faciliti de e&ploatare a bazei de date,
- i prin faptul c unele ofer posibilitatea lucrului n re%im de teleprelucrare, altele numai n re%im
local, iar altele at,t n re%im local c,t i n re%im de teleprelucrare, a$un%em la concluzia c nu poate
fi stabilit o ar.itectur unic, valabil pentru toate sistemele, ci apar particulariti de la un sistem
la altul.
Ar.itectura unui 4516 evidentiaz componentele acestuia i urmeaz standarde internaionale. O astfel
de ar.itectur %eneral cuprinde urmtoarele componente!
- baza de date propriu-zis n care se memoreaz colecia de dateI
7
- sistemul de %estiune al bazei de date, care este un ansamblu de pro%rame 'soft( care realizeaz
%estiunea i prelucrarea comple& a datelorI
- un set de proceduri manuale i automate, precum i re%lementrile administrative, destinate bunei
funcionari a ntre%ului sistemI
- un dicionar al bazei de date 'metabaza de date(, ce conine informaii despre date, structura
acestora, elemente de descriere a semanticii, statistici, documentaie etc.
- mi$loacele .ard utilizate 'comune, specializate etc.(I
- personalul implicat! 'cate%orii de utilizatori! finali - 'neinformaicieni(I de specialitate
'administrator(, analiti - pro%ramatori, %estionari, operatori(.
Ar.itectura bazei de date d o ima%ine despre modul %eneral de or%anizare i funcionare a ei.
)imba$ele untilizate ntr-un 4516 sunt de dou tipuri! +i(ba,ul de de$inire a datelor '6ata
6efinition )an%ua%e - 66)( i +i(ba,ul de (anipulare a datelor '6ata #anipulation )an%ua%e -
6#)(. Aceste limba$e mai sunt cunoscute ca sublimba$e de date deoarece ele nu includ construcii
adecvate oricror necesiti de calcul, asemntoare cu structurile puse la dispoziie de limba$ele de nivel
nalt.
#ulte 4516 au facilitatea de a incorpora sublimba$ul ntr-un limba$ de nivel nalt 'numit limba$
%azd( cum ar fi -O1O), Fortran, Pascal, Ada, -, Ka"a, -L. Pentru compilare, comenzile sublimba$ului
sunt nlocuite n limba$ul %azd cu apeluri de funcii. Fiierul preprocesat este compilat, plasat ntr-un
modul obiect, linE-editat cu o bibliotec n care se afl funciile nlocuite, furnizate o dat cu 4516, i
este e&ecutat c,nd este necesar.
1.-. .odelul relaional
+n 0BA: E.F.-odd, de la /1# 9esearc. )aborator?, a elaborat o lucrare care a avut o influen
cov,ritoare n dezvoltarea bazelor de date. )ucrarea trata despre modelul de date relaional.
6e aici ncolo s-au proiectat multe sisteme dintre care menionm 4?stem 9 dezvoltat la /1#Ms 4an
Kose 9esearc. )aborator? din -alifornia, la sf,ritul anilor MAC. Acest proiect a dus la!
dezvoltarea unui limba$ structurat de intero%are 'numit 4N)( care de atunci a devenit un standard
pentru sistemele relaionaleI
producerea n anii M:C de sisteme comerciale ar.icunoscute dintre care menionm! 613, 4N) 4erver,
4N)O64 de la /1# i O9A-)E de la O9A-)E -orporation.
Alte e&emple de sisteme relaionale! /;59E4 de la 9elaional <ec.nolo%? /nc., /nformi& de la
/nformi& 4of"are /nc., 4?base de la 4?base /nc.. 6intre sitemele relaionale pentru microcalculatoare
enumerm aici! Parado& i d1ase /= de la 1orland, Access de la #icrosoft, Fo&Pro i 9!base de la
#icrorim. <oate acestea constituie %eneratia a doua de 4516.
1./.. *e$inirea siste(elor de gestiune a bazelor de date relaionale
+ntr-o prim ncercare de definire, se poate considera un sistem de %estiune a bazelor de date
relaionale '45169( ca reprezent,nd un 4516 care utilizeaz drept concepie de or%anizare a datelor
modelul relaional. Astfel spus, un 45619 reprezint un sistem care suport modelul relaional.
6efiniia de mai sus este prea %eneral pentru a putea fi operaional, deoareca modul de implemantare a
modelului relaional difer, de re%ul at,t ntre diferitele 45169, c,t i n raport cu modelul PteoreticH,
cel definit n cadrul teoriei relaionale, datorit eforturilor productorilor de a realiza sisteme c,t mai
perfomante care s satisfac cerinele i e&a%errile utilizatorilor. -,t de aproape 'sau de departe( de
modelul relaional teoretic trebuie s fie modelul datelor efectiv utilizat de 4516 pentru a putea afirma c
4516-ul respectiv utilizeaz sau nu modelul relaional, deci este sau nu 45169Q
6iversitatea modelelor relaionale operaionale au determinat, n mod natural e&istana unei mari
*
diversitii de 45169, pentru a cror prezentare a fost necesar nuanarea terminolo%iei. Au aprut o
serie de sinta%me precum! sisteme cu interfa relaional, sisteme pseudorelaionale, sisteme complet
relaionale.
-onceptele specifice or%anizriidatelor n fiiere, 45169 i teoriei relaionale ntre care se pot
stabili analo%ii
Or%anizarea datelor n fiiere 45169 <eoria relaional
Fiier <abel 9elaie
9ecord'nre%istrare( )inie <uplu
-,mp -oloan Atribut
+n %eneral, conceptele utilizate la prezentarea 45169 i a modelelor relaionale operaionale
difer de cele din cadrul teoriei relaionale. Fi%ura de mai sus prezint comparativ conceptele or%anizrii
datelor n fiiere, concepte 45169 i ale teoriei relaionale.
Faptul c se pot stabili analo%ii ntre conceptele or%anizrii datelor n fiiere i conceptele
relaionale, i-au determinat pe unii productori s prezinte sisteme fr nici o le%tur cu modelul
relaional drept 45169, n scopul asi%urrii succesului comercial al acestor sisteme.
1.0. Regulile lui Codd
6efinirea unui 45169 impune o detaliere a caracteristicilor pe care trebuie s le prezinte un 4516
pentru a putea fi considerat relaional.+n acest sens, -odd a formulat 02 re%uli care e&prim cerinele pe
care trebuie s le prezinte un 4516 ca s fie relaional. 6ei re%uli au st,rnit o serie de controverse, eu le
voi prezenta n continuare, ele fiind deosebit de utile n evaluarea unui 45169.
R12 Regula privind gestionarea datelor la nivel de relaie
4istemul trebuie s %estioneze baza de date numai prin mecanisme relaionale.Acest lucru
nseamn c sistemul trebuie s-i ndeplineasc toate funciile prin manipulri n care unitatea de
informaie s fie mulimea 'relaia(, adic s utilizeze limba$e, precum 4N), care s opereze la un moment
dat pe o ntrea% relaie.6eci 4516 nu trebuie s accepte operaii non-relaionale care s ndeplineasc
operaiile de definire i manipulare a datelor.
Unele sisteme utilizeaz mecanisme releionale numai pentru o parte din funcii, n special pentru
intero%are. Aceste sisteme se numesc sisteme cu interfa relaional i nu 45169.
R12 Regula privind reprezenterea logic3 a datelor
<oate datele din daza de date relaional trebuie s fie reprezentate e&plicit la nivel lo%ic, ntr-un
sin%ur mod, i anume ca valori n tabele de date. Acest lucru nseamn c toate datele trebuie s fie
memorate i prelucrate n acelai mod. /nformaiile privind numele de tabele,coloane, domenii, definiiile
tabelelor virtuale, restricii de inte%ritate trebuie s fie memotare tot n tabele de date 'cataloa%e(.
9eferina la Mnivelul lo%icM nseamn c construcia fizic nu este reprezentat i nu necesit e&plicaie.
R%2 Regula privind garantarea accesului la date.
Orice dat din baza de date relaional trebuie s poat fi accesat prin specificarea numelui da
tabel, valorii c.eii primare i numelui de coloan.Aceast re%ul e&prim cerina ca linba$ul de cereri al
45169 s permit accesul la fiecare valoare atomic din baza de date.
R'2 Regula privind valorile null
4istemele trebuie s permit declararea s manipularea sistematic a valorilor null4 cu
semnificaia unor date lips sau inaplicabile. =alorile null, care difer de irurile de caractere M spaiuM sau
de irurile vide da caractere sunt deosebit de importante n implementarea restriciilor de inte%ritate
'inte%ritatea entitii i inte%ritatea refereanial(.
R-2 Regula privind (etadatele
6escrierea bazei de date trebuie s se prezinte la nivel lo%ic n acalai mod cu descrierea datelor
propiu-zise, astfel nc,t utilizatorii autorizai s poat descrierii bazei de date aceleai operaii ca i asupra
datelor obi$nuite. Acest re%ul specific c trebuie s e&iste un unic limba$ de manipulare a metedatelor
i a datelor propui-zise, mai mult, e&ist o unic structur lo%ic folosit pentru a depozita informaiile de
sistem.
8
4isteme nu trebuie s fac diferenieri n definirea i tratarea datelor ia metadatelor, utiliz,nd o
sin%ur structur, i anume cea relaionala.
R/2 Regula privind $acilitaile li(ba,elor utilizate
Un sistem relaional trebuie s fac posibil utilizarea mai multor limba$e, n mai multe moduri.
<rebuie s e&iste ns cel puin un limba$ de nivel nalt ale crui instruciuni s poat e&prima oricare din
urmtoarele operaii! definirea tabelelor de date, definirea tabelelor virtuale, manipularea datelor(,
definirea restriciilor de inte%ritate, autorizarea accesului, precizarea limitelor tranzaciilor.
A se nota aici c noul standard O5/ pentru 4N) furnizeaz toate aceste funcii, deci orice limba$
care accept acest standard va satisface automat aceast re%ul.
R02 Regula privind actualizarea tabelelor virtuale
<oate tabelele virtuale care teoretic sunt posibil de actualizat trebuie s poat fi efectiv
actualizabile.;u toate atributele din cadrul unei tabele virtuale, deci nu toate tabele virtuale sunt toeretic
actualizabile.
R62 Regula privind inser3rile4 (odi$ic3rile 7i 7tergerile 8n baza de date
4istemul trebuie s ofere posibilitatea manipulrii unei tabele 'da baz sau virtual( nunumai n
cadrul operaiilor de re%sire, ci i n aciuni de inserare, modificare i ter%ere a datelor. Aceast re%ul
e&prim cerina ca prin operaiile n care se sc.imb bazei da date s se lucreze la un moment dat pe o
ntrea% relaie.
R92 Regula privind independena $izic3 a datelor
Pro%ramele de aplicaie nu trebuie s fie afectate de sc.imbrile efectuate n modul de
reprezentare a datelor sau n metodele de acces. O sc.imbare a structurii fizice a datelor nu trebuie s
bloc.eze funcionarea pro%ramelor de alpicaie.
R:2 Regula privind independena logic3 a datelor
Pro%ramele de aplicaie nu trebuie s fie afectate de sc.imbrile efectuate asupra relaiilor bazei de
date, sc.imbri care conserv datele i care toeretic %aranteaz valabilitatea pro%ramelor de apicaie
e&istente.
R112 Regula privind restriciile de integritate
9estrictiile de inte%ritate trebuie s fie definite n limba$ul utilizat de sistem pentru definirea
datelor i s fie memorate n cadrul bazei de date i nu n cadrul pro%ramului de aplicaie.
R112 Regula privind distribuirea geogra$ic3 a datelor
)imba$ul de manipulare a datelor utilizat de sistem trebuie s permit ca, n situaia n care datele
sunt distribuite, pro%ramele de aplicaie s fie lo%ic aceleai cu cele utilizate n cazul n care datele sunt
fizic centralizate.
Utilizatorul trebuie s perceap datele ca fiind centralizate. 4arcina de localizare a datelor, atunci
c,nd acestea sunt distribuite %eo%rafic precum i sarcina recompunerii datelor trebuie s revin sistemului
i nu utilizatorului.
R1%2 Regula privind prelucrarea datelor la nivelul de baz3
6ac sistemul posed un limba$ de baz 'de nivel sczut( orientat pe prelucrare de recorduri
'tupuri( i nu pe prelucrarea mulimiilor 'relaiilor(, acest limba$ nu trebuie s fie utilizat pentru a se
evitarestriciile de inte%ritate sau restriciile introduse prin utilizarea limba$elor de nivel nalt, adic
accesul la toate dazele va fi controlat de 45169, altfel inte%ritate bazelor de date nu poate fi
compromis fr cunoaterea utilizatorului sau a administratorului bazei de date.
A
Capitolul %. *espre ;RAC+< 7i ;racle Application <"press(APP<=!.
%.1. ;racle
Oracle const dintr-un set complet de constructori de aplicaii i produse pentru utilizatori,caut,nd
s asi%ure soluii complete n te.nolo%ia informaiei.
Aplicatiile Oracle sunt portabile pe un numar mare de staii de lucru i sisteme de operare, de la
calculatoare personale la main frame-uri cu procesoare paralele.
Oracle este nzestrat cu un fle&ibil 4istem de #ana%ement al 1azelor de 6ate'61#4(-4erverul
Oracle-pentru stocarea i mana%ementul informaiei utilizate de aplicaii.
Ultimul server Oracle, O9A-)E 00%, utilizeaz o baz de date cu toate avanta$ele unei structuri
relaionale, av,nd n plus capacitatea de a stoca i e&ecuta obiecte de tip baz de date precum proceduri i
mecanisme de si%uran.
4erverul Oracle cuprinde un 61#4 care controleaz!
4tocarea de date n sfera bazelor de date dedicate
9ecuperarea de date pentru aplicaii utiliz,nd te.nici de optimizare
adecvate
4ecuritatea bazelor de date i a tasEurilor permise pentru anumii
utilizatori
-onsistena i protecia datelor,incluz,nd ar.ivarea tasEurilor i
mecanisme de cutare
-omunicarea i inte%ritatea informaiilor,c,nd bazele de date sunt
distribuite ntr-o reea.
%.%. APP<=
Oracle Application E&press este un instrument de dezvoltare rapid a aplicaiilor "eb pentru baze
de date Oracle. Folosind doar un bro"ser "eb i e&perien limitat n pro%ramare, se pot dezvolta
aplicaii profesionale care sunt at,t rapide c,t i si%ure. 6atorit caracteristicilor predefinite, cum ar fi
teme de interfa, controalele de navi%are, a%eni de formular i rapoartele fle&ibile, Oracle Application
E&press accelereaz procesul de dezvoltare al aplicaiei.
6in perspectiva utilizatorului final, aplicaiile desfurate necesit doar un navi%ator "eb i
accesul la o baz de date Oracle care ruleaz Application E&press.
Oracle Application E&press se instaleaz cu baza de date Oracle i este format din datele din
tabele i codul P)O4N).
Fie c se e&ecut mediul de dezvoltare al Oracle Application E&press sau o aplicatie construit cu
Oracle Application E&press, procesul este acelai. 1ro"ser-ul trimite o cerere de adres U9) care este
translatat ntr-un apel Oracle Application E&press P)O4N). 6up ce baza de date proceseaz codul
P)O4N), rezultatele sunt retransmise ctre bro"ser sub forma de cod R<#). Acest ciclu se petrece de
fiecare dat cand se cere sau se e&ecut o pa%in.
4esiunea public a aplicaiei este %estionat n tabelele bazei de date din cadrul Oracle Application
E&press. ;u folosete o cone&iune de baze de date dedicat. +n sc.imb, fiecare cerere este fcut printr-o
sesiune de baze de date separat, consumatoare de resurse minime de calculator.
At,t 4erverul R<<P Oracle, c,t i Oracle Application E&press )istener functioneaz ca a%eni de
comunicare ntre serverul Deb i obiectele Oracle Application E&press din baza de date Oracle. #ai
e&act, acestea mapeaz cereri de bro"ser spre solicitri de proceduri de baze de date stocate peste o
cone&iune 4N)S;et. Urmtorul %rafic ilustreaz ar.itectura Oracle Application E&press utiliz,nd
:
4erverul R<<P Oracle i modTplsUl.
#otorul Application E&press face i proceseaz pa%ini. 6e asemenea, efectueaz urmtoarele
sarcini!
5estionarea sesiunii de stat
4ervicii de autentificare
4ervicii de autorizare
-ontrolul flu&ului de pa%in
=alidri de prelucrare
>ona n care se vor dezvolta aplicaii se numete spaiu de lucru. Un spaiu de lucru este o baz
de date virtual privat, care permite mai multor utilizatori s lucreze n cadrul aceleiai instalri Oracle
Application E&press pstr,nd n acelai timp private obiectele lor, datele i aplicaiile.
+ntr-un mediu tipic de dezvoltare, se poate crea un sin%ur spaiu de lucru pe care dezvoltatorii s-l
mpart. Oricum, se poate crea spaii de lucru dedicate pentru anumii dezvoltatori sau proiecte. -rearea
unui spaiu de lucru dedicat limiteaz accesul la obiectele spaiului de lucru numai pentru utilizatorii
asociai cu spaiul de lucru.
Urmtoarea ilustraie arat relaia dintre utilizatori i dezvoltatori, spaii de lucru i sc.eme de
baze de date.
-,nd se confi%ureaz utilizatorii Application E&press la o or%anizaie mare, se atribuie roluri i
privile%ii utilizatorilor specifici. 9olurile din Oracle Application E&press includ urmtoarele!
V Ad(inistratorii spaiului de lucru sunt utilizatorii care realizeaz sarcini specifice de administrator
ntr-un spaiu de lucru, cum ar fi %estionarea conturilor de utilizator, monitorizarea activitii n spaiul de
B
lucru, precum i vizualizarea fielor nre%istrate.
V *ezvoltatorii sunt utilizatori care creeaz i editeaz aplicaii i modific obiectele bazei de date.
6ezvoltatorii pot avea propriul spaiu de lucru sau pot mpri un spaiu de lucru.
V Utilizatorii $inali nu au privile%ii de dezvoltare. Utilizatorii finali se definesc pentru accesa aplicaii
care nu utilizeaz o sc.em e&tern de autentificare.
V Ad(inistratorii instan3 sunt superutilizatori care %estioneaz o ntrea% instan %zduit utiliz,nd
aplicaia Application E&press Administration 4ervices.
0C
Capitolul '. Proiectul logic al aplicaiei activitatea de sc>i(b valutar 8ntr#o
banc3.
'.l. *escrierea unit3ii econo(ice la care se a$l3 activitatea de sc>i(b valutar
+n banca studiat se desfoar activiti de v,nzareOcumprare valut. Un operator va utiliza
aplicaia pentru a facilita calculul valorii pltite clientului conform cursului valutarOzi, precum i pentru
realizarea situaiilor finale, zilnice sau periodice.
Activitatea de sc.imb valutar poate cumpra n mod liber, fr limitri, contra lei, valut sub
form de numerar 'bancnote i monede care nu sunt divizionare( i cecuri de cltorie, n oricare din
valutele cotate de 1anca ;aional a 9om,niei, de la rezideni i nerezideni, persoane fizice.
At,t cursurile de v,nzare c,t i cele de cumprare pentru toate valutele i cecurile de cltorie
ne%ociate vor fi afiate zilnic, la loc vizibil, la nceputul pro%ramului de lucru. -ursurile afiate mai pot
fi modificate n timpul zilei respective de lucru, n cadrul unei localiti, unitatea de sc.imb valutar va
practica, aceleai cursuri pentru toate punctele sale de sc.imb.
-ursurile afiate vor fi nscrise n listele de cursuri zilnice, semnate de persoanele mputernicite
de conducerea bncii i cu aplicarea tampilei punctului de sc.imb valutar. )istele de cursuri se vor
pstra ca documente $ustificative la punctele de sc.imb valutar respective.
Pentru operaiunile de sc.imb valutar se pot ncasa comisioane numai n lei, n afara mar$ei ntre
cursurile de cumprare i cele de v,nzare. -omisioanele vor fi afiate zilnic, la nceputul pro%ramului de
lucru i nu mai pot fi modificate n timpul zilei de lucru.
Pentru fiecare tranzacie, punctele de sc.imb valutar vor ntocmi buletine de sc.imb tipizat.
1uletinele de sc.imb valutar vor fi emise, nre%istrate, evideniate i utilizate ca documente cu
re%im special, n care scop vor purta n mod obli%atoriu antet, serie i numr de ordine imprimate.
1uletinele de sc.imb valutar se ntocmesc n dou e&emplare, fiind obli%atorie completarea lor cu
toate datele prevzute n formular. Pe buletinul de sc.imb valutar, la rubrica nr. l W;umele i
prenumeleW, se va trece numele titularului buletinului de identitate sau al paaportului individual.
Ori%inalul buletinului de sc.imb valutar, datat, semnat i tampilat de punctul de sc.imb se
nm,neaz clientului, iar e&emplarul 3 se pstreaz ca document $ustificativ de cas.
+n cazul unitilor de sc.imb valutar care au or%anizat operaiunile n sistem computerizat,
ntocmirea buletinelor de sc.imb valutar se poate face pe calculatorul electronic, cu condiia ns de a se
respecta ntocmai modelul de formular aprobat, inclusiv re%imul special al acestuia, prin nscrierea
seriei i a numrului de ordine.
4e va ine un re%istru zilnic al tranzaciilor, indic,nd cumprrile i v,nzrile de valuta i cecuri de
cltorie, pe feluri de valute, precum i sumele n lei pltite i, respectiv, ncasate n cadrul acestor
operaiuni.
+n vederea asi%urrii suprave%.erii bancare asupra tranzaciilor, unitile de sc.imb valutar vor
avea n dotare te.nic de calcul adecvat pentru preluarea pe suport ma%netic a operaiunilor efectuate
prin toate punctele de sc.imb valutar.
'.%. Cerinele utilizatorului
Evidena clienilor
Evidena cursului valutar O moned
Evidena tranzaciilor valutare
<iprirea bonului fiscal n urma realizrii unei tranzacii
Afiarea unor situaii zilnice sau periodice privind totalul tranzaciilor
REGULILE UNITII
~ ;ici o tranzacie nu se poate desfura fr detalii referitoare la clieni O tranzacie este fie de
cumprare valut fie de v,nzare valut Orice tranzacie se finalizeaz cu tiprirea unui bon fiscal
00
DESCRIEREA DATELOR DE INTRARE
Actele de identitate 'buletin, carte de identitate, paaport( ale clienilor
-ursul valutar introdus n fiecare zi
DESCRIEREA SITUAIILOR NECESARE
1onul fiscal tiprit la fiecare tranzacie
4ituaia zilnic a v,nzrilor de valut
4ituaia zilnic a cumprrilor de valut
4ituaii periodice ale v,nzrilor de valut
4ituaii periodice ale cumprrilor de valut
4ituaia v,nzrilor i cumprrilor raportate la un client
Evoluia cursului afiat de ctre 1anca ;aionala 9om,n
'.' CR<AR<A .;*<+U+UI C;NC<P?UA+ +;CA+4 P<N?RU @<*<RI+< U?I+IAA?;RI+;R
Obiectivul urmrit const n crearea unui model conceptual local, pentru vie"-urile utilizatorilor.
Primul pas n proiectarea bazei de date este de a colecta datele necesare pentru realizarea sistemului,
ceea ce putem cule%e, discut,nd cu viitorii utilizatori ai bazei de date.
'.'.1. Identi$icarea tipurilor de entit3i
+n urma analizei listei documentelor de intrare i de ieire se contureaz urmtoarele tipuri de entiti!
-lieni - %rupeaz datele clienilor firmeiI
-urs valutar- memoreaz cursul valutar pe fiecare moned n fiecare ziI
=alut- memoreaz monezile cu care se realiea, tranzaciiI
-umprri X cuprinde datele referitoare la cumprrile efectuateI
=,nzri - cuprinde datele referitoare la v,nzrile efectuateI
<ranzacii- %rupeaz datele tranzaciei valutareI
'.'.% Identi$icarea tipurilor de relaii
<ip de entitate <ip de relaie <ip de entitate -ardinalitate
-urs=al este referit n =,nzri 0!;
-urs=al este referit n -umprri 0!;
=alut este referit n -urs 0!;
-lienti efectueaz =,nzri 0!;
-lienti efectueaz -umprri 0!;
'.'.' Identi$icarea 7i asocierea atributelor la tipurile de entit3i 7i tipurile de relaii
<ip de entitate Atribute 6escriere atribute
-)/E;J/
id-lient id-ul fiecrui client, valoarea ce se ia din secven
nume numele clientului
tara ara clientului
tipTai tipul actului de identitate
serieTai seria actului de identitate
numarTai numrul actului de identitate
or%TemTai or%anul care a emis actul de identitate
dataTemTai data emiterii actului de identitate
03
-U94=A)
id-urs id-ul fiecrui curs, valoarea ce se ia din secven
nrTsc.imb ;umarul scimbarii zilnice
id=aluta id-ul fiecrui client, valoarea ce se ia din secven
data-urs data la care s-a nre%istrat cursul
cursTcump cursul de cumprare
cursTv,nz cursul de v,nzare
cursTbnr cursul afiat de 1;9
=A)U<E
id=aluta id-ul fiecrei valute, valoarea ce se ia din secven
id<ranz id-ul fiecrei tranzacie, val. ce se ia din secven
id-urs id-ul fiecrui curs, valoarea ce se ia din secven
suma suma n lei, reprezent,nd contravaloarea valutei
=Y;>Z9/
id=anzare id-ul fiecrei v,nzri, valoarea ce se ia din secven
id-lient
id-urs id-ul fiecrui curs,
suma suma n lei, reprezent,nd contravaloarea v,nzrii
-U#PZ9Z9/
id-umpar id-ul fiecrei cumprri, val. ce se ia din secven
id-lient
id-urs id-ul fiecrui curs,
suma suma n valut,
'.'.-. *eter(inarea do(eniilor de de$iniie a atributelor
D!meniul atri"utului# Un set de valori ce se pot da acelui atribut.
Pentru a controla n totalitate domeniul atributelor, se pot evidenia urmtoarele!
setul de valori admisibile pentru un atribut
operaiile admisibile asupra unui atribut
ce atribute se pot compara cu atributul respectiv, n combinaiile cu alte atribute
mrimea i formatul c,mpului atributului
'.'./. *eter(inarea atributelor care co(pun c>eile candidate 7i pri(are
O c$eie candidat este un atribut, sau un %rup de atribute care identific unic fiecare nre%istrare din tipul
de entitate. Putem identifica una sau mai multe c.ei candidat, n acest caz trebuie s ale%em dintre ele o
02
c.eie primar. -.eile candidat care nu sunt primare, se vor numii c$ei alternante. Pentru ale%erea unei
c.ei ca fiind c.eie primar, vom ine cont de urmtoarele!
c.eia candidat, care are un numr minimal de atribute
c.eia candidat, care i va sc.imba cel mai rar valoarea
c.eia candidat, care este cel mai puin probabil s sufere modificri n viitor
c.eia candidat, care este compus din cele mai puine caractere 'n cazul atributelor
de tip caracter(
c.eia candidat, care este cel mai uor de folosit din punctul de vedere al
utilizatorului.
Clieni
;ume atribut <ipul 6imensiunea 9e%uii
id-lient secventa 3 -.eie primar
nume vare.ar 7C
tara varc.ar 3C
tipTai c.ar 3
seriaTai c.ar 3
numarTai c.ar A
or%TemTai varc.ar 7C
dataTemTai smalldatetime 7
Curs@al
;ume atribut <ipul 6imensiunea 9e%uli
id-urs smallint 7 -.eie primar
nrTsc.imb smallint 3
id=aluta smallint 3
data-urs smalldatetime 7
cursTcump int 7
cursTv,nz int 7
cursTbnr int 7
@alut3
;ume atribut <ipul 6imensiunea 9e%uli
id=aluta smallint 3 -.eie primar
-od=aluta varc.ar 2
den=aluta varc.ar 3C
@Bnz3ri
;ume atribut <ipul 6imensiunea 9e%uli
id=anzare
int 7 -.eie primar
id-lient
int 0C
id-urs
smallint 7
suma int 7
07
Cu(p3r3ri
;ume atribut <ipul 6imensiunea 9e%uli
id-umpar
int 7 -.eie primar
id-lient
int 0C
id-urs
smallint 7
suma int 7
'.'.0. *esenarea diagra(ei entitC#relations>ip
'.-. CR<AR<A DI @A+I*AR<A .;*<+U+UI +;)IC +;CA+
Obiectivul urmrit este de a crea un model lo%ic local bazat pe modelul conceptual al
utilizatorilor asupra firmei i validarea prin procesul de normalizare i prin te.nica tranzaciilor
cerute.
=om verifica modelul conceptual creat n pasul anterior i vom elimina din el structurile care sunt
dificil de realizat ntr-un 4516.
'.-.1. Proiectarea (odelului conceptual local pe un (odel logic local
Eliminarea rela%iil!r multe&la&multe
6ac n modelul de date apar relaii de tipul multe-la-multe '#!;(, trebuie descompuse n dou
relaii unu-la-multe 'l !#( prin adu%area unei noi entiti suplimentare.
Eliminarea rela%iil!r c!m'le(e
O relaie comple& este o relaie ntre mai mult de dou tipuri de entiti. 6ac n modelul
conceptual apar relaii comple&e, acestea trebuie eliminate. 4e pot elimina prin crearea unui nou tip de
entitate, care s fie n relaie de tipul l !# cu fiecare tip de entitate din relaia iniial, partea cu # a
relaiei fiind spre tipul de entitate nou creat.
Eliminarea rela%iil!r recur)i*e
9elaiile recursive sunt nite relaii particulare, prin care un tip de entitate este n relaie cu el
nsui. 6ac apare o astfel de relaie n modelul conceptual, ea trebuie eliminat. Eliminarea se poate
rezolva prin crearea unei noi entiti unde s se evidenieze fiecare entitate care este le%at de entitatea din
tipul de entitate iniial. +n acest caz vom avea o relaie de tipul l !# ntre tipul de entitate iniial i tipul de
entitate nou creat i o relaie de tipul 0!0 ntre tipul de entitate nou creat i tipul de entitate iniial.
Eliminarea relaiilor cu atribute
6ac n modelul conceptual avem relaii cu atribute, putem descompune aceast relaie,
0*
identific,nd un nou tip de entitate n care s nre%istrm atributele necesare.
Ree(aminarea rela%iil!r de ti'ul +#+
+n modelul conceptual putem avea entiti ntre care s avem relaie de tipul 0!0. 4e poate nt,mpla ca
aceste entiti s fie de fapt aceeai entitate cu nume diferite. 6ac suntem n acest caz, unim cele dou
entiti, c.eia primar devenind c.eia primar al uneia dintre entiti.
Eliminarea rela%iil!r redundante
O relaie este redundant dac se poate a$un%e de la un tip de entitate la alt tip de entitate pe
mai multe drumuri. Amintesc c se vrea a se a$un%e la un model minimal i deci relaiile redundante
nu sunt necesare. 6ecizia ca o relaie este redundant trebuie s fie precedat de o analiz amnunit a
relaiilor care compun cele dou drumuri dintre cele dou entiti, pentru c pot aprea situaii, c,nd o
relaie este aparent redundant, dar n realitate este nevoie de ea.
+n modelul lo%ic local nu avem nici un astfel de caz de aceea putem considera modelul conceptual local
ca fiind modelul lo%ic local.
'.-.%. Crearea relaiilor pentru (odelul logic local
9elaia pe care un tip de entitate o are cu alt tip de entitate este reprezentat prin mecanismul
c.eie primarOc.eie strin. -.eia strin pentru o entitate este reproducerea c.eii primare altei entiti.
Pentru a decide entitile unde vom include copia c.eii primare a altei entiti, trebuie nainte s
identificm entitile WprinteW i WfiuW. Entitile WprinteW se refer la acele entiti ale cror c.ei primare
se vor copia n entitile WfiuW.
Pentru descrierea relaiilor vom folosi un limba$ de definire a bazei de date '6atabase 6efinition
)an%ua%e - 616)(. n acest limba$, specificm prima dat numele entitii, urmat de atributele asociate
ntre paranteze. 6up aceea identificm c.eia primar i toate c.eile alternante, precum iOsau c.eile
strine.
Clieni '/6-lient, ;ume, <ara, <ipTai, 4erieTai, ;umarTai, Or%TemTai, 6ataTemTai(
C>eie pri(ar32 /6clientI
Curs @al '/6-urs, /d=aluta, 6ata-urs, -ursTcump, -ursTv,nz, -ursTbnr(
C>eie pri(ar32 /6-ursI
C>eie str3in32 /d=aluta, se refer la =alute'/d=aluta(I
@alute '/d=aluta, -od=aluta, 6en=aluta(
C>eie pri(ar32 /d=alutaI
Cu(p3r3ri '/6-umpar,/d-lient, /6-urs, 4uma(
C>eie pri(ar32 /6-umparI
C>eie str3in32 /6-urs, se refer la -urs=al'/6-urs(
C>eie str3in32/6-lient se refer la -lienti'/6-lient(
@Bnz3ri '/6=,nzare,/d-lient, /6-urs, 4uma( C>eie pri(ar32 /6 =,nzareI
C>eie str3in32/6-urs, se refer la -urs=al'/6-urs(I
C>eie str3in32/6-lient se refer la -lienti'/6-lient(
'.-.'. @alidarea (odelului4 utilizBnd nor(alizarea
N!rmaliarea este procesul prin care se decide dac atributele pot sau nu s rm,n mpreun.
-onceptul de baz a teoriei relaiilor este c atributele sunt %rupate mpreun pentru c e&ist o relaie lo%ic
ntre ele.
Proiectarea normalizat or%anizeaz datele n funcie de dependenele funcionale. 6eci acest proces
este situat undeva ntre proiectarea conceptual i cea fizic. Proiectul lo%ic nu este un proiect final. El a$ut
proiectantul s nelea% natura datelor n ntreprindere. Proiectul fizic poate fi diferit. E&ist posibilitatea ca
08
unele tipuri de entiti s se denormalizeze. <otui normalizarea nu este un timp pierdut.
Proiectul normalizat este robust i independent de anomaliile de actualizare. -alculatoarele moderne au
mult mai mult putere de calcul, ca cele de acum c,iva ani. 6in aceast cauz, c,teodat este mai convenabil
implementarea unei baze de date cu puin redundan, dec,t suportarea c.eltuielilor pentru procedurile
adiionale.
;ormalizarea produce o baz de date care va fi uor e&tensibil n viitor. Procesul de normalizare
include urmtoarele etape mari!
Forma ;ormal Unu '/;F(, eliminarea %rupurilor repetitiveI
Forma ;ormal 6oi '3;F(, eliminarea dependenelor pariale de c.eia primarI
Forma ;ormal <rei '2;F(, eliminarea dependenelor tranzitive de c.eia primarI
Forma ;ormal 1o?ce--odd '1-;F(, eliminarea anomaliilor care au mai rmas.
Clieni '/6-lient, ;ume, <ara, <ipTai, 4erieTai, ;umarTai, Or%TemTai, 6ataTemTai(
Curs @al '/6-urs, /d=aluta, 6ata-urs, -ursTcump, -ursTv,nz, -ursTbnr(
@alute '/d=aluta. -od=aluta, 6en=aluta(
Cu(p3r3ri '/6-umpar, /6<ranz, /6-urs, 4uma(
@Bnz3ri fl6=anzare, /6<ranz, /6-urs, 4uma(
+n relaiile noastre nu e&ist %rupuri repetitive deci relaiile sunt n Forma normal unu.
,!rma N!rmal D!i
O relaie este n 3;F dac este n 0F; i fiecare atribut care nu aparine c.eii primare este total
dependent de c.eia primar. 9elaiile la care c.eia primar se compune dintr-un sin%ur atribut, aa cum
sunt relaiile noastre sunt n Forma normal doi.
,!rma N!rmal Trei
O relaie este n 2;F dac este n 3F; i nu e&ist nici un atribut care s nu aparin c.eii primare
i care s fie tranzitiv dependent de c.eia primar. +n relaiile noastre nu e&ist dependene tranzitive de
c.eie, deci relaiile se afl n Forma normal trei.
'.-.-. @alidarea (odelului utilizBnd tranzaciile
+n acest pas se valideaz baza de date prin verificarea tranzaciilor ce se cer de utilizator.
)u,nd n considerare tipurile de entiti, relaiile, c.eile primare i strine, ncercm s rezolvm manual
cerinele utilizatorilor. 6ac reuim s rezolvm fiecare tranzacie cerut, atunci nseamn c modelul
creat este valid. 6ac nu putem rezolva o tranzacie, atunci este foarte posibil s fi omis un atribut, o
relaie, sau o entitate din modelul de date. 4unt necesare urmtoarele tranzacii!
I. Clieni
<0 - =izualizare clieni
-.eia primar a entitii clieni este /6-lient. n cadrul acestei forme se pot vizualiza toi clienii
introdui n baza de date, adic clienii care au efectuat de$a o tranzacieI
<3 - -utare client
Prin tastarea numelui clientului cutat se verific caracter cu caracter potrivirea cu unul din numele
de$a introduseI n cazul potrivirii e&acte, n fereastra desc.is va rm,ne doar numele clientului cutat,
n caz contrar clientul va trebui nre%istratI
<2 - Adu%are client
/n cazul n care clientul nu se %sete n baza de date acesta va fi introdus mpreun cu toate datele
necesare identificrii lui 'nume, ar, tip act, serie act, numr act, or%anul care a emis actul precum i data
emiterii(I
<7 - #odificare date client
6ac clientul se afl n baza de date a casei de sc.imb valutar dar datele acestuia s-au modificat
ntre timp, acestea vor fi modificateI
II. @alute
<* - =izualizare valute
-.eia primar a entitii este /d=aluta. 6in forma =alute se pot vizualiza toate valutele care se afl
0A
n baza de date, observ,ndu-se la fiecare codul scurt, format din trei litere precum i ntrea%a denumire
pentru a putea fi recunoscute mai uorI
<8 X Adu%are valute
6ac este nevoie de o valut nou, care nu a fost introdus p,n n acest moment, se poate
nre%istra prin codul scurt urmat de ntrea%a denumireI prima dat verific dac valuta de introdus nu
e&ist de$aI dup care n caz c nu e&ist, inserez detaliile necesare. 6ac e&ist de$a valuta, nu admit
inserarea.
<A - #odificare valute
Pentru a modifica datele despre o valut, se caut mai nt,i /d=aluta. 6ac acesta e&ist, se
modific datele despre ea, altfel nu se poate.
<: - @ter%ere valut
4e caut c.eia valutei de ters. 6ac e&ist, se ter%e valuta, altfel apare un mesa$ de eroare.
III. Curs valutar
<B - =izualizare curs
-.eia primar a entitii este /6curs. 6in forma -urs se poate vizualiza cursul pentru toate
valutele care se afl n baza de dateI acest curs este alctuit din cursul 1;9, cursul de cumprare 'cu
care casa de sc.imb valutar cumpr valuta de la clieni( i din cursul de v,nzare 'cu care casa de
sc.imb valutar vinde valuta clienilor(.
</O - Adu%are curs
Acesta trebuie introdus n parte pentru fiecare valut, n cele trei c,mpuri! curs 1;9, curs
cumprare i curs v,nzare.
</ l - #odificare curs
/n cazul n care cursul este introdus %reit, se va suprascrie noul curs.
<03 - @ter%ere curs
4e caut c.eia cursului pe care dorim s-l ter%em. 6ac e&ist se ter%e.
I@. Cu(p3r3ri
</8 - Adu%are cumprare
-.eia primar a entitii este /6-umpar. 4e selecteaz codul valutei dorite, din cele e&istente n
baza de date, l,n% acesta fiind automat copiat cursul de cumprare.
</A - @ter%e tranzacie de cumprare.
4e caut c.eia tranzaciei de ters. -,nd aceasta este %sita se ter%e tranzacia.
@. @Bnz3ri
</: - Adu%are v,nzare
-.eia primar a entitii este /6=anzare. 4e selecteaz codul valutei dorite, din cele e&istente n
baza de date, l,n% acesta fiind automat copiat cursul de v,nzare.
</B - @ter%e tranzacie de v,nzare.
4e caut c.eia tranzaciei de ters. -,nd aceasta este %sit se ter%e tranzacia.
'.-./. *e$inirea regulilor de integritate a bazei de date
9e%ulile de inte%ritate sunt importante pentru a prote$a baza de date mpotriva posibilelor
inconsistene. 6ac este necesar, putem produce un proiect fizic de baz de date, pentru a putea vedea mai
uor ce re%uli sunt necesare.
=om considera cinci tipuri de re%uli de inte%ritate!
necesitatea datelor,
re%uli asupra domeniului atributelor,
inte%ritatea entitilor,
inte%ritatea referinelor,
re%ulile ntreprinderii.
0. ;ecesitatea datelor
E&ist atribute care nu pot conine valoarea nul, ci trebuie s aib totdeauna o valoare. Aceste re%uli
0:
de$a le-am identificat, c,nd am documentat atributele n pasul 7.0.2.
3. 9e%uli asupra domeniului atributelor
Unele atribute au un domeniu de definiie bine definit. Aceste domenii trebuie respectate.
6omeniile de definiie au fost de$a identificate c,nd am documentat domeniile atributelor n pasul -.+.-.
2. /nte%ritatea entitilor
-.eia primar a entitilor nu poate lua valori nule pentru c i pierde rolul de identificator
unic. Aceste re%uli au fost de$a identificate, c,nd am documentat c.eile primare n pasul 2.0.*.
7. /nte%ritatea referinelor
-.eia strin din tipul de entitate WfiuW face le%tura cu o entitate din tipul de entitate WprinteW.
6eci, dac c.eia strin conine o valoare, ea trebuie neaprat s se re%seasc i n tipul de entitate
WprinteW.+n %eneral dac participarea tipului de entitate WfiuW este total, atunci nu putem avea valoare
nul n c.eia strin. +n caz contrar putem avea valoare nul.
-onsiderm urmtoarele cazuri!
Cazul 0! /nserarea unei entiti n tipul de entitate WfiuW! Pentru a verifica inte%ritatea referinei,
verificm dac atributele din componena c.eii strine sunt vide, sau s e&iste entitate n tipul de
entitate WprinteW care s aib valoare c.eii primare e%al cu valoare c.eii strine.
Cazul 3! @ter%erea unei entiti din tipul de entitate WfiuW ! @ter%erea unei entiti din tipul de entitate
WfiuW nu cauzeaz probleme cu privin la inte%ritatea referinelor.
Cazul 2! Actualizarea c.eii strine n tipul de entitate WfiuW ! Acest caz este similar cazului 0.
Cazul 7! @ter%erea unei entiti din tipul de entitate WprinteW ! 6ac se ter%e o entitate din tipul de entitate
WprinteW, inte%ritatea referinelor se stric n cazul n care e&ist entiti n tipul de entitate WfiuW, care se
refer la entitatea tears. E&ist strate%ii severe de a rezolva inte%ritatea referinelor!
&ERE ACFIUN< ;eacceptarea ter%erii unei entiti din tipul de entitate printe, dac acesta este
referit de o entitate din tipul de entitate fiu.
CASCA*E 6ac o entitate din tipul de entitate printe este tears, se ter% automat toate entitile
din tipurile de entiti fiu. 6ac tipurile de entiti fiu au i ele la r,ndul lor alte tipuri de entiti fiu, se va
efectua ter%erea n cascad n toate tipurile de entiti fiu, p,n la ultimul nivel.
Cazul *! #odificarea c.eii primare n tipul de entitate printe ! 6ac se modific c.eia primar din tipul
de entitate printe, inte%ritatea referinelor se stric. Pentru meninerea inte%ritii, se pot folosii toate
cazurile descrise mai sus, dar cel mai indicat este folosirea cazului FZ9Z A-J/U;E.
Clieni
c.eie primar! /6-lient
Curs@al
c.eie primar! /6-urs - la modificare i la ter%ere ! FZ9Z A-J/U;E
c.eie strin! /d=aluta nenul, se refer la =alute
@alute
c.eie primar! /d=aluta [
@Bnz3ri
c.eie primar! /6=,nzare X la modificare i la ter%ere ! FZ9Z A-J/U;E
c.eie strin! /6-lient nenul, referindu-se la -lient
c.eie strin!/d-urs nenul, referindu-se la -urs=al.
Cu(p3r3ri
c.eie primar! /6-umpar - la modificare i la ter%ere ! FZ9Z A-J/U;E
c.eie strin! /6-lient nenul, referindu-se la -lient
c.eie strin!/d-urs nenul, referindu-se la -urs=al.
'.-.0. @eri$icarea (odelului logic local cu a,utorul utilizatorului.
Obiectivul urmrit este convin%erea c modelul creat reprezint n totalitate realitatea care trebuie
modelat n baza de date. )a verificarea modelului s-a constatat! este conform cu realitatea 'nu s-au %sit
diferene(.
0B
Capitolul -. Proiectarea $izic3.
-.1. Cerere de spaiu de lucru ( GorH space!
Pentru a crea o baz de date n Oracle'"eb based [ pe internet(,se acceseaz site-ul
.ttp!OOape&.oracle.com de unde se creeaz un "orEspace, cu -)/-\ pe Re.ue)t a ,ree /!r0)'ace se
obine!
6up accesarea linE-ului de mai sus se urmeaz paii pentru a crea un nou "orEspace.
4e completeaz formularul cu ;U#E, P9E;U#E i E#A/).
Aps,nd butonul NE1T apare!
3C
;umele DorEspace-ul'E&emplu! AplicatieTfacultate, 1azaTdeTdate( 6up NE1T!
;umele 4c.emei 'E&emplu! aplicatie, aplicatieT3C03( apoi NE1T.
6e ce ai cerut crearea acestui "orEspace'E&emplu! Universit? Pro$ect, <o learn Oracle( Apsai butonul
NE1T.
30
6up definirea "orEspace-ului se primete de la oracle un email cu un linE, d,nd -)/-\ pe acel linE,
"orEspace-ul va fi creat n ape& i se primete nc un email cu datele de lo%in'DorEspace, Email i
parola(.
4e introduc datele de lo%are pentru a putea accesa Application E&press. ';umele DorEspace-ului,
Emailul, Parola(
33
-.%. ?abele APP<=
Pentru a putea crea tabele -)/-\ pe S2L /!r0)$!' i din meniul de mai $os -)/-\ pe O"3ect
4r!5)er.
+n partea dreapta a bro"serului e&ist un buton CREATE, -)/-\ pe CREATE dup care se ale%e TA4LE.
4e vor proiecta pe r,nd tabelele n ordinea! clienti, valuta, curs=al, cumparari, vanzari. Pentru clienti obinem!
32
Pentru valuta obinem!
Pentru curs=al obinem!
37
Aici artm cum se stabilete c.eia principal ca fiind cu valori date automat prin secven.
6up -)/\ pe ;E< adu%m c.eia strin!
Atenie]
Aciunea devine efectiv numai dup -)/\ pe A66.
)a fel se introduce tabela cumparari cu dou c.ei strine! idcurs spre cursval i idclient spre clienti.
3*
)a fel se introduce tabela vanzari cu dou c.ei strine! idcurs spre cursval i idclient spre clienti.
6ac vrei s vedei fraza 4N) se selecteaz 4N) i apare!
38
6ac vrem s vedem cum arat le%turile ntre tabele, de e&emplu, de la tabela cursval, cu -)/\ pe model
obinem!
-u -)/\ pe data obinem datele prezente n tabel!
3A
<ot de aici se pot modifica datele 'mai puin c.eia( sau introduce linii noi n tabel.
Pentru a ncepe crearea aplicaiei -)/-\ pe A''licati!n 4uilder i se selecteaz Data"a)e A''licati!n)
Acum -)/-\ pe buton CREATE care se afl n partea dreapt.
/ntroducei numele bazei de date i apsai butonul NE1T
-.'. &or(ulare APP<=
Urmeaz s proiectm formularele.
Pe ecranul urmtor selectm Form, dm nume tabelei valuta i A66 Pa%e
3:
4imilar pentru clienti
4imilar pentru cursval!
3B
@i mai departe pentru cumparari!
+n final pentru vanzari!
6up adu%area tuturor tabelelor aps,nd butonul NE1T apare!
2C
6up ;E<!, ;E< ^ se ale%e <.ema standard.
6in ecranul urmtor!
se ale%e -reate Application i se obine!
20
-u -)/\ pe aplicaia sc.imb valutar se poate vedea ce conine, pentru moment, aceast aplicaie!
Pentru formulare avem nevoie s lum date din alte tabele. 6e e&emplu c,nd vrem s introducem o
nre%istrare n cursval s putem ale%e denumirea valutei din valuta.
-.- +iste de valori
POP )O= 'Popup )ist Of =alues( +n aplicaia creat apare!
6ai -)/-\ pe numele tabelei cursval. Apare
23
6in meniul tree se d -)/\ dreapta pe idvaluta i vom avea!
6e aici -)/\ pe edit i obinem!
22
4electm Popup )ist of =alues,
#ai $os vei %si Li)t O6 7alue), 4electai Create D8namic Li)t !6 7alue)
6ai -)/-\ pe s%eata din dreptul <able or =ie"
Apare!
27
6e aici select,nd valuta!
6up ;E< va trebui s ale%em la 6ispla? -olumn 6en valuta i la 9eturn =alue idvaluta.
6up ;E<!
2*
4e vede aici fraza 4elect n P)4N). 6up Finis.!
Apsai A''l8 C$an9e)
)a fel vom proceda pentru a crea liste de valori pentru cumparari.
-./ &or(ular cu sub$or(ular
Pentru a vedea v,nzrile ctre un anumit client vom crea o pa%in!
Apoi!
28
4electm form i dup ;E<!
4electm #aster 6etail Form i!
6e aici selectm tabela -lienti i!
2A
6up ;E<!
4electm ;O la 4.o" Onl? 9elated <ables i apoi vie"-ul creat anterior 6etTvanz!
4electm c.eile primare la tabelele le%ate i!
2:
Aici facem le%tura ntre master i detail!
Acum artm cum se va forma c.eia!
@i la detail. Apoi!
2B
4 le ordoneze dup nume. Apoi!
4 fie pe aceeai pa%in!
Apoi ;E<, ;E< i -reate.
-./. Rapoarte APP<=
Pentru a crea un raport, din ecranul urmtor
7C
cu -)/\ pe -reate Pa%e obinem!
Aici ale%em 9eport i dup ;E<!
Avem de ales ntre mai multe tipuri de rapoarte. Ale%em /nteractive report i ;E<.
6m numele pa%inii i al re%iunii i ;E<.
Aici tot ;E<.
70
<rebuie s scriem acum fraza select pentru tabela care va fi ori%inea raportului. Putem s scriem direct,
dar mai si%ur c nu are %reeli este s o crem prin Nuer? 1uilder. 6up -)/\ obinem!
Aici selectm tabela clienti i de acolo coloanele pe care vrem s le avem n raport.
4elect,nd 4N) vedem fraza 4N) care trebuie scris n ecranul precedent. 4electm fraza i dup -)/\
dreapta!
73
Acum apare un ecran din are putem copia fraza select. 6up cop? prsim acest ecran cu -trl_= ducem
fraza la locul ei.
6up ;E<!
Aici trebuie s confirmm cererea i dup -reate!
72
4untem anunai c avem creat raportul. putem s-l rulm sau s-l editm. 6up 9un Pa%e!
Un alt e&emplu interesant de raport este cel n care vrem s aflm cursul valutar al zilei curente.
Pentru asta crem mai nt,i un vie" din ob$ect 1ro"ser ca s putem lua i denumirea valutei din valuta.
Atenie]
-omparaia direct a datei cu data din server nu mer%e]
Am fcut, dup cum se vede, transformarea n caracter i apoi n data la ambele. -a i mai nainte din!
77
-u -reate Pa%e ^9eport^
Ale%em acum clasic report i dup ;E<!
6m aici numele i ;E<
Ale%em aici numele vie" creat anterior.
6up confirmare putem s dm 9un i se obine!
7*
Pentru crearea unui raport %rafic din pa%ina!
dup -)/\ pe -reate Pa%e!
ale%em -.art i dup ;E<!
78
ale%em n -.art 9enderin% R<#)* -RA9< i la aspect )ine apoi!
-ompletm, ca n fi%ur, istoric euro i ;E<!
i iar ;E< pentru a a$un%e la!
7A
-ompletm -.art <itle, denumirile care vor fi n Uuer? datacurs i cursTbnr i dup ;E<!
-u -reate crem raportul i dup 9un va arta aa!
7:
6ac vrem s crem un raport le%at de o anumit pa%in 'de e&emplu buletinul de v,nzare pentru o
anumit tranzacie( atunci dup -reate Pa%e^9eport^/nteractive 9eport^;E<^;E<..a$un%em la!
Unde dup -)/\ pe Nuer? 1uilder!
7B
Aici construim o cerere!
6up -)/\ pe 4N) i selectare apare!
*C
-opiem cu -)/\ dreapta]]]]
i l ducem napoi
*0
Facem aici modificri ca s calculeze suma n 9O; i se ia /dvanzare din pa%ina 22.
Efectele acestei modificri se vor vedea n manualul de utilizare.
-./. Crearea unui buton.
6in pa%ina aplicaiei selectm formularul cursval. =a apare!
*3
)a buttons selectm _ care nseamn adu%area unui buton. Apare!
@i dup ;E<!
;E< din nou
*2
Aici dm numele butonului i etic.eta. Apoi ;E<!
Aici ale%em aezarea butonului
i ;E<!
*7
Ale%em aciunea de redirectare la pa%in. 6up ;E<!
<rebuie s ale%em acum pa%ina ce conine formularul de introducere a valutelor!
6up -)/\ apare!
6ac tim numrul pa%inii putem s l scriem direct. 6up ;E<!
**
6e aici numai avem dec,t s facem -)/\ pe -reate 1utton i se creeaz butonul.
-.0. Co(pletare pagina de start
P,n acum am avut n pa%ina de start a aplicaiei 'cea declanat cu run applicationn( doar
formularele. =rem s apar acolo i rapoartele. Pentru aceasta din meniul aplicaiei!
selectm Rome i apare!
*8
6e la )ist vom avea!
Fc,nd -)/\ pe -reate )ist Entr? obinem!
*A
Aici trebuie s selectm pa%ina pe care o introducem n meniu. cu -)/\ pe se
obine !
6e unde selectm raportul pe care vrem s l includem n meniu i apoi i dm etic.eta!
*:
Capitolul /. .anual de utilizare.
/.1. Intrarea 8n aplicaie
6up intrare n APPE!
se d -)/\ pe Application 1uilder!
6e aici, dup 9un pe aplicaia sc.imb valutar!
*B
Acesta este meniul pe care l-am construit.
6e aici se pot introduce datele prin formulare identificate cu cuv,ntul form.
/.%. Introducerea clienilor
-u -)/\ pe -lienti form!
Aici introducem datele clientului de e&emplu!
8C
4e selecteaz data din calendar i dup clic i -reate putem ale%e din meniu alt opiune.
/.'. Introducerea cursului valutar
6e e&emplu -urs val form!
6up -)/\!
80
6e aici cu -)/\ pe s%eata de la /dvaluta!
@i putem ale%e tipul de valut. 6ac nu avem n list valuta respectiv o putem introduce cu butonul
=alut nou. 6e e&emplu!
6up -reate vom avea posibilitatea de a introduce cursul pentru aceast valut.
6up cum am scris n analiza activitii, ntr-o zi putem avea mai multe modificri ale cursului,
deci la ;r 4c.imb vom trece a c,ta modificare este.
/.-. Introducerea cu(p3r3rii de valut3.
6in meniul aplicaiei se ale%e -umparari form!
83
6up -)/\ obinem!
Pe s%eata de la idclient obinem!
6e unde ale%em clientul.
6ac clientul nu este n list cu -)/\ pe client nou putem introduce un nou client din formularul
cunoscut.
82
Pentru a stabili cursul facem -)/\ pe -urs zilnic!
Prelum, de aici, idcurs i l scriem n formularul de la cumprri.
-u -)/-\ dreapta obinem!
6e aici, cu -)/-\ pe 1acE, revenim la formularul de cumprri unde trecem numrul de la
/6-U94!
)a idcumpar se trece un numr nc nefolosit.
87
6up scrierea sumei -)/\ pe -reate i nre%istrarea este nscris n baza de date i apare raportul!
-u -)/-\ pe creionul de la 3* apare!
Aici putem s facem eventuale modificri sau, dac totul este n re%ul, putem edita buletinul de
8*
cumprare cu -)/-\ pe butonul respectiv.
9evenind la RO#E putem continua cu alte aciuni.
/./. Introducerea vBnz3rii de valut3.
Pentru a introduce o v,nzare din meniul Rome -)/\ pe vanzari form!
6up -)/\ obinem!
Aici, ca i la cumprri, ale%em cursul zilnic, clientul e&istent sau introducem un client nou.
88
Ale%em, de asemenea, un /dvanzare care nu a mai fost.
6up -ursul zilnic apare!
-u -)/\ dreapta putem s ne ntoarcem, s ale%em sau s introducem un nou client i introducem suma.
6up -reate apare!
8A
4elect,nd, cu creionul, v,nzarea * apare!
6e aici cu -)/\ pe 1uletin 6e =,nzare!
Aici se vede cum acioneaz un fomular cu raport i un raport le%at de acea pa%in.
8:
/.0 Rapoarte
/.0.1 Cursul zilnic.
6in meniul RO#E se selecteaz -urs zilnic rap i apare!
/.0.% Clienii.
6in meniul RO#E selectm -lienti rap inter i apare!
Putem sorta clienii dup nume .
8B
6up Appl? obinem!
AC
Putem s %rupm clienii dup diverse criterii, de e&emplu dup ar!
6up -)/-\!
A0
4electm -oloana <ara i dup -)/-\!
6e aici -)/-\ pe iconi i avem!
A3

/.0.' Clieni cu vBnz3ri.
6ac vrem s vedem ce v,nzri de valut a fcut un anumit client -)/-\ pe -lienti cu v,nzri !
6e aici selectm de la creion clientul care ne intereseaz i dup -)/-\!
A2
4e vd v,nzrile.
/.0.- Clieni cu cu(p3r3ri.
Analo% se pot vedea cumprrile fcute de un client. 6in meniul RO#E \)/-\ pe -lienti cu
cumprri !
6e aici -)/-\ pe creionul din dreptul clientului cutat!
A7
Aici se vd cumprrile.
A*
Bibliogra$ie
`0a -onnol? <., 1e%% -., 4trac.an A., 6ata base s?stems, A66ison Desle?, 0BBA
`3a Rarrin%ton K.)., 9elational database desi%n, AP Professional, 0BB:.
`2a /acob P., 1aze de date, -urs Univ. b<ransilvaniac 1raov, 3CC2
`7a /acob P., Access la purttor, Editura )u& )ibris, 3CCA
A8