Oracle
Arhitectura sistemului OracleI. ORACLE S.G.B.D RELATIONAL Inca de la aparitia sa, sistemul Oracle a fost definit ca un ansamblu complex de programe care asigura interfata intre o baza de date si utilizatorii acesteia. Astfel, rolul sau a afost acela de a organiza si prelucra volume mari si complexe de date in memoria externa. Principalele criterii care au trebuit sa fie indeplinite de Oracle pentru a fi considerat un SGBD relational, sunt urmatoarele: a. indeplineste functiile unui SGBD: descriere, manipulare, utilizarea, administrare, lucru care se realizezeaza prin. LDD (Limbajul de Descriere a Datelor, prin comenzi din SQL), LMD (Limbajul de Manipulare a Datelor, prin comenzi SQL, PL/SQL, Java) Interfete si instrumente specializate (Dveloper, Express etc) b. indeplineste obiectivele unui SGBD: independenta datelor, redundanta minima si controlata, facilitati de utilizare, securitatea datelor, integritatea datelor, partajabilitatea datelor, legaturile intre date, performante globale, administrarea si controlul datelor. obiectievle sunt indeplinite prin toate componentele sistemului Oracle. c. implementeaza modelul de date relational sub toate cele trei aspecte ale sale: structurarea datelor se face cu ajutorul notiunilor: domeniu, tabela (relatie), tuplu, atribut, chei, schema relatiei; restrictiile de integritate se implementeaza prin LDD din SQL. Acestea sunt: unicitatea cheii (UNIQUE; PRIMARY KEY), referentiala (REFERENTIAL-FOREIGN KEY), entitatii (NOT NULL), de comportament (CHECK). operatorii relationali implementati, provind din algebra relationala: selectie, proiectie, jonctiune, reuniune, diferenta, intersectie. Toti operatorii prezenti, sunt implementati prin clauzte specifice in comanda SELECT. d. implementeaza limbajul relational SQL (Structured Query Language): in Oracle este implementata o varianta extinsa de SQL standard, numita SQL*PLUS; pentru a suplini lipsa facilitatilor procedurale din SQL, Oracle are si un limbaj imperativ propriu numit PL/SOL (Programming Language SQL); e. functioneaza in arhitectura Client-Server cu procesele corespunzatoare: la instalarea sistemului Oracle, exista definite componente pentru Server si componente pentru arhitectura Client; Avantajele utilizarii arhitecturii Client-Server Oracle, sunt: clientul: concentreaza cererile de regasire, transmite cererile server-ului, primeste rezultatele si le prezinta, nu cunoaste localizarea datelor. server-ul: lucreaza multitasking, asigura concureanta la date, asigura integritatea bazei de date, prelucreaza cererile de regasire (realizeaza accesul), realizeaza optimiarea alocarii si a accesului, asigura control complex pe baze de date foarte mari, asigura portabilitate, compatibilitate, disponibilitate (non-stop) si conectare dinamica. f. functioneaza in mediu distribuit, respectand cele 12 reguli ale lui C.J.Date, dar are si versiuni de lucru pe statii individuale (workstations); g. detine instrumente CASE (Computer Aided Software Engineering) pentru activitatile de analiza si proiectare a aplicatiilor cu baze de date: componenta Oracle Designer este cea care asigura aceasta facilitate. h. se incadreaza in arhitectura multi nivel (multi-tier), facand trecerea de la arhitectura pe trei niveluri (pe componente) spre arhitectura NC (Network Computing). i. indeplineste cele 13 reguli ale lui Codd, privind cerintele ca un SGBD sa fie complet relational. j. indeplineste toate caracteristicile unui SGBD relational: caracteristici globale (limbaje relationale, controlul integritatii semantice a datelor, coerenta datelor, optimizarea cererilor de regasire, utilitare) caracteristici particulare (facilitati de descriere a datelor, facilitati de manipulare a datelor, facilitati de utilizare si administrare a datelor). k. extensia sistemului Oracle, s-a materializat in numeroase facilitati, dictate de contextul informatic si de noile cerinte ale economiei informationale (digitale). Cele mai importante facilitati Oracle sunt: lucrul distribuit in retea globala de calculatoare, facilitati de lucru orientate obiect, facilitati multimedia, gestionarea bazei de date pentru Internet, gestionare baze de date uriase (Data Warehouse), implementare tehnologii pentru analize complexe ale datelor (OLAP, data Mining etc) II. ARHITECTURA ORACLE Componentele care formeaza arhitectura Oracle sunt dispuse intr-o configuratie de tip Client/Server, deci pe doua niveluri. Tendinta actuala moderna pentru SGBD-uri este de structurare a arhitecturii pe trei sau mai multe niveluri (multi-tier), iar sistemul Oracle, incepand cu versiunea 8, se incadreaza si promoveaza aceasta tendinta: SGBD-ul este structurat pe trei niveluri: nucleul, interfetele si instrumentele de intretinere; lucrul efectiv se realizeaza intr-o retea de calculatoare, in arhitectura Client/Server cu tendinta de evolutie spre arhitectura Network Computing. Componentele de Client si, respectiv de Server, sunt plasate pe calculatoare diferite intr-o retea: serverul asigura memorarea si manipularea datelor, precum si administrarea BD;
clientul asigura interfata cu utilizatorul si lanseaza aplicatii care acceseaza datele din BD.
1. NUCLEUL SISTEMULUI: Contine componentele care dau tipul relational pentru SGBD Oracle: Limbajul relational de regasire SQL Limbajul procedural propriu PL/SQL NOTA: Sistemul Oracle creaza si intretine automat Dictionarul de Date (pentru lucrul efectiv cu comenzi). Acesta face parte din Baza de date Oracle si contine un set de tabele si viziuni accesibile utilizatorului, doar in consultare. 2. INTERFETELE: Sunt componentele care permit dezvoltarea aplicatiilor cu Baze de date. Acestea sunt: a.DEVELOPER: este componenta destinata dezvoltatorilor (programatorilor) de aplicatii. contine generatoarele FORMS (meniuri si videoformate), REPORTS (rapoarte) si GRAPHICS (grafica) b. DESIGNER: este componenta destinata analistilor de aplicatii ofera elemente de tip CASE pentru proiectarea aplicatiilor cu BD; c. EXPRESS: este destinat analizei datelor multidimensionale, folosind tehnologia de tip OLAP (On-Line Analytical Processing): d. ORACLE APPLICATIONS: permite dezvoltarea unor aplicatii de intreprindere (FINANCIALS, MANUFACTURING, PROJECTS etc): e. WEB DEVELOPER: permite lucrul in mediul Internet cu serviciile oferite de acesta; 3. INSTRUMENTELE: Sunt componente destinate intretinerii si bunei functionari a unei BD Oracle; Aceste instrumente sunt: a. ADMINISTRATOR TOOLS: contine mai multe utilitare destinate administratorului BD (deschidere/inchidere BD), autorizarea accesului, refacerea, conversii de date etc b. NET PRODUCTS: contine utilitare pentru lucrul distribuit in retea, protocoale de comunicatie API (Application Programe Interface), acces la Internet (Mail); c. BROWSERE: editoarele sunt instrumente destinate cautarii si intretinerii BD: III. STRUCTURI SI MECANISME IN ORACLE Pentru a permite dezvoltarea unei aplicatii cu baze de date, sistemul Oracle detine o serie de elemente si mecanisme interne, care sunt activate automat, atunci cand sunt necesare. A. ELEMENTELE UNEI BAZE DE DATE ORACLE: Pentru a putea fi construita in Oracle, bata de date va avea alocate automat o serie de resurse de sistem, dupa cum urmeaza: ZONELE DE MEMORIE interna alocate standard de Oracle: Zona globala de sistem (SGA System Global Area): contine buffere de informatii (zone de memorie) despre o sesiune Oracle, care servesc pentru memorarea temporala a tranzactiei; Zona globala de program (PGA Program Global Area): contine buffere alocate de server pentru fiecare client conectat la BD; Zona de context (CA Context Area): contine un buffer alocat automat unei comenzi SQL lansate de un client; PROCESELE ORACLE: Sunt prelucari care se executa la un moment dat, intr-o zona de lucru. Procesele pot fi: 2.1 CLIENT (Utilizator): sunt procese create pe noduri, la conectarea utilizatorului la server; SERVER: sunt procese create pe server, pentru diferite operatii asupra bazei de date (acces la tabele, comunicare etc) Nota: combinatia dintre zonele de memorie si procesele Oracle se numeste INSTANTA (ORACLE INSTANCE); zonele de memorie, procesele si instantele sunt elemente auxiliare ale unei baze de date Oracle; exemple de procese Oracle care se executa la instante sunt: o DataBase Writer (scrie in baza de date, datele modificate pe disc); o Process Monitor (trateaza esecurile); o System Monitor (operatia de refacere automata); o Process Check Monitor (prelucrarea pentru punctul de verificare) OBIECTELE DE TIP ORACLE: Sunt independente de alocarea fizica pe disc si alcatuiesc STRUCTURA LOGICA A UNEI BAZE DE DATE. Aceste obiecte sunt: 3.1 BAZA DE DATE: defineste o colectie de tabele tratate unitar; 3.2 TABELA DE DATE: este unitatea de memorare si tratare a datelor intr-o baza de date 3.3 TABELA VIRTUALA (VIZIUNEA): este modul cum vede un utilizator, la un moment dat, baza de date; viziunea este o structura logica ce contine o cerere de regasire complexa. 3.4 INDEXUL: este structura de date asociata unei tabele sau unui cluster; se poate face indexarea dupa una sau mai multe coloane ale unei tabele, care se numesc chei (ce pot fi unice sau multiple) sistemul Oracle utilizeaza mai multe moduri de indexare: arbori B simpli sau compusi, cheie inversa, bitmap; TIPURILE DE DATE FOLOSITE IN ORACLE: tipurile de date utilizate pentru descrierea datelor in memoria interna sau externa, sunt cele din standardul SQL (char/varchar2, number, date etc); FISIERELE: Fisierele aflate pe disc pentru memorarea datelor, formeaza STRUCTURA FIZICA A BAZEI DE DATE ORACLE 5.1 FISIERELE CU DATE (TABELE): o baza de date poate avea unul sau mai multe astfel de fisiere, dar un fisier de date se poate aloca numai cu o singura baza de date; astfel de fisiere (tabele) sunt: - tabelele de baza (TABLE_NAME), indecsii, clusteri, segmente, dictionarul de date (USER_nume unde nume indica obiectul apelat din dictionar: utilizator, restrictii, viziuni etc) 5.2 FISIERE DE CONTROL: contin informatii despre baza de date (parametrii, informatii de sincronizare, statistici) si descriu structura fizica a bazelor de date. sunt fisiere binare de mici dimensiuni; o baza de date are unul sau mai multe fisiere de control, dar un fisier de control se poate asocia numai unei singure baze de date. 5.3 FISIERELE JURNAL (REDO-LOG): se inregistreaza in ele, automat de catre sistem, toate modificarile efectuate asupra bazei de date, la o sesiune curenta, pentru a se putea reface ulterior in caz de avarii 5.4 ALTE FISIERE: sunt cele care se folosesc pentru instalarea sistemului Oracle sau pentru intretinerea bazei de date Oracle; astfel de fisiere sunt: fisiere de parametrii (cu extensia .ORA), de arhivare, de parole etc B. MECANISME INTERNE ORACLE: Pentru a se dezvolta o aplicatie cu baza de date Oracle, este necesar sa se cunoasca, atat elementele unei baze de de date Oracle (care ofera modul de implementare al conceptelor relationale), cat si mecanismele interne specifuice Oracle (care ofera modul de implementare a elementelor unei baze de date Oracle). Mecanismele interne specifice Oracle sunt: TIPURILE DE DATE ACCEPTATE DE ORACLE: aceste tipuri s-au extins de la o versiune la alta, avand ca baza standardul SQL; PSEUDOCOLOANELE si PSEUDOFUNCTIILE: sunt cuvinte rezervate , utilizate pentru accesul al informatiile interne Oracle; pseudocoloanele permit accesul la tabelele utilizator sau de sistem: ROWNUM (numarul liniei curente din tabela curenta), LEVEL (profunzimea nodului curent intr-un arbore) etc; pseudofunctiile nu au parametrii de intrare si sunt referite doar prin numele lor. Ele permit accesul la o serie de informatii din sistem: USER (numele utilizatorului conectat), SYSDATE (data si ora sistemului) etc. CONTEXTUL SI CURSORUL: sunt zone de memorie gestionate de Oracle, printr-o serie de parametrii setati initial prin fisierul INIT.ORA contextul este o zona de memorie alocata si gestionata de sistem pentru a se putea executa o comanda. El contine informatiile necesare oricarei comenzi: format, adresa, rezultat etc; cursorul este un identificator (pointer) cu ajutorul caruia se manipuleaza un context. Cursorul poate fi: o Cursor Implicit: este creat si gestionat de catre sistem pentru a a trata o linie dintr-o tabela (INSERT, UPDATE, SELECT pentru o linie) o Cursor Explicit: este creat si gestionat de utilizator pentru a trata mai multe linii din tabele (SELECT pentru mai multe linii). FETCH: este o operatie elementara, care se executa pentru orice SELECT care este utilizat intr-un cursor. Fetch are rolul de a muta liniile (tuplurile) din tabele in zona de memorie utilizator. Comanda Fetch se utilizeaza in legatura cu un cursor explicit. TRANZACTIA: tranzactia este un ansamblu omogen de comenzi intr-o sesiune de lucru utilizator; exista cateva caracteristici ale oricarei tranzactii, pe care Oracle le respecta in totalitate: o tranzactia se utilizeaza pentru asigurarea accesului concurent; o o tranzactie fie se ia in considerare (se valideaza) in totalitatea sa, fie nu se valideaza deloc; o daca o tranzactie nu este terminata (validata), datele aferente sunt indisponibile pentru actualizare pentru un alt utilizator. Pentru consultare, ele sunt disponibile, dar, doar in starea precdenta tranzactiei. o tranzactia poate incepe explicit (BEGIN TRANZACTION END TRANZACTION) sau implicit (prin conectarea la o baza de date); o tranzactia se poate tremina explicit (prin comenzile COMMIT validare sau ROLL BACK anulare) sau implicit (validare comenzile din LDD sau anulare intreruperile anormale); o tranzactia se poate descompune in subtranzactii, prin utilizarea comenzii SAVEPOINT. ACCESUL LA O BAZA DE DATE ORACLE LA DISTANTA: este posibil doar in anumite conditii: o sa existe cel putin un calculator situat la distanta, care sa fie conectat fizic la calculatorul local; o sa existe un protocol de comunicatie, acceptat de ambele calculatoare si de Oracle (astfel de protocoale sunt DECNET, TCP/IP, SPX/IPX etc); o ambele calculatoare care se conecteaza, trebuie sa contina componentele Oracle de comunicatie (NET Products).
|