Facilitatile Bazelor Sistemului Oracle

FACILITĂȚILE BAZELOR 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 s-a 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 tendința de trecere de la arhitectura client/server la 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 funcționalități diferite, astfel că serverul trebuie să asigure memorarea și manipularea datelor, precum și administrarea bazei de date î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 din baza de date, 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 de CASE 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 componente destinate bunei funcționări și întreținerii unei baze Oracle. Enterprise Manager Console conține mai multe utilitare destinate 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, care permite 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 tabelele spațiu (tablespaces), schema de obiectel a bazei de date, blocurile 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ă direct la datele unei baze de date(acestea pot fi tabele, vederi, secvențe, proceduri memorate, sinonime, indecși, clustere și link-uri de bază de date).

Blocurile de date, extensiile și segmentele sunt elemente de control eficient al spațiului de memorie externă pe disc aferent unei baze de date. Unitatea de memorie cea mai mică 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.

Segmentul este format 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 pe care rezidă SGBD Oracle, folosite pentru memorarea structurilor logice ale bazei de date ș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 de date, sub forma structurilor logice ale acesteia (tabele, vederi, secvențe, proceduri memorate, sinonime, 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 (Redo Log files) sunt folosite pentru memorarea tuturor schimbărilor de date produse asupra unei baze de date, astfel încât dacă se întâmplă o cădere de curent să se prevină distrugerea datelor bazei de date. Se pot folosi simultan mai multe fișiere de acest fel care să rezide pe discuri diferite.

Fișierele de control (Control files) sunt folosite pentru memorarea informațiilor necesare pentru controlul structurii fizice a unei baze de date (numele bazei de date, numele și locațiile fișierelor de date, data creerii bazei de date etc).

Instanța Oracle (Oracle instance) este combinația 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.

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 blocurile de date cele mai recent utilizate pentru a reduce utilizarea discului);

• Redo Log Buffer (conține datele despre blocurile modificate);

• Shared Pool (pentru prelucrarea instrucțiunilor SQL);

• Cursorii (Statement Handles or Cursores) folosiți pentru manipularea instrucțiunilor unui limbaj gazdă folosind facilitatea Oracle Call Interface.

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 al sistemului de operare care poate executa o serie de instrucțiuni (pași). Este cunoscut și sub numele de job sau task. Procesul are propria sa 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 către un alt proces pentru a executa funcția cerută de către acesta. Procesul utilizator (user proces) este creat și menținut pentru a executa codul de program aferent unui anumit limbaj (C++) sau un produs Oracle (Oracle tool), SQL*Forms, Sql*Graphics etc.

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. Aceste funcții sunt:

• Database Writer (DBWR) este cel care scrie datele modificate în baza de date;

• Checkpoint (CKPT) scrie înregistrările checkpoint la timpul potrivit ;

• System Monitor (SMON) execută recuperarea unei instanțe la momentul pornirii, colectează spațiul liber etc;

• Log Writer (LGWR) scrie înregistrările redo log pe disc;

• Process Monitor (PMON) recuperează procesele utilizator dacă acestea cad accidental;

• Recoverer (RECO) rezolvă tranzacțiile suspendate în sistemul cu baze de date distribuite;

• Archiver (ARCH) copiază în mod online fișierele Redo Log în fișiere de arhivă atunci când acestea se umplu cu datei;

• Lock (LCKn) blocheză procesele în sistemul Parallel server;

• Dispacher (Dnnn) folosit în sistemul multithreaded.

Legătura dintre procesele utilizator și procesele Oracle este prezentată în 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.

2.4. CONCURENȚA, CONSISTENȚA ȘI SECURITATEA DATELOR Într-un sistem de baze de date (de tip multiutilizator) principala preocupare este 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 alt utilizator să citească date 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 de date asigură 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 pe bază de privilegii. De exemplu dacă unui utilizator i se atribuie privilegiul de a accesa 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ă folosească o aplicație și 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 are un domeniu de securitate care îi determină rolurile și privilegiile, spațiul pe disc alocat și 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 permit unui utilizator să execute numai anumite instrucțiuni SQL și numai în cadrul schemei sale, însă nu asupra întregii baze de date. Există două căi de acordare implicit (prin atribuirea acestora unor roluri, care la rândul lor sunt acordate utilizatorilor) și explicit (privilegiile se atribuie în mod direct utilizatorilor). Rolurile sunt niște grupe de privilegii, care sunt atribuite utilizatorilor sau altor roluri. Cu ajutorul acestora se permite :

• Proiectarea de aplicații inteligente (în care se pot activa sau dezactiva anumite roluri funcție de utilizatorii care încearcă să utilizeze aplicația);

