Sunteți pe pagina 1din 39

Titlul cursului: SGBD Oracle

Autori: Prof. univ. dr. Manole Velicanu, Asist. univ. dr. Vlad Diaconia
Introducere
V felicitm pentru faptul c ai ajuns n anul 2 semestrul al doilea i v dorim succes !
Cursul SGBD Oracle se adreseaz studenilor din anul doi de la facultatea CSIE i este
continuarea disciplinei Baze de date din semestrul nti.
Obiectivul general al disciplinei SGBD Oracle este nsuirea de ctre studeni a unor noiuni
fundamentale despre: Sistemele de Gestiune a Bazelor de Date - SGBD, sistemele relaionale,
sistemul Oracle, modul de lucru cu limbajul PL/SQL, limbajul SQL avansat, interfeele Forms i
Reports din Oracle.
Obiectivele specifice principale ale acestui curs, concretizate n competenele pe care le vei
dobndi dup parcurgerea i asimilarea lui, sunt:
o familiarizarea cu posibilitile de utilizare ale unui SGBD indiferent de tipul lui;
o dobndirea abilitii de a dezvolta aplicaii cu baze de date relaionale;
o cunoaterea sistemului Oracle i utilizarea unor componente ale sale (PL-SQL, Forms,
Report) pentru a realiza baze de date relaionale.
Structurarea cursului SGBD Oracle este fcut n trei uniti de nvare (capitole), fiecare dintre
acestea cuprinznd cate un test de verificare, care va fi rezolvat de ctre student.
Evaluarea cunotinelor se va realiza sub dou forme:
o evaluarea continu testele de la sfritul fiecrei uniti de nvare, precum i un proiect
la seminar;
o evaluarea final - examenul susinut n perioada de sesiune.
Not. Structura obligatorie pentru proiect va fi:
- 1 pagina care s conin: Tema, Descrierea problemei, Schema conceptual a BD;
- programe PL-SQL care s conin: cele 3 structuri fundamentale de programare
procedural, cursorul explicit, dou tipuri de subprograme;
- o aplicaie simpl cu Oracle Forms sau Reports.
Criteriile de evaluare constau n:
1. Punctajul obinut la cele trei teste menionate mai sus.
2. Punctajul obinut la proiectul de la seminar.
3. Punctajul obinut la examenul susinut n sesiune.
Ponderile asociate fiecrui criteriu precizat sunt urmtoarele:
- criteriul 1(C1) cte 1 punct pentru fiecare dintre cele trei teste (total C1= 3 puncte);
- criteriul 2 (C2) 2 puncte pentru proiectul de la seminar;
- criteriul 3 (C3) 5 puncte pentru examenul susinut n sesiune.

Cuprinsul cursului
Unitatea de nvare 1
ASPECTE FUNDAMENTALE SGBD CU APLICARE N ORACLE
Cuprins
1.1. Conceptul de SGBD 3
1.2. Obiectivele unui SGBD 6
1.3. Funciile unui SGBD 9
1.4. Clasificarea SGBD ..11
1.5. Arhitecturi de SGBD .14
1.6. Teste de autoevaluare..............................16
Bibliografie .17

1.1. Conceptul de SGBD.


Noiunea de SGBD (Sistem de Gestiune a Bazelor de Date DataBase Management System),
trebuie studiat n contextul unui Sistem de Baz de Date - SBD.
a) Definirea unui SGBD (vezi arhitectura unui SBD din cursul Baze de date)
SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date i
utilizatorii acesteia.
SGBD este componenta software a unui sistem de baz de date care interacioneaz cu toate
celelalte componente ale acestuia, asigurnd legtura i interdependena ntre elementele
sistemului.
b)Rolul unui SGBD
Rolul unui SGBD ntr-un context de sistem de baz de date este de a:
1. defini i descrie structura bazei de date, printr-un limbaj propriu specific (LDD), conform unui
anumit model de date;
2. ncrca/valida datele n baza de date respectnd nite restriciile de integritate impuse de
modelul de date utilizat;
3. realiza accesul la date pentru diferite operaii (consultare, interogarea, actualizare etc) operatorii modelului de date;
4. ntreine BD cu ajutorul unor instrumente specializate (editoare, utilitare - shells, navigatoare
browsers etc.);
5. asigura protecia bazei de date sub cele dou aspecte: securitatea i integritatea datelor.
c) Evoluia SGBD
Evoluia SGBD a fost determinat, n principal, de modelul de date pe care-l implementeaz la
organizarea datelor n BD.
Etapele n evoluia SGBD sunt prezentate n continuare.
1. Pn n anii aizeci datele erau organizate doar n fiiere, gestionate de programe scrise
n diferite limbaje de programare universale (exemple: Cobol, Fortran etc.).
2. La sfritul anilor aizeci a aprut modelul arborescent de organizare a datelor n BD i
primele SGBD care erau ierarhice i implementau acest model (exemplu: IMS).
3. La nceputul anilor aptezeci a aprut modelul reea de organizare a datelor i SGBD
reea ce implementau acest model (exemple: IDMS, SOCRATE).
SGBD arborescente i reea fac parte din prima generaie i ele constituie pionieratul n domeniu.
4. La sfritul anilor aptezeci i nceputul anilor optzeci a aprut modelul relaional de
organizare a datelor i ulterior s-au realizat SGBD relaionale ce implementau acest model
(exemple: Oracle, Informix, DB2, SQLServer, Visual Foxpro, Access etc.). Este generaia a
doua de SGBD, care prin simplitate, interactivitate i neproceduralitate domin piaa actual.
5. La sfritul anilor optzeci, nceputul anilor nouzeci a aprut modelul orientat obiect de
organizare a datelor i SGBD orientate obiect ce implementau acest model (exemple: Gemstone,
O2, Jasmine etc.). Aceasta este generaia a treia de SGBD care este n plin dezvoltare acum.
Pn la sfritul
anilor 60

1. Doar fiiere

sfritul anilor 60

nceputul anilor 70

sfritul anilor 70
nceputul anilor 80
sfritul anilor 80
nceputul anilor 90

2. SGBD
ierarhice

generaia I

3. SGBD reea

4. SGBD
relaionale

5. SGBD
orientate obiect

generaia a II a

generaia a III a

Not. n acest moment, n lume, cea mai mare parte a bazelor de date sunt realizate cu SGBD
relaionale, o foarte mic parte cu SGBD de generaia nti i ctig tot mai mult teren cele
realizate cu SGBD orientate obiect.
Oracle este un SGBD relaional extins cu numeroase alte tehnologii informatice.
Not. La trecerea de la o generaie la alta de SGBD s-au urmrit urmtoarele aspecte:
1. Pstrarea aspectelor fundamentale care dau conceptul de SGBD: obiectivele, funciile,
componentele. Desigur, la fiecare generaie apar i o serie de elemente specifice, de nuan, care
ns nu schimb fundamentele conceptului.
2. ncadrarea unui SGBD ntr-o generaie se face n funcie de modelul de date
implementat. Sunt luate n considerare toate cele trei elemente care caracterizeaz modelul de
date: definirea structurii modelului (entitile i legturile dintre ele), operatorii de prelucrare,
restriciile de integritate.
3. mbuntirea organizrii datelor n memoria extern prin implementarea unui model
mai performant. Se urmrete creterea independenei logice i fizice (pn la total), asigurarea
unor limbaje de descriere a datelor (LDD) ct mai performante i automatizate, asigurarea unor
limbaje de manipulare a datelor (LMD) puternice, asigurarea unor limbaje de regsire neprocedurale (exemplu SQL), reducerea i controlul redundanei.
4. mbuntirea accesului la date prin: acces dup mai multe chei, acces concurent,
optimizarea accesului, creterea securitii datelor.
5. Oferirea unor faciliti de utilizare tot mai performante: generatoare specializate
(Forms, Reports etc.), interfee cu alte limbaje de programare, interactivitatea.
6. Diversificarea tipurilor de date ce pot fi utilizate (clasice, multimedia etc.),
diversificarea modului de lucru (local sau reea), precum i a tipurilor de aplicaii ce pot fi
dezvoltate (locale, distribuite, multimedia etc). Acest lucru nseamn c SGBD se doresc a avea o
extensibilitate ct mai mare, care s le permit adaptarea la nou.
7. Utilizarea unor SGBD din generaiile precedente n paralel cu dezvoltarea unei noi
generaii.

8. Tendina de fundamentare teoretic i standardizare a conceptelor din fiecare nou


generaie de SGBD aprut, ceea ce ofer acestora robustee i deschidere.

1.2. Obiectivele unui SGBD


Obiectivul general al unui SGBD este de a furniza suportul software complet pentru dezvoltarea
de aplicaii informatice cu baze de date. n acest sens, pentru ca un produs software s fie SGBD,
el trebuie s asigure un set minim de obiective, care va fi prezentat n continuare.
Obiectiv general

Set minim
de
obiective

Suport software complet


pentru dezvoltarea SBD

1. Independena datelor(logic, fizic)


3. Faciliti de utilizare a datelor
5. Partajabilitatea datelor
7. Performane globale ale aplicaiei

2. Redundan minim i controlat


4. Protecia datelor(securitate, integritate)
6. Legturi ntre date

1. Asigurarea independenei datelor fa de programe. Se spune c o aplicaie informatic


