Sunteți pe pagina 1din 14

CAPITOLUL 2.

FACILITATILE SI ARHITECTURA
SISTEMULUI ORACLE
2.1. EVOLUIA I FACILITILE SISTEMULUI ORACLE
Oracle este un sistem de gestiune a bazelor de date complet
relaional, extins, cu faciliti din tehnologia orientat obiect (OO). Sistemul
Oracle este realizat de firma Oracle Corporation care a fost nfiinat n
anul 1977 n SUA - California i acum este cel mai mare furnizor de
software de gestiunea datelor. Acesta este operaional pe toat gama de
calculatoare (micro, mini, mainframe) sub diverse sisteme de operare.
Prima versiune de SGBD Oracle a fost realizat la sfritul anilor '70
respectnd teoria relaional. n cadrul sistemului a fost implementat de la
nceput limbajul relaional SQL pe care l-a dezvoltat ulterior fa de
versiunea standard rezultnd SQL*Plus.
ncepnd cu versiunea 5.0 SGBD Oracle are urmtoarele faciliti
suplimentare: funcioneaz n arhitectura client/server; are limbaj
procedural propriu PL/SQL; are precompilatoare ca interfa cu limbajele
universale.
n iunie 1997 s-a lansat SGBD Oracle versiunea 8.0, inclusiv n
Romnia, care a marcat o nou generaie de baze de date Oracle deoarece
iniiaz trecerea de la arhitectura client/server la arhitectura NC (Network
Computing), are o mare deschidere, are optimizri performante i pune
accent mai mare pe analiz (modelare-funcionalitate) fa de programare
(codificare).
n noiembrie 1998 s-a lansat SGBD Oracle 8i ca sistem de baze de
date pe Internet. Aceast versiune are urmtoarele caracteristici:
Este reproiectat arhitectural n mod fundamental i se ncadreaz
n tendina de trecere de la arhitectura client/server la arhitectura
NC;
Permite dezvoltarea unei baze de date de orice dimensiune, n
mod centralizat sau distribuit;
Are faciliti de salvare/restaurare automate i inteligente;
Permite partiionarea integral pentru tabele i indeci;
Are mesagerie integral, prin comunicarea ntre aplicaii i
procesare offline (chiar dac aplicaiile nu sunt conectate);
Prelucrarea paralel pentru: replicare, cereri de regsire,
actualizare;
Ofer faciliti din tehnologia OO, prin care se permite definirea

i utilizarea de obiecte mari i complexe;


Optimizeaz cererile de regsire prin reutilizarea comenzilor
SQL identice lansate de utilizatori diferii i prin realizarea unui
plan de execuie a instruciunilor SQL;
Are un grad de securitate sporit prin: server de criptare, control
trafic reea, niveluri de parolare etc.;
Permite lucrul cu depozite de date (Data Warehouse) care conin
date multidimensionale (cu tehnologia OLAP);
Conine foarte multe produse ceea ce-l face s fie o platform
pentru baze de date: servere (Oracle 8, Application, Security,
Internet Commerce etc), instrumente (Designer, Developer,
Express, WebDB etc), aplicaii (Financials, Projects, Market
Manager, Manufacturing etc);
Este primul SGBD pentru Internet cu server Java inclus;
Reduce drastic costurilor pentru realizarea unei aplicaii(de cca
10 ori fa de versiunea anterioar);
Este o platform multipl permind lucrul pe orice calculator,
orice sistem de operare, orice aplicaie, orice utilizator;
Are instrumente diverse pentru dezvoltarea aplicaiilor: bazate
pe modelare (Designer, Developer, Application Server), bazate
pe componente (Java), bazate pe HTML (browsere, editoare
Web) i XML, prin programare: proceduri stocate (PL/SQL,
Java), obiecte standard, obiecte ODBC, obiecte JDBC, fraze
SQL etc., tip internet (WebDB);
Ofer servicii multiple de Internet (Web, E_mail, e_bussines,
etc) integrate cu servicii Intranet.
Ulterior a fost lansat sistemul Oracle 9i care a marcat trecerea la o
nou generaie de servicii internet. El este mai mult dect un suport pentru
baze de date deoarece ofer o infrastructur complet de software pentru
afaceri electronice (e-business) i ruleaz pe o varietate de sisteme de calcul
i de operare: SUN-SOLARIS, HP-UX, IBM-AIX, PC_WINDOWS, XXLINUX. Componenta Oracle WebDB a evoluat n Oracle Portal.
Oracle 9i DATABASE are fa de versiunea anterioar asigur o
protecie ridicat i automatizat iar costul administrrii bazei de date scade
n mod drastic.
Oracle 9i REAL APPLICATION CLUSTERS (RAC) se bazeaz pe o
nou arhitectur de BD numit mbinare ascuns (Cache Fusion). Aceasta
este o nou generaie de tehnologie de clustere. Conform acestei arhitecturi
la adugarea unui calculator nr-o reea cu BD Oracle, clusterele se
adapteaz automat la noile resurse, fr s fie necesar redistribuirea datelor

