Documente Academic
Documente Profesional
Documente Cultură
Orice aplicaţie a calculatoarelor în economie are la bază o colecţie 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 APPEX un alt mod de lucru: Avem pe server tot softul necesar şi la orice
client un browser cu care accesăm prin intermediul internetului aplicaţia server. Marele avantaj este că
clientul este orice calculator care nu mai trebuie pregătit dinainte.
Pentru a învăţa să lucrezi cu Application Express (APPEX), Oracle pune la dispoziţie spaţiu de
lucru gratuit pe serverele pentru dezvoltatorul aplicaţiei.
Lucrarea de faţă conţine 5 capitole.
În primul capitol am prezentat câteva concepte importante din teoria bazelor de date relaţionale.
Capitolul al doilea prezintă, pe scurt, sistemul Oracle şi câteva caracteristici ale sistemului APPEX.
Proiectul logic al aplicaţiei pentru activitatea de schimb valutar dintr-o bancă se află în capitolul al treilea.
Conform cu acest proiect logic, 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ă
aplicaţie în practica schimbului valutar dintr-o bancă.
Contribuţia autorului constă din
selectarea şi organizarea materialului bibliografic,
analiza activităţii de schimb valutar, cuprinsă în proiectul logic,
proiectul fizic realizat cu APPEX
manualul de utilizare
.
I
CUPRINS
Introducere........................................................................................................................................................................................I
Capitolul 1. Baze de date relaţionale...............................................................................................................................................3
1.1. Abstractizarea datelor............................................................................................................................................................3
1.2 Independenţa datelor..............................................................................................................................................................3
1.3. Principalele componente ale unui SGBD..............................................................................................................................4
1.4. Modelul relaţional.................................................................................................................................................................5
1.5.. Definirea sistemelor de gestiune a bazelor de date relaţionale............................................................................................5
1.6. Regulile lui Codd..................................................................................................................................................................6
Capitolul 2. Despre ORACLE şi Oracle Application Express(APPEX).........................................................................................8
2.1. Oracle....................................................................................................................................................................................8
2.2. APPEX..................................................................................................................................................................................8
Capitolul 3. Proiectul logic al aplicaţiei activitatea de schimb valutar într-o bancă......................................................................11
3.l. Descrierea unităţii economice la care se află activitatea de schimb valutar........................................................................11
3.2. Cerinţele utilizatorului........................................................................................................................................................11
3.3 CREAREA MODELULUI CONCEPTUAL LOCAL, PENTRU VEDERILE UTILIZATORILOR.........................................12
3.3.1. Identificarea tipurilor de entităţi..................................................................................................................................12
3.3.2 Identificarea tipurilor de relaţii........................................................................................................................................12
3.3.3 Identificarea şi asocierea atributelor la tipurile de entităţi şi tipurile de relaţii.............................................................12
3.3.4. Determinarea domeniilor de definiţie a atributelor......................................................................................................13
3.3.5. Determinarea atributelor care compun cheile candidate şi primare.............................................................................13
3.3.6. Desenarea diagramei entity-relationship.....................................................................................................................15
3.4. CREAREA ŞI VALIDAREA MODELULUI LOGIC LOCAL..........................................................................................15
3.4.1. Proiectarea modelului conceptual local pe un model logic local.................................................................................15
3.4.2. Crearea relaţiilor pentru modelul logic local................................................................................................................16
3.4.3. Validarea modelului, utilizând normalizarea...............................................................................................................16
3.4.4. Validarea modelului utilizând tranzacţiile...................................................................................................................17
3.4.5. Definirea regulilor de integritate a bazei de date.........................................................................................................18
3.4.6. Verificarea modelului logic local cu ajutorul utilizatorului.........................................................................................19
Capitolul 4. Proiectarea fizică........................................................................................................................................................20
4.1. Cerere de spaţiu de lucru ( Work space).............................................................................................................................20
4.2. Tabele APPEX....................................................................................................................................................................23
4.3. Formulare APPEX..............................................................................................................................................................28
4.4 Liste de valori.......................................................................................................................................................................31
4.5 Formular cu subformular........................................................................................................................................................35
4.5. Rapoarte APPEX.................................................................................................................................................................39
4.5. Crearea unui buton.......................................................................................................................................................51
4.6. Completare pagina de start..................................................................................................................................................55
Capitolul 5. Manual de utilizare.....................................................................................................................................................58
5.1. Intrarea în aplicaţie..............................................................................................................................................................58
5.2. Introducerea clienţilor.........................................................................................................................................................59
5.3. Introducerea cursului valutar...............................................................................................................................................60
5.4. Introducerea cumpărării de valută.......................................................................................................................................61
5.5. Introducerea vânzării de valută...........................................................................................................................................65
5.6 Rapoarte...............................................................................................................................................................................68
5.6.1 Cursul zilnic..................................................................................................................................................................68
5.6.2 Clienţii...........................................................................................................................................................................68
5.6.3 Clienţi cu vânzări..........................................................................................................................................................72
5.6.4 Clienţi cu cumpărări......................................................................................................................................................73
Bibliografie....................................................................................................................................................................................75
II
Capitolul 1. Baze de date relaţionale.
Un scop important al unui sistem de gestiune a bazelor de date este să poată asigura o viziune
abstractă asupra realităţii. Este necesar să se reţină, din mulţimea vastă de informaţii, doar acele informaţii
care sunt necesare unei anumite aplicaţii.
Se poate face referire spre exemplu la încercarea de modelare a unei aplicaţii într-o intreprindere.
Trebuie modelate „obiectele” şi relaţiile dintre ele. Nu realitatea, complexă în totalitatea ei, intră în
discuţie ci doar o mică parte a ei, constituită din anumite „obiecte” şi pentru acele obiecte se iau în
considerare doar o parte din caracteristici (acele caracteristici care sunt importante pentru aplicaţia în
cauză). Astfel în cazul modelarii „obiectului” (sau entităţii) client, trebuie alese doar acele proprietăţi (sau
atribute) care interesează. Acestea ar putea fi, de exemplu: numele, actul de identitate, numărul,. O
mulţime impresionantă de informaţii, care contribuie la descrierea unei persoane anume, nu sunt luate în
seamă deoarece nu prezintă interes pentru intreprindere. De exemplu, nu interesează dacă cliantul are
ochii albaştri, dacă este blond sau brunet, dacă ascultă cu placere muzică sau dacă este o fire sentimentală.
Componentele bazei de date pot fi structurate pe trei nivele, în functie de clasa utilizatorilor
implicati şi de viziunea asupra structurării informaţiei, după cum urmează:
- nivelul logic de vizualizare (view) sau nivelul extern. Este dat de viziunea programatorului de
aplicaţii, care realizează programele de aplicaţii pentru manipularea datelor la nivel de structură logică
(subschema) corespunzatoare descrierii datelor aplicaţiei;
-nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizează
structura conceptuala (schema) corespunzătoare descrierii întregii baze de date şi administrează
componentele bazei de date. Acest nivel descrie ce date sunt memorate în baza de date şi ce relaţii sunt
stabilite între date. Nivelul conceptual reprezintă:
- toate entităţile, atributele lor şi relaţiile dintre ele;
- restricţiile impuse datelor
- informaţiile semantice despre date
- informaţiile privitoare la securitatea şi integritatea datelor.
-nivelul fizic. Este dat de viziunea inginerului de sistem care realizează structura fizică corespunzătoare
descrierii datelor pe suportul fizic (periferic). Acest nivel descrie cum sunt memorate datele în baza de
date. Nivelul intern se ocupă de:
-alocarea spatiului de memorie pentru date şi indecşi;
-descrierea înregistrărilor pentru memorare;
-plasarea înregistrărilor pe suport;
-tehnicile de compresie şi de criptare a datelor.
3
-administratorul bazei de date trebuie să aibă libertatea de a schimba structura de memorare sau strategia
de acces, ca răspuns la cerinţe (schimbăi de standarde, priorităţile aplicaţiilor, unităţile de memorare etc.),
fără a modifica aplicaţiile existente, baza de date existentă, precum şi programele de exploatare a ei, care
au fost folosite o perioadă de timp şi care reprezintă o investiţie majoră la care nu trebuie să se renunţe
prea uşor.
Independenţa fizică a datelor face ca memorarea datelor şi tehnicile fizice de memorarea să poată
fi modificate fără a determina rescrierea programelor de aplicaţie.
Ţinând seama de faptul că există diferite tipuri de sisteme de gestiune, care se diferenţiază:
- prin limbajele utilizate,
- prin anumite componente ce imprimă diferite facilităţi de exploatare a bazei de date,
- şi prin faptul că unele oferă posibilitatea lucrului în regim de teleprelucrare, altele numai în regim
local, iar altele atât în regim local cât şi în regim de teleprelucrare, ajungem la concluzia că nu poate
fi stabilită o arhitectură unică, valabilă pentru toate sistemele, ci apar particularităţi de la un sistem
la altul.
Arhitectura unui SGBD evidentiază componentele acestuia şi urmează standarde internaţionale. O astfel
de arhitectură generală cuprinde următoarele componente:
- baza de date propriu-zisă în care se memorează colecţia de date;
4
- sistemul de gestiune al bazei de date, care este un ansamblu de programe (soft) care realizează
gestiunea şi prelucrarea complexă a datelor;
- un set de proceduri manuale şi automate, precum şi reglementările administrative, destinate bunei
funcţionari a întregului sistem;
- un dicţionar al bazei de date (metabaza de date), ce conţine informaţii despre date, structura
acestora, elemente de descriere a semanticii, statistici, documentaţie etc.
- mijloacele hard utilizate (comune, specializate etc.);
- personalul implicat: (categorii de utilizatori: finali - (neinformaţicieni); de specialitate
(administrator), analişti - programatori, gestionari, operatori).
Arhitectura bazei de date dă o imagine despre modul general de organizare şi funcţionare a ei.
Limbajele untilizate într-un SGBD sunt de două tipuri: Limbajul de definire a datelor (Data
Definition Language - DDL) şi Limbajul de manipulare a datelor (Data Manipulation Language -
DML). Aceste limbaje mai sunt cunoscute ca sublimbaje de date deoarece ele nu includ construcţii
adecvate oricăror necesităţi de calcul, asemănătoare cu structurile puse la dispoziţie de limbajele de nivel
înalt.
Multe SGBD au facilitatea de a incorpora sublimbajul într-un limbaj de nivel înalt (numit limbaj
gazdă) cum ar fi COBOL, Fortran, Pascal, Ada, C, Jawa, C#. Pentru compilare, comenzile sublimbajului
sunt înlocuite în limbajul gazdă cu apeluri de funcţii. Fişierul preprocesat este compilat, plasat într-un
modul obiect, link-editat cu o bibliotecă în care se află funcţiile înlocuite, furnizate o dată cu SGBD, şi
este executat când este necesar.
În 1978 E.F.Codd, de la IBM Research Laboratory, a elaborat o lucrare care a avut o influenţă
covârşitoare în dezvoltarea bazelor de date. Lucrarea trata despre modelul de date relaţional.
De aici încolo s-au proiectat multe sisteme dintre care menţionăm System R dezvoltat la IBM's San
Jose Research Laboratory din California, la sfârşitul anilor '70. Acest proiect a dus la:
dezvoltarea unui limbaj structurat de interogare (numit SQL) care de atunci a devenit un standard
pentru sistemele relaţionale;
producerea în anii '80 de sisteme comerciale arhicunoscute dintre care menţionăm: DB2, SQL Server,
SQL/DS de la IBM şi ORACLE de la ORACLE Corporation.
Alte exemple de sisteme relaţionale: INGRES de la Relaţional Technology Inc., Informix de la
Informix Sofware Inc., Sybase de la Sybase Inc.. Dintre sitemele relaţionale pentru microcalculatoare
enumerăm aici: Paradox şi dBase IV de la Borland, Access de la Microsoft, FoxPro şi R:base de la
Microrim. Toate acestea constituie generatia a doua de SGBD.
5
diversităţii de SGBDR, pentru a căror prezentare a fost necesară nuanţarea terminologiei. Au apărut o
serie de sintagme precum: sisteme cu interfaţă relaţională, sisteme pseudorelaţionale, sisteme complet
relaţionale.
Conceptele specifice organizăriidatelor în fişiere, SGBDR şi teoriei relaţionale între care se pot stabili analogii
6
singură structură, şi anume cea relaţionala.
R5: Regula privind facilitaţile limbajelor utilizate
Un sistem relaţional trebuie să facă posibilă utilizarea mai multor limbaje, în mai multe moduri.
Trebuie să existe însă cel puţin un limbaj de nivel înalt ale cărui instrucţiuni să poată exprima oricare din
următoarele operaţii: definirea tabelelor de date, definirea tabelelor virtuale, manipularea datelor),
definirea restricţiilor de integritate, autorizarea accesului, precizarea limitelor tranzacţiilor.
A se nota aici că noul standard O/I pentru SQL furnizează toate aceste funcţii, deci orice limbaj
care acceptă acest standard va satisface automat această regulă.
R6: Regula privind actualizarea tabelelor virtuale
Toate tabelele virtuale care teoretic sunt posibil de actualizat trebuie să poată fi efectiv
actualizabile.Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabele virtuale sunt toeretic
actualizabile.
R7: Regula privind inserările, modificările şi ştergerile în baza de date
Sistemul trebuie să ofere posibilitatea manipulării unei tabele (da bază sau virtuală) nunumai în
cadrul operaţiilor de regăsire, ci şi în acţiuni de inserare, modificare şi ştergere a datelor. Această regulă
exprimă cerinţa ca prin operaţiile în care se schimbă bazei da date să se lucreze la un moment dat pe o
întreagă relaţie.
R8: Regula privind independenţa fizică a datelor
Programele de aplicaţie nu trebuie să fie afectate de schimbările efectuate în modul de
reprezentare a datelor sau în metodele de acces. O schimbare a structurii fizice a datelor nu trebuie să
blocheze funcţionarea programelor de alpicaţie.
R9: Regula privind independenţa logică a datelor
Programele de aplicaţie nu trebuie să fie afectate de schimbările efectuate asupra relaţiilor bazei de
date, schimbări care conservă datele şi care toeretic garantează valabilitatea programelor de apicaţie
existente.
R10: Regula privind restricţiile de integritate
Restrictiile de integritate trebuie să fie definite în limbajul utilizat de sistem pentru definirea
datelor ţi să fie memorate în cadrul bazei de date şi nu în cadrul programului de aplicaţie.
R11: Regula privind distribuirea geografică a datelor
Limbajul de manipulare a datelor utilizat de sistem trebuie să permită ca, în situaţia în care datele
sunt distribuite, programele de aplicaţie să fie logic aceleaşi cu cele utilizate în cazul în care datele sunt
fizic centralizate.
Utilizatorul trebuie să perceapă datele ca fiind centralizate. Sarcina de localizare a datelor, atunci
când acestea sunt distribuite geografic precum şi sarcina recompunerii datelor trebuie să revină sistemului
şi nu utilizatorului.
R12: Regula privind prelucrarea datelor la nivelul de bază
Dacă sistemul posedă un limbaj de bază (de nivel scăzut) orientat pe prelucrare de recorduri
(tupuri) şi nu pe prelucrarea mulţimiilor (relaţiilor), acest limbaj nu trebuie să fie utilizat pentru a se
evitarestricţiile de integritate sau restricţiile introduse prin utilizarea limbajelor de nivel înalt, adică
accesul la toate dazele va fi controlat de SGBDR, altfel integritate bazelor de date nu poate fi
compromisă fără cunoaşterea utilizatorului sau a administratorului bazei de date.
7
Capitolul 2. Despre ORACLE şi Oracle Application Express(APPEX).
2.1. Oracle
Oracle constă dintr-un set complet de constructori de aplicaţii şi produse pentru utilizatori,cautând
să asigure soluţii complete în tehnologia informaţiei.
Aplicatiile Oracle sunt portabile pe un numar mare de staţii de lucru şi sisteme de operare, de la
calculatoare personale la main frame-uri cu procesoare paralele.
Oracle este înzestrat cu un flexibil Sistem de Management al Bazelor de Date(DBMS)-Serverul
Oracle-pentru stocarea şi managementul informaţiei utilizate de aplicaţii.
Ultimul server Oracle, ORACLE 11g, utilizează o bază de date cu toate avantajele unei structuri
relaţionale, având în plus capacitatea de a stoca şi executa obiecte de tip bază de date precum proceduri şi
mecanisme de siguranţă.
Serverul Oracle cuprinde un DBMS care controlează:
Stocarea de date în sfera bazelor de date dedicate
2.2. APPEX
Oracle Application Express este un instrument de dezvoltare rapidă a aplicaţiilor web pentru baze
de date Oracle. Folosind doar un browser web şi experienţă limitată în programare, se pot dezvolta
aplicaţii profesionale care sunt atât rapide cât şi sigure. Datorită caracteristicilor predefinite, cum ar fi
teme de interfaţă, controalele de navigare, agenţi de formular şi rapoartele flexibile, Oracle Application
Express accelerează procesul de dezvoltare al aplicaţiei.
Din perspectiva utilizatorului final, aplicaţiile desfăşurate necesită doar un navigator web şi
accesul la o bază de date Oracle care rulează Application Express.
Oracle Application Express se instalează cu baza de date Oracle şi este format din datele din
tabele şi codul PL/SQL.
Fie că se execută mediul de dezvoltare al Oracle Application Express sau o aplicatie construită cu
Oracle Application Express, procesul este acelaşi. Browser-ul trimite o cerere de adresă URL care este
translatată într-un apel Oracle Application Express PL/SQL. După ce baza de date procesează codul
PL/SQL, rezultatele sunt retransmise către browser sub forma de cod HTML. Acest ciclu se petrece de
fiecare dată cand se cere sau se execută o pagină.
Sesiunea publică a aplicaţiei este gestionată în tabelele bazei de date din cadrul Oracle Application
Express. Nu foloseşte o conexiune de baze de date dedicată. În schimb, fiecare cerere este făcută printr-o
sesiune de baze de date separată, consumatoare de resurse minime de calculator.
Atât Serverul HTTP Oracle, cât şi Oracle Application Express Listener functionează ca agenţi de
comunicare între serverul Web şi obiectele Oracle Application Express din baza de date Oracle. Mai
exact, acestea mapează cereri de browser spre solicitări de proceduri de baze de date stocate peste o
conexiune SQL*Net. Următorul grafic ilustrează arhitectura Oracle Application Express utilizând
8
Serverul HTTP Oracle şi mod_plsql.
■ Administratorii spaţiului de lucru sunt utilizatorii care realizează sarcini specifice de administrator
într-un spaţiu de lucru, cum ar fi gestionarea conturilor de utilizator, monitorizarea activităţii în spaţiul de
lucru, precum şi vizualizarea fişelor înregistrate.
9
■ Dezvoltatorii sunt utilizatori care creează şi editează aplicaţii şi modifică obiectele bazei de date.
Dezvoltatorii pot avea propriul spaţiu de lucru sau pot împărţi un spaţiu de lucru.
■ Utilizatorii finali nu au privilegii de dezvoltare. Utilizatorii finali se definesc pentru accesa aplicaţii
care nu utilizează o schemă externă de autentificare.
■ Administratorii instanţă sunt superutilizatori care gestionează o întreagă instanţă găzduită utilizând
aplicaţia Application Express Administration Services.
10
Capitolul 3. Proiectul logic al aplicaţiei activitatea de schimb valutar într-o
bancă.
11
DESCRIEREA DATELOR DE INTRARE
Actele de identitate (buletin, carte de identitate, paşaport) ale clienţilor
Cursul valutar introdus în fiecare zi
DESCRIEREA SITUAŢIILOR NECESARE
Bonul fiscal tipărit la fiecare tranzacţie
Situaţia zilnică a vânzărilor de valută
Situaţia zilnică a cumpărărilor de valută
Situaţii periodice ale vânzărilor de valută
Situaţii periodice ale cumpărărilor de valută
Situaţia vânzărilor şi cumpărărilor raportate la un client
Evoluţia cursului afişat de către Banca Naţionala Română
12
CURSVAL idCurs id-ul fiecărui curs, valoarea ce se ia din secvenţă
nr_schimb Numarul scimbarii zilnice
idClient
idClient
13
cheie primară. Cheile candidat care nu sunt primare, se vor numii chei alternante. Pentru alegerea unei
chei ca fiind cheie primară, vom ţine cont de următoarele:
cheia candidat, care are un număr minimal de atribute
cheia candidat, care îşi va schimba cel mai rar valoarea
cheia candidat, care este cel mai puţin probabil să sufere modificări în viitor
cheia candidat, care este compusă din cele mai puţine caractere (în cazul atributelor
de tip caracter)
cheia candidat, care este cel mai uşor de folosit din punctul de vedere al
utilizatorului.
Clienţi
Nume atribut Tipul Dimensiunea Reguii
idClient secventa 2 Cheie primară
nume varehar 40
tara varchar 20
tip_ai char 2
seria_ai char 2
numar_ai char 7
org_em_ai varchar 40
data_em_ai smalldatetime 4
CursVal
Nume atribut Tipul Dimensiunea Reguli
14
Cumpărări
Nume atribut Tipul Dimensiunea Reguli
15
identificând un nou tip de entitate în care să înregistrăm atributele necesare.
Reexaminarea relaţiilor de tipul 1:1
În modelul conceptual putem avea entităţi între care să avem relaţie de tipul 1:1. Se poate întâmpla ca
aceste entităţi să fie de fapt aceeaşi entitate cu nume diferite. Dacă suntem în acest caz, unim cele două
entităţi, cheia primară devenind cheia primară al uneia dintre entităţi.
Eliminarea relaţiilor redundante
O relaţie este redundantă dacă se poate ajunge de la un tip de entitate la alt tip de entitate pe
mai multe drumuri. Amintesc că se vrea a se ajunge la un model minimal şi deci relaţiile redundante
nu sunt necesare. Decizia ca o relaţie este redundantă trebuie să fie precedată de o analiză amănunţită a
relaţiilor care compun cele două drumuri dintre cele două entităţi, pentru că pot apărea situaţii, când o
relaţie este aparent redundantă, dar în realitate este nevoie de ea.
În modelul logic local nu avem nici un astfel de caz de aceea putem considera modelul conceptual local
ca fiind modelul logic local.
16
unele tipuri de entităţi să se denormalizeze. Totuşi normalizarea nu este un timp pierdut.
Proiectul normalizat este robust şi independent de anomaliile de actualizare. Calculatoarele moderne au
mult mai multă putere de calcul, ca cele de acum câţiva ani. Din această cauză, câteodată este mai convenabil
implementarea unei baze de date cu puţină redundanţă, decât suportarea cheltuielilor pentru procedurile
adiţionale.
Normalizarea produce o bază de date care va fi uşor extensibilă în viitor. Procesul de normalizare
include următoarele etape mari:
Forma Normală Unu (INF), eliminarea grupurilor repetitive;
Forma Normală Doi (2NF), eliminarea dependenţelor parţiale de cheia primară;
Forma Normală Trei (3NF), eliminarea dependenţelor tranzitive de cheia primară;
Forma Normală Boyce-Codd (BCNF), eliminarea anomaliilor care au mai rămas.
Clienţi (IDClient, Nume, Tara, Tip_ai, Serie_ai, Numar_ai, Org_em_ai, Data_em_ai)
Curs Val (IDCurs, IdValuta, DataCurs, Curs_cump, Curs_vânz, Curs_bnr)
Valute (IdValuta. CodValuta, DenValuta)
Cumpărări (IDCumpar, IDTranz, IDCurs, Suma)
Vânzări flDVanzare, IDTranz, IDCurs, Suma)
În relaţiile noastre nu există grupuri repetitive deci relaţiile sunt în Forma normală unu.
Forma Normală Doi
O relaţie este în 2NF dacă este în 1FN şi fiecare atribut care nu aparţine cheii primare este total
dependent de cheia primară. Relaţiile la care cheia primară se compune dintr-un singur atribut, aşa cum
sunt relaţiile noastre sunt în Forma normală doi.
Forma Normală Trei
O relaţie este în 3NF dacă este în 2FN şi nu există nici un atribut care să nu aparţină cheii primare
şi care să fie tranzitiv dependent de cheia primară. În relaţiile noastre nu există dependenţe tranzitive de
cheie, deci relaţiile se află în Forma normală trei.
17
în baza de date, observându-se la fiecare codul scurt, format din trei litere precum şi întreaga denumire
pentru a putea fi recunoscute mai uşor;
T6 — Adăugare valute
Dacă este nevoie de o valută nouă, care nu a fost introdusă până în acest moment, se poate
înregistra prin codul scurt urmat de întreaga denumire; prima dată verific dacă valuta de introdus nu
există deja; după care în caz că nu există, inserez detaliile necesare. Dacă există deja valuta, nu admit
inserarea.
T7 - Modificare valute
Pentru a modifica datele despre o valută, se caută mai întâi IdValuta. Dacă acesta există, se
modifică datele despre ea, altfel nu se poate.
T8 - Ştergere valută
Se caută cheia valutei de şters. Dacă există, se şterge valuta, altfel apare un mesaj de eroare.
III. Curs valutar
T9 - Vizualizare curs
Cheia primară a entităţii este IDcurs. Din forma Curs se poate vizualiza cursul pentru toate
valutele care se află în baza de date; acest curs este alcătuit din cursul BNR, cursul de cumpărare (cu
care casa de schimb valutar cumpără valuta de la clienţi) şi din cursul de vânzare (cu care casa de
schimb valutar vinde valuta clienţilor).
TIO - Adăugare curs
Acesta trebuie introdus în parte pentru fiecare valută, în cele trei câmpuri: curs BNR, curs
cumpărare şi curs vânzare.
TI l - Modificare curs
In cazul în care cursul este introdus greşit, se va suprascrie noul curs.
T12 - Ştergere curs
Se caută cheia cursului pe care dorim să-l ştergem. Dacă există se şterge.
IV. Cumpărări
TI6 - Adăugare cumpărare
Cheia primară a entităţii este IDCumpar. Se selectează codul valutei dorite, din cele existente în
baza de date, lângă acesta fiind automat copiat cursul de cumpărare.
TI7 - Şterge tranzacţie de cumpărare.
Se caută cheia tranzacţiei de şters. Când aceasta este găsita se şterge tranzacţia.
V. Vânzări
TI8 - Adăugare vânzare
Cheia primară a entităţii este IDVanzare. Se selectează codul valutei dorite, din cele existente în
baza de date, lângă acesta fiind automat copiat cursul de vânzare.
TI9 - Şterge tranzacţie de vânzare.
Se caută cheia tranzacţiei de şters. Când aceasta este găsită se şterge tranzacţia.
18
deja le-am identificat, când am documentat atributele în pasul 4.1.3.
2. Reguli asupra domeniului atributelor
Unele atribute au un domeniu de definiţie bine definit. Aceste domenii trebuie respectate.
Domeniile de definiţie au fost deja identificate când am documentat domeniile atributelor în pasul 4.1.4.
3. Integritatea entităţilor
Cheia primară a entităţilor nu poate lua valori nule pentru că îşi pierde rolul de identificator
unic. Aceste reguli au fost deja identificate, când am documentat cheile primare în pasul 3.1.5.
4. Integritatea referinţelor
Cheia străină din tipul de entitate "fiu" face legătura cu o entitate din tipul de entitate "părinte".
Deci, dacă cheia străină conţine o valoare, ea trebuie neapărat să se regăsească şi în tipul de entitate
"părinte".În general dacă participarea tipului de entitate "fiu" este totală, atunci nu putem avea valoare
nulă în cheia străină. În caz contrar putem avea valoare nulă.
Considerăm următoarele cazuri:
Cazul 1: Inserarea unei entităţi în tipul de entitate "fiu": Pentru a verifica integritatea referinţei,
verificăm dacă atributele din componenţa cheii străine sunt vide, sau să existe entitate în tipul de
entitate "părinte" care să aibă valoare cheii primare egală cu valoare cheii străine.
Cazul 2: Ştergerea unei entităţi din tipul de entitate "fiu" : Ştergerea unei entităţi din tipul de entitate
"fiu" nu cauzează probleme cu privinţă la integritatea referinţelor.
Cazul 3: Actualizarea cheii străine în tipul de entitate "fiu" : Acest caz este similar cazului 1.
Cazul 4: Ştergerea unei entităţi din tipul de entitate "părinte" : Dacă se şterge o entitate din tipul de entitate
"părinte", integritatea referinţelor se strică în cazul în care există entităţi în tipul de entitate "fiu", care se
referă la entitatea ştearsă. Există strategii severe de a rezolva integritatea referinţelor:
FĂRĂ ACŢIUNE Neacceptarea ştergerii unei entităţi din tipul de entitate părinte, dacă acesta este
referit de o entitate din tipul de entitate fiu.
CASCADĂ Dacă o entitate din tipul de entitate părinte este ştearsă, se şterg automat toate entităţile
din tipurile de entităţi fiu. Dacă tipurile de entităţi fiu au şi ele la rândul lor alte tipuri de entităţi fiu, se va
efectua ştergerea în cascadă în toate tipurile de entităţi fiu, până la ultimul nivel.
Cazul 5: Modificarea cheii primare în tipul de entitate părinte : Dacă se modifică cheia primară din tipul
de entitate părinte, integritatea referinţelor se strică. Pentru menţinerea integrităţii, se pot folosii toate
cazurile descrise mai sus, dar cel mai indicat este folosirea cazului FĂRĂ ACŢIUNE.
Clienţi
cheie primară: IDClient
CursVal
cheie primară: IDCurs - la modificare şi la ştergere : FĂRĂ ACŢIUNE
cheie străină: IdValuta nenulă, se referă la Valute
Valute
cheie primară: IdValuta –
Vânzări
cheie primară: IDVânzare — la modificare şi la ştergere : FĂRĂ ACŢIUNE
cheie străină: IDClient nenulă, referindu-se la Client
cheie străină:IdCurs nenulă, referindu-se la CursVal.
Cumpărări
cheie primară: IDCumpar - la modificare şi la ştergere : FĂRĂ ACŢIUNE
cheie străină: IDClient nenulă, referindu-se la Client
cheie străină:IdCurs nenulă, referindu-se la CursVal.
19
Capitolul 4. Proiectarea fizică.
După accesarea link-ului de mai sus se urmează paşii pentru a crea un nou workspace.
20
Numele Schemei (Exemplu: aplicatie, aplicatie_2012) apoi NEXT.
De ce aţi cerut crearea acestui workspace(Exemplu: University Project, To learn Oracle) Apăsaţi butonul
NEXT.
21
După definirea workspace-ului se primeşte de la oracle un email cu un link, dând CLICK pe acel link,
workspace-ul va fi creat în apex şi se primeşte încă un email cu datele de login(Workspace, Email şi
parola).
Se introduc datele de logare pentru a putea accesa Application Express. (Numele Workspace-ului,
Emailul, Parola)
22
4.2. Tabele APPEX
Pentru a putea crea tabele CLICK pe SQL Workshop şi din meniul de mai jos CLICK pe Object
Browser.
În partea dreapta a browserului există un buton CREATE, CLICK pe CREATE după care se alege TABLE.
Se vor proiecta pe rând tabelele în ordinea: clienti, valuta, cursVal, cumparari, vanzari. Pentru clienti obţinem:
23
Pentru valuta obţinem:
24
Aici arătăm cum se stabileşte cheia principală ca fiind cu valori date automat prin secvenţă.
Atenţie!
Acţiunea devine efectivă numai după CLIK pe ADD.
La fel se introduce tabela cumparari cu două chei străine: idcurs spre cursval şi idclient spre clienti.
La fel se introduce tabela vanzari cu două chei străine: idcurs spre cursval şi idclient spre clienti.
25
Dacă vreţi să vedeţi fraza SQL se selectează SQL şi apare:
Dacă vrem să vedem cum arată legăturile între tabele, de exemplu, de la tabela cursval, cu CLIK pe model
obţinem:
26
Cu CLIK pe data obţinem datele prezente în tabelă:
Tot de aici se pot modifica datele (mai puţin cheia) sau introduce linii noi în tabelă.
Pentru a începe crearea aplicaţiei CLICK pe Application Builder şi se selectează Database Applications
27
Introduceţi numele bazei de date şi apăsaţi butonul NEXT
28
Şi mai departe pentru cumparari:
29
După NEXT:, NEXT … se alege Thema standard.
30
Cu CLIK pe aplicaţia schimb valutar se poate vedea ce conţine, pentru moment, această aplicaţie:
Pentru formulare avem nevoie să luăm date din alte tabele. De exemplu când vrem să introducem o
înregistrare în cursval să putem alege denumirea valutei din valuta.
31
Din meniul tree se dă CLIK dreapta pe idvaluta şi vom avea:
32
Selectăm Popup List of Values,
Mai jos veţi găsi List Of Values, Selectaţi Create Dynamic List of Values
Apare:
33
De aici selectând valuta:
După NEXT va trebui să alegem la Display Column Den valuta şi la Return Value idvaluta.
După NEXT:
34
Se vede aici fraza Select în PLSQL. După Finish:
Apăsaţi Apply Changes
Apoi:
35
Selectăm form şi după NEXT:
36
După NEXT:
Selectăm NO la Show Only Related Tables şi apoi view-ul creat anterior Det_vanz:
37
Aici facem legătura între master şi detail:
Şi la detail. Apoi:
38
Să le ordoneze după nume. Apoi:
39
Aici alegem Report şi după NEXT:
Avem de ales între mai multe tipuri de rapoarte. Alegem Interactive report şi NEXT.
40
Trebuie să scriem acum fraza select pentru tabela care va fi originea raportului. Putem să scriem direct,
dar mai sigur că nu are greşeli este să o creăm prin Query Builder. După CLIK obţinem:
Aici selectăm tabela clienti şi de acolo coloanele pe care vrem să le avem în raport.
Selectând SQL vedem fraza SQL care trebuie scrisă în ecranul precedent. Selectăm fraza şi după CLIK
dreapta:
41
Acum apare un ecran din are putem copia fraza select. După copy părăsim acest ecran cu Ctrl+V ducem
fraza la locul ei.
După NEXT:
42
Suntem anunţaţi că avem creat raportul. putem să-l rulăm sau să-l edităm. După Run Page:
Un alt exemplu interesant de raport este cel în care vrem să aflăm cursul valutar al zilei curente.
Pentru asta creăm mai întâi un view din object Browser ca să putem lua şi denumirea valutei din valuta.
Atenţie!
Comparaţia directă a datei cu data din server nu merge!
Am făcut, după cum se vede, transformarea în caracter şi apoi în data la ambele. Ca şi mai înainte din:
43
Cu Create Page …Report…
44
Pentru crearea unui raport grafic din pagina:
45
alegem în Chart Rendering HTML5 CHART şi la aspect Line apoi:
46
Completăm Chart Title, denumirile care vor fi în query datacurs şi curs_bnr şi după NEXT:
47
Dacă vrem să creăm un raport legat de o anumită pagină (de exemplu buletinul de vânzare pentru o
anumită tranzacţie) atunci după Create Page…Report…Interactive Report…NEXT…NEXT..ajungem la:
48
Aici construim o cerere:
49
Copiem cu CLIK dreapta!!!!
şi îl ducem înapoi
50
Facem aici modificări ca să calculeze suma în RON şi se ia Idvanzare din pagina 33.
51
La buttons selectăm + care înseamnă adăugarea unui buton. Apare:
Şi după NEXT:
52
Aici dăm numele butonului şi eticheta. Apoi NEXT:
şi NEXT:
53
Alegem acţiunea de redirectare la pagină. După NEXT:
Trebuie să alegem acum pagina ce conţine formularul de introducere a valutelor:
54
De aici numai avem decât să facem CLIK pe Create Button şi se creează butonul.
55
De la List vom avea:
56
Aici trebuie să selectăm pagina pe care o introducem în meniu. cu CLIK pe se
obţine :
De unde selectăm raportul pe care vrem să îl includem în meniu şi apoi îi dăm eticheta:
57
Capitolul 5. Manual de utilizare.
58
Acesta este meniul pe care l-am construit.
De aici se pot introduce datele prin formulare identificate cu cuvântul form.
59
Se selectează data din calendar şi după clic şi Create putem alege din meniu altă opţiune.
După CLIK:
60
De aici cu CLIK pe săgeata de la Idvaluta:
Şi putem alege tipul de valută. Dacă nu avem în listă valuta respectivă o putem introduce cu butonul
Valută nouă. De exemplu:
După Create vom avea posibilitatea de a introduce cursul pentru această valută.
După cum am scris în analiza activităţii, într-o zi putem avea mai multe modificări ale cursului,
deci la Nr Schimb vom trece a câta modificare este.
61
După CLIK obţinem:
62
Pentru a stabili cursul facem CLIK pe Curs zilnic:
63
După scrierea sumei CLIK pe Create şi înregistrarea este înscrisă în baza de date şi apare raportul:
Aici putem să facem eventuale modificări sau, dacă totul este în regulă, putem edita buletinul de
64
cumpărare cu CLICK pe butonul respectiv.
Aici, ca şi la cumpărări, alegem cursul zilnic, clientul existent sau introducem un client nou.
65
Alegem, de asemenea, un Idvanzare care nu a mai fost.
După Cursul zilnic apare:
Cu CLIK dreapta putem să ne întoarcem, să alegem sau să introducem un nou client şi introducem suma.
66
Selectând, cu creionul, vânzarea 5 apare:
Aici se vede cum acţionează un fomular cu raport şi un raport legat de acea pagină.
67
5.6 Rapoarte
5.6.1 Cursul zilnic.
Din meniul HOME se selectează Curs zilnic rap şi apare:
5.6.2 Clienţii.
Din meniul HOME selectăm Clienti rap inter şi apare:
68
După Apply obţinem:
69
Putem să grupăm clienţii după diverse criterii, de exemplu după ţară:
După CLICK:
70
Selectăm Coloana Tara şi după CLICK:
71
5.6.3 Clienţi cu vânzări.
Dacă vrem să vedem ce vânzări de valută a făcut un anumit client CLICK pe Clienti cu vânzări :
72
Se văd vânzările.
5.6.4 Clienţi cu cumpărări.
Analog se pot vedea cumpărările făcute de un client. Din meniul HOME KLICK pe Clienti cu
cumpărări :
73
Aici se văd cumpărările.
74
Bibliografie
[1] Connoly T., Begg C., Strachan A., Data base systems, ADDison Wesley, 1997
[2] Harrington J.L., Relational database design, AP Professional, 1998.
[3] Iacob P., Baze de date, Curs Univ. ‘Transilvania’ Braşov, 2003
[4] Iacob P., Access la purtător, Editura Lux Libris, 2007
75