depinde de date, dac modificarea structurii de memorare a datelor sau a strategiei de acces la
date afecteaz i aplicaia. Independena datelor fa de aplicaie poate fi:
- fizic, adic modul de memorare a datelor i tehnicile fizice de memorare (strategia de
acces), pot fi schimbate fr a rescrie programele (exemplu n Oracle: se poate face acces
secvenial la date, apoi se poate indexa i se face un acces direct);
- logic, adic structura de date poate fi schimbat fr a rescrie programele (exemplu n
Oracle: se poate aduga n structur un nou cmp, prin comanda ALTER TABLE).
2. Redundan minim i controlat a datelor. Spre deosebire de sistemele clasice (cu fiiere) de
prelucrare automat a datelor, stocarea informaiilor n BD se face astfel nct datele s nu fie
multiplicate. Cu toate acestea, uneori, pentru a realiza performane sporite, n ceea ce privete
timpul de rspuns se accept o anumit redundan a datelor. Aceasta va fi ns controlat pentru
a se asigura coerena (corectitudinea datelor) BD. Exemplul de redundan controlat acceptat
este cea aprut la proiectare BD relaionale prin tehnica de normalizare.
3. Faciliti de utilizare a datelor. Aceast facilitate presupune ca SGBD s aib nite
componente specializate pentru diferite operaii de utilizare:
- folosirea datelor de ctre mai muli utilizatori n diferite scopuri (aplicaii). Acest lucru reduce
spaiul de memorare necesar i efortul de ncrcare / validare a datelor;
- accesul ct mai simplu al utilizatorilor la date, fr ca ei s fie nevoii s cunoasc structura
ntregii BD, acest lucru rmnnd n sarcina administratorului BD (ex.: asisteni tip Wizard);
- existena unor limbaje performante de regsirea a datelor care permit exprimarea interactiv a
unor cereri de regsire a datelor i indicarea unor reguli pentru obinerea informaiilor solicitate
(ex.: limbajul relaional SQL);
- oferirea posibilitii unui acces multicriterial la date. SGBD stocheaz datele n entitile BD i
permite mai multe ci de acces. Pentru diferite moduri de adresare SGBD creeaz dinamic, la
momentul execuiei, o serie de fiiere anexe (de index etc.) care las neschimbate entitile BD.
4. Protecia datelor. n sistemele de BD, protecia datelor se asigur sub dou aspecte: securitatea
i integritatea.

Securitatea (confidenialitatea) datelor semnific faptul c accesul la date se face numai printro autorizare corespunztoare i doar controlat (sarcina administratorului BD). n acest sens,
SGBD permite: autorizarea i controlul accesului la date, utilizarea viziunilor, realizarea unor
proceduri speciale, criptarea datelor.
a) Autorizarea i controlul accesului la date este realizat de SGBD prin intermediul parolelor.
Acestea identific clasele de utilizatori, cu anumite drepturi de acces, la anumite date.
Privilegiile diferiilor utilizatori sunt gestionate de SGBD astfel: un anumit subiect (utilizator)
poate realiza anumite aciuni, asupra anumitor obiecte, n limita anumitor restricii (condiii
suplimentare). Profilul utilizator este dat de nume (NAME), parola (PASS), nume grup, numr
nivel de acces. Oracle deine n acest sens, pachetul OEM, dar i comenzi SQL specializate.
b) Utilizarea viziunilor (view) este asigurat de SGBD pentru reprezentarea schemelor externe
ale bazei de date. Cu ajutorul viziunilor, SGBD permite s se defineasc partiii logice ale bazei
de date, pentru diferii utilizatori, n raport cu cerinele acestora de acces la date. Securitatea
datelor este asigurat de SGBD prin definirea tuturor drepturilor necesare unui utilizator pentru o
viziune (GRANT) i anularea unor drepturi pentru obiectele sale (REVOKE).
c) Realizarea unor proceduri speciale de acces asupra datelor este permis de SGBD. Aceste
proceduri sunt scrise n LMD, se pstreaz n form precompilat, iar anumitor utilizatori li se va
acorda dreptul de execuie i li se va interzice accesul direct la obiectele BD.
d) Criptarea este asigurat de SGBD prin oferirea unor rutine de criptare (codificare) a datelor,
apelate automat sau la cerere i prin existena unor instrumente care permit utilizatorului s
realizeze propriile rutine de criptare. Criptarea i decriptarea se realizeaz dup algoritmi
specifici, cu o cheie (parol) de acces la rutin (Oracle folosete mai muli algoritmi de criptare i
decriptare).
Integritatea datelor se refer la corectitudinea (coerena) datelor i este asigurat prin protejarea
acestora mpotriva unor incidente intenionate sau neintenionate.
Componentele SGBD asigur integritatea datelor tratnd separat cauzele care pot deteriora baza
de date: integritatea semantic, controlul accesului concurent, salvarea / restaurarea.
a) Integritatea semantic este asigurat prin operaii efectuate de SGBD asupra datelor i a
prelucrrilor. Aceste operaii alctuiesc un set de reguli denumit restricii de integritate. SGBD
asigur astfel de restricii implicite (rezult din modelul de date implementat Oracle
implementeaz cinci) i explicite (proceduri incluse n programele de aplicaie).
b) Accesul concurent asigur coerena datelor i este un obiectiv al SGBD care se pune cu
acuitate mai ales la baze de date distribuite. n acest sens SGBD folosete o unitate distinct de
prelucrare a datelor denumit tranzacie, care este constituit dintr-o secven de operaii care
se execut n totalitate sau deloc - marcat de puncte de nceput i sfrit. Tranzacia poate fi
controlat de SGBD implicit, cnd punctele de nceput i de sfrit sunt automat definite, sau
explicit, cnd punctele de nceput i de sfrit sunt definite prin comenzi specifice.
La execuia concurent a tranzaciilor SGBD trebuie s asigure blocarea datelor utilizate la un
moment dat. Aceasta nseamn c se interzice accesul celorlalte tranzacii concurente la aceleai
date, pn se termin tranzacia curent. Tehnica de blocare utilizat de SGBD se poate aplica la
nivelul ntregii baze de date, a unui fiier, a unei nregistrri sau chiar a unui cmp (de exemplu n
Oracle). Ea poate fi pentru citire (partajabil) sau pentru scriere (exclusiv). Cele mai multe
SGBD realizeaz blocarea la nivel de nregistrare i fiier, prin diferite metode: setarea unui bit
pentru resursa respectiv, construirea unei liste cu resursele blocate, meninerea resurselor blocate
ntr-o zon special etc.

Inter-blocarea este situaia n care dou tranzacii blocheaz anumite resurse, apoi solicit
fiecare resursele blocate de cealalt. La nivelul de SGBD trebuie s existe facilitatea de prevenire
sau rezolvare a inter-blocrii.
*Prevenirea inter-blocrii presupune c programele blocheaz toate resursele de care au nevoie
nc de la nceputul fiecrei tranzacii (greu de precizat).
*Soluionarea inter-blocrii presupune c exist nite mecanisme pentru detectarea i eliminarea
inter-blocrii (de exemplu graful dependenelor proceselor de executat).
c) Salvarea / restaurarea (backup/recovery) ca facilitate a SGBD permite refacerea consistenei
datelor care au fost deteriorate fizic din diferite motive.
Salvarea datelor este un proces de stocare prin realizarea de copii de siguran i prin
jurnalizarea tranzaciilor i a imaginilor. SGBD poate asigura salvarea automat i la cererea
administratorului bazei de date (de exemplu n Oracle).
Restaurarea pornete de la coleciile de date stocate prin salvare i reface consistena bazei de
date, minimiznd prelucrrile pierdute. Restaurarea este asigurat automat de SGBD, dar se poate
realiza i manual. Restaurarea automat a BD este realizat de SGBD cu ajutorul fiierelor
jurnal. La nivelul SGBD pot exista o serie de parametri de configurare care influeneaz procesul
de restaurare automat. Aceti parametri se refer la: intervalul de restaurare, indicatorul de
restaurare (ce informaii vor fi scrise n fiierul de erori) etc.
Restaurarea manual a BD implic intervenia administratorului pentru refacerea bazei de date
de pe un suport tehnic care a fost distrus. Cea mai recent copie de siguran efectuat pentru o
BD afectat este ncrcat i se reiau prelucrrile efectuate din momentul copierii pn la
producerea defeciunii. Restaurarea manual se face prin deconectarea tuturor utilizatorilor de la
BD, ncrcarea copiei i reluarea lucrului.
5. Partajabilitatea datelor
Partajabilitatea datelor se refer nu numai la aspectul asigurrii accesului mai multor utilizatori la
aceleai date, ci i la posibilitatea dezvoltrii unor aplicaii fr a se modifica structura bazei de
date. Problema partajabilitii se pune la un nivel superior pentru SGBD-urile care permit lucrul
n reea.
6. Legturile ntre date. Legturile ntre date corespund asocierilor care se pot realiza ntre
obiectele unei aplicaii informatice. Orice SGBD trebuie s permit definirea i descrierea
structurii de date, precum i a legturilor dintre acestea, conform unui model de date. Fiecare tip
de model de date permite anumite legturi ntre date. Un SGBD, care implementeaz un anumit
model de date, va trebui s asigure i realizarea legturilor dintre datele corespunztoare n
conformitate cu schema conceptual.
7. Performanele globale. Performanele globale ale aplicaiei sunt influenate de SGBD. Acesta
trebuie s gestioneze un volum mare de date de o complexitate ridicat, ntr-un anumit timp de
acces util pentru diferii utilizatori. Pentru toate aceste lucruri SGBD folosete diferite metode de
acces, tehnici de optimizare, tipuri de date.

1.3. Funciile unui SGBD


Realizarea obiectivelor prezentate anterior este asigurat de SGBD printr-o serie de componente
ce permit efectuarea unor operaii specifice. n funcie de natura lor i de scopul urmrit,
operaiile pot fi grupate pe activiti. Activitile accept i ele o grupare pe funcii astfel nct,
una sau mai multe activiti, relativ omogene, vor realiza o anumit funcie.
utilizatori

utilizatori
Funciile SGBD
UTILIZARE

MANIPULARE

DESCRIERE

ADMINISTRARE

Baza de
date
Funciile unui SGBD
1. Descrierea datelor
SGBD, prin aceast funcie, permite definirea structurii bazei de date cu ajutorul limbajului de
definire a datelor - LDD. Definirea datelor poate fi realizat la nivel conceptual, logic i fizic. Se
descriu atributele (cmpurile) din cadrul structurii bazei de date, legturile dintre entitile bazei
de date sau dintre atributele aceleiai entiti, se definesc eventualele criterii de validare a datelor,
metodele de acces la date, aspectele referitoare la asigurarea integritii datelor. Concretizarea
acestei funcii este schema bazei de date, memorat n cod intern n dicionarul BD. Aceast
funcie a fost mult automatizat n timp, LDD avnd acum puine comenzi (exemplu n SQL din
Oracle sunt toate comenzile de tip CREATE i ALTER). LDD este specific fiecrui SGBD, dar el
ntotdeauna realizeaz descrierea datelor conform elementelor modelului de date pe care l
implementeaz SGBD respectiv. Dup realizarea funciei de descriere, ntr-un SGBD, entitile
bazei de date exist create deja ca fiiere, dar nu conin datele propriu-zise, ci numai structura
bazei de date (schema bazei de date).
2. Manipularea datelor

