Titlul cursului : SGBD Oracle [626072]

• Titlul cursului : SGBD Oracle
Autori: Prof. univ. dr. Manole Velicanu, Asist. univ. dr. Vlad Diaconi ța

• Introducere

Vă felicităm pentru faptul că ați ajuns în anul 2 semestrul al doilea și vă dorim succes !

Cursul SGBD Oracle se adresează studenț ilor din anul doi de la facultatea CSIE și este
continuarea disciplinei Baze de date din semestrul întâi.

Obiectivul general al disciplinei SGBD Oracle este însușirea de către studenți a unor noțiuni
fundamentale despre: Sistemele de Gestiune a Bazelor de Date – SGBD, sistemele relaționale,
sistemul Oracle, modul de lucru cu li mbajul PL/SQL, limbajul SQL avansat, interfețele Forms ș i
Reports din Oracle.
Obiectivele specifice principale ale acestui curs, concretizate î n competenț ele pe care le ve ți
dobândi după parcurgerea și asimilarea lui , sunt :
o familiarizarea cu posibilităț ile de utilizare ale unui SGBD indiferent de tipul lui ;
o dobândirea abilității de a dezvolta aplicații cu baze de date relaționale;
o cunoașterea sistemului Oracle și utilizarea unor componente ale sale (PL -SQL, Forms,
Report) pentru a realiza baze de date rela ționale.

Structurarea cursul ui SGBD Oracle este făcută în trei unităț i de învățare (capitole), fiecare dintre
acestea cuprinzând cate un test de verificare, care va fi rezolvat de către student.

Evaluarea cunoștințelor se va realiza sub două forme:
o evaluarea continuă – testele de la sfârșitul fiecărei unități de învățare , precum și un proiect
la seminar ;
o evaluare a finală – examenul susținut î n perioada de sesiune.
Notă. Structura obligatorie pentru proiect va fi:
– 1 pagina care să conțină: Tema, Descri erea problemei, Schema conceptuală a BD;
– programe PL -SQL care să conțină: cele 3 structuri fundamentale de programare
procedurală, cursorul explicit, două tipuri de subprograme;
– o aplicație simplă cu Oracle Forms sau Reports.
Criteriile de evaluare constau în:
1. Punctajul obținut la cele trei teste menționate mai sus .
2. Punctajul obținut la proiectul de la seminar .
3. Punctajul obținut la examenul susținut î n sesiune.
Ponderile asociate fiecărui criteriu precizat sunt următoarele :
– criteriul 1(C1) – câte 1 punct pentru fiecare dintre cele trei teste (total C1= 3 puncte);
– criteriul 2 (C2) – 2 punct e pentru proiectul de la seminar ;
– criteriul 3 (C3) – 5 puncte pentru examenul susținut î n sesiune.

Cuprinsul cursului
Unitatea de învățare 1
ASPECTE FUND AMENTALE SGBD CU APLICARE ÎN ORACLE
Cuprins
1.1. Conceptul de SGBD ………… ………………… 3
1.2. Obiectivele unui SGBD …… ………………… …6
1.3. Funcțiile unui SGBD ………… ………………… 9
1.4. Clasificarea SGBD ……… ……………….. ……11
1.5. Arhitecturi de SGBD …………………. ………14
1.6. Teste de autoe valuare.. ………… ……………………. 16
Bibliografie ……………………… ………………. …17

1.1. Conceptul de SGBD .

Noțiunea 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ă interfața între o bază de date și
utilizatorii acesteia.
SGBD este componenta software a unui sistem de bază de date ca re interacționează cu toate
celelalte componente ale acestuia, asigurând legătura și interdependența î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 ba zei de date, printr -un limbaj propriu specific (LDD), conform unui
anumit model de date;
2. încărca/valida datele în baza de date respectând niște restricțiile de integritate impuse de
modelul de date utilizat;
3. realiza accesul la date pentru diferite operații (consultare, interogarea, actualizare etc) –
operatorii modelului de date;
4. întreține BD cu ajutorul unor instrumente specializate (editoare, utilitare – shells, navigatoare –
browsers etc.);
5. asigura protecția bazei de date sub cele două a specte: securitatea și integritatea datelor.

c) Evoluția SGBD
Evoluția SGBD a fost determinată, în principal, de modelul de date pe care -l implementează la
organizarea datelor în BD.
Etapele în evoluția SGBD sunt prezentate în continuare.
1. Până în anii șaizeci datele erau organizate doar în fișiere, gestionate de programe scrise
în diferite limbaje de programare universale (exemple: Cobol, Fortran etc.).
2. La sfârșitul anilor șaizeci a apărut 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 apărut modelul rețea de organizare a datelor și SGBD
rețea ce implementau acest model (exemple: IDMS, SOCRATE).
SGBD arborescente și rețea fac parte din prima generație și ele constituie pionieratul în domeniu.
4. La sfârșitul anilor șaptezeci și începutul anilor optzeci a apărut modelul relațional de
organizare a datelor și ulterior s -au realizat SGBD relaționale ce implementau acest model
(exemple: Oracle, Informix, DB2, SQLServer, Visual Foxpro, Access etc.). Este generația a
doua de SGBD, care prin simplitate, interactivitate și neproceduralitate domină piața actuală.
5. La sfârșitul anilor optzeci, începutul anilor nouăzeci a apărut modelu l orientat obiect de
organizare a datelor și SGBD orientate obiect ce implementau acest model (exemple: Gemstone,
O2, Jasmine etc.). Aceasta este generația a treia de SGBD care este în plină dezvoltare acum.

Până la sfârșitul
anilor ‘60
1. Doar fișiere

sfârșitul anilor ‘60

generația I

începutul anilor ‘70

sfârșitul anilor ‘70
început ul anilor ’80 generația a II a

sfârșitul anilor ‘80
începutul anilor ’90 generația a III a

Notă. În acest moment, în lume, cea mai mare part e a bazelor de date sunt realizate cu SGBD
relaționale, o foarte mică parte cu SGBD de generația întâi și câștigă tot mai mult teren cele
realizate cu SGBD orientate obiect.
Oracle este un SGBD relațional extins cu numeroase alte tehnologii informatice.
Notă. La trecerea de la o generație la alta de SGBD s -au urmărit următoarele aspecte :
1. Păstrarea aspectelor fundamentale care dau conceptul de SGBD: obiectivele, funcțiile,
componentele. Desigur, la fiecare generație apar și o serie de elemente specifice , de nuanță, care
însă nu schimbă fundamentele conceptului.
2. Încadrarea unui SGBD într -o generație se face în funcție de modelul de date
implementat. Sunt luate în considerare toate cele trei elemente care caracterizează modelul de
date: definirea struc turii modelului (entitățile și legăturile dintre ele), operatorii de prelucrare,
restricțiile de integritate.
3. Îmbunătățirea organizării datelor în memoria externă prin implementarea unui model
mai performant. Se urmărește creșterea independenței logice și fizice (până la total), asigurarea
unor limbaje de descriere a datelor (LDD) cât mai performante și automatizate, asigurarea unor
limbaje de manipulare a datelor (LMD) puternice, asigurarea unor limbaje de regăsire ne –
procedurale (exemplu SQL), reducer ea și controlul redundanței.
4. Îmbunătățirea accesului la date prin: acces după mai multe chei, acces concurent,
optimizarea accesului, creșterea securității datelor.
5. Oferirea unor facilități de utilizare tot mai performante: generatoare specializate
(Forms, Reports etc.), interfețe cu alte limbaje de programare, interactivitatea.
6. Diversificarea tipurilor de date ce pot fi utilizate (clasice, multimedia etc.),
diversificarea modului de lucru (local sau rețea), precum și a tipurilor de aplicații ce pot fi
dezvoltate (locale, distribuite, multimedia etc). Acest lucru înseamnă că SGBD se doresc a avea o
extensibilitate cât mai mare, care să le permită adaptarea la nou.
7. Utilizarea unor SGBD din generațiile precedente în paralel cu dezvoltarea unei noi
generații. 2. SGBD
ierarhice
3. SGBD re țea
4. SGBD
relaționale
5. SGBD
orientate obiect

8. Tendința de fundamentare teoretică și standardizare a conceptelor din fiecare nouă
generație de SGBD apărută, ceea ce oferă acestora robustețe și deschidere.

1.2. Obiectivele unui SGBD

Obiectivul general al unui SGBD este de a furniza suportul software complet pentru dezvoltarea
de aplicații 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 gener al