sau rescrierea aplicaiei. Posibilitatea apariiei unei erori la o configuraie cu


12 calculatoare sub Oracle 9i RAC este foarte mic, esimat ca durat n
timp la cca 100.000 de ani.
n Oracle 9i APPLICATION SERVER se pot creea i utiliza aplicaii
Web care sunt foarte rapide i permit integrarea serviciilor de Internet.
Oracle 9i DEVELOPER SUITE este un mediu complet pentru
dezvoltarea aplicaiilor tip afaceri electronice (e-business) i tip Web. El se
bazeaz pe tehnologiile Java i XML i permite personalizarea (Oracle
Personalization).
n anul 2003 a fost lansat versiunea Oracle 10g care adaug noi
faciliti sistemului Oracle 9i.
2.2. ARHITECTURA SISTEMULUI ORACLE
Componentele care formeaz arhitectura de baz Oracle (vezi
fig.2.1) sunt dispuse ntr-o configuraie client/server. Aceste componente
sunt plasate pe calculatoare diferite ntr-o reea asigurnd funcionaliti
specifice, astfel: serverul asigur memorarea i manipularea datelor, precum
i administrarea bazei de date iar clientul asigur interfaa cu utilizatorul i
lanseaz aplicaia care acceseaz datele din baza de date.

Figura 2.1 Arhitectura Oracle

Arhitectura Oracle se ncadreaz n tendinele actuale i anume este


structurat pe trei niveluri: nucleul, interfeele i instrumentele de
ntreinere.
Nucleul Oracle conine componentele care dau tipul relaional pentru
SGBD Oracle: limbajul relaional de regsire SQL i limbajul procedural
propriu PL/SQL.
Sistemul Oracle creeaz i ntreine automat dicionarul de date.
Acesta face parte din baza de date Oracle i conine un set de tabele i
viziuni (vederi) accesibile utilizatorilor doar n consultare. Dicionarul
conine informaii de tipul: numele utilizatorilor autorizai, drepturile de
acces, numele obiectelor din baza de date, structurile de date, spaiul ocupat
de date, chei de acces etc.
Interfeele sunt componentele care permit dezvoltarea aplicaiilor cu
BD, astfel:
DEVELOPER SUITE este componenta destinat dezvoltatorilor
(programatorilor) de aplicaii. Conine generatoarele FORMS
(meniuri i videoformate), REPORTS (rapoarte i grafice),
JDEVELOPER;
DESIGNER este component destinat analitilor/proiectanilor
de aplicaii. Ofer elemente de CASE pentru proiectarea
aplicaiilor cu BD;
PRO*C este componenta destinat programatorilor n limbajele
de programare universale (FORTRAN, COBOL, Pascal, C,
ADA, PL1);
DATAWAREHOUSE BUILDER este destinat analizei datelor
multidimensionale, folosind tehnologia de tip OLAP (On Line
Analitical Processing);
ORACLE APPLICATIONS permite dezvoltarea unor aplicaii
de ntreprindere (Financials, Manufacturing, Projects etc.);
Instrumentele sunt componente destinate ntreinerii i bunei
funcionri a unei BD Oracle. ENTERPRISE MANAGER CONSOLE
conine
mai
multe
utilitare
destinate
administratorului
BD
(deschidere/nchidere BD, autorizarea accesului, refacerea BD, conversii de
date, etc.).
2.3. ORACLE SERVER
Oracle Server (OS) permite managementul informaiilor organizate
n baze de date, astfel nct se asigur accesul mai multor utilizatori n mod
concurenial la acelai date, oferind faciliti de prevenire a accesului