Funcia de manipulare a datelor este cea mai complex i realizeaz actualizarea i regsirea
datelor din baza de date, cu ajutorul limbajului de manipulare a datelor (LMD). Sunt realizate
urmtoarele activiti referitoare la date: ncrcarea, actualizarea, prelucrarea, regsirea.
a) ncrcarea datelor n baza de date se realizeaz prin operaii automatizate (restriciile de
integritate) sau programate ce asigur criteriile de validare a datelor.
b) Actualizarea bazei de date const n operaiile de: adugare, modificare, tergere de
nregistrri. La operaiile de adugare i de modificare se pstreaz aceleai criterii de validare
care s-au folosit i la activitatea de ncrcare a datelor. Actualizarea se realizeaz numai autorizat,
prin asigurarea unei protecii corespunztoare a datelor.
c) Prelucrarea datelor se realizeaz prin operaiile de: selecie, ordonare, inter-clasare
(compunere), ventilare (descompunere) efectuate asupra entitilor bazei de date. Acestea sunt, de
obicei, operaii pregtitoare activitii de regsire a datelor. Multe dintre operaiile de prelucrare
sunt realizate cu ajutorul operatorilor din modelul de date implementat de SGBD.
d) Regsirea (interogarea) datelor const n operaiile de: vizualizare (afiare pe ecran, imprimare
pe hrtie), rsfoire, editarea unor situaii de ieire. Situaiile de ieire pot fi intermediare sau
finale i se pot obine pe diferii supori tehnici de informaie (ecran, hrtie, mediu magnetic,
mediu optic). Ele pot avea cele mai diferite forme (punctuale, liste, rapoarte, grafice, imagini,
sunet, video) i se pot obine dup cele mai diferite criterii de regsire.
Note.
- LMD pot fi cu limbaj gazd sau cu limbaj propriu. Cele cu limbaj gazd sunt dezvoltate prin
adaptarea unor limbaje universale de programare (Cobol, Pascal, C etc.) la cerinele de lucru ale
SGBD. Se mbin astfel puterea unui limbaj universal cu necesitile de regsire a datelor
(exemplu: ORACLE are limbajul PL-SQL). Cele cu limbaj propriu sunt dezvoltate printr-un
limbaj specific capabil s uneasc puterea proceduralului cu regsirea datelor dintr-un anumit tip
de baz de date (exemplu: limbajul propriu din Visual Foxpro).
3. Utilizarea datelor
Funcia de utilizare a datelor asigur mulimea interfeelor necesare pentru comunicarea tuturor
utilizatorilor cu baza de date. Pentru a realiza aceast funcie SGBD trebuie s asigure faciliti
pentru mai multe categorii de utilizatori ai BD: neinformaicieni, specialiti, administratori.
a) Utilizatorii neinformaticieni reprezint principala categorie a beneficiarilor de informaii
(utilizatorii finali i intensivi) din baza de date. Aceti utilizatori nu trebuie s cunoasc structura
bazei de date i nu trebuie s tie s programeze. n acest sens, SGBD ofer: meniuri cu opiuni
sugestive, ferestre, abloane pentru diferite forme, asisteni tip Wizard, autodocumentarea (help,
mesaje/ferestre explicative etc.).
b) Utilizatorii specialiti n informatic creeaz structura bazei de date i realizeaz proceduri
complexe de exploatare a bazei de date. SGBD ofer acestor utilizatori limbajul de descriere i
limbajul de manipulare a datelor, precum i interfee cu limbaje universale. Cu aceste elemente el
descrie schema bazei de date i asigur manipularea complex a datelor (exemplu SQL i PLSQL n Oracle). Pentru realizarea bazei de date SGBD ofer specialistului i elemente de CASE
(Computer Aidede Software Engineering). Acestea l ajut n diferitele activiti care intervin n
etapele de realizare a bazei de date (exemplu Oracle Designer).
c)Administratorul bazei de date, care este un utilizator special i are un rol hotrtor n ceea ce
privete funcionarea optim a ntregului sistem. Datorit importanei acestei categorii de
utilizatori, SGBD are o funcie distinct n acest sens (exemplu Oracle Enterprise Manager).
4. Funcia de administrare

Funcia de administrare a datelor este de competena administratorului bazei de date.


Administratorul, care are o bogat experien de analiz, proiectare i programare, organizeaz i
administreaz baza de date n toate etapele de realizare a acesteia.
Astfel, el organizeaz baza de date conform unei anumite metodologii, realizeaz schema
(conceptual) bazei de date, coordoneaz proiectarea bazei de date. Pentru toate aceste lucruri
SGBD ofer o serie de elemente de CASE, precum i o serie de utilitare specializate.
n etapa de exploatare a bazei de date, administratorul are rolul de a autoriza accesul la date
(acord conturi, parole etc.), de a reface baza de date n caz de incidente (prin jurnalizare, copii),
de a utiliza eficient spaiul de memorie intern i extern (prin organizare, rutine de optimizare),
de a realiza o serie de analize statistice din baza de date (numr i tip de utilizatori, numr de
accese, numr de actualizri etc.). Pentru fiecare din aceste activiti SGBD ofer instrumente i
tehnici de lucru.
n cazul lucrului n reea de calculatoare cu baze de date distribuite, SGBD are dezvoltate foarte
mult componentele destinate administratorului. Acest lucru este determinat de faptul c baza de
date este, n acest caz, de mare complexitate, datele sunt distribuite pe calculatoarele din reea, iar
utilizatorii sunt de toate tipurile i n numr mare (exemplu Oracle RAC Real Application
Clusters).

1.4. Clasificarea SGBD


Diversele SGBD, care au fost i care sunt n exploatare pe diferite calculatoare i sub diferite
sisteme de operare, impun o clasificare a lor dup diferite criterii.
1) Dup sistemele de calcul pe care se implementeaz
- SGBD pentru calculatoare mari se folosesc pentru baze de date foarte complexe i foarte mari
(exemple: Oracle, DB2, IMS).
- SGBD pentru minicalculatoare se folosesc pentru baze de date complexe i mari i au cunoscut
o dezvoltare puternic n anii 80 (exemplu: Oracle).
- SGBD pentru microcalculatoare se folosesc pentru baze de date de complexitate i de mrime
mici i medii. Au o mare rspndire n momentul actual (exemple: Oracle, DB2 etc.).
Tendina actual este ca SGBD s fie compatibil pe ct mai multe sisteme de calcul sub ct mai
multe sisteme de operare.
2) Dup limbajul de programare utilizat
- SGBD cu limbaj gazd este cel care are un limbaj de manipulare a datelor bazat pe unul de
nivel nalt (universal). Avantajul acestei soluii este acela c se pot dezvolta proceduri complexe
de program, se pot realiza interfee om-main foarte bune, se valorific experiena de
programare din limbajele de nivel nalt (toate rezult din avantajele programrii procedurale).
Dezavantajul major este acela c formularea cererilor de regsire se face mai greu, de multe ori
ntr-un mod inaccesibil utilizatorilor finali. (exemplu PL-SQL din Oracle).
- SGBD cu limbaj propriu (autonom) este cel care are un limbaj de manipulare a datelor specific.
Acest limbaj de programare propriu este procedural i are marele avantaj c permite
implementarea tuturor facilitilor oferite de SGBD. n el se pot programa proceduri complexe i
interfee puternice ca ntr-un limbaj universal, dar n plus se realizeaz un acces uor i optimizat
la baza de date. Dezavantajul este c un astfel de limbaj nu poate fi utilizat dect de specialitii n
informatic (exemplu limbajul din Visual FoxPro).
Tendina actual este ca SGBD s aib implementat, pe lng un limbaj procedural, i un limbaj
de regsire neprocedural, care s permit formularea de cereri de regsire uor, de ctre toi
utilizatorii bazei de date. n acest sens, majoritatea SGBD pentru microcalculatoare au
implementat, parial sau total, limbajul SQL, care este i standardizat internaional.
3) Dup modelul logic de date implementat
-SGBD ierarhice sunt cele care implementeaz modelul de date arborescent (ierarhic) i au fost
primele care s-au utilizat pentru gestionarea bazelor de date. Ele au o serie de avantaje pentru
domenii precise din lumea real nconjurtoare, de exemplu tehnologia construciei de maini,
dar au limite pentru alte domenii (exemplu: IMS).
- SGBD reea sunt cele care implementeaz modelul de date reea i care au eliminat multe din
limitele celor ierarhice. Ele au o larg aplicabilitate pentru numeroase probleme din lumea real,
dar sunt dificil de utilizat datorit complexitii ridicate (exemplu: IDMS).
- SGBD relaionale sunt cele care implementeaz modelul de date relaional i au aplicabilitate
n majoritatea domeniilor din lumea real. Ele pot fi folosite de o gam larg de utilizatori
datorit facilitilor oferite (generatoare, limbaj neprocedural etc.) (exemple: Oracle, Visual
FoxPro, Paradox, Access, Informix, Progress etc.).
- SGBD orientate obiect sunt cele care implementeaz modelul de date orientat obiect. Ele se
preteaz bine la problemele foarte mari, de complexitate ridicat, precum i pentru tipurile noi de
aplicaii (proiectarea asistat, multimedia, sisteme deschise) (exemple: O2, Orion, Jasmin etc.).
Not.