Set minim
de
obiective

1. Asigurarea independenței datelor față de programe. Se spune că o aplicație informatică
depinde de date, dacă modificarea structurii de memorare a datelor sau a strategiei de acces la
date afectează și aplicația. Indepe ndența datelor față de aplicație poate fi:
– fizică , adică modul de memorare a datelor și tehnicile fizice de memorare (strategia de
acces), pot fi schimbate fără a rescrie programele (exemplu în Oracle: se poate face acces
secvențial la date, apoi se poa te indexa și se face un acces direct);
– logică, adică structura de date poate fi schimbată fără a rescrie programele (exemplu în
Oracle: se poate adăuga în structură un nou câmp, prin comanda ALTER TABLE).

2. Redundanță minimă și controlată a datelor. Spre deosebire de sistemele clasice (cu fișiere) de
prelucrare automată a datelor, stocarea informațiilor în BD se face astfel încât datele să nu fie
multiplicate. Cu toate acestea, uneori, pentru a realiza performanțe sporite, în ceea ce privește
timpul d e răspuns se acceptă o anumită redundanță a datelor. Aceasta va fi însă controlată pentru
a se asigura coerența (corectitudinea datelor) BD. Exemplul de redundanță controlată acceptată
este cea apărută la proiectare BD relaționale prin tehnica de normaliza re.

3. Facilități de utilizare a datelor. Această facilitate presupune ca SGBD să aibă niște
componente specializate pentru diferite operații de utilizare:
– folosirea datelor de către mai mulți utilizatori în diferite scopuri (aplicații). Acest lucru reduce
spațiul de memorare necesar și efortul de încărcare / validare a datelor;
– accesul cât mai simplu al utilizatorilor la date, fără ca ei să fie nevoiți să cunoască structura
întregii BD, acest lucru rămânând în sarcina administratorului BD (ex.: asi stenți tip Wizard);
– existența unor limbaje performante de regăsirea a datelor care permit exprimarea interactivă a
unor cereri de regăsire a datelor și indicarea unor reguli pentru obținerea informațiilor solicitate
(ex.: limbajul relațional SQL);
– oferirea posibilității unui acces multicriterial la date . SGBD stochează datele în entitățile BD și
permite mai multe căi de acces. Pentru diferite moduri de adresare SGBD creează dinamic, la
momentul execuției, o serie de fișiere anexe (de index etc.) care lasă neschimbate entitățile BD.

4. Protecția datelor. În sistemele de BD, protecția datelor se asigură sub două aspecte: securitatea
și integritatea. Suport software complet
pentru dezvoltarea SBD
1. Independența date lor(logică, fizică) 2. Redundanță minimă și controlată
3. Facilități de utilizare a datelor 4. Protecția datelor(securitate, integritate)
5. Partajabilitatea datelor 6. Legături între date
7. Perfo rmanțe globale ale aplicației

Securitatea (confidențialitatea) datelor semnifică faptul că accesul la date se face numai printr –
o autorizare corespunzătoare ș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 diferiților utilizatori sunt gestionate de SGBD astfel: un anumit subiect (utilizat or)
poate realiza anumite acțiuni, asupra anumitor obiecte, în limita anumitor restricții (condiții
suplimentare). Profilul utilizator este dat de nume (NAME), parola (PASS), nume grup, număr
nivel de acces. Oracle deține î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ă partiții logice ale bazei
de date, pentru diferiți utilizat ori, în raport cu cerințele 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 păstrează în formă precompilată, iar anumitor utilizatori li se va
acorda dreptul de execuție ș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 existența unor instrumente care permit utilizatorului să
realizeze propriile rutine de criptare. Criptarea și decript area se realizează după algoritmi
specifici, cu o cheie (parolă) de acces la rutină (Oracle folosește mai mulți algoritmi de criptare și
decriptare).
Integritatea datelor se referă la corectitudinea (coerența) datelor și este asigurată prin protejarea
acestora împotriva unor incidente intenționate sau neintenționate.
Componentele SGBD asigură integritatea datelor tratând separat cauzele care pot deteriora baza
de date: integritatea semantică, controlul accesului concurent, salvarea / restaurarea.
a) Integritatea semantică este asigurată prin operații efectuate de SGBD asupra datelor și a
prelucrărilor. Aceste operații alcătuiesc un set de reguli denumit restricții de integritate. SGBD
asigură astfel de restricții implicite (rezultă din modelul de date implementat – Oracle
implementează cinci) și explicite (proceduri incluse în programele de aplicație).
b) Accesul concurent asigură coerența datelor și este un obiectiv al SGBD care se pune cu
acuitate mai ales la baze de date distribuite. În acest sens SGBD folosește o unitate distinctă de
prelucrare a datelor denumită tranzacție , care este constituită dintr -o secvență de operații – care
se execută în totalitate sau deloc – marcată de puncte de început și sfârșit. Tranzacția poate fi
controlată de SGBD i mplicit, când punctele de început și de sfârșit sunt automat definite, sau
explicit, când punctele de început și de sfârșit sunt definite prin comenzi specifice .
La execuția concurentă a tranzacțiilor SGBD trebuie să asigure blocarea datelor utilizate la un
moment dat. Aceasta înseamnă că se interzice accesul celorlalte tranzacții concurente la aceleași
date, până se termină tranzacția curentă. Tehnica de blocare utilizată de SGBD se poate aplica la
nivelul întregii baze de date, a unui fișier, a unei în registrări sau chiar a unui câmp (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 fișier, prin diferite metode: setarea unui bit
pentru resu rsa respectivă, construirea unei liste cu resursele blocate, menținerea resurselor blocate
într-o zonă specială etc.

Inter -blocarea este situația în care două tranzacții blochează anumite resurse, apoi solicită
fiecare resursele blocate de cealaltă. La n ivelul de SGBD trebuie să existe facilitatea de prevenire
sau rezolvare a inter -blocării.
*Prevenirea inter -blocării presupune că programele blochează toate resursele de care au nevoie
încă de la începutul fiecărei tranzacții (greu de precizat).
*Soluț ionarea inter -blocării presupune că există niște mecanisme pentru detectarea și eliminarea
inter-blocării (de exemplu graful dependențelor proceselor de executat).
c) Salvarea / restaurarea (backup/recovery) ca facilitate a SGBD permite refacerea consis tenței
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 tranzacțiilor și a imaginilor. SGBD poate asigura salvarea automat și la cererea
admi nistratorului bazei de date (de exemplu în Oracle).
Restaurarea pornește de la colecțiile de date stocate prin salvare și reface consistența bazei de
date, minimizând prelucrările pierdute. Restaurarea este asigurată automat de SGBD, dar se poate
realiza și manual. Restaurarea automată a BD este realizată de SGBD cu ajutorul fișierelor
jurnal. La nivelul SGBD pot exista o serie de parametri de configurare care influențează procesul
de restaurare automată. Acești parametri se referă la: intervalul de restau rare, indicatorul de
restaurare (ce informații vor fi scrise în fișierul de erori) etc.
Restaurarea manuală a BD implică intervenția administratorului pentru refacerea bazei de date
de pe un suport tehnic care a fost distrus. Cea mai recentă copie de sig uranță efectuată pentru o
BD afectată este încărcată și se reiau prelucrările efectuate din momentul copierii până la
producerea defecțiunii. Restaurarea manuală se face prin deconectarea tuturor utilizatorilor de la
BD, încărcarea copiei și reluarea lucru lui.
5. Partajabilitatea datelor
Partajabilitatea datelor se referă nu numai la aspectul asigurării accesului mai multor utilizatori la
aceleași date, ci și la posibilitatea dezvoltării unor aplicații fără a se modifica structura bazei de
date. Problema partajabilității se pune la un nivel superior pentru SGBD -urile care permit lucrul
în rețea.

6. Legăturile între date. Legăturile între date corespund asocierilor care se pot realiza între
obiectele unei aplicații informatice. Orice SGBD trebuie să pe rmită definirea și descrierea
structurii de date, precum și a legăturilor dintre acestea, conform unui model de date. Fiecare tip
de model de date permite anumite legături între date. Un SGBD, care implementează un anumit
model de date, va trebui să asigur e și realizarea legăturilor dintre datele corespunzătoare în
conformitate cu schema conceptuală.