neautorizat i de restaurare a datelor dup producerea unor erori. OS are


urmtoarele faciliti:
Client/server permite ca prelucrrile s fi mprite ntre serverul
de baze de date i programele de aplicaie ale utilizatorilor aflate
pe staiile conectate la server;
Suport lucrul cu baze de date foarte mari;
Permite utilizarea concurenial a bazelor de date;
Ofer securitate sporit i integritatea datelor;
Permite lucrul distribuit;
Confer portabilitate aplicaiilor;
Permite ca mai multe tipuri de calculatoare i sisteme de operare
s coexiste pe aceeai reea.
Oracle Server este un sistem relaional-obiectual de management a
bazelor de date, care permite o abordare deschis, integrat i cuprinztoare
a managementului informaiilor.
OS const dintr-un cuplu format dintr-o baz de date i o instan
Oracle.
A. O baz de date Oracle este o colecie unitar de date, avnd o
structur logic i una fizic putnd avea dou stri: open (accesibil) i
close (inaccesibil).
1) Structura logic ale unei baze de date este format din tabelele
spaiu (tablespaces), schema de obiectelor bazei de date, blocurile de date,
extensiile i segmentele.
Tabelele spaiu sunt unitile logice de memorie n care este
mprit o baz de date i pot fi tabele spaiu de sistem i tabele spaiu de
utilizator. Din punct de vedere al accesibilitii aceste pot fi on line i off
line.
Fiierele de date sunt structurile de memorie specifice unui sistem
de operare pe care rezid tabelele spaiu ale unei baze de date.
Schema este o colecie de obiecte, iar schema de obiecte este o
structur logic ce se refer direct la datele unei baze de date(tabele, vederi,
secvene, proceduri memorate, sinonime, indeci, clustere i link-uri de baz
de date).
Blocurile de date, extensiile i segmentele sunt elemente de control
eficient al spaiului de memorie extern pe disc aferent unei baze de date.
Blocul de date este unitatea de memorie cea mai mic manipulat de
SGBD Oracle, iar mrimea acestuia msurat n bytes se definete la
momentul creerii bazei de date.
Extensia este format din mai multe blocuri de date contigue.