Tipurile de mai sus de SGBD, avnd drept criteriu modelul de date implementat, sunt de baz
(fundamentale). Pornind de la acestea, prin extensia cu noi tehnologii informatice, exist i alte
tipuri de SGBD: deductive, distribuite, multimedia, spaiale etc.
4) Dup localizarea bazei de date
- SGBD centralizate sunt cele care gestioneaz datele amplasate ntr-o singur baz de date
central. La acestea au acces toi utilizatorii autorizai pentru a efectua diferite operaii de
manipulare a datelor. Toate calculatoarele care nu sunt legate n reea i lucreaz cu baze de date
au instalat un SGBD centralizat. Tot un SGBD centralizat, dar cu faciliti de lucru n reea,
trebuie instalat i n reelele de calculatoare care au plasat baza de date pe un singur calculator
(de obicei pe server).(exemplu: Visual FoxPro, Access)
- SGBD distribuite sunt cele care gestioneaz datele amplasate pe mai multe calculatoare dintr-o
reea tratndu-le ca un tot unitar. Complexitatea acestor SGBD este ridicat, avnd componente
speciale pentru realizarea conexiunilor i tratarea distribuit a datelor (exemplu: Oracle, DB2,
Informix).

1.5. Arhitecturi de SGBD


De la apariia lor i pn n prezent, SGBD au cunoscut o mare varietate. Exist preocupri de
standardizare a arhitecturii SGBD care caut s defineasc un cadru general al lor.
Dintre acestea, sunt dou arhitecturi de referin a unui SGBD propuse de grupul de lucru
CODASYL i respectiv ANSI/SPARC.
In ultimul timp, arhitectura de SGBD a evoluat spre o configuraie cu trei categorii de
componente (nucleul, interfaa, instrumentele), situaie ntlnit la ultimele versiuni de sisteme
comerciale (exemplu vezi arhitectura unui SGBDR).
Arhitectura pe componente (niveluri) a unui SGBD
Nu orice software care gestioneaz date n memoria extern este un SGBD:
- n primul rnd, produsul software trebuie s fie un sistem, adic un ansamblu de
programe intercorelate ntre ele care lucreaz pentru un scop comun;
- mai departe, sistemul de programe trebuie s gestioneze date n memoria extern;
- datele nu pot exista oricum, ci organizate conform unui model de date ntr-o baz de
date;
- n sfrit, dac sistemul de programe gestioneaz o baz de date i n plus ndeplinete
funciile i obiectivele specifice, atunci acel sistem este un SGBD.
Rezult c un SGBD conine o serie de componente, care sunt instrumente software ce au scopul
de a realiza funciile specifice: nucleul, interfeele, instrumentele.
SGBD
INTERFEE

NUCLEU

Baza
de date

INSTRUMENTE
Arhitectura pe componente a unui SGBD
Majoritatea arhitecturilor actuale de SGBD pot fi aduse la forma de mai sus, pe trei niveluri.
Diferitele componente din diferitele SGBD (fiecare tip a venit cu una sau mai multe propuneri de
arhitecturi) pot fi ncadrate (uneori discutabil) n unul dintre cele trei niveluri.
Nivelurile din arhitectura de mai sus, pot conine urmtoarele componente ale unui SGBD:
Nucleul (motorul) conine limbajul de descriere a datelor (LDD), limbajul de manipulare
a datelor (LMD), componente obligatorii n kit-ul minim de SGBD. Componenta este destinat
analitilor, programatorilor i administratorilor BD.

Interfeele sunt formate din: generatoarele de diferite tipuri (de meniuri, de videoformate, de rapoarte etc.), elementele de CASE (Computer Aided Software Engeenering),
interfee cu limbaje de programare universale, interfee cu alte sisteme etc. Componenta este
destinat tuturor categoriilor de utilizatori: finali, intensivi, specialiti.
Instrumentele sunt formate din: editoarele, navigatoarele (browsers), utilitarele (shells)
de diferite tipuri. Componenta este destinat, n principal, administratorului bazei de date, dar i
altor categorii de utilizatori.
Not. Arhitectura pe niveluri este simpl dar complet:
- arhitecturile standardizate (CODASYL i ANSI) pot fi aduse pe cele trei niveluri;
- noile tehnologii de baze de date (de exemplu tehnologia orientat obiect) au determinat
apariia unor noi tipuri de SGBD. Arhitecturile propuse pentru acestea, pot fi adaptate pe cele trei
niveluri;
- noile tehnologii informatice (de exemplu multimedia, Internet etc.) au interferat cu
tehnologia bazelor de date rezultnd SGBD derivate corespunztoare. Pentru acestea s-au propus
arhitecturi care, ns, pot fi adaptate la structurarea pe trei niveluri.

1.6. Teste de autoevaluare


1. Care din urmtoarele sunt obiective ale unui SGBD?
A. Redundan minim i controlat a datelor;
B. Administrarea bazei de date;
C. Asigurarea facilitilor de utilizare a datelor;
D. Asigurarea dependenei datelor;
E. Asigurarea proteciei datelor;
2. Care din urmtoarele nu este un model de date implementat de SGBDuri la organizare
datelor:
A. Modelul ierarhic;
B. Modelul claselor;
C. Modelul orientat pe servicii;
D. Modelul relaional;
E. Modelul orientat obiect;
3. In evolutia SGBD-urilor se constat:
A. Dou generaii;
B. Patru generaii;
C. Schimbarea fundamental a aspectelor fundamentale;
D. Reducerea accesului concurent;
E. Restricionarea tipurilor de date folosite;
4. Dup limbajul de programare utilizat, SGBDuri sunt:
A. Cu limbaj gazd;
B. Cu limbaj propriu;
C. Fr niciun limbaj;
D. Ierarhice;
E. Relaionale;
5. Arhitecturi de referin pentru un sistem de baze de date sunt:
A. LMD;
B. CASE;
C. ANSI;
D. Pe reea;
E. Pe componente;

Rspunsuri la testele de autoevaluare


1. A, C, E
2. B,C
3.
4. A, B
5. C, E

Bibliografia unitii de nvare 1


1. M. Velicanu, I. Lungu s.a. Sisteme de baze de date teorie i practic, ed. Petrion,
Bucureti, 2003.
2. J. Date An introduction to database systems, Ed. Addison Wesley, 2004.
3. M. Velicanu Dicionar explicativ al sistemelor de baze de date, Ed. Economic, Bucureti,
2005.

Cuprinsul cursului
Unitatea de nvare 2
SISTEME DE GESTIUNE A BAZELOR DE DATE RELAIONALE (SGBDR) CU
EXEMPLIFICARE N ORACLE
2.1. Definirea SGBDR ..19
2.2. Limbajele relaionale .21
2.3. Mecanisme de optimizare n SGBDR ...24
2.4. Avantajele i limitele sistemelor relaionale .26
2.5. Teste de autoevaluare.27
Bibliografie..28

2.1. Definirea SGBDR


SGBDR este un sistem software complet care implementeaz modelul de date relaional, precum
i cel puin un limbaj de programare relaional.
Teoria relaional este un ansamblu de concepte, metode i instrumente care a dat o
fundamentare riguroas realizrii de SGBDR performante.
Paralela ntre conceptele utilizate n evoluia organizrii datelor n memoria extern pn la
sistemele relaionale.
TEORIA BD
TERIA
FIIERE
RELAIONAL
SGBDR
Fiier
Colecie de date
Relaie
Tabela
nregistrare Familie de caracteristici Tuplu
Linie
Cmp
Valoare

Caracteristic
Domeniu de valori

Atribut
Domeniu

Coloan
Domeniu

Regulile lui Codd


E.F. Codd a formulat 13 reguli care exprim cerinele maximale pentru ca un SGBD s fie
relaional.
Regulile sunt utile pentru evoluarea performanelor unui SGBDR.
R0. Gestionarea datelor la nivel de relaie: limbajele utilizate trebuie s opereze cu relaii, care
constituie unitatea elementar de informaie.
R1. Reprezentarea logic a datelor: toate informaiile din BD trebuie stocate i prelucrate ca
tabele.
R2. Garantarea accesului la date: LMD trebuie s permit accesul la fiecare valoare atomic din
BD (tabel, coloan, cheie).
R3. Valoarea NULL: trebuie s se permit declararea i prelucrarea valorii NULL ca date lips
sau inaplicabile.
R4. Metadatele: informaiile despre descrierea BD se stocheaz n dicionar i se trateaz ca
tabele, la fel ca datele propriu-zise.
R5. Limbajele utilizate: SGBD trebuie s permit utilizarea mai multor limbaje de programare,
dintre care cel puin unul s permit definirea tabelelor (de baz i virtuale), definirea restriciilor
de integritate, manipularea datelor, autorizarea accesului, tratarea tranzaciilor.
R6. Actualizarea tabelelor virtuale: trebuie s se permit ca tabelele virtuale s fie i efectiv
actualizabile, nu numai teoretic actualizabile.
R7. Actualizrile n baza de date: manipularea unei tabele trebuie s se fac prin operaii de
regsire dar i de actualizare.
R8. Independena fizic a datelor: schimbarea structurii fizice a datelor (modul de reprezentare
(organizare) i modul de acces) nu afecteaz programele.
R9. Independena logic a datelor: schimbarea structurii de date (logice) a tabelelor nu afecteaz
programele.

R10. Restriciile de integritate: acestea, trebuie s fie definite prin LDD i stocate n dicionarul
(catalogul) BD.
R11. Distribuirea geografic a datelor: LMD trebuie s permit ca programele de aplicaie s fie
aceleai att pentru datele distribuite ct i pentru datele centralizate (alocarea i localizarea
datelor vor fi n sarcina SGBD).
R12. Prelucrarea datelor la nivel de baz (sczut): dac SGBD posed un limbaj de nivel sczut
(prelucrarea datelor se face la nivel de nregistrare), acesta nu trebuie utilizat pentru a evita
restriciile de integritate.

2.2. Limbajele relaionale


