Cauta rapid aici ↑

FACILITATILE SI ARHITECTURA SISTEMULUI ORACLE

Oracle este un sistem de gestiune a bazelor de date complet relational, extins, cu facilitati din tehnologia orientata obiect (POO). Sistemul Oracle este realizat de firma Oracle Corporation care a fost infiintata in anul 1977 in SUA - California si acum este cel mai mare furnizor de software de gestiunea datelor. Acesta este operational pe toata gama de calculatoare (micro, mini, mainframe) sub diverse sisteme de operare. Prima versiune de SGBD Oracle a fost realizata la sfarsitul anilor '70 respectand teoria relationala. In cadrul sistemului a fost implementat de la inceput limbajul relational SQL pe care l-a dezvoltat ulterior fata de versiunea standard rezultand SQL*Plus.

Incepand cu versiunea 5.0 SGBD Oracle are urmatoarele facilitati suplimentare: functioneaza in arhitectura client/server; are limbaj procedural propriu PL/SQL; are precompilatoare ca interfata cu limbajele universale. In iunie 1997 s-a lansat SGBD Oracle versiunea 8.0, inclusiv in Romania, care a marcat o noua generatie de baze de date Oracle deoarece initiaza trecerea de la arhitectura client/server la arhitectura NC (Network Computing), are o mare deschidere, are optimizari performante si pune accent mai mare pe analiza (modelare-functionalitate) fata de programare (codificare).

In noiembrie 1998 s-a lansat SGBD Oracle 8i ca sistem de baze de date pe Internet. Aceasta versiune are urmatoarele caracteristici:

  • Este reproiectat arhitectural in mod fundamental si se incadreaza in tendinta de trecere de la arhitectura client/server la arhitectura NC;

  • Permite dezvoltarea unei baze de date de orice dimensiune, in mod centralizat sau distribuit;

  • Are facilitati de salvare/restaurare automate si inteligente;

  • Permite partitionarea integrala pentru tabele si indecsi;

  • Are mesagerie integrala, prin comunicarea intre aplicatii si procesare offline (chiar daca aplicatiile nu sunt conectate);

  • Prelucrarea paralela pentru: replicare, cereri de regasire, actualizare;

  • Ofera facilitati din tehnologia OO, prin care se permite definirea si utilizarea de obiecte mari si complexe;

  • Optimizeaza cererile de regasire prin reutilizarea comenzilor SQL identice lansate de utilizatori diferiti si prin realizarea unui plan de executie a instructiunilor SQL;

  • Are un grad de securitate sporit prin: server de criptare, control trafic retea, niveluri de parolare etc.;

  • Permite lucrul cu depozite de date (Data Warehouse) care contin date multidimensionale (cu tehnologia OLAP);

  • Contine foarte multe produse ceea ce-l face sa fie o platforma pentru baze de date: servere (Oracle 8, Application, Security, Internet Commerce etc), instrumente (Designer, Developer, Express, WebDB etc), aplicatii (Financials, Projects, Market Manager, Manufacturing etc);

  • Este primul SGBD pentru Internet cu server Java inclus;

  • Reduce drastic costurilor pentru realizarea unei aplicatii(de cca 10 ori fata de versiunea anterioara);

  • Este o platforma multipla permitand lucrul pe orice calculator, orice sistem de operare, orice aplicatie, orice utilizator;

  • Are instrumente diverse pentru dezvoltarea aplicatiilor: bazate pe modelare (Designer, Developer, Application Server), bazate pe componente (Java), bazate pe HTML (browsere, editoare Web) si XML, prin programare: proceduri stocate (PL/SQL, Java), obiecte standard, obiecte ODBC, obiecte JDBC, fraze SQL etc., tip internet (WebDB);

  • Ofera 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 noua generatie de servicii internet. El este mai mult decat un suport pentru baze de date deoarece ofera o infrastructura completa de software pentru afaceri electronice (e-business) si ruleaza pe o varietate de sisteme de calcul si de operare: SUN-SOLARIS, HP-UX, IBM-AIX, PC_WINDOWS, XX-LINUX. Componenta Oracle WebDB a evoluat in Oracle Portal.

Oracle 9 DATABASE are fata de versiunea anterioara asigura o protectie ridicata si automatizata iar costul administrarii bazei de date scade in mod drastic.