7. Performanțele globale. Performanțele globale ale aplicației sunt influențate de SGBD. Acesta
trebuie să gestioneze un volum mare de date de o complexita te ridicată, într -un anumit timp de
acces util pentru diferiți utilizatori. Pentru toate aceste lucruri SGBD folosește diferite metode de
acces, tehnici de optimizare, tipuri de date.

1.3. Funcțiile unui SGBD

Realizarea obiectivelor prezentate a nterior este asigurată de SGBD printr -o serie de componente
ce permit efectuarea unor operații specifice. În funcție de natura lor și de scopul urmărit,
operațiile pot fi grupate pe activități. Activitățile acceptă și ele o grupare pe funcții astfel încât,
una sau mai multe activități, relativ omogene, vor realiza o anumită funcție.
utilizatori

utilizatori

Funcțiile unui SGBD

1. Descrierea datelor
SGBD, prin această funcție, 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
descri u atributele (câmpurile) din cadrul structurii bazei de date, legăturile dintre entitățile bazei
de date sau dintre atributele aceleiași entități, se definesc eventualele criterii de validare a datelor,
metodele de acces la date, aspectele referitoare la a sigurarea integrității datelor. Concretizarea
acestei funcții este schema bazei de date, memorată în cod intern în dicționarul BD. Această
funcție a fost mult automatizată în timp, LDD având acum puține comenzi (exemplu în SQL din
Oracle sunt toate comenzi le de tip CREATE și ALTER). LDD este specific fiecărui SGBD, dar el
întotdeauna realizează descrierea datelor conform elementelor modelului de date pe care îl
implementează SGBD respectiv. După realizarea funcției de descriere, într -un SGBD, entitățile
bazei de date există create deja ca fișiere, dar nu conțin datele propriu -zise, ci numai structura
bazei de date (schema bazei de date).

2. Manipularea datelor Funcțiile SGBD
UTILIZARE
MANIPULARE DESCRIERE ADMINISTRARE
Baza de
date

Funcția de manipulare a datelor este cea mai complexă și realizează actualizarea și regăsirea
datelor din baza de date, cu ajutorul limbajului de manipulare a datelor (LMD). Sunt realizate
următoarele activități referitoare la date: încărcarea, actualizarea, prelucrarea, regăsirea.
a) Încărcarea datelor în baza de date se realizează prin operații automatizate (restricțiile de
integritate) sau programate ce asigură criteriile de validare a datelor.
b) Actualizarea bazei de date constă în operațiile de: adăugare, modificare, ștergere de
înregistrări. La operațiile de adăugare și de modificare se p ăstrează aceleași criterii de validare
care s -au folosit și la activitatea de încărcare a datelor. Actualizarea se realizează numai autorizat,
prin asigurarea unei protecții corespunzătoare a datelor.
c) Prelucrarea datelor se realizează prin operațiile d e: selecție, ordonare, inter -clasare
(compunere), ventilare (descompunere) efectuate asupra entităților bazei de date. Acestea sunt, de
obicei, operații pregătitoare activității de regăsire a datelor. Multe dintre operațiile de prelucrare
sunt realizate cu ajutorul operatorilor din modelul de date implementat de SGBD.
d) Regăsirea (interogarea) datelor constă în operațiile de: vizualizare (afișare pe ecran, imprimare
pe hârtie), răsfoire, editarea unor situații de ieșire. Situațiile de ieșire pot fi interm ediare sau
finale și se pot obține pe diferiți suporți tehnici de informație (ecran, hârtie, mediu magnetic,
mediu optic). Ele pot avea cele mai diferite forme (punctuale, liste, rapoarte, grafice, imagini,
sunet, video) și se pot obține după cele mai dife rite criterii de regăsire.
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 cerințele de lucru ale
SGBD. Se îmbină astfel puter ea unui limbaj universal cu necesitățile de regăsire a datelor
(exemplu: ORACLE are limbajul PL -SQL). Cele cu limbaj propriu sunt dezvoltate printr -un
limbaj specific capabil să unească puterea proceduralului cu regăsirea datelor dintr -un anumit tip
de baz ă de date (exemplu: limbajul propriu din Visual Foxpro).

3. Utilizarea datelor
Funcția de utilizare a datelor asigură mulțimea interfețelor necesare pentru comunicarea tuturor
utilizatorilor cu baza de date. Pentru a realiza această funcție SGBD trebui e să asigure facilități
pentru mai multe categorii de utilizatori ai BD: neinformaicieni, specialiști, administratori.
a) Utilizatorii neinformaticieni reprezintă principala categorie a beneficiarilor de informații
(utilizatorii finali și intensivi) din baza de date. Acești utilizatori nu trebuie să cunoască structura
bazei de date și nu trebuie să știe să programeze. În acest sens, SGBD oferă: meniuri cu opțiuni
sugestive, ferestre, șabloane pentru diferite forme, asistenți tip Wizard, autodocumentarea ( help,
mesaje/ferestre explicative etc.).
b) Utilizatorii specialiști î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 manipul are a datelor, precum și interfețe cu limbaje universale. Cu aceste elemente el
descrie schema bazei de date și asigură manipularea complexă a datelor (exemplu SQL și PL –
SQL în Oracle). Pentru realizarea bazei de date SGBD oferă specialistului și elemente de CASE
(Computer Aidede Software Engineering). Acestea îl ajută în diferitele activități 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 hotă râtor în ceea ce
privește funcționarea optimă a întregului sistem. Datorită importanței acestei categorii de
utilizatori, SGBD are o funcție distinctă în acest sens (exemplu Oracle Enterprise Manager).

4. Funcția de administrare

Funcția de administrar e a datelor este de competența 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 eta pa 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 spațiul de memorie internă și externă (pr in organizare, rutine de optimizare),
de a realiza o serie de analize statistice din baza de date (număr și tip de utilizatori, număr de
accese, număr de actualizări etc.). Pentru fiecare din aceste activități SGBD oferă instrumente și
tehnici de lucru.
În cazul lucrului în rețea 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 dis tribuite pe calculatoarele din rețea, iar
utilizatorii sunt de toate tipurile și în număr 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, D B2, 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 mărime
mici și medii. Au o mare răspândire în momentul actual (exemple: Oracle, DB2 etc.).
Tendința actuală este ca SGBD să fie compatibil pe cât mai multe sisteme de calcul sub cât 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 soluții este acela că se pot dezvolta proceduri complexe
de program, se pot realiza interfețe om -mașină foarte bune, se valorif ică experiența de
programare din limbajele de nivel înalt (toate rezultă din avantajele programării procedurale).
Dezavantajul major este acela că formularea cererilor de regăsire 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 facilităților oferit e de SGBD. În el se pot programa proceduri complexe și
interfețe puternice ca într -un limbaj universal, dar în plus se realizează un acces ușor și optimizat
la baza de date. Dezavantajul este că un astfel de limbaj nu poate fi utilizat decât de specialiști i în
informatică (exemplu limbajul din Visual FoxPro).
Tendința actuală este ca SGBD să aibă implementat, pe lângă un limbaj procedural, și un limbaj
de regăsire neprocedural, care să permită formularea de cereri de regăsire ușor, de către toți
utilizato rii bazei de date. În acest sens, majoritatea SGBD pentru microcalculatoare au
implementat, parțial sau total, limbajul SQL, care este și standardizat internațional.
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ă înconjurătoare, de exemplu tehnologia construcției de mașini,
dar au limite pentru alte domenii (exemplu: IMS).
– SGBD rețea sunt cele care implementează modelul de date rețea și care au eliminat multe din
limitele celor ierarhice. Ele au o largă aplicabilitate pentru numeroase probleme din lumea reală,
dar sunt dificil de util izat datorită complexității ridicate (exemplu: IDMS).
– SGBD relaționale sunt cele care implementează modelul de date relațional și au aplicabilitate
în majoritatea domeniilor din lumea reală. Ele pot fi folosite de o gamă largă de utilizatori
datorită f acilităților 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 probl emele foarte mari, de complexitate ridicată, precum și pentru tipurile noi de
aplicații (proiectarea asistată, multimedia, sisteme deschise) (exemple: O2, Orion, Jasmin etc.).
Notă.