• Manipulare dinamică a privilegiilor (în situațiile când se modifică un privilegiu de grup, acesta se va replica în rolul grupului; modificarea privilegiului se propagă automat la toți utilizatorii din grup);

• Micșorarea numărului activităților de atribuire a privilegiilor (astfel că administratorul bazei de date în loc să atribuie fiecare privilegiu în parte, tuturor utilizatorilor, va putea sa atribuie un set de privilegii unui rol, care apoi va fi disponibil utilizatorilor);

• Selecția disponibilității privilegiilor (privilegiile se pot grupa pe mai multe roluri, care la rândul lor, în mod selectiv, pot fi activate sau dezactivate).

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 sesiunilor concurente, timpul procesorului, timpul utilizării unei sesiuni, restricții în utilizarea parolelor. Diferite tipuri de profile se pot crea, care apoi vor fi atribuite fiecărui utilizator.

Cea care permite monitorizarea activităților executate de către utilizatori astfel încât să se poată efectua investigații referitoare la utilizările suspecte ale bazei de date 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 determina 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.

Structuri 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 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. Fișierele redo log on line sunt un set de două sau 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 poate fi recuperată numai 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. Se execută automat la momentul pornirii bazei de date dacă avem fișiere redo log online.

Rolling backward înseamnă ștergerea tuturor tranzacțiilor nefinalizate din fișierele redo log. Acest pas se execută automat după primul pas. 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)

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. Nu se vor modifica 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 ALL despre toate obiectele din baza la care are acces un utilizator, 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 care pot fi accesate numai de către administrator. Sinonimele lor sunt prefixate cu V$, iar numele lor este prefixat cu V_$.

Tipurile de informații ce se pot obține din dicționarul de date sunt:

• Informații despre fișierele Online Redo Log;

• Informații despre tabelele spațiu;

• Informații despre fișierele de date ( Data Files);

• Informații despre obiectele bazei de date;

• Informații despre segmentele bazei de date;

• Informații despre extensii ale bazei de date;

• Informații despre pachetele Oracle cu valoare de dicționar (Dictionary Storage).

• Informații despre utilizatorii bazei de date și profilele acesteia;

• Informații despre privilegiile și rolurile din baza de date

Accesul la datele unei baze de date se realizează folosind instrucțiunile SQL (Structured Query Language) sau PL/SQL (Procedural Language).

Instrucțiunile SQL se împart în:

• Instrucțiuni de definire a datelor – DDL (Data Definition Statements). Acestea permit definirea, întreținerea și ștergerea unor obiecte ale bazei de date;

• Instrucțiuni de manipulare a datelor – DML (Data Manipulation Statements), 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 (System Control Statements) permit utilizatorului să controleze proprietățile sesiunii curente prin activarea sau dezactivarea 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 este o unitate logică de lucru care cuprinde una sau mai multe instrucțiuni SQL executate de către un singur utilizator. Tranzacția începe cu prima instrucțiune SQL executabilă și se termină în mod explicit cu finalizarea (commit) sau, după caz, 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 (roll back) unei tranzacții duce la renunțarea la actualizările efectuate de instrucțiunile SQL până la un moment dat.

Tranzacțiile mari pot fi marcate cu puncte intermediare de salvare. Acest lucru permite ca activitățile efectuate între punctele de salvare să fie considerate finalizate, iar la momentul anulării (rollback) acest lucru să se execute până la un anumit punctul de salvare specificat.

PL/SQL este un limbaj procedural Oracle care 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 reducerea 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 unei aplicații. Fiecare trigger are un nume și conține una sau mai multe instrucțiuni PL/SQL. Un trigger poate fi asociat cu un eveniment și poate fi executat și întreținut ca un obiect distinct. Numele unui trigger corespunde unui eveniment (runtime events) 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.

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 către obiectele care nu mai sunt necesare aplicației, reprezintă o facilitate foarte importantă a limbajului. Programatorul nu mai trebuie să decidă singur, așa cum o face de pildă î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ă largă, de la dispozitive portabile cum ar fi 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 de către Microsoft pentru crearea codului platformei .Net, la fel cum 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

Actuala platformă .NET a ajuns la versiunea 4.6. Microsoft pune la dispoziția programatorilor două unelte pentru dezvoltarea aplicațiilor:

1. Visual Studio .NET și varianta free Visual Studio Express 2008

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 limbajele de programare: 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ă fiți preocupați de caracteristicile hardware sau software ale sistemului. Spre surpriza multor programatori, 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

Alocara și eliberarea memoriei nu mai este o problemă care trebuie să-i preocupe pe programatori, datorită mecanismului automat de garbage collection.

Interoperabilitatea limbajelor