Oracle 9 REAL APPLICATION CLUSTERS (RAC) se bazeaza pe o noua arhitectura de BD numita imbinare ascunsa (Cache Fusion). Aceasta este o noua generatie de tehnologie de clustere. Conform acestei arhitecturi la adaugarea unui calculator inr-o retea cu BD Oracle, clusterele se adapteaza automat la noile resurse, fara sa fie necesara redistribuirea datelor sau rescrierea aplicatiei. Posibilitatea aparitiei unei erori la o configuratie cu 12 calculatoare sub Oracle 9i RAC este foarte mica, esimata ca durata in timp la cca 100.000 de ani.

In Oracle 9i APPLICATION SERVER se pot creea si utiliza aplicatii Web care sunt foarte rapide si permit integrarea serviciilor de Internet.

Oracle 9i DEVELOPER SUITE este un mediu complet pentru dezvoltarea aplicatiilor tip afaceri electronice (e-business) si tip Web. El se bazeaza pe tehnologiile Java si XML si permite personalizarea (Oracle Personalization). In anul 2003 a fost lansata versiunea Oracle 10g care adauga noi facilitati sistemului Oracle 9i.

ARHITECTURA SISTEMULUI ORACLE

Componentele care formeaza arhitectura de baza Oracle sunt dispuse intr-o configuratie client/server. Aceste componente sunt plasate pe calculatoare diferite intr-o retea asigurand functionalitati specifice, astfel: serverul asigura memorarea si manipularea datelor, precum si administrarea bazei de date iar clientul asigura interfata cu utilizatorul si lanseaza aplicatia care acceseaza datele din baza de date. Arhitectura Oracle se incadreaza in tendintele actuale si anume este structurata pe trei niveluri: nucleul, interfetele si instrumentele de intretinere.

Nucleul Oracle contine componentele care dau tipul relational pentru SGBD Oracle: limbajul relational de regasire SQL si limbajul procedural propriu PL/SQL. Sistemul Oracle creeaza si intretine automat dictionarul de date. Acesta face parte din baza de date Oracle si contine un set de tabele si viziuni (vederi) accesibile utilizatorilor doar in consultare. Dictionarul contine informatii de tipul: numele utilizatorilor autorizati, drepturile de acces, numele obiectelor din baza de date, structurile de date, spatiul ocupat de date, chei de acces etc.

Interfetele sunt componentele care permit dezvoltarea aplicatiilor cu BD, astfel:

  • DEVELOPER SUITE este componenta destinata dezvoltatorilor (programatorilor) de aplicatii. Contine generatoarele FORMS (meniuri si videoformate), REPORTS (rapoarte si grafice), JDEVELOPER;

  • DESIGNER este componenta destinata analistilor/proiectantilor de aplicatii. Ofera elemente de CASE pentru proiectarea aplicatiilor cu BD;

  • PRO*C este componenta destinata programatorilor in 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 aplicatii de intreprindere (Financials, Manufacturing, Projects etc.);

Instrumentele sunt componente destinate intretinerii si bunei functionari a unei BD Oracle. ENTERPRISE MANAGER CONSOLE contine mai multe utilitare destinate administratorului BD (deschidere/inchidere BD, autorizarea accesului, refacerea BD, conversii de date, etc.).

ORACLE SERVER

Oracle Server (OS) permite managementul informatiilor organizate in baze de date, astfel incat se asigura accesul mai multor utilizatori in mod concurential la acelasi date, oferind facilitati de prevenire a accesului neautorizat si de restaurare a datelor dupa producerea unor erori. OS are urmatoarele facilitati:

  • Client/server permite ca prelucrarile sa fi impartite intre serverul de baze de date si programele de aplicatie ale utilizatorilor aflate pe statiile conectate la server;

  • Suporta lucrul cu baze de date foarte mari;

  • Permite utilizarea concurentiala a bazelor de date;

  • Ofera securitate sporita si integritatea datelor;

  • Permite lucrul distribuit;

  • Confera portabilitate aplicatiilor;

  • Permite ca mai multe tipuri de calculatoare si sisteme de operare sa coexiste pe aceeasi retea. Oracle Server este un sistem relational-obiectual de management a bazelor de date, care permite o abordare deschisa, integrata si cuprinzatoare a managementului informatiilor.