Segmentul este format din mai multe extensii. Segmentele pot fi:
segmente de date (pentru memorarea datelor unei tabele), segmente de
indeci, segmente roollback (folosite pentru memorarea informaiilor
necesare pentru recuperarea datelor unei baze de date sau anularea unei
tranzacii) i segmente temporare (folosite pentru prelucrarea instruciunilor
SQL).
2) Structura fizic este definit de un set de fiiere specifice
sistemului de operare pe care rezid SGBD Oracle, folosite pentru
memorarea structurilor logice ale bazei de date i pentru pstrarea unor
informaii tehnice de control. Aceste fiiere sunt: fiiere de date (Data files),
fiiere Redo log (Redo Log files) i fiiere de control (Control files).
Fiierele de date (Data files) conin datele unei baze de date, sub
forma structurilor logice ale acesteia (tabele, vederi, secvene, proceduri
memorate, sinonime, indeci, clustere i link-uri de baz de date). Fiierele
de date au urmtoarele caracteristici: un fiier de date poate aparine unei
singure baze de date, pot fi extinse automat n anumite momente specifice
ale funcionrii bazei de date, unul sau mai multe fiiere de date pot memora
o tabel spaiu.
Fiierele Redo Log (Redo Log files) sunt folosite pentru memorarea
tuturor schimbrilor de date produse asupra unei baze de date, astfel nct
dac se ntmpl o cdere de curent s se previn distrugerea datelor bazei
de date. Se pot folosi simultan mai multe fiiere de acest fel care s rezide
pe discuri diferite.
Fiierele de control (Control files) sunt folosite pentru memorarea
informaiilor necesare pentru controlul structurii fizice a unei baze de date
(numele bazei de date, numele i locaiile fiierelor de date, data creerii
bazei de date etc).
B. Instana Oracle (Oracle instance) este combinaia logic dintre
structurile de memorie intern (SGA - system global area, PGA - program
global area) i procesele Oracle de baz activate la momentul pornirii unei
baze de date.
1) SGA este o regiune partajabil de memorie care conine datele i
informaiile necesare unei instane Oracle i conine:
Database Buffer Cache (conine blocurile de date cele mai recent
utilizate pentru a reduce utilizarea discului);
Redo Log Buffer (conine datele despre blocurile modificate);
Shared Pool (pentru prelucrarea instruciunilor SQL);
Cursorii (Statement Handles or Cursores) folosii pentru
manipularea instruciunilor unui limbaj gazd folosind facilitatea
Oracle Call Interface.

2) PGA este zona de memorie care conine datele i informaiile de


control ale unui proces server.
3) Procesul este un mecanism al sistemului de operare care poate
executa o serie de pai (instruciuni). Este cunoscut i sub numele de job sau
task. Procesul are propria sa zon de memorie n care se execut. Un server
Oracle are dou tipuri de procese: procese utilizator i procese Oracle.
Procesul utilizator (user proces) este creat i meninut pentru a
executa codul de program aferent unui anumit limbaj (C++) sau un produs
Oracle (Oracle tool), SQL*Forms, Sql*Graphics etc.
Procesul Oracle este apelat de ctre un alt proces pentru a executa
funcia cerut de ctre acesta. Procesele Oracle sunt Procese server i
procese background.
Procesele server (Server Processes) sunt utilizate de Oracle pentru a
prelucra cererile proceselor utilizator. Oracle poate fi configurat astfel nct
s permit unul sau mai multe procese utilizator. Din acest punct de vedere
avem servere dedicate care au un singur proces utilizator i servere multi
prelucrare (multi-threaded server configuration). Pe anumite sisteme
procesele utilizator i procesele server sunt separate, iar n altele sunt
combinate ntr-unul singur. Dac folosim sistemul multi prelucrare sau dac
procesele utilizator i procesele server se afl pe maini diferite atunci
aceste procese trebuie s fie separate. Sistemul client/server separ
procesele utilizator de ctre procesele server i le execut pe maini
diferite.
Procesele background (Background processes) sunt create pentru
fiecare instan Oracle pentru a executa asincron anumite funcii. Acestea
sunt:
Database Writer (DBWR) scrie datele modificate n baza de
date;
Log Writer (LGWR) scrie nregistrrile redo log pe disc;
Checkpoint (CKPT) scrie nregistrrile checkpoint la timpul
potrivit ;
System Monitor (SMON) execut recuperarea unei instane la
momentul pornirii, colecteaz spaiul liber etc;
Process Monitor (PMON) recupereaz procesele utilizator dac
acestea cad accidental;
Archiver (ARCH) copiaz n mod online fiierele Redo Log n
fiiere de arhiv atunci cnd acestea se umplu cu datei;
Recoverer (RECO) rezolv tranzaciile suspendate n sistemul cu
baze de date distribuite;
Dispacher (Dnnn) folosit n sistemul multithreaded;

Lock (LCKn) blochez procesele n sistemul Parallel server.


Legtura dintre procesele utilizator i procesele Oracle este
prezentat n figura 2.2.

Figura 2.2 Legtura dintre procesele utilizator i procesele Oracle

Interfaa program este mecanismul de comunicare dintre un proces