SGBDR ofer seturi de comenzi pentru descrierea i manipularea datelor. Acestea pot fi incluse
ntr-un singur limbaj relaional (cazul cel mai ntlnit) sau separate n LDD i LMD. n ambele
situaii, comenzile pentru definirea datelor sunt distincte de cele pentru manipularea datelor.
Exemple de limbaje relaionale: SQL (Structured Querry Language - standarde ncepnd cu
1985), QUEL, QBE, SQUARE, ALPHA, ISBL.
a) Partea de definire a datelor (LDD)
LDD este simplificat, cu puine comenzi.
Descrierea datelor este memorat n BD, sub form de tabele, n dicionarul (metabaza) bazei de
date. La nivel conceptual
Crearea unei BD (dicionarul BD): CREATE DATABASE
tergerea unei BD: DROP DATABASE
Crearea tabelelor de baz: CREATE TABLE
tergerea tabelelor de baz: DROP TABLE
Crearea de sinonime: CREATE SYNONYM
tergerea sinonimelor: DROP SYNONYM
Actualizarea structurii unei tabele: ALTER TABLE cu opiunile ADD, MODIFY,
DROP
Adugarea restriciilor de integritate :ASSERT ON. n Oracle restriciile de integritate
sunt: NULL, CHECK, pe cheie (PRIMARY , UNIQUE, REFERENTIAL).
La nivel logic
Crearea tabelelor virtuale: CREATE VIEW
tergerea tabelelor virtuale: DROP VIEW
Acordarea drepturilor de acces la BD:
GRANT CONNECT conectarea la BD a unui utilizator.
GRANT drepturi acordarea unor drepturi de acces (pentru regsire, actualizare etc.).
Retragerea drepturilor de acces la BD:
REVOKE drepturi retragerea unor drepturi.
REVOKE CONNECT deconectarea unui utilizator de la BD.
La nivel fizic
Crearea indecilor: CREATE INDEX
tergerea indecilor: DROP INDEX
Controlul alocrii spaiului fizic al BD:
CREATE SPACE creeaz un model de alocare a spaiului fizic pentru o BD
ALTER SPACE actualizarea modelului de alocare a spaiului fizic
DROP S PACE terge un model de alocare a spaiului fizic
Regruparea fizic a datelor dintr-o BD (clustere):
CREATE CLUSTER creeaz un cluster dintr-o BD
ALTER CLUSTER actualizeaz un cluster
DROP CLUSTER terge un cluster
b) Partea de manipulare a datelor (LMD)
Aspectele care pot caracteriza LMD sunt diverse i din acest motiv, ele pot fi grupate n trei
categorii: generale, funcionale, calitative.
b1) Caracteristici generale ale LMD

1. Tratarea datelor la nivel de ansamblu. Toate LMD relaionale realizeaz o tratare la


nivel de ansamblu a datelor: unitatea de informative pentru lucru este tabela. La
comunicarea unui LMD relaional cu un limbaj universal, avantajele se pierd
deoarece comunicarea se poate face doar tuplu cu tuplu i nu la nivel de ansamblu.
Deoarece limbajele universale ofer alte avantaje legate de proceduralitate, soluia
este de a integra n acestea un limbaj relaional. Cursorul este soluia n SGBDR
pentru a face trecerea de la tratarea la nivel de ansamblu la cea la nivel de
nregistrare (tuplu).
2. Operatorii relaionali implementai. SGBDR s-au dezvoltat, din punct de vedere relaional,
avnd la baz:
calculul relaional orientat pe tuplu (ALPHA, QUEL).
calculul relaional orientat pe domeniu (QBE).
algebra relaional (ISBL)
transformarea (mapping) (SQL, SQUARE)
Not. Limbajele bazate pe calculul relaional sunt neprocedurale, cele bazate pe algebra
relaional sunt procedurale, celelalte sunt combinaii.
3. Realizatorii limbajelor relaionale s-au orientat pe domenii precise din teoria relaional.
Astfel, au rezultat: limbaje relaionale standardizate internaional (exemplu SQL - ANSI), limbaje
cu standard de utilizare impus de constructor (exemplu QUEL), limbaje nestandardizate (celelalte
limbaje relaionale).
4. Utilizatorii limbajelor relaionale sunt mult diversificai. SGBDR ofer att elemente
procedurale (pentru specialiti) ct i neprocedurale (pentru nespecialilti).
b2) Caracteristici funcionale ale LMD
1. Facilitile de interogare a datelor. Acestea sunt puternice i sunt oferite prin comenzi pentru
interogarea tabelelor de baz, dar i a celor virtuale (exemplu SELECT).
2. Facilittile de actualizare a datelor sunt oferite prin comenzi pentru actualizarea tabelelor de
baz, dar i a celor virtuale:
INSERT INTO adaug rnduri la sfritul unei tabele.
UPDATE modific rnduri dintr-o tabel.
DELETE FROM - terge rnduri dintr-o tabel.
Not. Unele SGBDR nu permit actualizarea tabelelor virtuale, altele permit acces lucru cu o
serie de restricii pentru ca operaia s se propage spre tabelele de baz fr ambiguiti.
3. Alte faciliti funcionale. La facilitile relaionale de mai sus, SGBDR ofer i alte
faciliti, pe care le au toate limbajele de programare procedurale:
Calculul aritmetic prin operatorii specifici: +, -, *, /, **
Agregarea: prin funcii standard (exemplu SUM), prin comenzi (exemplu COMPUTE
OF expr ).
Comenzi de intrare/ieire standard: ACCEPTPROMPT (n Oracle).
b3) Caracteristici calitative ale LMD
1. Puterea selectiv a LMD relaionale este dat de posibilitatea selectrii datelor dup
criterii (filtre) complexe (exemplu comanda SELECT).
2. Uurina de nvare i utilizare este nuanat n funcie de tipul LMD relaional.
Cele bazate pe calculul relaional sunt neprocedurale (descriptive), deci uor de nvat
i utilizat (apropiat, ca stil, de limbajul natural) (exemplu QUEL).

Cele bazate pe algebra relaional sunt procedurale (algoritmice), deci mai greu de
nvat i utilizat (exemplu ISBL).
Cele intermediare promoveaz stilul neprocedural dar accept i elemente de control
procedural (exemplu SQL).
Cele bazate pe grafic ofer primitive grafice pentru machetarea cererilor de regsire,
deci uor de utilizat (exemplu QBE).
3. Eficacitatea utilizrii este determinat de posibilitatea optimizrii cererilor de regsire.
LMD bazate pe calculul relaional las compilatorul s aleag ordinea de execuie a
operaiilor, deci rezult o eficiena mare.
LMD bazate pe algebra relaional au o ordine impus pentru execuia operaiilor, deci
rezult o eficien mica.

2.3. Mecanisme de optimizare n SGBDR


a) Mecanisme pentru protecia datelor
Pentru atingerea acestui obiectiv, orice SGBDR trebuie s aib implementate mecanisme
specifice pentru ambele aspecte privind datele: integritatea, securitatea.
a1) Controlul integritii (corectitudinea) datelor
- Mecanismul de tranzacii.
Toate SGBDR sunt sisteme tranzacionale, deci unitatea de baz pentru prelucrare este tranzacia,
care va respecta automat restriciile de integritate.
Tranzacia este o secven de instruciuni care formeaz un tot unitar i care se execut n
totalitate sau deloc.
n Oracle exist tranzacii implicite (referirea SQL%) i explicite (Begin i End Tranzaction).
- Mecanismul de blocare.
Dac mai muli utilizatori doresc simultan s acceseze aceleai date atunci SGBDR deine
mecanisme specifice pentru a evita conflictele i apariia unor erori: blocarea, interblocarea.
Blocarea este situaia n care mai multe tranzacii acceseaz n acelai timp, aceleai date.
SGBDR va atribui prioriti tranzaciilor, dup anumite criterii, execuia lor fiind fcut n
ordinea acestora. Blocarea se poate face la nivel de: BD, tabel, tuplu, atribut.
Inter-blocarea este situaia n care tranzacia T1 acceseaz datele D1, iar tranzacia T2 acceseaz
datele D2. La un moment dat T1 are nevoie de datele D2, iar T2 are nevoie de date D1. SGBDR
rezolv conflictul prin prioriti acordate tranzaciilor.
- Fiierele jurnal.
O soluie pentru asigurarea corectitudinii datelor este aceea ca la apariia anumitor evenimente s
fie salvate (backup) datele n fiiere de rezerv (jurnal). Acestea vor fi restaurate (recovery)
atunci cnd BD va fi stricat, din anumite motive, n vederea refacerii ei.
n Oracle fiierele jurnal sunt create, ntreinute i utilizate automat de ctre sistem,
administratorul BD putnd folosi aceste fiiere.
a2) Controlul securitii (accesului) datelor
- Profilele utilizator.
La o BDR pot avea acces doar utilizatorii autorizai. n acest sens, administratorul BD
construiete un profil utilizator (categorie, grup, nume, parol, drepturi) restricionnd accesul
acestuia la BD.
- Tabelele virtuale.
La un moment dat, un anumit utilizator trebuie s vad doar acea parte din BD la care are dreptul
de acces. Acest lucru poate fi restricionat prin construirea de ctre proiectantul BD a unor viziuni
(tabele virtuale), pe care utilizatorul le va apela.
Viziunea este o construcie logic pentru o cerere de regsite, memorat n dicionarul BD sub o
denumire. La apelul viziunii cererea de regsire este executat i se acceseaz date pe o parte din
BD.
n Oracle viziunea se construiete prin comanda CREATE VIEW i apoi poate fi utilizat prin
comenzi din SQL, la fel ca orice tabel relaional.
- Bibliotecile de sistem.
O modalitate de restricionare a accesului la date este dat de procedurile stocate. Acestea sunt
secvene de instruciuni, stocate sub o denumire, de unde le pot apela utilizatorii autorizai.
n Oracle pot fi scrise proceduri stocate n PL-SQL, att structurate ct i orientate obiect.
Stocarea se poate face fie n memoria intern (volatile), fie n memoria intern (persistente).
- Algoritmii de criptare.