OS consta dintr-un cuplu format dintr-o baza de date si o instanta Oracle.

A. O baza de date Oracle este o colectie unitara de date, avand o structura logica si una fizica putand avea doua stari: open (accesibila) si close (inaccesibila).

1) Structura logica ale unei baze de date este formata din tabelele spatiu (tablespaces), schema de obiectelor bazei de date, blocurile de date, extensiile si segmentele.

Tabelele spatiu sunt unitatile logice de memorie in care este impartita o baza de date si pot fi tabele spatiu de sistem si tabele spatiu de utilizator. Din punct de vedere al accesibilitatii aceste pot fi on line si off line.

Fisierele de date sunt structurile de memorie specifice unui sistem de operare pe care rezida tabelele spatiu ale unei baze de date.

Schema este o colectie de obiecte, iar schema de obiecte este o structura logica ce se refera direct la datele unei baze de date(tabele, vederi, secvente, proceduri memorate, sinonime, indecsi, clustere si link-uri de baza de date). Blocurile de date, extensiile si segmentele sunt elemente de control eficient al spatiului de memorie externa pe disc aferent unei baze de date.

Blocul de date este unitatea de memorie cea mai mica manipulata de SGBD Oracle, iar marimea acestuia masurata in bytes se defineste 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 indecsi, segmente roollback (folosite pentru memorarea informatiilor necesare pentru recuperarea datelor unei baze de date sau anularea unei tranzactii) si segmente temporare (folosite pentru prelucrarea instructiunilor SQL).

2) Structura fizica este definita de un set de fisiere specifice sistemului de operare pe care rezida SGBD Oracle, folosite pentru memorarea structurilor logice ale bazei de date si pentru pastrarea unor informatii tehnice de control. Aceste fisiere sunt: fisiere de date (Data files), fisiere Redo log (Redo Log files) si fisiere de control (Control files). Fisierele de date (Data files) contin datele unei baze de date, sub forma structurilor logice ale acesteia (tabele, vederi, secvente, proceduri memorate, sinonime, indecsi, clustere si link-uri de baza de date). Fisierele de date au urmatoarele caracteristici: un fisier de date poate apartine unei singure baze de date, pot fi extinse automat in anumite momente specifice ale functionarii bazei de date, unul sau mai multe fisiere de date pot memora o tabela spatiu.

Fisierele Redo Log (Redo Log files) sunt folosite pentru memorarea tuturor schimbarilor de date produse asupra unei baze de date, astfel incat daca se intampla o cadere de curent sa se previna distrugerea datelor bazei de date. Se pot folosi simultan mai multe fisiere de acest fel care sa rezide pe discuri diferite. Fisierele de control (Control files) sunt folosite pentru memorarea informatiilor necesare pentru controlul structurii fizice a unei baze de date (numele bazei de date, numele si locatiile fisierelor de date, data creerii bazei de date etc).

B. Instanta Oracle (Oracle instance) este combinatia logica dintre structurile de memorie interna (SGA - system global area, PGA - program global area) si procesele Oracle de baza activate la momentul pornirii unei baze de date.

1) SGA este o regiune partajabila de memorie care contine datele si informatiile necesare unei instante Oracle si contine:

  • Database Buffer Cache (contine blocurile de date cele mai recent utilizate pentru a reduce utilizarea discului);

  • Redo Log Buffer (contine datele despre blocurile modificate);

  • Shared Pool (pentru prelucrarea instructiunilor SQL);

  • Cursorii (Statement Handles or Cursores) folositi pentru manipularea instructiunilor unui limbaj gazda folosind facilitatea Oracle Call Interface.

2) PGA este zona de memorie care contine datele si informatiile de control ale unui proces server.

3) Procesul este un mecanism al sistemului de operare care poate executa o serie de pasi (instructiuni). Este cunoscut si sub numele de job sau task. Procesul are propria sa zona de memorie in care se executa. Un server Oracle are doua tipuri de procese: procese utilizator si procese Oracle.

Procesul utilizator (user proces) este creat si mentinut 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 catre un alt proces pentru a executa functia ceruta de catre acesta. Procesele Oracle sunt Procese server si procese background.