Tipurile de mai sus de SGBD, având drept criteriu modelul de date imple mentat, sunt de bază
(fundamentale). Pornind de la acestea, prin extensia cu noi tehnologii informatice, există și alte
tipuri de SGBD: deductive, distribuite, multimedia, spațiale etc.
4) După localizarea bazei de date
– SGBD centralizate sunt cele c are gestionează datele amplasate într -o singură bază de date
centrală. La acestea au acces toți utilizatorii autorizați pentru a efectua diferite operații de
manipulare a datelor. Toate calculatoarele care nu sunt legate în rețea și lucrează cu baze de dat e
au instalat un SGBD centralizat. Tot un SGBD centralizat, dar cu facilități de lucru în rețea,
trebuie instalat și în rețelele 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
rețea tratându -le ca un tot unitar. Complexitatea acestor SGBD este ridicată, având componente
speciale pentru realizarea conexiunilor și tratarea distribuită a datelor (exemplu: Oracle, DB2,
Informix).

1.5. Arhitecturi de SGBD

De la apariția lor și până în prezent, SGBD au cunoscut o mare varietate. Există preocupări 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 configurație cu trei categorii de
componente (nucleul, interfața, instrumentel e), situație întâlnită 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 rând, produ sul 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 organiz ate conform unui model de date într -o bază de
date;
– în sfârșit, dacă sistemul de programe gestionează o bază de date și în plus îndeplinește
funcțiile și obiectivele specifice, atunci acel sistem este un SGBD.
Rezultă că un SGBD conține o serie de com ponente, care sunt instrumente software ce au scopul
de a realiza funcțiile specifice: nucleul, interfețele, instrumentele.

Arhitectura pe componente a unui SGBD

Majoritatea arhitecturilor actuale de SGBD pot fi ad use 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 conține următoarele componente ale unui SGBD:
• Nucleul (motorul) conține limbajul de descriere a datelor (LDD), limbajul de manipulare
a datelor (LMD), componente obligatorii în kit-ul minim de SGBD. Componenta este destinată
analiștilor, pr ogramatorilor și administratorilor BD. SGBD
INTERFEȚE
NUCLEU
INSTRUMENTE Baza
de date

• Interfețele sunt formate din: generatoarele de diferite tipuri (de meniuri, de video –
formate, de rapoarte etc.), elementele de CASE (Computer Aided Software Engeenering),
interfețe cu limbaje de programare universa le, interfețe cu alte sisteme etc. Componenta este
destinată tuturor categoriilor de utilizatori: finali, intensivi, specialiști.
• Instrumentele sunt formate din: editoarele, navigatoarele (browsers), utilitarele (shells)
de diferite tipuri. Componenta e ste 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 teh nologii de baze de date (de exemplu tehnologia orientată obiect) au determinat
apariția unor noi tipuri de SGBD. Arhitecturile propuse pentru acestea, pot fi adaptate pe cele trei
niveluri;
– noile tehnologii informatice (de exemplu multimedia, Internet e tc.) au interferat cu
tehnologia bazelor de date rezultând SGBD derivate corespunzătoare. Pentru acestea s -au propus
arhitecturi care, însă, pot fi adaptate la structurarea pe trei niveluri.

1.6. Teste de autoevaluare

1. Care din următoarele sunt obiecti ve ale unui SGBD?
A. Redundanță minimă și controlată a datelor ;
B. Administrarea bazei de date ;
C. Asigurarea facilităților de utilizare a datelor ;
D. Asigurarea dependenței datelor ;
E. Asigurarea protecției datelor ;
2. Care din următoarele nu este un model de date implemen tat de SGBDuri la organizare
datelor :
A. Modelul ierarhic ;
B. Modelul claselor ;
C. Modelul orientat pe servicii ;
D. Modelul relațional ;
E. Modelul orientat obiect ;
3. In evolutia SGBD -urilor se constată :
A. Două generații ;
B. Patru generații ;
C. Schimbarea fundamental a aspectelor f undamentale ;
D. Reducerea accesului concurent ;
E. Restricționarea tipurilor de date folosite ;
4. După limbajul de programare utilizat, SGBD uri sunt:
A. Cu limbaj gazdă ;
B. Cu limbaj propriu ;
C. Fără niciun limbaj ;
D. Ierarhice ;
E. Relaționale ;
5. Arhitecturi de referință pentru un s istem de baze de date sunt:
A. LMD ;
B. CASE ;
C. ANSI ;
D. Pe rețea ;
E. Pe componente ;

Răspunsuri la testele de autoevaluare
1. A, C, E
2. B,C
3. –
4. A, B
5. C, E

Bibliografia unității de învățare 1

1. M. Velicanu, I. Lungu s.a. – Sisteme de baze de date – teorie și practică , ed. Pet rion,
București, 2003.
2. J. Date – An introduction to database systems , Ed. Addison Wesley, 2004.
3. M. Velicanu – Dicționar explicativ al sistemelor de baze de date , Ed. Economică, București,
2005.

Cuprinsul cursului
Unitatea de î nvățare 2
SISTEME DE GEST IUNE A BAZELOR DE DATE RELAȚIONALE (SGBDR) CU
EXEMPLIFICARE ÎN ORACLE

2.1. Definirea SGBDR …………………………………………………..19
2.2. Limbajele relaționale ………………………………………………. 21
2.3. Mecanisme de optimizare în SGBDR ………………………………24
2.4. Avantajele și limitele sistem elor relaționale ……………………….26
2.5. Teste de autoevalu are……………………………………………….27
Bibliografie ………………………………………………………………..28

2.1. Definirea SGBDR

SGBDR este un sistem software complet care implementează modelul de date relațional, precum
și cel pu țin un limbaj de programare relațional.
Teoria relațională este un ansamblu de concepte, metode și instrumente care a dat o
fundamentare riguroasă realizării de SGBDR performante.
Paralela între conceptele utilizate în evoluția organizării datelor în mem oria externă până la
sistemele relaționale.

FIȘIERE TEORIA BD TERIA
RELAȚIONALĂ
SGBDR
Fișier Colecție de date Relație Tabela
Înregistrare Familie de caracteristici Tuplu Linie
Câmp Caracteristică Atribut Coloană
Valo are Domeniu de valori Domeniu Domeniu

Regulile lui Codd

E.F. Codd a formulat 13 reguli care exprimă cerințele maximale pentru ca un SGBD să fie
relațional.
Regulile sunt utile pentru evoluarea performanțelor unui SGBDR.
R0. Gestionarea dat elor la nivel de relație: limbajele utilizate trebuie să opereze cu relații, care
constituie unitatea elementară de informație.
R1. Reprezentarea logică a datelor: toate informațiile din BD trebuie stocate și prelucrate ca
tabele.
R2. Garantarea accesulu i 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: informațiile despre desc rierea BD se stochează în dicționar ș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 puțin unul să permită definirea tabelelor (de bază ș i virtuale), definirea restricțiilor
de integritate, manipularea datelor, autorizarea accesului, tratarea tranzacțiilor.
R6. Actualizarea tabelelor virtuale: trebuie să se permită ca tabelele virtuale să fie și efectiv
actualizabile, nu numai teoretic ac tualizabile.
R7. Actualizările în baza de date: manipularea unei tabele trebuie să se facă prin operații de
regăsire dar și de actualizare.
R8. Independența fizică a datelor: schimbarea structurii fizice a datelor (modul de reprezentare
(organizare) și modul de acces) nu afectează programele.
R9. Independența logică a datelor: schimbarea structurii de date (logice) a tabelelor nu afectează
programele.

R10. Restricțiile de integritate: acestea, trebuie să fie definite prin LDD și stocate în dicționarul
(catalogul) BD.
R11. Distribuirea geografică a datelor: LMD trebuie să permită ca programele de aplicație să fie
aceleași atât pentru datele distribuite cât și pentru datele centralizate (alocarea și localizarea
datelor vor fi în sarcina SGBD).
R12. Prel ucrarea datelor la nivel de bază (scăzut): dacă SGBD posedă un limbaj de nivel scăzut
(prelucrarea datelor se face la nivel de înregistrare), acesta nu trebuie utilizat pentru a evita
restricțiile de integritate.

2.2. Limbajele relaționale

SGBDR oferă seturi de comenzi pentru descrierea și manipularea datelor. Acestea pot fi incluse
într-un singur limbaj relațional (cazul cel mai întâlnit) sau separate în LDD și LMD. În ambele
situații, comenzile pentru definirea datelor sunt distincte de cele pe ntru manipularea datelor.
Exemple de limbaje relaționale: SQL (Structured Querry Language – standarde începând cu
1985), QUEL, QBE, SQUARE, ALPHA, ISBL.