Este un fapt comun ca diversele componente ale unei aplicații să fie scrise în limbaje diferite, suportate de către platforma .NET.

Securitate

.NET furnizează un model comun de securitate, valabil pentru toate aplicațiile, care include un mecanism unificat de tratare a excepțiilor . O excepție este un eveniment neprevăzut, care întrerupe execuția unui program, atunci când de pildă, se execută o intrucțiune ilegală.

Portabilitate

Un program scris pentru platforma .NET poate rula fără nici o modificare pe oricare sistem pe care platforma este instalată.

Similar Posts

  • Stimularea Creativitatii Prescolarilor Prin Activitatile DIN Domeniul Experiential Estetic Si Creativ. Aplicatie LA Grupa Mijlocie

    STIMULAREA CREATIVITĂȚII PREȘCOLARILOR PRIN ACTIVITĂȚILE DIN DOMENIUL EXPERIENȚIAL ESTETIC ȘI CREATIV. APLICAȚIE LA GRUPA MIJLOCIE Introducere Educația are un rol specific în viața omului, cu cât acest proces începe mai timpuriu cu atât individul va fi mai ușor de modelat și mai ușor va asimila cunoștințele primite. Din această cauză au fost înființate instituții unde…

  • Securitatea Cibernetica

    UNIVERSITATEA “BABEȘ-BOLYAI” CLUJ-NAPOCA FACULTATEA DE ISTORIE SI FILOSOFIE MANAGEMENTUL SECURITĂȚII ÎN SOCIETATEA CONTEMPORANĂ SECURITATEA CIBERNETICĂ Coordonator Științific Lector dr. Vasile-Adrian CĂMĂRĂȘAN Absolvent Moisii Georgiana Maria ANUL 2016 CLUJ NAPOCA Introducere Alegerea temei centrale a acestei cercetări este ”Securitatea ciberntică”. Alegerea temei se justifică prin următorii factori : subiectele au fost și sunt de actualitate deoarece…

  • Aplicatii Java pe Telefoane Mobile. Mesagerie Sms. Cmcchat

    Cuprins Introducere…………………………………………………..3 Limbajul Java………………………………………………………….3 J2ME…………………………………………………………………..8 Specificațiile CLDC……………………………………………………..13 CLDC 1.0………………………………………………………………………………….13 CLDC 1.1………………………………………………………………………………….42 Specificațiile MIDP………………………………………………………44 MIDP 1.0…………………………………………………………………………………..44 MIDP 2.0…………………………………………………………………………………..57 Wireless Java API……………………………………………………….64 Comunicatii wireless.Prezentare……………………………………………….64 Specificația Java pentru Bluetooth…………………………………65 SMSChat…………..……………………………………….68 Introducere……….…………………………………………………..68 Implementare…………………………………………………………70 Interfata…….…………………………………………………………75 Bibliografie…………………………………………………79 Introducere Limbajul Java Java este un limbaj de programare dezvoltat inițial de Sun Microsystems și lansat în 1995 ca element de bază al platformei…

  • Promovarea Turismului Prin Site Uri Web

    PROMOVAREA TURISMULUI PE SITE-URI WEB CUPRINS INTRODUCERE Capitolul I. SISTEME INFORMAȚIONALE 1.1 Sisteme informationale ale agentiilor de turism 1.2 Sisteme informationale ale unitatilorfurnizoare de serviciituristice Capitolul II. PROMOVAREA MULTIMEDIA 2.1 Promovarea multimedia a agentiilor de turism 2.2 Promovarea multimedia a unitatilor furnizoare de servicii turistice 2.3 Analiza eficienței promovării multimedia (analiza SWOT) Capitolul III. PROPUNERI…

  • . Topici de Modelare Avansate In Baza de Date

    INTRODUCERE MOTIVAREA ALEGERII TEMEI IMPORTANTA TEMEI IN ACTUALITATE La inceputul anilor '50, singurul mod de a programa un calculator era folosirea codului masina,secvente ordonate de cifre binare care ii spuneau masinii de calcul ce are de facut.Complexitatea programelor crescand ,oamenii s'au gandit sa creeze un program in cod masina care sa stie sa interpreteze secvente…

  • Implementarea Unor Algoritmi de Calcul a Distantelor Minime In Grafuri Finite

    CAPITOLUL I CONCEPTUL DE GRAF FINIT.REPREZENTARE.EXEMPLE. I.1. Conceptul de graf finit.Noțiuni generale. În general, pentru situațiile care necesită la rezolvare un oarecare efort mintal (și un caz tipic este cel al celor din economie), se caută, în primul rând, o metodă de reprezentare a lor care să permită receptarea întregii probleme dintr-o privire (pe cât…