Procesele server (Server Processes) sunt utilizate de Oracle pentru a prelucra cererile proceselor utilizator. Oracle poate fi configurat astfel incat sa permita unul sau mai multe procese utilizator. Din acest punct de vedere avem servere dedicate care au un singur proces utilizator si servere multi prelucrare (multi-threaded server configuration). Pe anumite sisteme procesele utilizator si procesele server sunt separate, iar in altele sunt combinate intr-unul singur. Daca folosim sistemul multi prelucrare sau daca procesele utilizator si procesele server se afla pe masini diferite atunci aceste procese trebuie sa fie separate. Sistemul client/server separa procesele utilizator de catre procesele server si le executa pe masini diferite.

Procesele background (Background processes) sunt create pentru fiecare instanta Oracle pentru a executa asincron anumite functii. Acestea sunt:

  • Database Writer (DBWR) scrie datele modificate in baza de date;

  • Log Writer (LGWR) scrie inregistrarile redo log pe disc;

  • Checkpoint (CKPT) scrie inregistrarile checkpoint la timpul potrivit ;

  • System Monitor (SMON) executa recuperarea unei instante la momentul pornirii, colecteaza spatiul liber etc;

  • Process Monitor (PMON) recupereaza procesele utilizator daca acestea cad accidental;

  • Archiver (ARCH) copiaza in mod online fisierele Redo Log in fisiere de arhiva atunci cand acestea se umplu cu datei;

  • Recoverer (RECO) rezolva tranzactiile suspendate in sistemul cu baze de date distribuite;

  • Dispacher (Dnnn) folosit in sistemul multithreaded;

  • Lock (LCKn) blocheza procesele in sistemul Parallel server.

Interfata program este mecanismul de comunicare dintre un proces utilizator si un proces server. Este metoda standard de comunicare intre o aplicatie sau un instrument Oracle si Oracle Server.

CONCURENTA, CONSISTENTA SI SECURITATEA DATELOR

Intr-un sistem de baze de date de tip multiutilizator o preocupare principala este asigurarea accesului concurential al mai multor utilizatori la aceleasi date. Pentru aceasta functie Oracle foloseste diverse mecanisme ca blocarea inregistrarilor si pastrarea mai multor versiuni consistente de date.

Consistenta la citire garanteaza ca setul de date vazut de catre o instructiune nu se schimba in timpul executarii acesteia (consistenta la nivel de instructiune). Asigura faptul ca un utilizator care acceseaza baza de date nu asteapta ca alt utilizator sa scrie date sau sa citeasca date si ca scrierea unor date in baza de date nu implica un timp de asteptare pentru utilizatorii care doresc sa citeasca aceste date. De asemenea, asigura faptul ca un utilizator va astepta la momentul scrierii in baza de date numai daca incearca sa modifice acelasi rand dintr-o tabela (tranzactii concurente).

Mecanismul de blocare a randurilor dintr-o tabela a bazei de date asigura ca datele vazute de un utilizator sau modificate de acesta sa nu poata fi modificate de catre alt utilizator pana cand primul nu termina accesul la date. Datele si structurile unei baze de date reflecta corect toate modificarile efectuate intr-o anumita secventa logica. Blocarea se poate executa automat sau manual.

Securitatea unei baze de date presupune asigurarea unor facilitati care sa permita controlul asupra modului in care o baza de date este accesata si utilizata. Ea poate fi: securitatea sistemului (System security) si securitatea datelor (Data security).

Securitatea sistemului include mecanisme care controleaza accesul si utilizarea bazei de date la nivel de sistem (valideaza combinatiile username/password, spatiul pe disc alocat pentru un anumit utilizator, limitele de resurse pentru un utilizator).

Securitatea datelor include mecanisme care controleaza accesul si utilizarea bazei de date la nivel de obiect (Exemplu utilizatorul SCOTT poate sa emita instructiuni SELECT si INSERT, dar nu poate utiliza DELETE). Oracle Server furnizeaza controlul accesului, care inseamna restrictionarea accesului la informatii pe baza de privilegii. De exemplu unui utilizator i se atribuie privilegiul de a accesa un anumit obiect al bazei de date.