utilizator i un proces server. Este metoda standard de comunicare ntre o
aplicaie sau un instrument Oracle i Oracle Server.
2.4. CONCURENA, CONSISTENA
I SECURITATEA DATELOR
ntr-un sistem de baze de date de tip multiutilizator o preocupare
principal este asigurarea accesului concurenial al mai multor utilizatori la
aceleai date. Pentru aceast funcie Oracle folosete diverse mecanisme ca
blocarea nregistrrilor i pstrarea mai multor versiuni consistente de date.
Consistena la citire garanteaz c setul de date vzut de ctre o
instruciune nu se schimb n timpul executrii acesteia (consisten la nivel

de instruciune). Asigur faptul c un utilizator care acceseaz baza de date


nu ateapt ca alt utilizator s scrie date sau s citeasc date i c scrierea
unor date n baza de date nu implic un timp de ateptare pentru utilizatorii
care doresc s citeasc aceste date. De asemenea, asigur faptul c un
utilizator va atepta la momentul scrierii n baza de date numai dac
ncearc s modifice acelai rnd dintr-o tabel (tranzacii concurente).
Mecanismul de blocare a rndurilor dintr-o tabel a bazei de date
asigur ca datele vzute de un utilizator sau modificate de acesta s nu poat
fi modificate de ctre alt utilizator pn cnd primul nu termin accesul la
date. Datele i structurile unei baze de date reflect corect toate modificrile
efectuate ntr-o anumit secven logic. Blocarea se poate executa automat
sau manual.
Securitatea unei baze de date presupune asigurarea unor faciliti
care s permit controlul asupra modului n care o baz de date este accesat
i utilizat. Ea poate fi: securitatea sistemului (System security) i
securitatea datelor (Data security).
Securitatea sistemului include mecanisme care controleaz accesul i
utilizarea bazei de date la nivel de sistem (valideaz combinaiile
username/password, spaiul pe disc alocat pentru un anumit utilizator,
limitele de resurse pentru un utilizator).
Securitatea datelor include mecanisme care controleaz accesul i
utilizarea bazei de date la nivel de obiect (Exemplu utilizatorul SCOTT
poate s emit instruciuni SELECT i INSERT, dar nu poate utiliza
DELETE).
Oracle Server furnizeaz controlul accesului, care nseamn
restricionarea accesului la informaii pe baz de privilegii. De exemplu unui
utilizator i se atribuie privilegiul de a accesa un anumit obiect al bazei de
date. La rndul su acest utilizator, n mod corespunztor, poate s ofere
privilegiul su altui utilizator.
Controlul securitii n Oracle se asigur prin specificarea:
utilizatorilor bazei de date, schemelor, privilegiilor, rolurilor, setarea
limitelor de memorie, stabilirea limitelor de resurse i auditarea.
Utilizatorii bazei de date i schemele. Fiecare baz de date are o list
de nume de utilizatori. Pentru a accesa baza de date un utilizator trebuie s
foloseasc o aplicaie i s se conecteze cu un nume potrivit. Fiecrui nume
de utilizator i este asociat o parol. Orice utilizator are un domeniu de
securitate care determin privilegiile i rolurile, cota de tabel spaiu alocat
(spaiul pe disc alocat) i limitele de resurse ce le poate utiliza (timp CPU
etc).
Privilegiul este dreptul unui utilizator de a executa anumite
instruciuni SQL. Privilegiile pot fi: privilegii de sistem i privilegii de

obiecte. Privilegiile de sistem permit utilizatorilor s execute o gam larg