a) Partea de definire a datelor (LDD)
LDD este simplificat, cu puține comenzi.
Descrierea datelor este memorată în BD, sub formă de tabele, în dicționarul (metabaza) bazei de
date. La nivel conceptual
• Crearea unei BD (dicționarul 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 opțiunile ADD, MODIFY,
DROP
• Adăugare a restricțiilor de integritate :ASSERT ON. În Oracle restricțiile de integritate
sunt: NULL, CHECK, pe cheie (PRIMARY , UNIQUE, REFERENTIAL).
La nivel logic
• Crearea tabelelor virtuale: CREATE VIEW
• Ștergerea tabelelor virtuale: DROP VIEW
• Acordar ea drepturilor de acces la BD:
GRANT CONNECT – conectarea la BD a unui utilizator.
GRANT drepturi – acordarea unor drepturi de acces (pentru regăsire, actualizare etc.).
• Retragerea drepturilor de acces la BD:
REVOKE drepturi – retragerea u nor drepturi.
REVOKE CONNECT – deconectarea unui utilizator de la BD.
La nivel fizic
• Crearea indecșilor: CREATE INDEX
• Ștergerea indecșilor: DROP INDEX
• Controlul alocării spațiului fizic al BD:
CREATE SPACE –creează un model de alocare a spaț iului fizic pentru o BD
ALTER SPACE –actualizarea modelului de alocare a spațiului fizic
DROP S PACE – șterge un model de alocare a spațiului 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, funcționale, c alitative.
b1) Caracteristici generale ale LMD

1. Tratarea datelor la nivel de ansamblu. Toate LMD relaționale realizează o tratare la
nivel de ansamblu a datelor: unitatea de informative pentru lucru este tabela . La
comunicarea unui LMD relațional cu un l imbaj 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, soluția
este de a integra în acestea un limbaj relațional. Cursorul este soluția în SGBDR
pentru a face trecerea de la tratarea la nivel de ansamblu la cea la nivel de
înregistrare (tuplu).
2. Operatorii relaționali implementați. SGBDR s -au dezvoltat, din punct de vedere relațional,
având la bază:
• calculul r elațional orientat pe tuplu (ALPHA, QUEL).
• calculul relațional orientat pe domeniu (QBE).
• algebra relațională (ISBL)
• transformarea (mapping) (SQL, SQUARE)

Notă. Limbajele bazate pe calculul relațional sunt neprocedurale, cele bazate pe algebra
relațională sunt procedurale, celelalte sunt combinații.
3. Realizatorii limbajelor relaționale s -au orientat pe domenii precise din teoria relațională.
Astfel, au rezultat: limbaje relaționale standardizate internațional (exemplu SQL – ANSI), limbaje
cu standard de utilizare impus de constructor (exemplu QUEL), limbaje nestandardizate (celelalte
limbaje relaționale).
4. Utilizatorii limbajelor relaționale sunt mult diversificați. SGBDR oferă atât elemente
procedurale (pentru specialiști) cât și neprocedu rale (pentru nespecialilști).

b2) Caracteristici funcționale ale LMD
1. Facilitățile 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. Faci litătile de actualizare a datelor sunt oferite prin comenzi pentru actualizarea tabelelor de
bază, dar și a celor virtuale:
INSERT INTO – adaugă rânduri la sfârșitul unei tabele.
UPDATE – modifică rânduri dintr -o tabelă.
DELETE FROM – șterge rânduri din tr-o tabelă.
Notă. Unele SGBDR nu permit actualizarea tabelelor virtuale, altele permit acces lucru cu o
serie de restricții pentru ca operația să se propage spre tabelele de bază fără ambiguități.
3. Alte facilități funcționale . La facilitățile relaționale de mai sus, SGBDR oferă și alte
facilități, pe care le au toate limbajele de programare procedurale:
• Calculul aritmetic prin operatorii specifici: +, -, *, /, **
• Agregarea: prin funcții standard (exemplu SUM), prin comenzi (exemplu COMPUTE
OF expr ).
• Comenzi de intrare/ieșire standard: ACCEPT…PROMPT… (în Oracle).
b3) Caracteristici calitative ale LMD
1. Puterea selectivă a LMD relaționale este dată de posibilitatea selectării datelor după
criterii (filtr e) complexe (exemplu comanda SELECT).
2. Ușurința de învățare și utilizare este nuanțată în funcție de tipul LMD relațional.
• Cele bazate pe calculul relațional sunt neprocedurale (descriptive), deci ușor de învățat
și utilizat (apropiat, ca stil, de l imbajul natural) (exemplu QUEL).

• Cele bazate pe algebra relațională sunt procedurale (algoritmice), deci mai greu de
învățat ș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 regăsire,
deci ușor de utilizat (exemplu QBE).
3. Eficacitatea utilizării este determinată de posibilitatea optimizării cererilor de regăsire.
LMD bazate pe calculul relațional lasă compilatorul să aleagă ordinea de execuție a
operațiilor, deci rezultă o eficiența mare.
LMD bazate pe algebra relațională au o ordine impusă pentru execuția operațiilor, deci
rezultă o eficiență mica.

2.3. Mecanisme de optim izare în SGBDR
a) Mecanisme pentru protecția datelor
Pentru atingerea acestui obiectiv, orice SGBDR trebuie să aibă implementate mecanisme
specifice pentru ambele aspecte privind datele: integritatea, securitatea.
a1) Controlul integrității (corectitudi nea) datelor
– Mecanismul de tranzacții.
Toate SGBDR sunt sisteme tranzacționale, deci unitatea de bază pentru prelucrare este tranzacția,
care va respecta automat restricțiile de integritate.
Tranzacția este o secvență de instrucțiuni care formează un tot unitar și care se execută în
totalitate sau deloc.
În Oracle există tranzacții implicite (referirea SQL%) și explicite (Begin și End Tranzaction).
– Mecanismul de blocare.
Dacă mai mulți utilizatori doresc simultan să acceseze aceleași date atunci SGBDR d eține
mecanisme specifice pentru a evita conflictele și apariția unor erori: blocarea, interblocarea.
Blocarea este situația în care mai multe tranzacții accesează în același timp, aceleași date.
SGBDR va atribui priorități tranzacțiilor, după anumite crit erii, execuția lor fiind făcută în
ordinea acestora. Blocarea se poate face la nivel de: BD, tabelă, tuplu, atribut.
Inter -blocarea este situația în care tranzacția T1 accesează datele D1, iar tranzacția T2 accesează
datele D2. La un moment dat T1 are nevo ie de datele D2, iar T2 are nevoie de date D1. SGBDR
rezolvă conflictul prin priorități acordate tranzacțiilor.
– Fișierele jurnal.
O soluție pentru asigurarea corectitudinii datelor este aceea ca la apariția anumitor evenimente să
fie salvate (backup) datel e în fișiere de rezervă (jurnal). Acestea vor fi restaurate (recovery)
atunci când BD va fi stricată, din anumite motive, în vederea refacerii ei.
În Oracle fișierele jurnal sunt create, întreținute și utilizate automat de către sistem,
administratorul BD putând folosi aceste fișiere.
a2) Controlul securității (accesului) datelor
– Profilele utilizator.
La o BDR pot avea acces doar utilizatorii autorizați. În acest sens, administratorul BD
construiește un profil utilizator (categorie, grupă, nume, parolă, dre pturi) restricționând 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 restricționat prin construirea de către proiectantul BD a unor viziuni
(tabele virtuale), pe care utilizatorul le va apela.
Viziunea este o construcție logică pentru o cerere de regăsite, memorată în dicționarul BD sub o
denumire. La apelul viziunii cererea de regăsire este executată și se accesează date pe o p arte din
BD.
În Oracle viziunea se construiește prin comanda CREATE VIEW și apoi poate fi utilizată prin
comenzi din SQL, la fel ca orice tabelă relațională.
– Bibliotecile de sistem.
O modalitate de restricționare a accesului la date este dată de proceduril e stocate. Acestea sunt
secvențe de instrucțiuni, stocate sub o denumire, de unde le pot apela utilizatorii autorizați.
În Oracle pot fi scrise proceduri stocate în PL -SQL, atât structurate cât și orientate obiect.
Stocarea se poate face fie în memoria int ernă (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. D e asemenea, există
algoritmi pentru decriptare, cu cheie de acces.
Oracle folosește mai mulți algoritmi de criptare -decriptare, cu chei de acces.

b) Mecanisme de optimizare a regăsirii/interogării
Operația de regăsire a datelor este una dintre cele mai i mportante și mai utilizate în aplicațiile cu
BDR. Puterea de regăsire a limbajelor relaționale, în special SQL, nu a fost egalată de nici un alt
tip de limbaj de programare.
b1) Transformările relaționale
O cerere de regăsire se scrie într -un limbaj relați onal cu ajutorul expresiilor relaționale bazate pe
calculul relațional sau pe algebra relațională. Cele două tipuri de expresii sunt echivalente și pot
oricând să fie rescrise în celălalt tip.
SGBDR trebuie să fie capabil să transforme o expresie scrisă în calculul relațional în una
echivalentă în algebra relațională și invers, pentru a se putea realiza o regăsire optimă.
Transformarea relațională se poate realiza prin două strategii de optimizare : generale, specifice.
o Strategiile generale : sunt independent e de modul de memorare al datelor și se bazează pe
proprietățile operațiilor din algebra relațională – comutativitatea, asociativitatea,
compunerea. Astfel de strategii sunt:
 selecția înaintea joncțiunii;
 proiecția înaintea joncțiunii;
 selecția înaintea pr oiecției;
 combinarea regăsirii multiple.
