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