Anumite date nu trebuie s apar n clar n BD i atunci ele vor fi codificate (criptate). n acest
sens, se utilizeaz un algoritm de criptare i o cheie de acces la acesta. De asemenea, exist
algoritmi pentru decriptare, cu cheie de acces.
Oracle folosete mai muli algoritmi de criptare-decriptare, cu chei de acces.
b) Mecanisme de optimizare a regsirii/interogrii
Operaia de regsire a datelor este una dintre cele mai importante i mai utilizate n aplicaiile cu
BDR. Puterea de regsire a limbajelor relaionale, n special SQL, nu a fost egalat de nici un alt
tip de limbaj de programare.
b1) Transformrile relaionale
O cerere de regsire se scrie ntr-un limbaj relaional cu ajutorul expresiilor relaionale bazate pe
calculul relaional sau pe algebra relaional. Cele dou tipuri de expresii sunt echivalente i pot
oricnd s fie rescrise n cellalt tip.
SGBDR trebuie s fie capabil s transforme o expresie scris n calculul relaional n una
echivalent n algebra relaional i invers, pentru a se putea realiza o regsire optim.
Transformarea relaional se poate realiza prin dou strategii de optimizare: generale, specifice.
o Strategiile generale: sunt independente de modul de memorare al datelor i se bazeaz pe
proprietile operaiilor din algebra relaional comutativitatea, asociativitatea,
compunerea. Astfel de strategii sunt:
selecia naintea jonciunii;
proiecia naintea jonciunii;
selecia naintea proieciei;
combinarea regsirii multiple.
o Strategiile specifice in cont de modul de memorare al datelor i sunt caracteristice unui
anumit SGBDR. Elementele care influeneaz executarea operaiilor care intervin la o
cerere de regsire sunt: accesul direct sau secvenial, reguli de ordonare a expresiilor
algebrice etc.
Oracle aplic ambele strategii de optimizare pentru transformrile relaionale.
b2) Optimizarea alocrii
Prin definiie BD sunt mari consumatoare de spaiu calculator, att n memoria intern ct i n
memoria extern. Pentru ca aceste spaii s fie ct mai eficient folosite, SGBDR folosesc diferite
mecanisme: reutilizarea, realocarea, virtualizarea, zone de memorie (buffers) cu destinaii
speciale, compactarea datelor (n binar , cu algoritmi de compactare), alocarea dinamic etc.
Toate aceste mecanisme presupun algoritmi specifici.
Oracle face o alocare optim att n memoria intern ct i n memoria extern (vezi Elementele
unei BD Oracle i Mecanismele interne Oracle).
b3) Optimizarea accesului
Cutarea datelor ntr-o BD a fost ntotdeauna o operaie care consum mult timp calculator.
Volumul mare de date din BD i complexitatea ridicat a acesteia determin consum de timp
calculator la operaia de regsire.
SGBDR au cele mai bune performane d.p.d.v. al regsirii datelor, dintre toate tipurile de SGBD,
datorit limbajelor relaionale (mai ales SQL) pe care le au implementate. Totui, dac volumul
de date este foarte mare atunci limbajele relaionale ajung la limit, datorit numrului mare de
operatori relaionali pe care trebuie s-i aplice la regsire.
Oracle implementeaz o variant extins de SQL standard cu o comand SELECT deosebit de
puternic.

2.4 Avantajele i limitele sistemelor relaionale


Avantaje
1. Simplitatea conceptelor i a schemei .
2. Teoria relaional ofer un solid suport teoretic i o baz pentru cercetri ulterioare.
3. Un grad mare de independen a datelor fa de programe.
4. Limbajele relaionale sunt declarative (de nivel nalt) i au o mare putere de regsire.
5. Ameliorarea semnificativ a proteciei datelor, sub toate aspectele.
6. Optimizarea semnificativ a accesului la date, precum i a alocrii datelor.
7. Manipularea de ansambluri de date prin operatorii din calculul sau algebra relaional,
cu implicaii importante pentru regsirea datelor.

Limite
1. Prea marea simplitate a modelului relaional, care pentru tipurile noi de aplicaii (Internet,
sisteme deschise etc.) conduce la:
pierderea unor informaii semantice utile (prin multiplicarea tabelelor la normalizare);
operaiile relaionale, chiar optimizate, sunt costisitoare (noile aplicaii genereaz multe
operaii relaionale) din punctul de vedere al resurselor de calcul.
2. LMD relaionale sunt prea limitate, ceea ce genereaz disfuncionaliti :
programatorul trebuie s cunoasc dou tipuri de limbaje (declarativ - relaional i
procedural - universal). De aici rezult necesitatea conversiilor, o fiabilitate sczut, necesitatea
comunicrii, productivitatea sczut;
mecanismele de optimizare privesc doar LMD relaional, deci ceea ce este scris n
limbaj procedural trebuie optimizat de ctre programator.

2.5. Teste de autoevaluare


1. Noiuni similare ntre fiiere i teoria relaional sunt
A. Fiier-tuplu;
B. Cmp-atribut;
C. Cmp-relaie;
D. Valoare-domeniu;
E. Nu exist noiuni similare;
2. Regulile lui CODD se refer la:
A. Valoarea NULL;
B. Valorile TRUE i FALSE;
C. Garantarea accesului la date;
D. Dependena logic a datelor;
E. Restriciile de integritate;
3. Comenzi LDD la nivel logic sunt:
A. CREATE VIEW;
B. SELECT from VIEW;
C. GRANT;
D. COMMIT;
E. DELETE VIEW;
4. Comenzi LDD la nivel fizic sunt:
A. CREATE INDEX;
B. UPDATE INDEX;
C. VIEW CLUSTER;
D. DROP CLUSTER;
E. REVOKE;
5. Avantajele sistemelor relaionale sunt:
A. Optimizarea semnificativ a accesului la date, precum i a alocrii datelor;
B. Ameliorarea semnificativ a proteciei datelor, sub toate aspectele;
C. Un grad mare de dependen a datelor fa de programe;
D. Operaiile relaionale, chiar optimizate, sunt costisitoare;
E. Necesitatea conversiilor implicite;

Rspunsuri la testele de autoevaluare


1. B, D
2. A, C, E
3. A, C
4. A, D
5. A, B

Bibliografia unitii de nvare 2


1. M. Velicanu, I. Lungu s.a. Sisteme de baze de date teorie i practic, ed. Petrion,
Bucureti, 2003.
2. J. Date An introduction to database systems, Ed. Addison Wesley, 2004.
3. M. Velicanu Dicionar explicativ al sistemelor de baze de date, Ed. Economic, Bucureti,
2005.
4. A. Bara, I. Botha, V. Diaconia, I. Lungu, A. Velicanu Baze de date. Limbajul PL/SQL, ed.
ASE, Bucureti, 2009.

Cuprinsul cursului
Unitatea de nvare 3

SISTEMUL ORACLE
3.1. Elementele unei BD Oracle i mecanismele interne Oracle 30
3.2. Subprograme PL-SQL 31
3.3. Introducere n Oracle ..33
3.4. Limbajul PL/SQL compendiu .36
3.5. Teste de autoevaluare...38
Bibliografie ..39

3.1. Elementele unei BD Oracle i mecanismele interne Oracle


n contextul de SGBD relaional, Oracle folosete o mulime de concepte i mecanisme interne,
care au semnificaia prezentat n continuare.
Elementele unei BD Oracle
Procesul este o prelucrare (job) a sistemului care presupune un program unic, ce ruleaz, la un
moment dat, cu propria lui zon de lucru.
Zona de lucru este o parte din memoria intern (buffer) alocat de sistemul Oracle pentru diferite
operaii temporare: execuia tranzaciilor, conectarea utilizatorilor sesiunea de lucru etc.
Indexul este o structur fizic de date asociat unei tabele sau unui cluster. Indexarea are rolul de
a obine date ordonate dup diferite criterii (chei). Cheia de indexare este format din una sau mai
multe coloane dintr-o tabel. Oracle folosete patru metode de indexare: arbori B simpli, arbori B
compui, cheie invers, bitmap.
Viziunea (view) este o tabel virtual construit din una sau mai multe tabele de baz, fr a
ocupa spaiul fizic. Ea este, de fapt, o cerere de regsire SELECT stocat n dicionarul de date i
contribuie la creterea proteciei datelor.
Clusterul este o grupare fizic a informaiilor din una sau mai multe tabele i are rolul de a crete
eficiena regsirii datelor.
Mecanismele interne Oracle
Contextul o zon de memorie extensibil dinamic, alocat i gestionat de Oracle pentru a putea
executa o comand.
Cursorul este un pointer (identificator) spre zona de context necesar manipulrii acesteia. Oracle
folosete dou tipuri de cursor: implicit i explicit. Cursorul implicit este creat i gestionat
automat de sistem i utilizat pentru o serie de comenzi pentru definirea sau manipularea datelor
(CREATE, ALTER, INSERT, DELETE etc.). Cursorul explicit este creat i gestionat de
programator, n special pentru cererile de regsire (SELECT).
Tranzacia este un ansamblu omogen de operaii (n special actualizri) ntr-o sesiune utilizator.
Ea are rolul de a asigura coerena datelor i funcioneaz binar: se valideaz n totalitate sau
deloc. Tranzacia poate fi descompus n subtranzacii prin stabilirea unor puncte de salvare
(SAVEPOINT).
Pseudo-coloane i pseudo-funcii sunt variabile de sistem utilizate pentru a avea acces la
parametrii interni ai sistemului. Ele se pot utiliza pentru tabelele utilizator sau pentru cele
standard (exemple: LEVEL, ROWID, NEXVAL i respectiv USER, UID, SYSDATE).

3.2. Subprogramele PL/SQL