La randul sau acest utilizator, in mod corespunzator, poate sa ofere privilegiul sau altui utilizator. Controlul securitatii in Oracle se asigura prin specificarea: utilizatorilor bazei de date, schemelor, privilegiilor, rolurilor, setarea limitelor de memorie, stabilirea limitelor de resurse si auditarea. Utilizatorii bazei de date si schemele. Fiecare baza de date are o lista de nume de utilizatori. Pentru a accesa baza de date un utilizator trebuie sa foloseasca o aplicatie si sa se conecteze cu un nume potrivit. Fiecarui nume de utilizator ii este asociata o parola. Orice utilizator are un domeniu de securitate care determina privilegiile si rolurile, cota de tabela spatiu alocata (spatiul pe disc alocat) si limitele de resurse ce le poate utiliza (timp CPU etc).

Privilegiul este dreptul unui utilizator de a executa anumite instructiuni SQL. Privilegiile pot fi privilegii de sistem si privilegii de obiecte. Privilegiile de sistem permit utilizatorilor sa execute o gama larga de instructiuni 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 sa execute anumite instructiuni SQL numai in cadrul schemei sale, si nu asupra intregii baze de date. Acordarea privilegiilor reprezinta modalitatea prin care acestea pot fi atribuite utilizatorilor. Exista doua cai de acordare explicit (privilegiile se atribuie in mod direct utilizatorilor) si implicit (prin atribuirea acestora unor roluri, care la randul lor sunt acordate utilizatorilor).

Rolurile sunt grupe de privilegii, care se atribuie utilizatorilor sau altor roluri. Rolurile permit:

  • Reducerea activitatilor de atribuire a privilegiilor. Administratorul bazei de date in loc sa atribuie fiecare privilegiu tuturor utilizatorilor va atribui aceste privilegii unui rol, care apoi va fi disponibil utilizatorilor;

  • Manipularea dinamica a privilegiilor. Daca se modifica un privilegiu de grup, acesta se va modifica in rolul grupului. Automat modificarea privilegiului se propaga la toti utilizatorii din grup;

  • Selectarea disponibilitatilor privilegiilor. Privilegiile pot fi grupate pe mai multe roluri, care la randul lor pot fi activate sau dezactivate in mod selectiv;

  • Proiectarea unor aplicatii inteligente. Se pot activa sau dezactiva anumite roluri functie de utilizatorii care incearca sa utilizeze aplicatia.

Un rol poate fi creat cu parola pentru a preveni accesul neautorizat la o aplicatie. Aceasta tehnica permite utilizarea parolei la momentul pornirii aplicatiei, apoi utilizatorii pot folosi aplicatia fara sa mai cunoasca parola. Setarea cotelor de memorie ce pot fi folosite de catre utilizatori se realizeaza folosind optiunile:

  • Default tablespace. Un utilizator poate crea obiecte ale bazei de date fara a specifica numele tabelei spatiu in care sa fie create obiectele;

  • Temporary tablespace. Unui utilizator i se aloca tabele spatiu proprii in care sa-si creeze obiectele;

  • Tablespace quotas. Se pot seta limite fizice de memorie pentru tabelele spatiu proprii utilizatorilor.

Profilurile si limitarea resurselor. Un profil este un element de securitate care permite manipularea resurselor ce pot fi alocate utilizatorilor. Resursele ce pot fi alocate sunt: numarul sesiunilor concurente, timpul CPU, timpul de utilizare a unei sesiuni, restrictii in utilizarea parolelor. Se pot crea diferite tipuri de profile care apoi vor fi atribuite fiecarui utilizator.

Auditarea permite monitorizarea activitatilor executate de catre utilizatori astfel incat sa se poata efectua investigatii referitoare la utilizarile suspecte ale bazei de date. Auditarea se poate efectua la nivel de instructiune, privilegiu sau obiect.

Recuperarea unei baze de date este necesara atunci cand apar caderi de curent sau defectiuni ale calculatorului. Tipurile de erori ce pot determina oprirea unei baze de date Oracle sunt: erori de utilizator; erori ale unor instructiuni sau ale proceselor utilizator; erori ale instantei Oracle; erori fizice pe disc. Structurile fizice folosite de Oracle pentru recuperarea unei baze de date sunt fisierele redo log, fisierele de control, segmentele rollback si copiile fizice ale datelor bazei de date.