o Strategiile specifice țin cont de modul de memorare al datelor și sunt caracteristice unui
anumit SGBDR. Elementele care influențează executarea operațiilor care intervin la o
cerere de regăsire sunt: accesul direct sau secvențial, reguli de ordonare a expresiilor
algebrice etc.
Oracle aplică ambele strategii de optimizare pentru transformările relaționale.
b2) Optimizarea alocării
Prin definiție BD sunt mari consumatoare de spațiu calculator, atât în memoria internă cât și în
memoria externă. Pentru ca aceste spații să fie cât mai eficient folosite, SGBDR folosesc diferite
mecanisme : reutilizarea, realocarea, virtualizarea, zone de memorie (buffers) cu destinații
speciale, compactarea datelor (în binar , cu algoritm i de compactare), alocarea dinamică etc.
Toate aceste mecanisme presupun algoritmi specifici.
Oracle face o alocare optimă atât în memoria internă cât și în memoria externă (vezi Elementele
unei BD Oracle și Mecanismele interne Oracle).
b3) Optimizarea acc esului
Căutarea datelor într -o BD a fost întotdeauna o operație care consumă mult timp calculator.
Volumul mare de date din BD și complexitatea ridicată a acesteia determină consum de timp
calculator la operația de regăsire.
SGBDR au cele mai bune performa nțe d.p.d.v. al regăsirii datelor, dintre toate tipurile de SGBD,
datorită limbajelor relaționale (mai ales SQL) pe care le au implementate. Totuși, dacă volumul
de date este foarte mare atunci limbajele relaționale ajung la limită, datorită numărului mare de
operatori relaționali pe care trebuie să -i aplice la regăsire.
Oracle implementează o variantă extinsă de SQL standard cu o comandă SELECT deosebit de
puternică.

2.4 Avantajele și limitele sistemelor relaționale

Avantaje
1. Simplitatea conceptel or și a schemei .
2. Teoria relațională oferă un solid suport teoretic și o bază pentru cercetări ulterioare.
3. Un grad mare de independență a datelor față de programe.
4. Limbajele relaționale sunt declarative (de nivel înalt) și au o mare putere de regăsire.
5. Ameliorarea semnificativă a protecției datelor, sub toate aspectele.
6. Optimizarea semnificativă a accesului la date, precum și a alocării datelor.
7. Manipularea de ansambluri de date prin operatorii din calculul sau algebra relațională,
cu implicații importante pentru regăsirea datelor.

Limite
1. Prea marea simplitate a modelului relațional, care pentru tipurile noi de aplicații (Internet,
sisteme deschise etc.) conduce la:
• pierderea unor informații semantice uti le (prin multiplicarea tabelelor la normalizare);
• operațiile relaționale, chiar optimizate, sunt costisitoare (noile aplicații generează multe
operații relaționale) din punctul de vedere al resurselor de calcul.
2. LMD relaționale sunt prea limitat e, ceea ce generează disfuncționalități :
• programatorul trebuie să cunoască două tipuri de limbaje (declarativ – relațional și
procedural – universal). De aici rezultă necesitatea conversiilor, o fiabilitate scăzută, necesitatea
comunicării, productivi tatea scăzută;
• mecanismele de optimizare privesc doar LMD relațional, deci ceea ce este scris în
limbaj procedural trebuie optimizat de către programator.

2.5. Teste de autoevaluare

1. Noțiuni similare între fișiere și teoria relațională sunt
A. Fișier -tuplu;
B. Câmp -atribut ;
C. Câm p-relație ;
D. Valoare -domeniu ;
E. Nu există noțiuni similar e;
2. Regulile lui CODD se referă la:
A. Valoarea NULL ;
B. Valorile TRUE și FALSE ;
C. Garantarea accesului la date ;
D. Dependența logică a datelor ;
E. Restricțiile de integritate ;
3. Comenzi LDD la niv el 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 relaționale sunt:
A. Optimizarea semnificativă a accesului la date , precum și a alocării datelor;
B. Ameliorarea semnificativă a protecției datelor, sub toate aspectele;
C. Un grad mare de dependență a datelor față de programe;
D. Operațiile relaționale, chiar optimizate, sunt costisitoare ;
E. Necesitatea conversiilor implicite ;

Răspunsuri la testele de autoevaluare
1. B, D
2. A, C, E
3. A, C
4. A, D
5. A, B

Bibliografi a unității de învățare 2

1. M. Velicanu, I. Lungu s.a. – Sisteme de baze de date – teorie și practică , ed. Petrion,
București, 2003.
2. J. Date – An introduction to database system s, Ed. Addison Wesley, 2004.
3. M. Velicanu – Dicționar explicativ al sistemelor de baze de date , Ed. Economică, București,
2005.
4. A. Bara, I. Botha, V. Diaconița, I. Lungu, A. Velicanu – Baze de date. Limbajul PL/SQL , ed.
ASE, București, 2009.

Cuprinsul cur sului
Unitatea de învățare 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 relațional, Oracle folosește o mulțime de concepte și mecanisme interne ,
care au sem nificația 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
operații temporare: execuția tranzacțiilor, conectarea utilizatorilor – sesiunea de lucru etc.
Indexul este o structură fizică de date asociată unei tabele sau unui cluster. Indexarea are rolul de
a obține date ordonate după diferite criterii (chei). Cheia de indexare este formată din una sau mai
multe coloane dintr -o tabelă. Oracle folosește patru metode de indexare: arbori B simpli, arbori B
compuși, cheie inversă, bitmap.
Viziunea (view) este o tabelă virtuală construită din una sau mai multe tabele de bază, fără a
ocupa spațiul fizic. Ea este, de fapt, o cerere de regăsire SELECT stocată în dicționarul de date și
contribuie la creșterea protecției datelor.
Clusterul este o grupare fizică a informațiilor din u na sau mai multe tabele și are rolul de a crește
eficiența regăsirii 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 (identific ator) spre zona de context necesar manipulării acesteia. Oracle
folosește 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 datelo r
(CREATE, ALTER, INSERT, DELETE etc.). Cursorul explicit este creat și gestionat de
programator, în special pentru cererile de regăsire (SELECT).
Tranzacția este un ansamblu omogen de operații (în special actualizări) într -o sesiune utilizator.
Ea are rol ul de a asigura coerența datelor și funcționează binar: se validează în totalitate sau
deloc. Tranzacția poate fi descompusă în subtranzacții prin stabilirea unor puncte de salvare
(SAVEPOINT).
Pseudo -coloane și pseudo -funcții sunt variabile de sistem util izate 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 pro gramare structurată și respectiv modulară;
– concentrarea prelucrărilor pe operații omogene, specifice;
– diminuarea numărului de linii sursă;
– structurarea prelucrărilor mai des utilizate, într -un singur nume și un singur cod sursă;
– parametrarea prelucrărilor, deci generalizarea programelor;
– simplificarea realizării programelor de aplicație precum și ușurință în întreținerea lor, deci
posibilitatea lucrului eficient, în echipă.
Pe lângă tipurile de subprograme cunoscute din toate limbajele de programare proced urale
(funcții și proceduri), PL/SQL are două tipuri specifice (pachete și declanșatori).
Așadar tipurile de subprograme suportate de PL/SQL sunt:
 procedurile – module de program cu nume, parametri de intrare și ieșire;
 funcțiile – module de programe cu nu me, parametri de intrare și care întorc o singură valoare
