Facilitatile Bazelor de Date ale Sistemului Oracle
FACILITĂȚILE BAZELOR DE DATE ALE SISTEMULUI ORACLE
Oracle Database este un sistem de gestiune a bazelor de date,este complet relațional, este extins, și nu în ultimul rând conține numeroase facilități din tehnologia orientată pe obiecte.
Oracle este creația firmei Oracle Corporation – înființată în anul 1977 în SUA (California) și acum reprezintă cel mai vast furnizor de software de gestiunea datelor ce funcționează pe toată gama de calculatoare (micro, mini, mainframe,etc) în diverse sisteme de operare. În a doua jumătate a anilor '70, respectând teoria relațională, a fost realizată prima versiune de SGBD Oracle. În cadrul acestui sistem a fost implementat limbajul relațional SQL care va fi dezvoltat ulterior comparativ cu versiunea standard rezultând SQL Plus.
Începând cu versiunea 5.0 SGBD Oracle a fost dotat cu facilități importante din care amintim :
funcționează în arhitectura client/server;
are precompilatoare ca interfață cu limbajele universale;
are limbaj procedural propriu PL/SQL.
În vara anului 1997 a fost lansat SGBD Oracle versiunea 8.0 care a marcat o nouă generație de baze de date Oracle deoarece a reușit trecerea de la o arhitectura de tip client/server la una de tip NC (Network Computing). Aceasta are mare deschidere, optimizări și pune accent mai mare pe analiză (modelare-funcționalitate) în comparație cu programarea. În noiembrie 1998 s-a lansat SGBD Oracle 8i online. Această versiune are următoarele caracteristici:
Deține mesagerie integrală cu ajutorul comunicării dintre aplicații și procesare offline (chiar și în situația când aplicațiile nu sunt conectate);
Deține utilitare de salvare și restaurare inteligente;
Oferă acces la partiționarea integrală a tabelelor și indecșilor;
Este reproiectat arhitectural în mod fundamental și se încadrează în necesara tendință de trecere de la vechea arhitectura client/server la noua arhitectura NC;
Prelucrarea paralelă pentru: replicare, cereri de regăsire, actualizare;
Facilitează lucrul cu așa-numitele depozite de date (Data Warehouse); acestea conțin date multidimensionale;
Reduce foarte mult costurile pentru realizarea unei aplicații (de aproximativ 10 ori față de versiunea anterioară);
Gradul de securitate este sporit cu ajutorul controlului traficului de rețea, al nivelurilor de parolare, al serverelor de criptare etc.;
Este primul SGBD pentru Internet care conține și server Java inclus;
O platformă multiplă ce permite lucrul pe orice dispozitiv (indiferent că este calculator,laptop,tableta) pe orice sistem de operare sau aplicație indiferent de utilizator;
Ajută la realizarea unei baze de date indiferent de dimensiune, în mod centralizat sau distribuit;
Oferă facilități din tehnologia orientată pe obiecte, cu ajutorul căreia se realizează definirea și utilizarea de obiecte complexe;
Conține foarte multe produse ceea ce-i dă voie să fie o platformă pentru baze de date:
instrumente (Designer, Express, Developer etc),
servere (Oracle 8, Security, Internet Commerce etc),
aplicații (Market Manager, Manufacturing, Financials etc);
Optimizează cererile de regăsire prin faptul că reutilizează comenzile SQL identice lansate de diferiți utilizatori și prin realizarea unui plan de execuție a instrucțiunilor SQL;
Oferă multiple servicii de Internet (ca de exemplu E_mail, Web, e_bussines, etc) pe care le integrează cu serviciile Intranet;
Conține diverse instrumente pentru dezvoltarea aplicațiilor: bazate pe componente (Java), bazate pe modelare (Designer, Server, Developer), bazate pe HTML (browsere, editoare Web) și XML, prin programare: obiecte standard, proceduri stocate (Java), obiecte ODBC, obiecte JDBC, tip internet (WebDB), fraze SQL.
Următoarea versiune lansată a fost Oracle 9i care a marcat trecerea spre o generație nouă de servicii internet. Această nouă versiune este un suport reușit și deosebit pentru baze de date pentru că oferă infrastructură completă de software în domeniul afacerilor electronice (e-business). Rulează pe o diferite sisteme de operare cum ar fi: SUN-SOLARIS, IBM-AIX, PC_WINDOWS, HP-UX, XXLINUX. Componenta lui Oracle WebDB a fost mutată în Oracle Portal.
Față de versiunea anterioară Oracle 9i DATABASE asigură protecție ridicată și automatizată în timp ce costurile cu administrării bazei de date scad foarte mult. Oracle 9i REAL APPLICATION CLUSTERS (RAC) este bazat pe o nouă arhitectură de baze de date numită îmbinare ascunsă (Cache Fusion). Conform acestei arhitecturi, în momentul adăugarii unui calculator înr-o rețea cu baze de date Oracle, clusterele se auto-adaptează la noile resurse și astfel nu mai sunt necesare nici redistribuirea datelor, nici rescrierea aplicației. Există și posibilitatea apariției unei erori la o astfel de configurație cu 12 calculatoare pe Oracle 9i RAC însa este neglijant de mică, esimată în timp la aproximativ 100.000 de ani.
Cu Oracle 9i APPLICATION SERVER pot fi create aplicații Web foarte rapide. Totodată acestea permit integrarea serviciilor de Internet. Nu în ultimul rând trebuie amintit că Oracle 9i DEVELOPER SUITE e un mediu complet de dezvoltare pentru aplicații tip afaceri electronice și tip Web. Tehnologiile ce stau la bază sunt Java și XML și permit personalizarea (Oracle Personalization).
În anul 2003 s-a lansat versiunea Oracle 10g care adaugă facilități îmbunătățite sistemului Oracle 9i.
Versiunea 11g și-a făcut apariția in anii 2007. Doi ani mai târziu in vara lui 2009 este lansată 11g versiunea 2. Aceasta cuprindea 4 ediții comerciale și o ediție gratuită :
Enterprise Edition, Standard Edition, Standard Edition One, Personal Edition
Express Edition
În vara lui 2013 este făcută cunoscută publicului și ultima ediție de până acum și anume 12c.
ARHITECTURA ȘI COMPONENȚA SISTEMULUI ORACLE
Arhitectura de bază Oracle (în figura ) este formată din componentele dispuse într-o configurație client/server.
Figura Arhitectura Oracle
Componentele acestea sunt instalate pe calculatoare diferite într-o rețea asigurând diferite funcționalități, astfel că serverul trebuie să asigure atât memorarea și manipularea datelor, precum și administrarea bazei, în timp ce clientul asigură interfața cu utilizatorul și lansează în același timp aplicația care la rândul ei accesează datele din baza de date.
Oracle are o arhitectură bazată pe trei niveluri: interfețe, nucleu și instrumente de întreținere.
Nucleul este alcătuit din componente ce determină tipul relațional pentru SGBD Oracle și anume limbajul de regăsire (SQL) și limbajul procedural propriu (PL/SQL). Oracle întreține și creează dicționarul de date care face parte din baza de date Oracle. Dicționarul de date conține un set de tabele și viziuni, precum și informații de tipul: drepturile de acces, numele obiectelor, chei de acces, structurile de date, numele utilizatorilor autorizați, spațiul ocupat de date, etc.
Interfețele reprezintă componentele care permit dezvoltarea aplicațiilor cu baze de date:
DEVELOPER SUITE este componenta utilizată cel mai mult de către dezvoltatori (programatori) de aplicații. Nu în ultimul rând conține generatoarele FORMS, REPORTS, JDEVELOPER;
PRO*C este componenta destinată programatorilor în limbajele universale (Pascal, C, FORTRAN, COBOL, ADA, PL1);
DESIGNER este componentă destinată proiectanților de aplicații și oferă elemente pentru proiectarea aplicațiilor cu baze;
ORACLE APPLICATIONS permite dezvoltarea de aplicații de întreprindere (Projects, Financials, Manufacturing, etc.)
DATAWAREHOUSE BUILDER ajută la analizarea datelor multidimensionale.În acest scop folosește tehnologia de tip OLAP (On Line Analitical Processing).
Instrumentele sunt acele componente destinate bunei funcționări precum și întreținerii unei baze Oracle. Consola Enterprise Manager Console conține mai multe utilitare destinate doar administratorului bazei (autorizarea accesului, deschidere/închidere bazei, refacerea bazei, etc.).
ORACLE SERVER
Oracle Server (OS) este serverul ce permite o bună manageriere a informațiilor organizate în baze de date, astfel încât se asigură accesul mai multor utilizatori în mod concurențial la același date, oferind facilități de prevenire a oricărui acces neautorizat precum și restaurarea datelor după ce s-a produs o eroare. OS are următoarele facilități:
Funcția Client/server ajută ca prelucrările să fi împărțite între serverul de baze de date și programele de aplicație ale utilizatorilor aflate pe stațiile conectate la server;
Lucrul cu baze de date foarte mari este facil;
Permite utilizarea concurențială a bazelor de date;
Oferă securitate sporită și integritatea datelor;
Facilitează lucrul distribuit;
Portabilitate aplicațiilor reprezintă un mare avantaj;
Flexibilitatea ridicată permite ca mai multe tipuri de calculatoare și sisteme de operare să coexiste pe aceeași rețea.
Oracle Server este un sistem relațional-obiectual de management a bazelor de date. Acesta presupune o abordare deschisă și cuprinzătoare a managementului informațiilor. OS se constituie în principal dintr-o bază de date și o instanță Oracle.
O bază de date Oracle este o colecție unitară de date, având o structură logică și una fizică putând avea două stări: open (accesibilă) și close (inaccesibilă).
a) Structura logică a unei baze de date este formată din blocurile de date, tabelele spațiu (tablespaces), schema de obiectel a bazei de date, extensiile și segmentele. Tabelele spațiu sunt unitățile logice de memorie în care este împărțită o bază de date și pot fi tabele spațiu de sistem și tabele spațiu de utilizator.
Din punct de vedere al accesibilității se clasifică în doua categorii : on line și off line. Fișierele de date sunt structurile de memorie pe care rezidă tabelele spațiu ale unei baze de date. Schema este definită ca o colecție de obiecte, iar schema de obiecte, la rândul sau este o structură logică ce se referă într+un mod direct la datele unei baze (acestea pot fi tabele, vederi, secvențe, proceduri memorate, sinonime, indecși, clustere și link-uri de bază de date).
Extensiile, segmentele și blocurile de date sunt elemente de control eficient al spațiului de memorie externă pe disc aferent unei baze. Unitatea de memorie cea mai mică ce poate fi manipulată de SGBD Oracle este reprezentată de blocul de date, iar mărimea acestuia măsurată în bytes se definește neapărat la momentul creerii bazei. Extensia este formată din mai multe blocuri de date contigue.
Un segmentul este alcătuit din mai multe extensii. Acestea se clasifică astfel : segmente de date, segmente de indecși, segmente roollback (folosite pentru recuperarea datelor sau anularea unei tranzacții) și segmente temporare (folosite pentru prelucrarea instrucțiunilor SQL).
b) Structura fizică este definită de un set de fișiere specifice sistemului de operare unde este instalat SGBD Oracle, utilizate în principal pentru memorarea structurilor bazei și pentru păstrarea unor informații tehnice de control. Aceste fișiere sunt: fișiere de date (Data files), fișiere Redo log (Redo Log files) și fișiere de control (Control files).
Fișierele de date (Data files) conțin datele unei baze sub forma structurilor logice ale acesteia (tabele, secvențe, proceduri memorate, indecși, clustere și link-uri de bază de date). Fișierele de date au următoarele caracteristici: un fișier de date poate aparține unei singure baze de date, pot fi extinse automat în anumite momente specifice ale funcționării bazei de date, unul sau mai multe fișiere de date pot memora o tabelă spațiu.
Fișierele Redo Log sunt folosite pentru memorarea tuturor schimbărilor produse asupra unei baze, astfel încât dacă se întâmplă să existe o pana de curent la un moment dat, să se prevină distrugerea datelor bazei. Pot fi folosite în același timp mai multe fișiere de acest fel.
Fișierele de control. În ele se stochează informațiile deosebit de necesare în controlul structurii a bazei (numele bazei de date, numele și locațiile fișierelor de date, data creerii bazei de date etc).
Instanța Oracle este o combinație logică dintre structurile de memorie internă (SGA – system global area, PGA – program global area) și procesele Oracle de bază care sunt activate la momentul pornirii unei baze.
a) SGA este o regiune partajabilă de memorie care conține datele și informațiile necesare unei instanțe Oracle și conține:
• Database Buffer Cache (conține niște blocuri de date, în general cele mai recent utilizate, în scopul reducerii utilizării hard-discului);
• Redo Log Buffer (conține datele despre blocurile modificate);
• Shared Pool (pentru prelucrarea instrucțiunilor);
• Cursorii (Statement Handles or Cursores) folosiți pentru manipularea instrucțiunilor unui limbaj gazdă folosind facilitatea Oracle Call Interface.
Figura
b) PGA este o zona din memorie care conține datele și informațiile ce ajută la controlul unui proces server.
c) Procesul poate fi definit ca un mecanism ce aparține sistemului de operare și poate executa o varietate de instrucțiuni (pași). Este cunoscut și sub numele de job sau task și are alocată o zonă de memorie în care se execută.
Orice server Oracle deține două tipuri de procese: procese Oracle și procese utilizator. Procesul Oracle, în principiu, este apelat de un alt proces în scopul execuției funcției cerută de către acesta. Procesul utilizator (user proces) este creat și menținut pentru a executa codul unui anumit limbaj (ca de exemplu C++) sau un produs Oracle (Oracle tool).
Procesele Oracle sunt procese server și procese background. Procesele server (Server Processes) sunt folosite de către Oracle pentru a prelucra cererile din partea proceselor utilizator. Oracle este configurat să permită unul sau mai multe procese utilizator. Astfel că avem servere dedicate (cele cu un singur proces utilizator) și servere multi prelucrare (multi-threaded server configuration). În cazul anumitor sisteme, procesele utilizator și procesele server sunt separate, iar în altele sunt combinate. Dacă cumva se folosește sistemul multi prelucrare sau dacă procesele utilizator și procesele server sunt pe mașini diferite atunci este clar că și aceste procese trebuie separate. În acest caz, sistemul client/server separă procesele utilizator de cele server și le execută pe mașini diferite.
Procesele background sunt create separat pentru fiecare instanță și pentru a executa asincron anumite funcții cum ar fi :
• System Monitor (SMON) care execută recuperarea unei instanțe la momentul pornirii, fiind capabil și de colectarea spațiului liber.
• Database Writer (DBWR) este cel care scrie datele modificate în baza de date;
• Checkpoint (CKPT) scrie înregistrările checkpoint ;
• Log Writer (LGWR) scrie înregistrările de tipul redo log pe disc;
• Recoverer (RECO) se folosește în sistemul cu baze de date distribuite și rezolvă tranzacțiile suspendate;
• Archiver (ARCH) când fișierele Redo Log se umplu cu date, ea le copiază în mod online în fișiere de arhivă;
• Lock (LCKn) acționează în sistemul Parallel server blocând procesele;
• Process Monitor (PMON), funcția care dacă procesele utilizator cad accidental, aceasta le recuperează;
• Dispacher (Dnnn) este funția cea mai folosită în sistemul multithreaded.
Figura
Există o legătură strânsă între procesele utilizator și cele Oracle. Această legătură este prezentată în figura de jos:
Figura
Interfața program reprezintă mecanismul de comunicare dintre un proces server și un proces utilizator. Totodata reprezintă o metodă standard de comunicare între o aplicație sau un instrument Oracle și Oracle Server.
CONCURENȚA, CONSISTENȚA ȘI SECURITATEA DATELOR
Într-un sistem oarecare de baze de date (de tip multiutilizator) pe primul loc stă asigurarea accesului concurențial de către mai mulți utilizatori la aceleași date. Astfel că Oracle folosește diverse mecanisme ca blocarea înregistrărilor și păstrarea a mai multor versiuni de date.
Faptul că setul de date văzut de către o instrucțiune nu se schimbă în timpul executării acesteia (consistență la nivel de instrucțiune), garantează consistența la citire. Asigură faptul că un utilizator care accesează baza de date nu așteaptă ca un alt utilizator să citească sau să scrie date și că scrierea unor date în baza de date nu implică un timp de așteptare pentru utilizatorii care doresc să citească aceste date. În același timp mai asigură faptul că un utilizator va aștepta la momentul scrierii în baza de date numai dacă încearcă să modifice același rând dintr-o tabelă (tranzacții concurente).
Mecanismul de blocare a rândurilor dintr-o tabelă a bazei prevede ca datele văzute sau modificate de un utilizator să nu poată fi modificate de către un alt utilizator până când primul nu termină accesul la date. Datele și structurile unei baze reflectă corect modificările efectuate într-o secvență logică. Blocarea poate fi executată executa manual sau automat.
Securitatea unei baze semnifică asigurarea de facilități ce permit controlul asupra modului în care o bază de date este accesată și folosită. Securitatea poate fi de două feluri : securitatea sistemului (System security) și securitatea datelor (Data security).
Primul tip, securitatea sistemului, controlează accesul și utilizarea bazei de date la nivelul sistemului (validează combinațiile de tip username/password, controlează spațiul pe disc alocat pentru un anumit utilizator precum și limitele resurselor pentru un utilizator).
Securitatea datelor deasemenea include și mecanisme care controlează accesul și utilizarea bazei de date la nivel de obiect.
Oracle Server garantează controlul accesului, care înseamnă restricționarea unui acces la informații. Spre exemplu dacă un utilizator oarecare primește de la administrator accesul la un anumit obiect al bazei de date, acesta la rândul său poate să ofere privilegiul său și altui utilizator, ceea ce evident nu este de dorit.
În Oracle controlul securității se face prin specificarea utilizatorilor bazei de date, a schemelor, a privilegiilor, a rolurilor, prin setarea limitelor de memorie, prin stabilirea limitelor de resurse și auditarea.
Utilizatorii bazei de date și schemele.
Un utilizator trebuie să se conecteze cu un nume potrivit pentru a accesa baza de date. Fiecare bază conține o listă de nume de utilizatori, iar fiecărui nume de utilizator îi este asociată o parolă. Fiecare utilizator face parte dintr-un domeniu de securitate acesta determinându-i rolurile și privilegiile, precum și spațiul pe disc alocat pentru el sau limitele de resurse pe care le poate utiliza cum ar fi timp, procesor etc).
În Oracle privilegiul reprezintă dreptul unui utilizator de a executa instrucțiuni SQL. Acestea la rândul lor pot fi: privilegii de obiecte și privilegii de sistem.
În cazul privilegiilor de obiecte, acestea restricționează un utilizator să execute numai anumite instrucțiuni SQL, însă nu asupra întregii baze de date. Sunt posibile două căi de acordare : implicit (prin atribuirea acestora unor roluri) și explicit (când privilegiile se atribuie în mod direct utilizatorilor). Rolurile pot fi atribuite utilizatorilor sau altor, astfel că sunt niște grupe de privilegii. Cu ajutorul acestora se permite :
• Proiectarea de aplicații inteligente (unde se pot activa sau dezactiva anumite roluri în funcție de utilizator);
• Manipulare dinamică a privilegiilor (în situațiile când modificăm un privilegiu de grup, el se va replica mai apoi și în rolul grupului);
• Micșorarea numărului activităților de atribuire a privilegiilor (astfel că administratorul bazei de date nu va mai fi nevoit să atribuie fiecare privilegiu în parte, tuturor utilizatorilor, în schimb va putea sa atribuie un set de privilegii unui rol, iar apoi acesta va fi disponibil utilizatorilor);
• Selecția disponibilității privilegiilor (privilegiile se pot grupa și ele pe mai multe roluri, care la rândul lor, în mod selectiv, se pot activa sau dezactiva).
Orice rol se poate crea cu parolă pentru a restricționa accesul neautorizat la o aplicație. Datorită acestei tehnici se folosește parola la momentul pornirii aplicației, apoi aplicația poate fi folosită fără ca utilizatorul să mai cunoască parola.
Privilegiile de sistem dau dreptul unui utilizator să execute o vastă gamă de instrucțiuni SQL, care în sens nedorit pot modifica datele și chiar structura bazei. Tocmai de aceea, de obicei, aceste se atribuie numai administratorilor bazei.
Cotele de memorie ce pot fi utilizate de către un utilizator se pot seta folosind opțiunile:
• Temporary tablespace. În această situație unui utilizator i se alocă tabele spațiu proprii în care acesta poate să-și creeze obiectele;
• Default tablespace. În acest caz utilizatorul poate crea obiecte ale bazei de date fără a specifica numele tabelei spațiu în care să fie create obiectele;
• Tablespace quotas. Se setează limitele fizice de memorie pentru tabelele spațiu proprii utilizatorilor.
Profilurile și limitarea resurselor.
Profilul reprezintă un element de securitate ce permite gestionarea resurselor ce se pot aloca utilizatorilor. Aceste resurse ce pot fi alocate sunt: numărul de sesiuni concurente, timpul procesorului, timpul utilizării unei sesiuni, restricții în utilizarea și creare parolelor. Diferite tipuri de profile se pot crea, iar mai apoi se pot administra fiecărui utilizator.
Cea care permite monitorizarea activităților executate de către utilizatori astfel încât să se poată efectua investigații cu privire la diferitele utilizări suspecte ale bazei, este Auditarea. Ea se poate efectua la nivel de instrucțiune, privilegiu sau chiar și obiect.
O bază de date are nevoie de recuperare atunci când apar căderi de curent sau defecțiuni ale calculatorului. Există câteva tipuri de erori ce pot duce la oprirea unei baze de date Oracle din care amintim : erori de utilizator, erori ale unor instrucțiuni sau ale proceselor utilizator, erori ale instanței, erori fizice pe disc.
Dintre structurile fizice folosite de Oracle în recuperarea unei baze de date sunt fișierele redo log, fișierele de control, segmentele rollback și copiile fizice ale datelor bazei de date. Fișierele redo log sunt utile pentru 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. Fișierele redo log on line sunt un ansamblu de două sau uneori și mai multe fișiere care înregistrează toate tranzacțiile finalizate. Ori de câte ori o tranzacție este finalizată (comisă) datele modificate sunt scrise în aceste fișiere. Utilizarea fișierelor este ciclică, adică atunci când se umple un fișier se utilizează celălalt. Fișierele redo log arhivate permit arhivarea fișierelor redo log umplute înainte de a fi rescrise. Se poate rula în modul ARCHIVELOG (caz în care baza de date poate fi integral recuperată atât pentru o eroare a instanței, cât și a discului) sau NOARCHIVELOG (caz în care baza de date nu mai poate fi recuperată decât după o eroare a instanței, nu și a discului). În primul mod recuperarea trebuie facută cu baza de date pornită, iar în al doilea caz cu ea oprită.
Fișierele de control conțin informații despre structura fișierelor bazei de date, dar și despre numărul curent al secvenței log folosit de procesul LGWR.
Pentru controlul tranzacțiilor se folosesc segmentele rollback.
Copiile bazei de date pot fi integrale sau parțiale. Copia integrală cuprinde toate fișierele de date, online redo log files și fișierele de control, iar copia parțială conține numai anumite părți ale bazei.
Din pricina modului în care lucrează procesul DBWR fișierele de date ale bazei de date pot conține blocuri potențial actualizate de către tranzacțiile nefinalizate sau să nu conțină blocuri de date actualizate de către tranzacțiile finalizate. Blocurile de date conținând tranzacții finalizate nu au fost încă scrise în fișierele de date, ci numai în fișierele redo log, ceea ce înseamnă că fișierele redo log conțin modificări de date care trebuie efectuate și în baza de date. Fișierele redo log pot conține date cu erori din unele tranzacții nefinalizate. Acestea trebuie eliminate când are loc recuperarea bazei de date. Din pricina situațiilor de mai sus, Oracle folosește doi pași diferiți în recuperarea unei baze: rolling forward și rolling backward.
Rolling forward înseamnă aplicarea (scrierea) asupra bazei de date a tuturor tranzacțiilor finalizate și memorate în fișierele redo log. Acest proces se execută în mod automat când se pornește baza de date dacă avem fișiere redo log online.
Rolling backward înseamnă ștergerea tuturor tranzacțiilor nefinalizate din fișierele redo log. Recovery Manager crează fișiere de salvare (backup) pentru fișierele de date ale bazei de date și restaurează sau recuperează baza de date din acesrte fișiere backup.
DICȚIONARUL DE DATE (DATA DICTIONARY)
Din principiu, fiecare bază de date Oracle deține un dicționar de date, care se poate defini ca un set de tabele și vederi folosite în modul read-only în a referi datele bazei. Dicționarul de date se actualizează automat de către Oracle ori de câte ori intervin modificări în structura bazei de date.
Dicționarul de date este alcătuit din tabele de bază și vederi create pe aceste tabele. Datorită faptului că memorează datele criptic tabelele de bază nu sunt accesibile. Utilizatorul SYS este proprietarul dicționarului de date. Schema SYS nu poate fi alterată de nici un utilizator.
Dicționarul de date (DD) este accesat în două situații: ori de câte ori Oracle prelucrează o instrucțiune a DDL sau de către orice alt utilizator pentru consultarea informațiilor cu legătură la baza de date. Dicționarul de date este adus în memoria SGA și este recomandat să nu se șteargă obiecte care să aparțină utilizatorului SYS. Deasemeni este indicat să nu se modifice niciodată date din DD, iar singura tabelă care face excepție este tabela SYS.AUDIS. Această tabelă poate crește mult în dimensiune, administratorul bazei de date putând șterge datele nefolosite.
Vederile Dicționarului de date sunt prefixate cu una din valorile USER, DBA sau ALL. Cele cu USER conțin informații cu referire la obiectele utilizatorilor, cele cu ALL despre toate obiectele dintr-o bază la care un utilizator deja are acces garantat, iar cele cu DBA furnizează informații cu referire la toată baza de date.
SYS este proprietarul tabelelor ce păstrează informații despre activitățile Oracle în tabele speciale. Acestea pot fi accesate doar de către administrator. Sinonimele lor le regăsim cu prefixul V$, iar numele lor cu V_$.
Tipurile de informații ce se pot obține din dicționarul de date sunt:
• Informații cu privire la fișierele Online Redo Log;
• Informații cu privire la tabelele spațiu;
• Informații cu privire la fișierele de date;
• Informații cu privire la obiectele bazei;
• Informații cu privire la segmentele bazei;
• Informații cu privire la extensii ale bazei;
• Informații cu privire la pachetele Oracle cu valoare de dicționar (Dictionary Storage).
• Informații cu privire la utilizatorii bazei de date și profilele acesteia;
• Informații cu privire la privilegiile și rolurile din baza.
Accesul la datele unei baze se realizează folosind instrucțiunile SQL sau PL (Procedural Language).
Instrucțiunile SQL se împart în:
• Instrucțiuni de definire a datelor – DDL. Acestea permit definirea, întreținerea și ștergerea unor obiecte ale bazei de date;
• Instrucțiuni de manipulare a datelor – DML care permit regăsirea, inserarea, actualizarea și ștergerea unor rânduri de date din tabele;
• Instrucțiuni de control a tranzacțiilor (Transaction Control Statements) permit controlul instrucțiunilor DML (COMMIT, ROLLBACK, SAVEPOINT etc);
• Instrucțiuni de control a sistemului Oracle permit utilizatorului să dețină controlul asupra proprietăților sesiunii curente prin activarea rolurilor sau setarea limbii;
• Instrucțiuni imprimate într-un limbaj gazdă (Embeded SQL Statements) și încorporează instrucțiuni DDL, DML și de control al tranzacțiilor.
O tranzacție reprezintă o unitate logică de lucru și cuprinde mai multe instrucțiuni SQL executate de către un singur utilizator. Tranzacția începe cu prima instrucțiune SQL executabilă și se termină cu finalizarea (commit) sau cu anularea tranzacției (rollback).
Finalizarea unei tranzacții face ca modificările efectuate de intrucțiunilor SQL în baza de date să fie permanente, iar anularea unei tranzacții duce la renunțarea la actualizările efectuate de instrucțiunile SQL până la un moment dat.
Tranzacțiile mari se pot marca cu puncte intermediare de salvare. Astfel activitățile efectuate între punctele de salvare sunt considerate finalizate, iar la momentul anulării acest lucru se va executa până la punctul de salvare dorit.
PL/SQL (Procedural Language/Structured Query Language) este un limbaj procedural al Oracle. El combină instrucțiunile SQL cu instrucțiunile de control a prelucrării (IF … THEN, WHILE și LOOP). Utilizarea procedurilor PL/SQL memorate în baza de date duce la diminuarea substanțială a traficului pe rețea. În baza de date pot fi stocate proceduri, funcții, pachete, triggeri.
Triggerii (declanșatorii) sunt blocuri de instrucțiuni scrise de programatori pentru a adăuga funcții suplimentare. Fiecare trigger are un nume și conține una sau mai multe instrucțiuni PL/SQL. Un trigger se poate asocia cu un eveniment și poate fi executat și întreținut asemeni unui obiect distinct. Numele „trigger” îi corespunde unui eveniment care se produce la momentul execuției unei aplicații.
LIMBAJUL C# SI PLATFORMA .NET
În alegerea numelui limbajului C#, creatorii săi se inspiră din notația ♯ (diez) din muzică, care indică faptul că nota muzicală urmată de ♯ este mai înaltă cu un semiton. Este o asemanare cu numele limbajului C++, unde ++ reprezintă incrementarea unei variabile cu valoarea 1, însă și faptul că C++ este mai mult decât limbajul C. Limbajul C# a fost dezvoltat de către Microsoft. Creatorii limbajului sunt Anders Hejlsberg, Scott Wiltamuth și Peter Golde.
Prima implementare C# distribuită la o scară largă a fost lansată de către Microsoft în anul 2000. De atunci a cunoscut o evoluție spectaculoasă. O mulțime de programatori de C, C++ și Java, au migrat cu ușurință spre C#, datorita asemănării acestor limbaje, dar mai ales calităților acestuia. În acest moment, C# și-a câștigat numeroși adepți la nivel mondial devenind unul dintre cele mai utilizate limbaje de programare.
Scurt istoric al îmbunătățirilor aduse cu fiecare versiune nouă este schițat în figura de mai jos:
Figura
Limbajul prezintă o serie de facilități dintre care se pot aminti cele mai importante :
C# este un limbaj simplu și modern, având utilitate generală și cu productivitate mare în programare.
E un limbaj orientat pe obiecte.
Ne permite dezvoltarea unor aplicații industriale robuste și durabile.
Deține suport pentru dezvoltarea de componente software, foarte necesare în medii distribuite. Astfel că se poate caracteriza C# nu numai ca un limbaj orientat pe obiect, ci și orientat spre componente.
Suport pentru internaționalizare, adică posibilitatea de a scrie aplicații ce pot fi adaptate cu ușurință pentru a fi utilizate în diferite regiuni ale lumii în limbi diferite, fără să fie necesare schimbări în arhitectura software.
C# gestionează automat memoria utilizată. Astfel că procesul de eliberare a memoriei ocupate (garbage collection) de obiecte ce nu mai sunt necesare aplicației, reprezintă o facilitate foarte importantă a sa. Programatorul nu trebuie să decidă singur, așa cum o face în C++, unde este locul și momentul în care un obiect sau mai multe trebuie distruse.
În C# se scriu și aplicații pentru sisteme complexe ce funcționează pe o varietate de sisteme de operare, dar și pentru sisteme dedicate (embeded systems) care se întind pe o plajă relativ largă, de la dispozitive portabile precum ceasuri digitale, smartphone-uri, MP3 playere, până la dispozitive staționare precum semafoare din trafic sau controlere pentru automatizarea producției.
Din punct de vedere al sintaxei, C# este derivat din limbajul C++, însă s-a influențat destul de mult și din alte limbaje de programare cum ar fi Java.
CE ESTE MICROSOFT .NET FRAMEWORK ?
Arhitectura .NET este o componentă software ce oferă un mediu de programare și de execuție a aplicațiilor compatibile sistemelor de operare Microsoft. Este inclusă în sistemele de operare Windows Server 2008 ,2012 și Windows Vista ,Seven ,8 , 8.1 și poate fi instalată pe sisteme mai vechi cum sunt Windows XP sau Windows Server 2003.
.NET Framework reprezintă un mediu ce permite dezvoltarea și rularea aplicațiilor și a serviciilor Web, indiferent de platformă. Limbajul C# este în strânsă legatură cu arhitectura .NET.
Inițial, C# a fost dezvoltat pentru crearea codului platformei .Net precum și destinația inițială a limbajului C a fost de a implementa sistemul de operare UNIX. Platforma .NET pune la dispoziție o colecție impresionantă de clase organizate în biblioteci, utilizate de C#. Trebuie precizat că C# funcționează având .NET ca infrastructură, dar .NET suportă și alte limbaje, cum sunt C++, Visual Basic, Java. În oricare dintre aceste limbaje programăm, avem la dispoziție aceleași biblioteci de clase. .NET realizează în acest fel interoperabilitatea limbajelor.
Platforma .NET este constituită din două componente importante:
Common Language Runtime (sau CLR). Acesta reprezintă mediul de execuție al programelor precum și modulul care se ocupă cu managementul și execuția codului scris în limbaje specifice .NET. Common Language Runtime furnizează servicii importante, cum sunt securitatea aplicațiilor, portabilitatea, managementul memoriei și tratarea excepțiilor.
Base Class Library Este Biblioteca de Clase .NET. Aceasta acoperă o plajă largă a necesităților de programare, incluzând interfața cu utilizatorul, conectarea cu bazele de date și accesarea datelor, dezvoltarea aplicațiilor web, comunicarea în rețele și altele. Codul bibliotecii este precompilat, este încapsulat de regulă în funcții, care sunt numite metode, iar programatorul le poate apela din propriul program.
La rândul lor, metodele aparțin claselor, iar clasele sunt organizate și separate între ele cu ajutorul spațiilor de nume (namespaces). În producerea de aplicații, un programator combină propriul cod cu cel al Bibliotecii de Clase .NET.
Modul de compilare a programelor pe platforma .NET
Când programăm într-un limbaj de programare interpretat, vom scrie codul și vom rula aplicația. Însă cu un interpretor specific limbajului, orice linie de cod este interpretată în momentul rulării și preschimbată imediat în cod mașină, dupa care executată. Partea bună este că putem rula codul până la primul bug, putem înlătura eroarea în cod iar apoi să continuăm execuția codului. Limbajul nu necesită timp de compilare și de legare. Partea neplăcută este că limbajele interpretate sunt lente. Limbajul Basic a fost inițial un limbaj interpretat, dar mai apoi, începând cu anii 1980, au apărut și versiuni compilate. Cele mai multe limbaje de scriptare Web sunt limbaje interpretate.
Codul scris într-un limbaj compilat, numit cod sursă, este translatat de către compilator într-un alt cod cât mai apropiat de nivelul mașinii, numit cod executabil (de exemplu codul conținut în fișierele (*.exe). Dacă apar erori în timpul compilării, atunci este necesar să le înlăturăm, după care trebuie compilat din nou. Însă dacă aplicația trece de compilare fără erori de sintaxă, se poate produce codul executabil și putem să rulăm aplicația. Aceste doua limbajele, C și C++, sunt exemple clasice de limbaje compilate. Privit din acest punct de vedere, C# este un limbaj compilat. Însă nu în sensul descris mai sus. Este necesar să știm că în urma compilării unui program C# nu rezultă un cod executabil ci un fișier numit “assembly” care este identificat cu extensia .exe sau .dll. Un astfel de fișier nu poate fi executat pe un sistem ce nu dispune de infrastructura .NET. Fișierul conține un tip special de cod, denumit și Limbaj Intermediar, sau CIL (Common Intermediate Language). Limbajul CIL se definește ca un set de instrucțiuni portabile, independente de orice tip de procesor și platformă. Figura de mai jos semnifică procesul de compilare a unui cod executabil pe platforma .NET.
Procesul de compilare pe platform .NET
Când un program se execută, CLR activează astfel un compilator denumit JIT (just in time) care preia codul CIL și îl transformă mai departe în cod executabil. Această transformarea se face la cerere, în sensul că o secvență de cod se compilează doar în momentul în care se utilizează pentru prima oară. Astfel un program compilat în format CIL poate rula pe un sistem pe care este instalat Common Language Runtime. Acest fapt asigură portabilitatea aplicațiilor .NET. Fișierul .exe sau .dll produs la compilare conține pe lângă codul CIL, așa numitele metadate care descriu datele utilizate de către aplicație.
Instrumente pentru dezvoltarea aplicațiilor .NET
Platformă .NET actuală ajunsă la versiunea 4.6. pune la dispoziția programatorilor două tool-uri pentru dezvoltarea de aplicații:
1. Visual Studio .NET și varianta free Visual Studio Express 2012
2. .NET Framework SDK
Pachetul de dezvoltare a aplicațiilor pentru .NET 4.6 (Microsoft .NET Framework 4.6 ), include:
.NET Framework
Compilatorare în linie de comandă pentru limbaje de programare precum : C#, C++ , Visual Basic, și Jscript.
Instrumente pentru crearea, depanarea și configurarea aplicațiilor .NET
Exemple și documentație.
Caracteristicile principale ale platformei .NET sunt:
Independența de procesor și de platform
Codul CIL este independent de sistemul de operare și de procesor. De aceea, în scrierea aplicațiilor nu trebuie să fim preocupați de caracteristicile hardware ale sistemului.Aplicațiile .NET pot fi dezvoltate și executate pe sisteme de operare non-Microsoft, (Mac OS X, numeroase distribuții Linux și Solaris, ca să numim numai câteva)
Managementul automat al memoriei
Alocarea și eliberarea memoriei nu mai este o problemă pentru programatori, datorită mecanismului automat de garbage collection, care își face foarte bine task-ul.
Interoperabilitatea limbajelor
Este cunoscut faptul ca diversele componente ale unei aplicații să fie scrise în limbaje diferite, suportate de către platforma .NET.
Securitate
La nivel de securitate .NET furnizează un model comun, valabil pentru toate aplicațiile. Acesta conține un mecanism bine structurat și unificat de tratare a excepțiilor . O excepție este un eveniment neprevăzut, care întrerupe execuția unui program, atunci când se execută o intrucțiune ilegală.
Portabilitate
Orice program scris pentru platforma .NET poate fi rulat fără modificari pe oricare sistem cu condișia ca acesta să aibe platforma este instalată.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Facilitatile Bazelor de Date ale Sistemului Oracle (ID: 121206)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