de instruciuni SQL, ce pot modifica datele sau structura bazei de date.
Aceste privilegii se atribuie de obicei numai administratorilor bazei de date.
Privilegiile de obiecte permit utilizatorilor s execute anumite instruciuni
SQL numai n cadrul schemei sale, i nu asupra ntregii baze de date.
Acordarea privilegiilor reprezint modalitatea prin care acestea pot fi
atribuite utilizatorilor. Exist dou ci de acordare explicit (privilegiile se
atribuie n mod direct utilizatorilor) i implicit (prin atribuirea acestora unor
roluri, care la rndul lor sunt acordate utilizatorilor).
Rolurile sunt grupe de privilegii, care se atribuie utilizatorilor sau
altor roluri. Rolurile permit:
Reducerea activitilor de atribuire a privilegiilor.
Administratorul bazei de date n loc s atribuie fiecare privilegiu
tuturor utilizatorilor va atribui aceste privilegii unui rol, care
apoi va fi disponibil utilizatorilor;
Manipularea dinamic a privilegiilor. Dac se modific un
privilegiu de grup, acesta se va modifica n rolul grupului.
Automat modificarea privilegiului se propag la toi utilizatorii
din grup;
Selectarea disponibilitilor privilegiilor. Privilegiile pot fi
grupate pe mai multe roluri, care la rndul lor pot fi activate sau
dezactivate n mod selectiv;
Proiectarea unor aplicaii inteligente. Se pot activa sau
dezactiva anumite roluri funcie de utilizatorii care ncearc s
utilizeze aplicaia.
Un rol poate fi creat cu parol pentru a preveni accesul neautorizat la
o aplicaie. Aceast tehnic permite utilizarea parolei la momentul pornirii
aplicaiei, apoi utilizatorii pot folosi aplicaia fr s mai cunoasc parola.
Setarea cotelor de memorie ce pot fi folosite de ctre utilizatori se
realizeaz folosind opiunile:
Default tablespace. Un utilizator poate crea obiecte ale bazei de
date fr a specifica numele tabelei spaiu n care s fie create
obiectele;
Temporary tablespace. Unui utilizator i se aloc tabele spaiu
proprii n care s-i creeze obiectele;
Tablespace quotas. Se pot seta limite fizice de memorie pentru
tabelele spaiu proprii utilizatorilor.
Profilurile i limitarea resurselor. Un profil este un element de
securitate care permite manipularea resurselor ce pot fi alocate utilizatorilor.
Resursele ce pot fi alocate sunt: numrul sesiunilor concurente, timpul CPU,

timpul de utilizare a unei sesiuni, restricii n utilizarea parolelor. Se pot crea


diferite tipuri de profile care apoi vor fi atribuite fiecrui utilizator.
Auditarea permite monitorizarea activitilor executate de ctre
utilizatori astfel nct s se poat efectua investigaii referitoare la utilizrile
suspecte ale bazei de date. Auditarea se poate efectua la nivel de
instruciune, privilegiu sau obiect.
Recuperarea unei baze de date este necesar atunci cnd apar cderi
de curent sau defeciuni ale calculatorului. Tipurile de erori ce pot determina
oprirea unei baze de date Oracle sunt: erori de utilizator; erori ale unor
instruciuni sau ale proceselor utilizator; erori ale instanei Oracle; erori
fizice pe disc.
Structurile fizice folosite de Oracle pentru recuperarea unei baze de
date sunt fiierele redo log, fiierele de control, segmentele rollback i
copiile fizice ale datelor bazei de date.
Fiierele redo log permit protejarea datelor bazei de date actualizate
n memoria intern dar nescrise nc n baza de date. Se pot utiliza n mod
online sau cu arhivare. Fiierele redo log on line sunt un set de dou sau
mai multe fiiere care nregistreaz toate tranzaciile finalizate. Ori de cte
ori o tranzacie este finalizat (comis) datele modificate sunt scrise n
aceste fiiere. Utilizarea fiierelor este ciclic, adic atunci cnd se umple un
fiier se utilizeaz cellalt. Fiierele redo log arhivate permit arhivarea
fiierelor redo log umplute nainte de a fi rescrise. Se poate rula n modul
ARCHIVELOG (caz n care baza de date poate fi integral recuperat att
pentru o eroare a instanei, ct i a discului) sau NOARCHIVELOG (caz n
care baza de date poate fi recuperat numai dup o eroare a instanei nu i a
discului). n primul mod recuperarea se face cu baza de date pornit, iar n al
doilea caz cu ea oprit.
Fiierele de control conin informaii despre structura fiierelor bazei
de date, numrul curent al secvenei de log folosit de ctre procesul LGWR
etc.
Segmentele rollback se folosesc pentru controlul tranzaciilor.
Copiile bazei de date pot fi integrale sau pariale. Copia integral
cuprinde toate fiierele de date, online redo log files i fiierele de control,
iar copia parial conine numai anumite pri ale bazei de date.
Datorit modului n care lucreaz procesul DBWR fiierele de date
ale bazei de date pot conine blocuri potenial actualizate de ctre
tranzaciile nefinalizate sau s nu conin blocuri de date actualizate de ctre
tranzaciile finalizate. Blocurile de date coninnd tranzacii finalizate nu au
fost nc scrise n fiierele de date, ci numai n fiierele redo log, ceea ce
nseamn c fiierele redo log conin modificri de date care trebuie
efectuate i n baza de date. Fiierele de redo log pot conine date ale unor