Subprogramele sunt module de program care efectueaz o anumit prelucrare i care se apeleaz
dintr-un program oarecare.
PL/SQL permite dezvoltarea subprogramelor, ca orice limbaj de programare procedural,
utilizarea acestora oferind avantajele cunoscute:
- ncadrarea n tehnica de programare structurat i respectiv modular;
- concentrarea prelucrrilor pe operaii omogene, specifice;
- diminuarea numrului de linii surs;
- structurarea prelucrrilor mai des utilizate, ntr-un singur nume i un singur cod surs;
- parametrarea prelucrrilor, deci generalizarea programelor;
- simplificarea realizrii programelor de aplicaie precum i uurin n ntreinerea lor, deci
posibilitatea lucrului eficient, n echip.
Pe lng tipurile de subprograme cunoscute din toate limbajele de programare procedurale
(funcii i proceduri), PL/SQL are dou tipuri specifice (pachete i declanatori).
Aadar tipurile de subprograme suportate de PL/SQL sunt:
procedurile module de program cu nume, parametri de intrare i ieire;
funciile module de programe cu nume, parametri de intrare i care ntorc o singur valoare
obinut prin evaluare;
pachetele module care reunesc obiecte din baz ce grupeaz prelucrri cu legturi ntre ele;
declanatorii (triggers) module ce au ca efect declanarea unei aciuni automat, n funcie de
anumite evenimente care au loc la momentul execuiei programului.
Procedurile i funciile
Procedurile (procedure) i funciile (function) utilizator sunt module de program asemntoare.
Astfel, ambele sunt scrise de programator, ambele au un nume sub care se definesc i apoi
apeleaz, ambele au parametri de intrare.
La apelul procedurilor/funciilor se prsete execuia programului apelant (principal) se face salt
la modulul indicat (programul apelat) prin nume, se execut subprogramul, apoi se revine la
programul principal la urmtoarea instruciune de dup cea de apel.
Deosebirea este c funcia poate primi nici unul sau orici parametri de intrare, dar nu are nici
un parametru de ieire. ntotdeauna funcia ntoarce o singur valoare dat de evaluarea expresiei
care se atribuie numelui funciei.
Procedura poate primi orici parametri de intrare i poate ntoarce orici parametri de ieire.
Coveniile privind parametrii (formali - cei din instruciunea de apel, reali cei de la definirea
subprogramului), cunoscute din toate limbajele procedurale, rmn valabile i n PL/SQL:
- trebuie s fie acelai numr de parametri;
- parametrii trebuie s fie n aceeai ordine;
- tiupul pentru fiecare parametru corespunztor trebuie s fie la fel;
- numele parametrilor din cele dou categorii pot fi aceleai sau diferite (pentru c referirea
parametrilor se face prin adres).
In PL/SQL se pot construi astfel de subprograme pe dou niveluri:
Nivelul aplicaiei (blocuri cu nume) sub un generator (de exemplu Forms), n care se
dezvolt aplicaia, se creaz asistat procedurile/funciile dorite. Aceste subprograme sunt
accesibile doar n cadrul aplicaiei n care se dezvolt.

Nivelul bazei de date se creaz explicit prin cod surs (CREATE PROCEDURE /
FUNCTION) subprogramele dorite. Acestea se stocheaz n dicionarul bazei de date i vor fi
disponibile tuturor celor care au drept de acces la baza de date.
Pachetele
Ca subprogram, pachetul (package) este un obiect tip Oracle definit la nivelul bazei de date, care
reunete un ansamblu de prelucrri efectuate asupra aceluiai domeniu sau acelorai obiecte.
n PL/SQL subprogramul de tip pachet este compus din dou pri:
PACKAGE SPECIFICATION partea public , declarativ, care poate fi cunoscut de toi
utilizatorii care au dreptul de acces.
PACKAGE BODY partea privat, corpul pachetului, care conine definiiile obiectelor
declarate anterior, accesibile doar local prin componentele pachetului.
Subprogramul de tip pachet se poate crea prin instruciunea CREATE PACKAGE i el poate
conine: proceduri, funcii, variabile, cursoare, excepii.
Necesitatea subprogramelor de tip pachete n aplicaiile cu baze de date dezvoltate n PL/SQL
este dat de avntajele acestora:
ntreinerea i dezvoltarea prelucrrilor sunt facilitate de regruparea i structurarea
prelucrrilor elementare, prin modularizare;
se permite o gestiune mai fin a drepturilor de acces la proceduri i funcii (care sunt incluse
n pachete), datorit conceptelor de structurare privat i respecxtiv public;
un pachet poate fi compilat att n ntregime, ca un tot unitar, ct i parial, ceea ce extinde
modularizarea.
Declanatorii
Subprogramele de tip declanatori (trigers) sunt blocuri PL/SQL care realizeaz o anumit
aciune, lansat automat atunci cnd apare un anumit eveniment.
Declanatorii pot fi creai i utilizai pe dou niveluri:
nivelul aplicaiei (blocuri cu nume) sub un generator (de exemplu Forms), n care se
dezvolt aplicaia, se creaz asistat declanatorul dorit (de exemplu cu DESIGNER). n acest
caz subprogramul este accesibil doar n cadrul aplicaiei n care se dezvolt. Se permite un
control sporit al intrrilor;
nivelul bazei de date se creaz explicit prin cod surs (CREATE TRIGGER) subprogramele
dorite. Acestea se stocheaz n dicionarul bazei de date i vor fi disponibile tuturor celor care
au drept de acces la baza de date. Permite s se implementeze reguli de gestiune complexe i
s se intensifice (msuri suplimentare) protecia datelor.
ntr-un subprogram de tip declanator se specific:
- tipul declanatorului, care poate fi posterior (AFTER) sau anterior (BEFOR);
- evenimentul declanator, care poate fi: execuia unei instruciuni, click de mouse, apsarea
unei taste, apariia unei erori etc.;
- tratamentul efectuat, adic aciunea care se desfoar.

3.3 Introducere n Oracle


Sistemul Oracle a fost, nc de la apariia sa la sfritul anilor 70, un SGBD care a respectat n
totalitate teoria relaional. Acest lucru nseamn c sistemul a respectat cel puin dou cerine
minime:
- a implementat modelul de date relaional pentru baze de date;
- a implementat un limbaj de programare relaional (SQL Structured Query Language).
De asemenea, sistemul Oracle se ncadra nc de atunci n categoria SGBD care respectau cam
toate regulile lui Codd. E.F.Codd a realizat 13 reguli care stabilesc n ce msur un SGBD este
relaional. Acum, la versiunea Oracle 11g sistemul a devenit mai mult dect un SGBD relaional,
a devenit o infrastructur pentru baze de date pe Internet, n arhitectur Grid Computing. Pe
parcursul evoluiei sistemului Oracle, au fost adugate noi faciliti rezultate att din noul
contextul informatic ct i din cerinele utilizatorilor, date de dezvoltarea societii
informaionale. n mod continuu, noi tehnologii informatice au fost implementate n sistem:
lucrul cu baze de date distribuite, abordarea orientat obiect, faciliti multimedia, gestionarea
bazelor de date pentru Internet, noi limbaje de programare, afaceri electronice, inteligena
afacerii, grid computing etc.
Principalele faciliti oferite de sistemul Oracle
Pe parcursul evoluiei sale, n special n ultimii zece ani, sistemului Oracle i s-au adugat o serie
de noi faciliti. n acest fel, el a evoluat de la un SGBD relaional spre o infrastructur de baze de
date pentru Internet. Cteva dintre aceste faciliti sunt:
- a iniiat trecerea de la arhitectura client-server spre arhitectura NC (Network Computing).
Versiunile actuale de Oracle pot funciona n ambele arhitecturi;
- ofer o mare deschidere att el ca sistem, ct i pentru aplicaiile cu baze de date dezvoltate;
- pune mare accent pe tot felul de optimizri privind utilizarea resurselor de calcul (timpul i
spaiul);
- pune accent mai mare pe analiz proiectare (modelare funcionalitate) fa de programare,
nclinnd balana n favoarea primei activiti;
- a implementat primul sistem de baz de date pentru Internet din lume i apoi a dezvoltat acest
concept cu o mulime de servicii performante;
- a implementat pentru prima dat n lume tehnologia Grid Computing pentru baze de date i
continu s o dezvolte;
- a devenit o platform multipl, de mare complexitate, cu portabilitate ridicat, care accept:
orice calculator orice sistem de operare, orice date, orice aplicaie, orice utilizator;
- ofer o mare diversitate de interfee pentru dezvoltarea aplicaiilor cu baze de date: bazate pe
modelare (Designer, Developer, Application Server), bazate pe componente (platforma Java),
bazate pe HTML (navigatoare, editoare Web, XML), bazate pe servicii (Service Oriented
Architecture SOA), prin programare (fraze SQL, proceduri stocate PL/SQL i Java,
obiecte standard CORBA, obiecte ODBC, obiecte JDBC) etc.;
- cuvintele de ordine n acest sistem sunt: optimizare (timp i spaiu calculator) i integrare
(interfee, aplicaii, date, tehnologii etc.).
Oracle Grid Computing
Grid Computing (gril de calculatoare) este o nou tehnologie informatic ce presupune utilizarea
coordonat a mai multor servere mici, care acioneaz mpreun ca un singur sistem foarte

puternic. Se realizeaz un progres tehnologic de la Internet la grid computing datorat apariiei


unor componente tot mai puternice i mai ieftine.
Oracle a introdus tehnologia grid computing odat cu dezvoltarea serverelor de baze de date n
versiunea 10g (2003) i apoi a dezvoltat-o n versiunea 11g (2007). Acest lucru a nsemnat
adgarea unor faciliti noi sistemului Oracle, cteva dintre acestea fiind prezentate n continuare.
Virtualizarea pe fiecare nivel. Oracle permite acum adugarea sau scoaterea discurilor de stocare,
cu pstrarea on-line a aplicaiilor. Performanele serverelor sunt puse la dispoziia mai multor
aplicaii cu baze de date, ntr-o structur eficient de tip cluster. Resursele serverelor se aloc n
funcie de necesitile organizaiei i folosind tehnici speciale (load balancing): se urmrete
ncrcarea diferitelor echipamente din reea i maina cu cele mai puine procese active va primi
o nou sarcin. Se realizeaz statistici privind utilizarea resurselor, care ajut administratorul s
construiasc dinamic strategii de repartizare a proceselor.
Platform ieftin. Oracle poate rula pe platforme diverse, inclusiv servere i alte echipamente de
stocare a datelor la un cost redus, oferind aceleai funcionaliti indiferent de platforma aleas.
Stocarea datelor se realizeaz folosind componenta denumit ASM (Automatic Storage
Management) care permite utilizarea echipamentelor de cost redus. Administratorul aloc
discurile de stocare componentei ASM care se ocup de managementul ulterior, oferind
performane optime, fr a necesita intervenia uman.
Scalarea. Pentru exploatare, se poate porni iniial de la o aplicaie pe dou niveluri (2tier), pe un
grup de servere de cost redus, continundu-se apoi cu includerea unor noi aplicaii i a altor
echipamente.
Managementul tip grid. Oracle a introdus un instrument special pentru managementul tip grid,
denumit Oracle Grid Control, pe care administratoriul BD l poate folosi pentru monitorizarea i
ntreinerea ntregii infrastructuri de baze de date, care include resurse eterogene, distribuite
geografic. Resursele aplicaiilor cu BD nu mai sunt administrate individual, aa cum se realiza n
mod tradiional, ci grupat, prin utilizarea unui navigator Web. Astfel se poate realiza
managementul resurselor de tip: servere de aplicaii, servere de baze de date, servere de tip
firewall, echipamente de stocare, echipamente de reea.
Baze de date distribuite. Oracle a introdus conceptul de rulare a unei singure baze de date,
integrate logic, pe multiple servere folosind tehnologia Real Application Clusters (RAC). Practic
mai multe servere sunt folosite optim de ctre mai multe aplicaii, reducndu-se numrul de
echipamente i licene necesare. Tehnologia de tip cluster nu trebuie s fie achiziionat de la un
productor diferit, introducndu-se componenta Oracle Portable Clusterware care permite
folosirea facilitilor de tip cluster pe orice tip de hardware.
Sisteme informatice integrate. Componenta Oracle Streams ofer funcionaliti multiple pentru
realizarea unei soluii de sistem informatic integrat, cu eliminarea redundanei datelor.
Securitatea. Oracle Enterprise User Security este o component de management centralizat a
privilegiilor de acces a utilizatorilor. Practic, un utilizator este creat o singur dat, putnd avea
acces la multiple baze de date existente n arhitectur, conform drepturilor sale de acces.
Oracle Identity Management centralizeaz managementul autentificrii i autorizrii utilizatorilor
n cadrul unei soluii integrate, prin intermediul componentei denumite Oracle Internet Directory.
Componentele sistemului Oracle
Sistemul Oracle poate fi structurat funcional, prin adaptare, conform arhitecturii pe componente
a unui SGBD, care grupeaz componentele n trei niveluri: nucleul, interfeele de dezvoltare,
instrumentele de ntreinere.