obținută prin evaluare;
 pachetele – module care reunesc obiecte din bază ce grupează prelucrări cu legături între ele;
 declanșatorii (triggers) – module ce au ca efect declanșarea unei acțiuni autom at, în funcție de
anumite evenimente care au loc la momentul execuției programului.

Procedurile și funcțiile
Procedurile (procedure) și funcțiile (function) utilizator sunt module de program asemănătoare.
Astfel, ambele sunt scrise de programator, ambe le au un nume sub care se definesc și apoi
apelează, ambele au parametri de intrare.
La apelul procedurilor/funcțiilor se părăsește execuția programului apelant (principal) se face salt
la modulul indicat (programul apelat) prin nume, se execută subprogra mul, apoi se revine la
programul principal la următoarea instrucțiune de după cea de apel.
Deosebirea este că funcția poate primi nici unul sau oricâți parametri de intrare, dar nu are nici
un parametru de ieșire. Întotdeauna funcția întoarce o singură val oare dată de evaluarea expresiei
care se atribuie numelui funcției.
Procedura poate primi oricâți parametri de intrare și poate întoarce oricâți parametri de ieșire.
Covențiile privind parametrii (formali – cei din instrucțiunea de apel, reali – cei de la definirea
subprogramului), cunoscute din toate limbajele procedurale, rămân valabile și în PL/SQL:
– trebuie să fie același număr de parametri;
– parametrii trebuie să fie în aceeași ordine;
– tiupul pentru fiecare parametru corespunzător trebuie să fie la fel;
– numele parametrilor din cele două categorii pot fi aceleași sau diferite (pentru că referirea
parametrilor se face prin adresă).
In PL/SQL se pot construi astfel de subprograme pe două niveluri:
Nivelul aplicației (blocuri cu nume) – sub un generator (de exemplu Forms), în care se
dezvoltă aplicația, se crează asistat procedurile/funcțiile dorite. Aceste subprograme sunt
accesibile doar în cadrul aplicației în care se dezvoltă.

Nivelul bazei de date – se crează explicit prin cod sursă (CREATE PROCEDURE /
FUNCTION) subprogramele dorite. Acestea se stochează în dicționarul 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
reunește un ansamblu de prelucrări efectuate asupra aceluiași domeniu sau acelorași obiecte.
În PL/SQL subprogramul de tip pachet este compus din două părți :
PACKAGE SPECIFICATION – partea publică , declarativă, care poate fi cunoscută de toți
utilizatorii care au dreptul de acces.
PACKAGE BODY – partea privată, corpul pachetului, care conține definițiile obiectelor
declarate anterior, accesibile doar local prin componentele pachetului.
Subprogramul de tip pachet se poate crea prin instrucțiune a CREATE PACKAGE și el poate
conține : proceduri, funcții, variabile, cursoare, excepții.
Necesitatea subprogramelor de tip pachete în aplicațiile cu baze de date dezvoltate în PL/SQL
este dată de avntaje le acestora:
întreținerea și dezvoltarea prelucrărilo r sunt facilitate de regruparea și structurarea
prelucrărilor elementare, prin modularizare;
se permite o gestiune mai fină a drepturilor de acces la proceduri și funcții (care sunt incluse
în pachete), datorită conceptelor de structurare privată și respec xtiv publică;
un pachet poate fi compilat atât în întregime, ca un tot unitar, cât și parțial, ceea ce extinde
modularizarea.

Declanșatorii
Subprogramele de tip declanșatori (trigers) sunt blocuri PL/SQL care realizează o anumită
acțiune, lansată automat atunci când apare un anumit eveniment.
Declanșatorii pot fi creați și utilizați pe două niveluri:
nivelul aplicației (blocuri cu nume) – sub un generator (de exemplu Forms), în care se
dezvoltă aplicația, se crează asistat declanșatorul dorit (de exemplu cu DESIGNER). În acest
caz subprogramul este accesibil doar în cadrul aplicației în care se dezvoltă. Se permite un
control sporit al intrărilor;
nivelul bazei de date – se crează explicit prin cod sursă (CREATE TRIGGER) subprogramele
dorite. Acestea se st ochează în dicționarul 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 (măsuri suplimentare) protecția datelor.
Într-un subprogram de tip declanșator se specifică:
– tipul declanșatorului, care poate fi posterior (AFTER) sau anterior (BEFOR);
– evenimentul declanșator, care poate fi: execuția unei instrucțiuni, click de mouse, apăsarea
unei taste, apariția unei erori etc.;
– tratamentul efectuat, adică acțiunea care se desfășoară.

3.3 Introducere în Oracle