tranzacii nefinalizate care trebuie eliminate la momentul recuperrii bazei


de date.
Ca urmare a situaiilor de mai sus Oracle va folosi doi pai distinci
pentru recuperarea unei baze de date: rolling forward i rolling backward.
Rolling forward nseamn aplicarea (scrierea) asupra bazei de date a
tuturor tranzaciilor finalizate i memorate n fiierele redo log. Se execut
automat la momentul pornirii bazei de date dac avem fiiere redo log
online.
Rolling backward nseamn tergerea tuturor tranzaciilor
nefinalizate din fiierele redo log. Acest pas se execut automat dup primul
pas.
Utilitarul de recuperare Recovery Manager creaz fiiere de salvare
(backup) pentru fiierele de date ale bazei de date i restaureaz sau
recupereaz baza de date din acesrte fiiere backup.
2.5. DICIONARUL DE DATE (DATA DICTIONARY)
Fiecare baz de date Oracle are un dicionar de date, care este un set
de tabele i vederi folosite n modul read-only pentru a referi datele bazei
de date. Dicionarul de date este actualizat automat de ctre Oracle ori de
cte ori intervin modificri n structura bazei de date.
Dicionarul de date este alctuit din tabele de baz i vederi create pe
aceste tabele. Tabelele de baz nu sunt accesibile datorit faptului c
memoreaz datele criptic. Proprietarul dicionarului de date este utilizatorul
SYS. Nici un utilizator nu poate altera obiecte din schema SYS.
Dicionarul de date (DD) este accesat n dou situaii: ori de cte ori
Oracle prelucreaz o instruciune DDL sau de ctre orice utilizator pentru
consultarea informaiilor despre baza de date. DD este adus n memoria
SGA. Este recomandat s nu se obiecte care s aparin utilizatorului SYS.
Nu se vor modifica niciodat date din DD. Singura tabel care face excepie
este tabela SYS.AUDIS. Aceast tabel poate crete mult n dimensiune,
administratorul bazei de date putnd terge datele inutile.
Vederile DD sunt prefixate cu USER, ALL sau DBA. Vederile
prefixate cu USER furnizeaz informaii despre obiectele utilizatorilor, cele
ALL despre toate obiectele din baza de date la care un utilizator are acces,
iar cele cu DBA dau informaii despre toat baza de date.
Exemple:
select object_name, object_type from user_objects;
select owner, object_name, object_type from all_objects;
select owner, object_name, object_type from sys.dba_objects;

Tabelele ce pstreaz informaii despre activitile Oracle sunt tabele