Nucleul Oracle (Oracle Database) conine componentele care se regsesc n orice kit de instalare:
limbajele de programare (SQL, PL/SQL, Java, precompilatoarele), configurarea i instalarea,
instanele de baze de date generate de sistem. Varianta de lucru cu adevrata baz de date
distribuit este Oracle RAC (Real Application Clusters). Aceasta este o nou generaie de
tehnologie de clustere, bazat pe o nou arhitectur de baze de date denumit mbinare ascuns
(Cache Fusion). Acest lucru nseamn c la adugarea unui calculator ntr-o reea cu baze de date
distribuite Oracle, clusterele se adapteaz automat la noile resurse, fr s fie necesar
redistribuirea datelor sau rescrierea aplicaiilor.
Interfeele pentru dezvoltarea aplicaiilor cu baze de date Oracle (Oracle Developer Suite) permit
personalizarea aplicaiilor, ofer un mediu complet pentru dezvoltarea aplicaiilor tip afaceri
electronice (e-business) i tip Web. Cteva dintre produsele software incluse n acest pachet sunt:
Oracle Forms, Oracle Reports, Oracle Designer, Oracle JDeveloper etc.
Instrumentele pentru ntreinerea bazei de date Oracle sunt destinate, n principal,
administratorului de baze de date, dar i dezvoltatorilor. Oracle Enterprise Manager este pachetul
integrat pentru administrarea bazei de date. El conine n acest sens o mulime de instrumente
software: monitorul Grid Control pentru supravegherea ntregii activiti a sistemului de baze de
date, navigatoare pentru informare, editoare pentru actualizri, utilitare pentru ntreinere i
acordare de drepturi de utilizatori etc. n Oracle activitatea de administrare a bazelor de date este
automatizat n cea mai mare parte i procesul continu n aceeai direcie. Efectul este c
activitatea de administrare a BD este ferit de erori i accidente umane, iar costul acestei
activitii scade foarte mult. Tot n componenta de instrumente se poate ncadra i pachetul
Oracle Application Server OAS, care integreaz serviciile de Internet i permit crearea celor
mai rapide aplicaii Web din lume. Conine printre altele: Oracle E-business Suite destinat
implementrii aplicaiilor prefabricate cu baze de date pentru ntreprinderi; Oracle Portal destinat
construirii portalurilor organizaionale etc.

3.4. Limbajul PL/SQL - compendiu


PL/SQL (Procedural Language) este un limbaj procedural, propriu sistemului Oracle, care
lucreaz stil compilator i care d posibilitatea s se dezvolte structuri procedurale de program,
suportnd n acelai timp o parte dintre comenzile SQL. El a fost dezvoltat pe o structur iniial
de program Pascal, ulterior fiindu-i adugate numeroase extensii.
Cteva dintre elementele de limbaj din PL/SQL sunt prezentate, n sintez, n continuare.
Instruciunea PL/SQL are drept terminator caracterul punct i virgul (;).
Expresiile n PL/SQL sunt formate din operatori i operanzi. Tipul unei expresii este dat de tipul
operatorilor utilizai.
Operatorii sunt de urmtoarele tipuri: aritmetici (+,-, *, /, **), logici (AND, OR, NOT), de
comparaie (=, !=, <, >, <=, >=), ali operatori speciali (LIKE; IN; BETWEEN etc.).
Operanzii pot fi variabile, constante, atribute (%TYPE, %FOUND etc.), funcii.
Unitatea de baz pentru structurarea unui program n limbajul PL/SQL este blocul.
Structura unui bloc este: DECLARE
Instruciuni declarative (neexecutabile)
BEGIN
Instruciuni executabile (proprii sau din SQL)
EXCEPTION
Rutine pentru tratarea erorilor (excepiilor)
END;
Not. Dintre seciunile de mai sus, doar cea executabil (ntre BEGIN i END) este
obligatorie, ntr-un bloc PL/SQL.
Comentariul se indic ca un text scris ntre /* i */ (analog ca n SQL) sau dup dou caractere
liniu de unire (- -).
Instruciunile dintr-un bloc pot fi precedate de <<etichet>>, care se poate folosi apoi pentru
referire.
Limbajul PL/SQL accept i subprograme care pot fi de urmtoarele tipuri: proceduri
(PROCEDURE), funcii (FUNCTION), pachete (PACKAGE), declanatori (TRIGGER).
Comenzi din SQL suportate n blocuri PL/SQL
INSERT, UPDATE, DELETE, SELECT, COMMIT, ROLLBACK, SAVEPOINT, LOCK,
TABLE, SET TRANSACTION.
Instruciuni proprii limbajului PL/SQL
:=
este instruciunea de atribuire.
BEGIN desemneaz nceputul prii executabile a uni bloc.
CLOSE nchide un cursor explicit.
DECLARE marcheaz nceputul unui bloc i a prii neexecutabile a acestuia.
Pentru a declara variabile i constante se folosesc clauzele: NUMBER, CHAR,
VARCHAR, DATE, BOOLEAN, atributele (%nume).
Pentru a declara un cursor se folosete clauza: CURSOR.
Pentru a declara o excepie (tratarea erorilor) se folosete clauza: EXCEPTION.
END ncheie o serie de instruciuni PL/SQL: bloc END, structur repetitiv END LOOP,
structur alternativ END IF.
EXCEPTION marcheaz nceputul prii de tratare a erorilor dintr-un bloc.
EXIT foreaz ieirea necondiionat dintr-o structur nesecvenial de program.
FETCH acceseaz urmtoarea linie din mulimea selectat de un cursor explicit.

GOTO salt necondiionat la o etichet dintr-un bloc.


IFEND IF structura alternativ simpl de program.
LOOP END LOOP structura repetitiv de program tip WHILE sau FOR
NULL este instruciunea care nu are nici un efect i se folosete pentru structurarea i lizibilitatea
blocului.
OPEN deschide un cursor explicit.
RAISE oprete execuia unui bloc i transfer controlul unei seciuni de tratarea excepiilor.
SELECTINTO instruciune de regsire, care ntoarce o linie dintr-o tabel i o plaseaz ntr-o
variabil de memorie indicat prin clauza INTO.
Cteva funcii de sistem
SQLCODE() numrul codului unei erori detectate.
SQLERRM() mesajul explicativ al unui cod de eroare specificat.
Majoritatea funciilor din SQL sunt suportate i de PL/SQL.

3.5.

Teste de autoevaluare
1. Elemente ale unei BD Oracle sunt:
A. Procesul;
B. Utilizatorul sistem;
C. Indexul;
D. Zona de lucru;
E. Arborele;
2. Mecanisme interne Oracle sunt:
A. Tabela;
B. Tabelul;
C. Cursorul;
D. Tranzacia;
E. Spaiul tabel;
3. Tipurile de subprograme suportate de PL/SQL sunt:
A. Procedurile;
B. Pachetele;
C. Funciile;
D. Declanatorii;
E. Secvenialele;
4. Care dintre urmtoarele convenii ce privesc parametrii formali i reali unui subprogram
sunt valabile n PL/SQL
A. Trebuie s fie acelai numr de parametri;
B. Parametrii trebuie s fie n aceeai ordine;
C. Numele parametrilor din cele dou categorii nu pot fi diferite;
D. Tipul pentru fiecare parametru corespunztor trebuie s fie diferit;
E. Parametrii trebuie s fie n aceeai ordine;
5. ntr-un subprogram de tip declanator se specific:
A. Subprogramul apelator;
B. Tipul declanatorului, care poate fi posterior (AFTER) sau anterior (BEFOR);
C. Evenimentul declanator;
D. Aciunea de realizat;
E. Parametrii reali ai declanatorului

Rspunsuri la testele de autoevaluare


1. A, D
2. C, D
3. A, B, C, D
4. A, B
5. B,C,D

Bibliografia unitii de nvare 3


1. M. Velicanu, I. Lungu s.a. Sisteme de baze de date teorie i practic, ed. Petrion,
Bucureti, 2003.
2. J. Date An introduction to database systems, Ed. Addison Wesley, 2004.
3. M. Velicanu Dicionar explicativ al sistemelor de baze de date, Ed. Economic, Bucureti,
2005.
4. A. Bara, I. Botha, V. Diaconia, I. Lungu, A. Velicanu Baze de date. Limbajul PL/SQL, ed.
ASE, Bucureti, 2009.

S-ar putea să vă placă și