Fisierele redo log permit protejarea datelor bazei de date actualizate in memoria interna dar nescrise inca in baza de date. Se pot utiliza in mod online sau cu arhivare. Fisierele redo log on line sunt un set de doua sau mai multe fisiere care inregistreaza toate tranzactiile finalizate. Ori de cate ori o tranzactie este finalizata (comisa) datele modificate sunt scrise in aceste fisiere. Utilizarea fisierelor este ciclica, adica atunci cand se umple un fisier se utilizeaza celalalt. Fisierele redo log arhivate permit arhivarea fisierelor redo log umplute inainte de a fi rescrise. Se poate rula in modul ARCHIVELOG (caz in care baza de date poate fi integral recuperata atat pentru o eroare a instantei, cat si a discului) sau NOARCHIVELOG (caz in care baza de date poate fi recuperata numai dupa o eroare a instantei nu si a discului). In primul mod recuperarea se face cu baza de date pornita, iar in al doilea caz cu ea oprita.

Fisierele de control contin informatii despre structura fisierelor bazei de date, numarul curent al secventei de log folosit de catre procesul LGWR etc. Segmentele rollback se folosesc pentru controlul tranzactiilor. Copiile bazei de date pot fi integrale sau partiale. Copia integrala cuprinde toate fisierele de date, online redo log files si fisierele de control, iar copia partiala contine numai anumite parti ale bazei de date.

Datorita modului in care lucreaza procesul DBWR fisierele de date ale bazei de date pot contine blocuri potential actualizate de catre tranzactiile nefinalizate sau sa nu contina blocuri de date actualizate de catre tranzactiile finalizate. Blocurile de date continand tranzactii finalizate nu au fost inca scrise in fisierele de date, ci numai in fisierele redo log, ceea ce inseamna ca fisierele redo log contin modificari de date care trebuie efectuate si in baza de date. Fisierele de redo log pot contine date ale unor tranzactii nefinalizate care trebuie eliminate la momentul recuperarii bazei de date.

Ca urmare a situatiilor de mai sus Oracle va folosi doi pasi distincti pentru recuperarea unei baze de date: rolling forward si rolling backward. Rolling forward inseamna aplicarea (scrierea) asupra bazei de date a tuturor tranzactiilor finalizate si memorate in fisierele redo log. Se executa automat la momentul pornirii bazei de date daca avem fisiere redo log online.

Rolling backward inseamna stergerea tuturor tranzactiilor nefinalizate din fisierele redo log. Acest pas se executa automat dupa primul pas. Utilitarul de recuperare Recovery Manager creaza fisiere de salvare (backup) pentru fisierele de date ale bazei de date si restaureaza sau recupereaza baza de date din acesrte fisiere backup.

DICTIONARUL DE DATE (DATA DICTIONARY)

Fiecare baza de date Oracle are un dictionar de date, care este un set de tabele si vederi folosite in modul read-only pentru a referi datele bazei de date. Dictionarul de date este actualizat automat de catre Oracle ori de cate ori intervin modificari in structura bazei de date.

Dictionarul de date este alcatuit din tabele de baza si vederi create pe aceste tabele. Tabelele de baza nu sunt accesibile datorita faptului ca memoreaza datele criptic. Proprietarul dictionarului de date este utilizatorul SYS. Nici un utilizator nu poate altera obiecte din schema SYS. Dictionarul de date (DD) este accesat in doua situatii: ori de cate ori Oracle prelucreaza o instructiune DDL sau de catre orice utilizator pentru consultarea informatiilor despre baza de date. DD este adus in memoria SGA. Este recomandat sa nu se obiecte care sa apartina utilizatorului SYS. Nu se vor modifica niciodata date din DD. Singura tabela care face exceptie este tabela SYS.AUDIS. Aceasta tabela poate creste mult in dimensiune, administratorul bazei de date putand sterge datele inutile.

Vederile DD sunt prefixate cu USER, ALL sau DBA. Vederile prefixate cu USER furnizeaza informatii despre obiectele utilizatorilor, cele ALL despre toate obiectele din baza de date la care un utilizator are acces, iar cele cu DBA dau informatii despre toata 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 pastreaza informatii despre activitatile Oracle sunt tabele speciale care pot fi accesate numai de catre administrator pentru a vedea performantele Oracle. Utilizatorul SYS este proprietarul acestor tabele. Numele lor este prefixat cu V_$, iar sinonimele lor cu V$.