speciale care pot fi accesate numai de ctre administrator pentru a vedea
performanele Oracle. Utilizatorul SYS este proprietarul acestor tabele.
Numele lor este prefixat cu V_$, iar sinonimele lor cu V$.
Categoriile de informaii ce se pot obine din dicionarul de date sunt:
Informaii despre fiierele Online Redo Log;
Informaii despre tabelele spaiu;
Informaii despre fiierele de date ( Data Files);
Informaii despre obiectele bazei de date;
Informaii despre segmentele bazei de date;
Informaii despre extensii ale bazei de date;
Informaii despre pachetele Oracle cu valoare de dicionar
(Dictionary Storage).
Informaii despre utilizatorii bazei de date i profilele acesteia;
Informaii despre privilegiile i rolurile din baza de date
n tabelul 2.1 sunt descrise pachetele Oracle care permit PL/SQL s
aib acces la anumite faciliti SQL sau s extind funcionalitatea BD.
Pachete Oracle pentru accesul la facilitile SQL
DBMS_SPACE.UNUSED_SPACE
DBMS_SPACE.FREE_BLOCKS
DBMS_SESSION.FREE_UNUSE D_
USER_MEMORY
DBMS_SYSTEM.SET_SQL_TRA
CE_IN_SESSION

Tabelul 2.1.
Returneaz informaii despre spaiul
nefolosit dintr-un obiect (tabel, index sau
cluster)
Returneaz informaii despre blocurile
libere dintr-un obiect (tabel, index sau
cluster)
Permite recuperarea memoriei nefolosite
dup efectuarea operaiilor care cer o
cantitate mare de memorie (>100k)
Permite sql_trace ntr-o sesiune identificat
prin numrul serial i SID (valori luate din
V$SESSION).

2.6. ACCESUL LA DATE


Accesul la datele unei baze de date se realizeaz folosind
instruciunile SQL (Structured Query Language) sau PL/SQL (Procedural
Language).
Instruciunile SQL se mpart n:
Instruciuni de definire a datelor - DDL (Data Definition
Statements). Acestea permit definirea, ntreinerea i tergerea
unor obiecte ale bazei de date;

Instruciuni de manipulare a datelor DML (Data Manipulation


Statements), care permit regsirea, inserarea, actualizarea i
tergerea unor rnduri de date din tabele;
Instruciuni de control a tranzaciilor (Transaction Control
Statements) permit controlul instruciunilor DML (COMMIT,
ROLLBACK, SAVEPOINT etc);
Instruciuni de control a sistemului Oracle (System Control
Statements) permit utilizatorului s controleze proprietile
sesiunii curente prin activarea sau dezactivarea rolurilor sau
setarea limbii;
Instruciuni imprimate ntr-un limbaj gazd (Embeded SQL
Statements) i ncorporeaz instruciuni DDL, DML i de
control al tranzaciilor.
O tranzacie este o unitate logic de lucru care cuprinde una sau mai
multe instruciuni SQL executate de ctre un singur utilizator. Tranzacia
ncepe cu prima instruciune SQL executabil i se termin n mod explicit
cu finalizarea (commit) sau, dup caz, anularea tranzaciei (rollback).
Finalizarea unei tranzacii face ca modificrile efectuate de
intruciunilor SQL n baza de date s fie permanente, iar anularea (roll back)
unei tranzacii duce la renunarea la actualizrile efectuate de instruciunile
SQL pn la un moment dat.
Tranzaciile mari pot fi marcate cu puncte intermediare de salvare.
Acest lucru permite ca activitile efectuate ntre punctele de salvare s fie
considerate finalizate, iar la momentul anulrii (rollback) acest lucru s se
execute pn la un anumit punctul de salvare specificat.
PL/SQL este un limbaj procedural Oracle care combin instruciunile
SQL cu instruciunile de control a prelucrrii (IF THEN, WHILE i
LOOP). Utilizarea procedurilor PL/SQL memorate n baza de date duce la
reducerea traficului pe reea. n baza de date pot fi stocate proceduri, funcii,
pachete, triggeri.
Triggerii (declanatorii) sunt blocuri de instruciuni scrise de
programatori pentru a aduga funcii suplimentare unei aplicaii. Fiecare
trigger are un nume i conine una sau mai multe instruciuni PL/SQL. Un
trigger poate fi asociat cu un eveniment i poate fi executat i ntreinut ca
un obiect distinct. Numele unui trigger corespunde unui eveniment (runtime
events) care se produce la momentul execuiei unei aplicaii.

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