Sistemul Oracle a fost, încă de la apariția sa la sfârșitul anilor 70, un SGBD care a respectat în
totalitate teoria relațională. Acest lucru înseamnă că sistemul a respectat cel puțin două ce rințe
minime:
– a implementat modelul de date relațional pentru baze de date;
– a implementat un limbaj de programare relațional (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 măsură un SGBD este
relațional. Acum, la versiunea Oracle 11g sistemul a devenit mai mult decât un SGBD relațional,
a devenit o infrastructură pentru baze de date pe Internet, în arhi tectură Grid Computing. Pe
parcursul evoluției sistemului Oracle, au fost adăugate noi facilități rezultate atât din noul
contextul informatic cât și din cerințele utilizatorilor, date de dezvoltarea societății
informaționale. În mod continuu, noi tehnolog ii informatice au fost implementate în sistem:
lucrul cu baze de date distribuite, abordarea orientată obiect, facilități multimedia, gestionarea
bazelor de date pentru Internet, noi limbaje de programare, afaceri electronice, inteligența
afacerii, grid co mputing etc.

Principalele facilități oferite de sistemul Oracle
Pe parcursul evoluției sale, în special în ultimii zece ani, sistemului Oracle i s -au adăugat o serie
de noi facilități. În acest fel, el a evoluat de la un SGBD relațional spre o infrastruc tură de baze de
date pentru Internet. Câteva dintre aceste facilități sunt:
– a inițiat trecerea de la arhitectura client -server spre arhitectura NC (Network Computing).
Versiunile actuale de Oracle pot funcționa în ambele arhitecturi;
– oferă o mare deschider e atât el ca sistem, cât și pentru aplicațiile cu baze de date dezvoltate;
– pune mare accent pe tot felul de optimizări privind utilizarea resurselor de calcul (timpul și
spațiul);
– pune accent mai mare pe analiză – proiectare (modelare – funcționalitate) fa ță de programare,
înclinând balanța în favoarea primei activități;
– a implementat primul sistem de bază de date pentru Internet din lume și apoi a dezvoltat acest
concept cu o mulțime de servicii performante;
– a implementat pentru prima dată în lume tehnolog ia 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 aplicație, orice utilizator;
– oferă o mare diversitate de interfețe pentru dezvoltarea aplicațiilor 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 (Servic e 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 spațiu calculator) și integrare
(interfe țe, aplicații, 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 acționează împreună ca un singur sistem foarte

putern ic. Se realizează un progres tehnologic de la Internet la grid computing datorat apariției
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 (200 3) și apoi a dezvoltat -o în versiunea 11g (2007). Acest lucru a însemnat
adăgarea unor facilități noi sistemului Oracle, câteva dintre acestea fiind prezentate în continuare.
Virtualizarea pe fiecare nivel. Oracle permite acum adăugarea sau scoaterea discu rilor de stocare,
cu păstrarea on -line a aplicațiilor. Performanțele serverelor sunt puse la dispoziția mai multor
aplicații cu baze de date, într -o structură eficientă de tip cluster. Resursele serverelor se alocă în
funcție de necesitățile organizației ș i folosind tehnici speciale ( load balancing): se urmărește
încărcarea diferitelor echipamente din rețea și mașina cu cele mai puține 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 aceleași funcționalități indiferent de platforma a leasă.
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, o ferind
performanțe optime, fără a necesita intervenția umană.
Scalarea. Pentru exploatare, s e poate porni inițial de la o aplicație pe două niveluri (2tier), pe un
grup de servere de cost redus, continuându -se apoi cu includerea unor noi aplicații și a alt or
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
întreținerea întregii infrastructuri de baze de da te, care include resurse eterogene, distribuite
geografic. Resursele aplicațiilor cu BD nu mai sunt administrate individual, așa cum se realiza în
mod tradițional, ci grupat, prin utilizarea unui navigator Web. Astfel se poate realiza
managementul resursel or de tip: servere de aplicații, servere de baze de date, servere de tip
firewall , echipamente de stocare, echipamente de rețea.
Baze de date distribuite. Oracle a introdus conceptul de rulare a unei singure baze de date,
integrate logic, pe multiple serve re folosind tehnologia Real Application Clusters (RAC). Practic
mai multe servere sunt folosite optim de către mai multe aplicații, reducându -se numărul de
echipamente și licențe necesare. Tehnologia de tip cluster nu trebuie să fie achiziționată de la un
producător diferit, introducându -se componenta Oracle Portable Clusterware care permite
folosirea facilităților de tip cluster pe orice tip de hardware.
Sisteme informatice integrate. Componenta Oracle Streams oferă funcționalități multiple pentru
realizar ea unei soluții de sistem informatic integrat, cu eliminarea redundanței 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ă, putând avea
acces la multiple baze de date existente în arhitectură, conform drepturilor sale de acces.
Oracle Identity Management centralizează managementul autentificării și autorizării utilizatorilor
în cadrul unei soluții integrate, prin interm ediul componentei denumite Oracle Internet Directory .

Componentele sistemului Oracle
Sistemul Oracle poate fi structurat funcțional, prin adaptare, conform arhitecturii pe componente
a unui SGBD, care grupează componentele în trei niveluri: nucleul, inter fețele de dezvoltare,
instrumentele de întreținere.

Nucleul Oracle (Oracle Database) conține componentele care se regăsesc în orice kit de instalare:
limbajele de programare (SQL, PL/SQL, Java, precompilatoarele), configurarea și instalarea,
instanțele de baze de date generate de sistem. Varianta de lucru cu adevărata bază de date
distribuită este Oracle RAC (Real Application Clusters). Aceasta este o nouă generație de
tehnologie de clustere, bazată pe o nouă arhitectură de baze de date denumită îmbinare as cunsă
(Cache Fusion). Acest lucru înseamnă că la adăugarea unui calculator într -o rețea cu baze de date
distribuite Oracle, clusterele se adaptează automat la noile resurse, fără să fie necesară
redistribuirea datelor sau rescrierea aplicațiilor.
Interfețe le pentru dezvoltarea aplicațiilor cu baze de date Oracle (Oracle Developer Suite) permit
personalizarea aplicațiilor, oferă un mediu complet pentru dezvoltarea aplicațiilor tip afaceri
electronice (e -business) și tip Web. Câteva dintre produsele softwar e incluse în acest pachet sunt:
Oracle Forms, Oracle Reports, Oracle Designer, Oracle JDeveloper etc.
Instrumentele pentru întreținerea bazei de date Oracle sunt destinate, în principal,
administratorului de baze de date, dar și dezvoltatorilor. Oracle Ent erprise Manager este pachetul
integrat pentru administrarea bazei de date. El conține în acest sens o mulțime de instrumente
software: monitorul Grid Control pentru supravegherea întregii activități a sistemului de baze de
date, navigatoare pentru informar e, editoare pentru actualizări, utilitare pentru întreținere ș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 aceeași direcție. Efectul este că
activitatea de administrare a BD este ferită de erori și accidente umane, iar costul acestei
activității scade foarte mult. Tot în componenta de instrumente se poate încadra și pachetul
Oracle Application Server – OAS, care integrează serviciile de Int ernet și permit crearea celor
mai rapide aplicații Web din lume. Conține printre altele: Oracle E -business Suite destinat
implementării aplicațiilor prefabricate cu baze de date pentru întreprinderi; Oracle Portal destinat
construirii portalurilor organiz aționale 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,
suportând în acela și timp o parte dintre comenzile SQL. El a fost dezvoltat pe o structură inițială
de program Pascal, ulterior fiindu -i adăugate numeroase extensii.
Câteva dintre elementele de limbaj din PL/SQL sunt prezentate, în sinteză, în continuare.
Instrucțiunea PL/S QL 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 utilizați.
Operatorii sunt de următoarele tipuri: aritmetici (+,-, *, /, **), logici (AND, OR, NOT), de
comparație (=, !=, <, >, <=, >=), alți operatori speciali (LIKE; IN; BETWEEN etc.).
Operanzii pot fi variabile, constante, atribute (%TYPE, %FOUND etc.), funcții.
Unitatea de bază pentru structurarea unui program în limbajul PL/SQL est e blocul .
Structura unui bloc este: DECLARE
Instrucțiuni declarative (neexecutabile)
BEGIN
Instrucțiuni executabile (proprii sau din SQL)
EXCEPTION
Rutine pentru tratarea erorilor (excepțiilor)
END;
Notă. Dintre secțiunile 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 ( – -).
Instrucțiunile 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 următoarele tipuri: proceduri
(PROCEDURE), funcții (FUNCTION), pachete (PACKAGE), declanșatori (TRIGGER).
Comenzi din SQL suportate în blocuri PL/SQL
INSERT, UPDATE, DELETE, SELECT, COMMIT, ROLLBACK, SAVEPOINT, LOCK,
TABLE, SET TRANSACTION.
Instrucțiuni proprii limbajului PL/SQL
:= este instrucțiunea de atribuire.
BEGIN desemnează începutul părții executabile a uni bloc.
CLOSE închide un cursor explicit.
DECLARE marchează începutul unui bloc și a părții neexecutabile a acestuia.
Pentru a declara variabile și constante se folosesc clauzele: NUMBER, CHAR,
VARCHAR, DATE, BOOLEAN, atributele (%nume).
Pentru a declara un cur sor se folosește clauza: CURSOR.
Pentru a declara o excepție (tratarea erorilor) se folosește clauza: EXCEPTION.
END încheie o serie de instrucțiuni PL/SQL: bloc – END, structură repetitivă – END LOOP,
structură alternativă – END IF.
EXCEPTION marchează î nceputul părții de tratare a erorilor dintr -un bloc.
EXIT forțează ieșirea necondiționată dintr -o structură nesecvențială de program.
FETCH accesează următoarea linie din mulțimea selectată de un cursor explicit.

GOTO salt necondiționat la o etichetă dintr -un bloc.
IF…END IF structura alternativă simplă de program.
LOOP… END LOOP structura repetitivă de program tip WHILE sau FOR
NULL este instrucțiunea care nu are nici un efect și se folosește pentru structurarea și lizibilitatea
blocului.
OPEN deschide un cursor explicit.
RAISE oprește execuția unui bloc și transferă controlul unei secțiuni de tratarea excepțiilor.
SELECT…INTO instrucțiune de regăsire, care întoarce o linie dintr -o tabelă și o plasează într -o
variabilă de memorie indicată prin clauza INTO.
Câteva funcții de sistem
SQLCODE() numărul codului unei erori detectate.
SQLERRM() mesajul explicativ al unui cod de eroare specificat.
Majoritatea funcțiilor 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. Tranzacția ;
E. Spațiul tabelă ;
3. Tipurile de subprograme suportate de PL/SQL sunt:
A. Procedurile ;
B. Pachetele ;
C. Funcțiile ;
D. Declanșatorii ;
E. Secvenț ialele ;
4. Care dintre următoarele convenții ce privesc parametrii formali și reali unui subprogram
sunt valabile în PL/SQL
A. Trebuie să fie același număr de parametri;
B. Parametrii trebuie să fie în aceeași ordine;
C. Numele parametrilor din cele două categorii nu pot fi diferite;
D. Tipul pentru fiecare parametru corespunzător trebuie să fie diferit;
E. Parametrii trebuie să fie în aceeași ordine;
5. Într-un subprogram de tip declanșator se specifică:
A. Subprogramul apelator;
B. Tipul declanșatorului, care poate fi posterior (A FTER) sau anterior (BEFOR);
C. Evenimentul declanșator;
D. Acțiunea de realizat;
E. Parametrii reali ai declanșatorului

Răspunsuri la testele de autoevaluare
1. A, D
2. C, D
3. A, B, C, D
4. A, B
5. B,C,D

Bibliografia unității de învățare 3

1. M. Velicanu, I. Lungu s.a. – Siste me de baze de date – teorie și practică , ed. Petrion,
București, 2003.
2. J. Date – An introduction to database systems , Ed. Addison Wesley, 2004.
3. M. Velicanu – Dicționar explicativ al sistemelor de baze de date , Ed. Economică, București,
2005.
4. A. Bara, I. Botha, V. Diaconița, I. Lungu, A. Velicanu – Baze de date. Limbajul PL/SQL , ed.
ASE, București, 2009.

Similar Posts