Categoriile de informatii ce se pot obtine din dictionarul de date sunt:

  • Informatii despre fisierele Online Redo Log;

  • Informatii despre tabelele spatiu;

  • Informatii despre fisierele de date ( Data Files);

  • Informatii despre obiectele bazei de date;

  • Informatii despre segmentele bazei de date;

  • Informatii despre extensii ale bazei de date;

  • Informatii despre pachetele Oracle cu valoare de dictionar (Dictionary Storage).

  • Informatii despre utilizatorii bazei de date si profilele acesteia;

  • Informatii despre privilegiile si rolurile din baza de date

In tabelul urmator va sunt descrise pachetele Oracle care permit PL/SQL sa aiba acces la anumite facilitati SQL sau sa extinda functionalitatea BD. Pachete Oracle pentru accesul la facilitatile SQL.

DBMS_SPACE.UNUSED_SPACEReturneaza informatii despre spatiul nefolosit dintr-un obiect (tabela, index sau cluster)
DBMS_SPACE.FREE_BLOCKSReturneaza informatii despre blocurile libere dintr-un obiect (tabela, index sau cluster)
DBMS_SESSION.FREE_UNUSE D_ USER_MEMORYPermite recuperarea memoriei nefolosite dupa efectuarea operatiilor care cer o cantitate mare de memorie (>100k)
DBMS_SYSTEM.SET_SQL_TRA CE_IN_SESSIONPermite sql_trace intr-o sesiune identificata prin numarul serial si SID (valori luate din V$SESSION).

ACCESUL LA DATE

Accesul la datele unei baze de date se realizeaza folosind instructiunile SQL (Structured Query Language) sau PL/SQL (Procedural Language).

Instructiunile SQL se impart in:

  • Instructiuni de definire a datelor - DDL (Data Definition Statements). Acestea permit definirea, intretinerea si stergerea unor obiecte ale bazei de date;

  • Instructiuni de manipulare a datelor - DML (Data Manipulation Statements), care permit regasirea, inserarea, actualizarea si stergerea unor randuri de date din tabele;

  • Instructiuni de control a tranzactiilor (Transaction Control Statements) permit controlul instructiunilor DML (COMMIT, ROLLBACK, SAVEPOINT etc);

  • Instructiuni de control a sistemului Oracle (System Control Statements) permit utilizatorului sa controleze proprietatile sesiunii curente prin activarea sau dezactivarea rolurilor sau setarea limbii;

  • Instructiuni imprimate intr-un limbaj gazda (Embeded SQL Statements) si incorporeaza instructiuni DDL, DML si de control al tranzactiilor.

O tranzactie este o unitate logica de lucru care cuprinde una sau mai multe instructiuni SQL executate de catre un singur utilizator. Tranzactia incepe cu prima instructiune SQL executabila si se termina in mod explicit cu finalizarea (commit) sau, dupa caz, anularea tranzactiei (rollback).

Finalizarea unei tranzactii face ca modificarile efectuate de intructiunilor SQL in baza de date sa fie permanente, iar anularea (roll back) unei tranzactii duce la renuntarea la actualizarile efectuate de instructiunile SQL pana la un moment dat.

Tranzactiile mari pot fi marcate cu puncte intermediare de salvare. Acest lucru permite ca activitatile efectuate intre punctele de salvare sa fie considerate finalizate, iar la momentul anularii (rollback) acest lucru sa se execute pana la un anumit punctul de salvare specificat.

PL/SQL este un limbaj procedural Oracle care combina instructiunile SQL cu instructiunile de control a prelucrarii (IF … THEN, WHILE si LOOP). Utilizarea procedurilor PL/SQL memorate in baza de date duce la reducerea traficului pe retea. In baza de date pot fi stocate proceduri, functii, pachete, triggeri.

Triggerii (declansatorii) sunt blocuri de instructiuni scrise de programatori pentru a adauga functii suplimentare unei aplicatii. Fiecare trigger are un nume si contine una sau mai multe instructiuni PL/SQL. Un trigger poate fi asociat cu un eveniment si poate fi executat si intretinut ca un obiect distinct. Numele unui trigger corespunde unui eveniment (runtime events) care se produce la momentul executiei unei aplicatii.