Sunteți pe pagina 1din 66

1. Coninutul temei Datele sunt stocate n memoria intern i memoria extern a oricrui sistem de calcul.

Organizarea datelor se refer la procesul de definire i structurare a datelor n colecii de date, precum i la realizarea legturilor ntre elementele unei colecii i ntre coleciile de date. Organizarea datelor se proiecteaz n scopul regsirii automate a acestora dup diverse criterii. Obiectivele organizrii datelor sunt, n principal, urmtoarele: timp de acces minim la date; apariia o singur dat a datelor n sistem; spaiu de memorie intern i extern pentru date ct mai mic; reflectarea prin organizare a tuturor legturilor dintre procesele economice pe care aceste date le reprezint; posibilitatea modificrii structurii datelor i a relaiilor dintre date fr a produce schimbri n programele care le gestioneaz.

Tehnicile de organizare a datelor n colecii de date sunt: fiierul de date i baza de date. Fiierul de date reprezint o colecie de date memorat pe un suport tehnic ntr-o succesiune de nregistrri. Accesul la o nregistrare din fiierul de date se obine prin parcurgerea nregistrrilor fiierului n secvena n care au fost stocate (acces secvenial) sau pe baza unei chei de identificare care s permit regsirea rapid a nregistrrii (acces direct). Accesul direct se obine prin indexarea fiierelor, adic prin crearea unor tabele de indeci care pentru fiecare valoare a atributului cheie primar (atribut care permite identificarea n mod unic a unei nregistrri din fiier) s conin adresa corespunztoare (n cadrul fiierului) a fiecrei nregistrri. Aceast organizare a datelor n fiiere de date prezint urmtoarele dezavantaje: redundan mare (stocarea acelorai date n mai multe fiiere); acces dificil la date; exploatarea multiutilizator a datelor necesita operaii suplimentare de sortare, fuziune, ventilare etc.; izolarea datelor, adic nu pot fi realizate programe pe calculator care s acceseze datele ntr-o manier global; actualizarea datelor, prin adugare, modificare, tergere, genereaz conflicte atunci cnd mai muli utilizatori doresc s modifice simultan aceleai date; dependena programelor fa de date; deoarece datele se descriu n programe, modificrile din structura datelor oblig la efectuarea de corecturi n programele pe calculator; problemele neprevzute nu obin rspunsuri rapide; fiecare dat este descris independent n toate fiierele n care apare; dac ntr-un fiier se modific formatul i valoarea unei date, acea modificare nu se transmite automat, pentru aceeai dat, n toate fiierele de date; ca urmare, pentru aceeai dat se creeaz posibilitatea apariiei de valori diferite n fiiere diferite (inconsistena datelor); nu se menine integritatea datelor, atunci cnd fiierul este realizat cu limbaje diferite. Creterea necesarului de date, informaii i cunotine pentru agenii economici i progresele tehnologiilor informaiei i ale comunicaiilor (IT&C) au determinat organizarea datelor n baze de date. Noiunile fundamentale folosite n organizarea datelor sunt entitatea, atributul i valoarea. ntre acestea exist legturi de interdependen astfel:

o entitate are mai multe atribute, iar atributele au o anumit mulime de valori; entitatea reprezint un obiect concret sau abstract definit prin proprietile sale; orice proprietate a unui obiect este exprimat printr-o pereche (ATRIBUT, VALOARE). Exemplul a) - materialul M are lungimea mare unde lungimea este atributul, iar mare este valoarea. (LUNGIMEA, MARE); Exemplul b) un client persoan fizic al unei societi comerciale poate fi reprezentat prin mulimea de perechi: (NUME, POPESCU); (PRENUME, ION); (LOCALITATE, BUCURETI); (TELEFON, 0213211231); (BANCA, BCR); (CONT_BANCAR, RO15RZBR0000070002170022). 1.2. Relaii ntre date. ntre date exist relaii sau legturi diferite. ntre datele care aparin unor tipuri de entiti se pot realiza dou feluri de legturi: prim legtur se exprim prin apartenena datelor la entitate; a doua legtur se definete pentru entitile de acelai tip sau de tipuri diferite. Exemple: a) Dac se noteaz cu SALARIATI mulimea salariailor unei societi comerciale, ntre datele a1 i a2 ce aparin acestei mulimi, se pot defini relaii de tipul: a1 are aceeai funcie de ncadrare cu a2; a1 are acelai salariu cu a2; a1 are aceeai vrst cu a2 etc. b) Se consider dou clase de entiti: PRODUSE_BANCARE i CLIENTI. ntre datele acestor dou clase de entiti se pot defini relaiile: un produs bancar poate fi achiziionat de unul sau mai muli clieni ai bncii; un client al bncii poate achiziiona unul sau mai multe produse bancare. 1.3. Structuri de date Structura de date este o colecie de date ntre care s-au stabilit un ansamblu de relaii pe baza crora funcioneaz un mecanism de selecie i identificare a componentelor. Altfel exprimat, o structur de date reprezint un anumit aranjament al datelor atunci cnd sunt stocate n memoria unui calculator. Datele din structurile de date pot fi manipulate cu ajutorul algoritmilor, n mai multe moduri, sortnd datele sau cutnd un anumit element. Structurile de date, n afara situaiei de instrumente de programare, servesc pentru stocarea i modelarea unor date din universul real. Mulimea de date, asociat structurii de date, poate cuprinde datele unui tip sau ale mai multor tipuri de entiti. Componentele structurii se identific prin nume sau prin poziia pe care o dein n structur n raport cu ordinea specificat. n situaia n care pentru localizarea unei componente se parcurg toate celelalte componente dinaintea ei, structura are acces secvenial. n schimb, atunci cnd o component poate fi selectat fr a ine seama de celelalte, structura are acces direct. Componentele unei structuri de date sunt date elementare sau sunt ele nsele structuri de date. Asupra unei structuri de date se pot efectua urmtoarele operaii: crearea (nseamn memorarea datelor iniiale pe suportul de stocare); actualizarea (schimbarea strii structurii prin adugare, modificare sau tergere de elemente, modificarea valorii sau relaiilor dintre elemente); consultarea (accesarea componentelor structurii de date);

sortarea (aranjarea elementelor unei structuri de date n conformitate cu criterii prestabilite); ventilarea (divizarea unei structuri de date n dou sau mai multe structuri de date); fuzionarea (formarea unei structuri de date noi din dou sau mai multe structuri de date) etc. Structurile de date care prezint aceeai organizare i asupra crora se execut aceleai operaii formeaz un anumit tip de structuri de date. Tipul de structur de date reprezint o mulime ordonat de date ntre care s-au stabilit anumite relaii i pentru care realizarea operaiilor se efectueaz cu un grup de operatori de baz care au o anumit semantic. Dac se ia n considerare tipul componentelor, structurile de date se clasific n: omogene (componentele sunt de acelai tip); eterogene (componentele au tipuri diferite). Cnd structura de date se descompune n structuri de date de acelai tip, atunci structura obinut este denumit recursiv. Dup nivelul de structurare al datelor, se deosebesc: structura fizic (structura de date care se refer la modul de implementare pe supori tehnici informaionali); structura logic (modul de ordonare a datelor i modul de folosire a operatorilor de tratare a datelor). Dac se ia n considerare posibilitatea modificrii valorilor i a structurilor, se identific: structuri statice (pe tot parcursul existenei acestora prezint acelai numr de componente i n aceeai ordine (adic au cardinalitate finit, prin cardinalitate nelegnd numrul elementelor mulimii); structuri dinamice (permit modificarea valorilor i a structurii de date prin aplicarea unor operatori; aceste structuri de date au cardinalitate infinit deoarece prezint un numr nelimitat de componente). O structur logic poate fi implementat att ca structur static ct i ca structur dinamic. Exist ns i structuri logice ce nu pot fi implementate static. n organizarea datelor trebuie definit att structura logic, ct i cea fizic, deorece cele dou nivele se condiioneaz reciproc. Din punctul de vedere al tipului de structur de date, se deosebesc: structura de date punctual (o entitate de grup izolat); structura de date liniar (cnd exist o relaie de ordine total ntre elementele coleciei de date; primul element nu are predecesori; ultimul element nu are succesori; ntre date se stabilesc relaii de tipul unu-la-unu; cnd ultimul element coincide cu primul element, structura liniar devine structur circular sau inelar); structura de date arborescent (este denumit i structur de date ierarhic sau descendent; acest tip de structur de date se definete cnd exist o relaie de ordine ntre elementele coleciei de date; exist un element unic care este denumit nodul rdcin (root node);orice nod diferit de nodul rdcin prezint un predecessor imediat unic; orice nod care nu este terminal prezint un numr finit de succesori imediai; ntre noduri se stabilesc relaii de tipul unu-la-muli);

structura de date reea (acest tip de structur de date se definete cnd exist o relaie de preordine ntre elementele coleciei de date; un nod prezint mai muli predecesori; un nod poate fi predecesor pentru propriul su predecesor; ntre elementele reelei se stabilesc relaii de tipul muli-la-muli); structura de date relaional (acest tip de structur de date este format din mai multe tabele, relaii sau tablouri de date elementare). Datele i structurile de date pot fi predefinite sau definite de utilizator. Un sistem de calcul din compunerea sistemului informatic are organizate datele ntr-o ierarhie care ncepe cu bii i octei (bytes) i continu cu cmpuri, nregistrri, fiiere, baze de date i depozite de date. Sistemul baz de date se definete ca fiind ansamblul de colecii organizate de date, mpreun cu descrierea datelor i a relaiilor dintre ele, care reprezint, complet, corect i coerent, universul real al organizaie economice (compartimentului specializat al acesteia) prin caracteristicile relevante (reprezentative) ale elementelor sale, percepute de sistem prin semantica lor (semnificaia lor real) i prin legturile dintre aceste caracteristici (fig. 2.1). Conceptul de baz de date a fost introdus n anul 1969, cu prilejul prezentrii primului raport CODASYL. Ulterior i alte grupuri de lucru specializate (IIBM, ANSI, DBTG) i-au adus contribuia la standardizarea conceptelor din teoria bazelor de date.

Percep ie

Reprez entare
UNIVERS REAL

DOMENIUL SEMANTIC ********** BAZA DE DATE

COLECII DOMENIUL CONCEPTUAL


CARACTERISTICI

DE DATE
SGBD

Percepie Reprezen tare

Fig. 2.1 Definirea conceptului de baz de date Colecia de date, se definete ca fiind mulimea de valori (date) pe care le iau caracteristicile reprezentative ale unui element din universul real al organizaiei economice,

dac la fiecare moment de timp se aplic asupra lor un predicat, o aciune din realitatea organizaiei economice, mpreun cu domeniile de definiie reale ale acestor caracteristici. ntr-un sistem baz de date, descrierea datelor const n descrierea structurii de date a sistemului baz de date i n descrierea regulilor care asigur coerena datelor, n raport cu universul real al organizaiei economice reprezentat. Se reamintete c tipurile de structuri logice de date sunt: punctual, liniar, arborescent, reea, relaional, orientat pe obiecte (OO). Structura de date a unui sistem baz de date este determinat de modelul abstract de reprezentare a datelor folosit, numit baz de date. n funcie de tipul stabilit pentru legturile dintre datele din coleciile de date (ierarhic, reea, relaional, orientat pe obiecte), s-au realizat mai multe modele abstracte de reprezentare a datelor, dar fiecruia i corespunde o singur structur de date a sistemului baz de date. Din acest motiv s-a generalizat utilizarea conceptului de baz de date, BD sau DB (DataBase), care este folosit att pentru denumirea structurii de date a unui sistem baz de date, ct i pentru denumirea modelului abstract de reprezentare a datelor care o determin. Mai mult chiar, conceptul de baz de date denumete att colecia organizat, ct i structura de date folosit pentru reprezentarea acesteia n sistemul baz de date. Sistemul de gestiune a bazei de date, SGBD sau DBMS (Data-Base Management System) reprezint un ansamblu complex de programe care asigur interfaa dintre baza de date i utilizator. O baz de date trebuie s satisfac urmtoarele condiii: structura bazei de date trebuie s asigure informaiile necesare i suficiente pentru ndeplinirea cerinelor de informare i decizie; s asigure o independen sporit a datelor fa de programe i invers; s se realizeze o redundan (cardinalitatea informaiilor coleciilor de date) minim i controlat a datelor memorate; accesul la datele stocate n baza de date s fie rapid i eficace. O baz de date poate s fie exploatat, de regul, n regim de prelucrare pe loturi (batch) i n regim conversaional. Accesarea bazei de date se realizeaz prin aplicaii generale, programe de aplicaie, limbaje de manipulare autonome (procedurale i neprocedurale), interfee specializate cu limbajele de programare clasice etc., local sau de la distan, prin utilizarea calculatoarelor singulare sau a reelelor de calculatoare. Rezultatele interogrilor utilizatorilor se prezint sub form vizual, listat, prin memorare pe diveri supori tehnic de date, local sau la distan. Sistemul baz de date are rolul de organizare i stocare a unor volume mari de date, n vederea gestionrii, prelucrrii, distribuirii i utilizrii multiple, folosind sistemele de calcul, programele utilitare i programele de aplicaie. Pornind de la funcia sa, un sistem baz de date este format, ca structur general, din: colecii de date, baza de date, SGBD, programe de aplicaie i utilitare, precum i utilizatori. Dac conceptul de baz de date denumete att coleciile de date ct i structura de date folosit pentru reprezentarea acesteia, atunci structura general a sistemului baz de date este baza de date, SGBD, programe de utilizare, utilizatori. Arhitectura unui sistem baz de date este prezentat n fig.4.2. n conformitate cu specificaiile utilizatorilor finali (end-users), programatorii de aplicaie, avnd la dispoziie utilitare (programe specializate de proiectare) i prin colaborarea cu administratorul bazei de date (acesta lucreaz nemijlocit cu schema bazei de date), pun la punct programele de

aplicaie. Aa cum s-a precizat deja, interfaa dintre baza de date i schema BD, utilitare i programele de aplicaie este sistemul de gestiune a bazei de date, SGBD. Obiectivele unui SGBD sunt, n principal, urmtoarele: asigurarea independenei datelor fa de aplicaie; asigurarea redundanei minime i controlate a datelor; asigurarea tuturor facilitilor posibile de exploatare a datelor; asigurarea securitii i proteciei datelor mpotriva accesului neautorizat (inclusiv prin criptarea datelor); asigurarea coerenei i integritii datelor mpotriva tergerilor accidentale sau intenionate; asigurarea partajrii datelor (accesul concurent al utilizatorilor la baza de date); asigurarea nivelului de performan global (volum mare de date complexe gestionate cu un timp de rspuns acceptabil la adresarea cererilor de interogare din partea utilizatorilor multipli). Funciile generale ale unui SGBD sunt: 1. descrierea datelor (definirea structurii bazei de date prin intermediul limbajului de definire a datelor); 2. manipularea datelor (ncrcarea, actualizarea, prelucrarea i regsirea datelor cu ajutorul limbajului de manipulare a datelor); 3. utilizarea bazei de date (de ctre toate categoriile de utilizatori); 4. administrarea bazei de date. Fiecare grup de lucru pentru standardizarea bazelor de date (CODASYL i ANSI, n principal) a propus o arhitectur proprie a unui SGBD. Comenzile SGBD (DBMS) pot fi grupate n trei categorii de limbaje: a) limbajul de definire a datelor (DDL, Data Definition Language); b) limbajul de manipulare a datelor (DML, Data Manipulation Language); c) limbajul de descriere a stocrii datelor (DSDL, Data Storage Description Language). Limbajul de definire a datelor asigur, n principal: definirea tuturor tipurilor de nregistrri i de cmpuri de date, precum i asocierea corespondenei acestora cu nivelul conceptual; specificarea ordinii logice a cmpurilor de date; definirea cmpurilor ce vor fi folosite drept chei de cutare; definirea drepturilor de acces; definirea legturilor ntre tipurile de nregistrri. Limbajul de manipulare a datelor permite: parcurgerea structurilor i a legturilor existente; accesul la nregistrri prin adres sau prin coninutul acestora; actualizri ale nregistrrilor; reordonri ale cmpurilor de date; definirea tranzaciilor i a condiiilor de eroare. Limbajul de descriere a stocrii datelor ofer posibiliti de: asociere a fiierelor la programele de aplicaie, a dispozitivelor fizice, alocare de spaii de memorie; specificarea zonelor de lucru permanente i tranzitorii;

definirea i izolarea datelor confideniale; specificarea structurilor de memorare, a mecanismelor de adresare, a modului de translatare a nregistrrii logice n nregistrare fizic; crearea indecilor asociai cheilor de cutare. Operaiile ce se execut asupra unei baze de date sunt: creare; ncrcare (populare); consultare: cutare (selecie); actualizare: modificare, adugare articole noi, tergerea unor articole, ordonare (sortare, indexare), prelucrare etc.
PROGRAM DE APLICAIE

Baza de date

SGBD

SCHE MA BD UTILI TARE

UTILIZ ATORI

ADMINIST RATOR
PROGRAMATOR DE APLICAIE

Fig.2.2 Arhitectura unui sistem baz de date Dicionarul de date (Data Dictionary) este un fiier care memoreaz definiiile datelor i caracteristicile lor ca: folosirea, reprezentarea fizic, proprietatea (cine este responsabil pentru ntreinerea lor), autorizarea i securitatea. Prin faptul c reprezint un inventar a datelor coninute ntr-o baz de date, dicionarul de date este un important instrument de management organizaional. n realizarea acestor dicionare de date se folosesc metadatele. Metadatele reprezint date despre date (nume, coninut, semnificaie, proprietar etc.). O baz de date este compus dintr-o mulime de atribute (cmpuri, coloane) i are asociat o mulime de date (linii, rnduri, nregistrri, articole). O nregistrare (record) reprezint o asociere a valorilor pentru fiecare cmp (field) al bazei de date. Cele trei nivele de organizare a datelor ntr-o baz de date sunt logic, virtual i fizic (fig.2.3).
NIVEL LOGIC NIVEL VIRTUAL

NIVEL FIZIC SCHEMA EXTERN 1

SCHEMA EXTERN 2

SCHEMA CONCEPTUAL

SCHEMA FIZIC

SCHEMA EXTERN n

Fig.2.3 Niveluri de organizare a datelor ntr-o baz de date Nivelul logic sau extern (nivelul programatorului de aplicaie) calific o structur de date ce are o realitate n planul semnificaiei sau utilizrii, dar nu i n implementarea fizic; calific forma n care fiecare utilizator vede structurarea datelor, n funcie de aplicaia pe care o folosete sau n funcie de resursele de date pe care administratorul bazei de date i le pune la dispoziie. Nivelul virtual sau conceptual (nivelul administratorului bazei de date) se refer la definirea structurii datelor din baza de date astfel nct aceasta s ndeplineasc cerinele tuturor utilizatorilor, n condiii de redundan minim i controlat a acesteia. Nivelul fizic (nivelul inginerului de sistem) privete modul de stocare i de structurare a datelor pe suportul fizic de memorare a datelor (volum magnetic, cilindru, pist, sector, bloc, octet i bit). Structura virtual reprezint schema bazei de date, iar structura logic este denumit subschema bazei de date (concepia CODASYL). Astfel, se poate concluziona c SGBD (DBMS) asigur legtura dintre nivelul conceptual (virtual) i nivelul fizic. O nregistrare virtual se poate prezenta sub forma a una sau mai multe nregistrri fizice i poate participa la construirea unei sau mai multor nregistrri logice. ntr-o baz de date ideal datele sunt definite o singur dat i folosite ori de cte ori este necesar. n funcie de locul n care sunt memorate coleciile de date ce formeaz baza de date, se deosebesc:

baze de date centralizate, CDB (Centralized DataBases), n situaia n care toate coleciile care formeaz baza de date sunt stocate pe un singur calculator; baze de date distribuite, DDB (Distributed DataBases), n situaia n care coleciile care formeaz baza de date sunt rspndite n nodurile unei reele de calculatoare i de comunicaii. Dup orientare, bazele de date pot fi generalizate i specializate. n cadrul DDBMS, accesarea bazelor de date distribuite, DDB se realizeaz, n principal, prin intermediul limbajului structurat de interogare, SQL (Structured Querry Language) i al arhitecturii Client/Server (acestea sunt prezentate pe larg n capitolul 7 al lucrrii). Realizarea unei baze de date se obine prin parcurgerea unor etape. Coninutul acestor etape este dependent, de regul, de tipul bazei de date i de domeniul n care este ea folosit. Activitatea de analiz a sistemului economic presupune: a. analiza componentelor sistemului i a legturilor dintre acestea sau analiza structural n urma creia se definete modelul structural sau static al sistemului economic; b. analiza strilor sistemului i a tranzaciilor posibile ntre aceste stri n raport cu anumite evenimente. n urma acestei analize rezult modelul dinamic sau temporal; c. analiza cerinelor informaionale, n urma creia se definete modelul funcional al sistemului economic; d. integrarea modelelor sistemului economic (structural, dinamic i funcional) n scopul corelrii i completrii lor. Se face meniunea c analiza funcional a sistemului are ca scop determinarea transformrilor de date care se produc n cadrul sistemului n scopul satisfacerii cerinelor informaionale specifice acestui sistem. Transformrile de date se vor prezenta sub forma unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional i arcele fluxurile informaionale ale datelor n baza de date. La proiectarea unei baze de date, procesul de normalizare ajut proiectantul bazei de date s creeze o structur a bazei de date care poate economisi spaiul de memorare a datelor i poate conduce la creterea eficienei prelucrrii datelor. Scopul normalizrii este de a minimiza redundana datelor. Erorile de introducere a datelor pot s compromit precizia i validitatea bazei de date. Utilizatorul poate s fie uneori n situaia de a nu contientiza faptul c el introduce date incorecte. Datele incorecte pot proveni, n primul rnd, de la apsarea greit a unor taste. Cele mai multe SGBD-uri pot preveni, dar nu pot elimina introducerile incorecte de date. Informaia furnizat de rutinele de prelucrare i de rapoarte este la fel de precis i corect n msura n care aceste caracteristici sunt prezente i la datele stocate n bazele de date. Formatul de cmp menine consistena datelor prin asigurarea unei structuri de introducere a datelor, aa cum se arat n figura urmtoare:

Format cmp CONT LA BANC

X cifr, A - liter

ROXXAAAAXXXXXXXXXXXXXXX X
Exemplu

RO96RXBR00000004312679

Formatul de cmp pentru CONT LA BANCA Proiectantul bazei de date poate s prentmpine introducerea datelor incorecte prin: - specificarea unui anumit format de cmp destinat pentru introducerea datelor (formatul de cmp este de fapt o imagine a cum trebuie s arate data atunci cnd aceast dat este introdus n baza de date); - utilizarea regulilor de validare a cmpurilor (acele specificaii prin care se filtreaz datele introduse ntr-un anumit cmp), a casetelor cu liste sau a formatelor predefinite.

3.1 Generaii de baze de date i de sisteme de gestiune a bazelor de date asociate n evoluia istoric, bazele de date i sistemele de gestiune a bazelor de date (SGBD) asociate au cunoscut trei generaii: sistemele ierarhice i reea; sistemele relaionale; sistemele n tehnologie avansat (orientate obiect, relaionale orientate obiect, deductive, distribuite, multibaze, active, multimedia, online etc.). Sistemele ierarhice i reea reprezint datele la nivel de articol, prin legturi ierarhice (arbore) sau de tip graf reea. Deoarece datele prezint o slab independen fizic, SGBD (DBMS) este mai complicat i mai greoi n comparaie cu celelalte sisteme. Drumurile de acces la date sunt specificate prin intermediul limbajului de manipulare a datelor. Diagrama structurii de date (graf orientat ce reprezint tipuri de entiti i legturi funcionale dintre ele) servete pentru descrierea, la nivel logic, a structurilor de date specifice sistemelor ierarhice i reea. Sistemele relaionale trateaz entitile ca nite relaii. Modelul relaional (ce aparine lui E.F.Codd) reprezint un model formal de organizare conceptual a datelor, ce realizeaz reprezentarea legturilor dintre date, avnd la baz teoria matematic a relaiilor. Un sistem relaional este compus formal dintr-o baz de date relaional, o colecie de operatori relaionali, regulile de integritate care guverneaz utilizarea cheilor n model i un set de asocieri. Elementele de definire a modelului relaional corespund celor trei componente ale ingineriei software: informaie, proces, integritate. Problematica de detaliu a sistemelor de gestiune a bazelor de date relaionale este tratat n paragraful urmtor. Sistemele de gestiune a bazelor de date n tehnologii avansate elimin cea mai mare parte a acestor dezavantaje. Aa cum s-a artat, n programarea orientat pe obiecte, OOP (Object-Oriented Programming), efortul esenial este direcionat pentru definirea

obiectelor. Obiectele de acelai tip formeaz o clas ce cuprinde, alturi de date, i metodele de acces la aceste date. Datele sunt transparente numai pentru metodele asociate clasei respective (ncapsularea datelor). Prin funciile denumite constructori i destructori, se realizeaz controlul asupra creerii i tergerii unui anumit obiect. Prin motenire, se obin clase derivate ce motenesc proprietile (date i funcii) claselor-printe. Prin reunirea tehnicilor bazelor de date cu acelea ale limbajelor orientate obiect s-au obinut bazele de date orientate obiect i sistemele de gestiune aferente acestora, OODBMS (Object-Oriented DBMS). Se realizeaz astfel o organizare coerent a obiectelor partajate ntre utilizatori concureni. OODBMS prezint urmtoarele avantaje: integrarea descrierii structurale i comportamentale; posibiliti superioare de deducie (ierarhie de clase, motenire); considerarea aspectelor dinamice n cadrul aplicaiilor; mbuntirea interfeei cu utilizatorii. Se apreciaz, totui, c administrarea obiectelor complexe este mai dificil dect accesul la relaii prin cereri SQL, specific bazelor de date relaionale. Avantajele incontestabile ale tehnologiei orientate obiect au fost combinate cu acelea ale modelului relaional, rezultnd bazele de date relaionale orientate obiect. Relaiile sunt mulimi de nregistrri ce reprezint fapte. Cunotinele se definesc ca aseiuni generale i abstracte asupra faptelor. Pe baza faptelor cunoscute tezaurizate n cunotine, se pot deduce noi fapte printr-un proces de raionamente. Bazele de date deductive ce folosesc programarea logic (specific inteligenei artificiale) administreaz cunotine relativ la baze de date ce sunt, de regul, RDB. Sistemele multibaze de date sunt compuse din mai multe sisteme de baze de date ce sunt integrate pe baza schemelor globale. Se realizeaz astfel accesul uniform i integrat la fiecare dintre bazele de date componente. Dac se consider scopul esenial de analiz a datelor, inclusiv istorice, pentru toat organizaia, o baz de date optimizat n acest scop definete o Data Warehouse (depozit de date), dup principiul procesrii analitice, OLAP (On-Line Analytical Processing). Sistemele tranzacionale (ce se folosesc pentru prelucrarea datelor operaionale ale organizaiei economice) au la baz principiul procesrii tranzacionale online, OLTP (OnLine Transactional Processing), de control la un moment dat al unei singure tranzacii. Data Warehouse admite interogri ce nu sunt predefinite i ofer rspunsuri ad-hoc pe baza analizelor datelor ce se refer la ntreaga organizaie. Data Warehouse se subdivide n baze de date departamentale (domenii de gestiune ale organizaiei) denumite rafturi de date (Data Marts). Realizarea sistemelor de sprijin al deciziilor, DSS (Decision Support Systems) implic un proces laborios de descoperire a informaiilor utile din cadrul bazelor mari de date. Procesul este denumit Data Mining ( mineritul datelor ) sau de descoperire a cunotinelor n baza de date, KDD (Knowledge Discovery in Databases). O baz de date OLAP poate s fie baz de date relaional, dar i baz de date multidimensional. Structura unei baze de date multidimensionale conine obiecte de urmtoarele tipuri: variabile, dimensiuni, niveluri, ierarhii, atribute. 4.1 Baze de date relaionale.

Termenul de baz de date relaional (BDR) a fost introdus de E.F.Codd de la firma IBM n anul 1969. Modelul relaional este fundamentat pe reguli, structuri i operaii. Regulile stabilesc modul de manipulare a datelor, structurile sunt obiecte definite ce conin date i care sunt accesibile utilizatorului, iar operaiile reprezint aciuni prin care sunt manipulate datele sau obiectele schemei bazei de date. E.F.Codd a formulat n anul 1985 cele 13 reguli de baz care definesc o baz de date relaional i care sunt prezentate n tabelul urmtor: Nr. regulii R0 R1 Coninutul regulii SGBD gestioneaz datele la nivel de relaie (exclusiv pe baza caracteristicilor relaionale). Toate datele din baza de date relaional se reprezint explicit sub forma unor valori ntr-un tabel (regula reprezentrii logice a datelor). Datele individuale dintr-un tabel sunt accesate prin specificarea numelui tabelului, a valorii cheii primare i a coloanei (regula garantrii accesului la date) Valorile NULL (inexistena datelor) sunt tipuri de date acceptate (regula referitoare la valorile NULL). Baza de date relaional reprezint descrierea bazei de date n format logic simplificat sub form de tabele (regula metadatelor). Modelul relaional permite implementarea mai multor limbaje (regula de permisiune a limbajelor multiple). Dac vederea curent reprezint un tabel, toate vederile (view-urile) sunt actualizabile (regula actualizrii vederilor). n operaiile de schimbare a coninutului bazelor de date, se lucreaz la un moment dat pe toat relaia (regula referitoare la actualizri, inserri i tergeri n baza de date). Comentarii Conceptul de baz este relaia. Catalogul conine denumiri de tabele, coloane, domenii, restricii de integritate etc. Datele sunt accesibile prin numele tabelului, a liniei i a coloanei.

R2

R3 R4

Valoarea NULL semnific nimic. A nu se confunda cu zero (0). Metadatele sunt date despre date. Regula nu face diferenieri ntre tratarea datelor i a metadatelor. SQL este limbajul de baz pentru realizarea interogrilor asupra bazei de date. Toate tabelele virtuale ce teoretic sunt posibil de actualizat, trebuie s fie n mod practic actualizate.

R5

R6

R7

R8

Modelul relaional abordeaz relaiile de baz i pe cele derivate ca pe un singur operand destinat operaiilor de actualizare (update), inserare (insert) i tergere (delete) efectuate asupra datelor. Structura logic a bazei de date se Programele de aplicaie nu trebuie s prezint complet separat de structura fie influenate de schimbrile fizic a bazei de date (regula referitoare survenite n modul de reprezentare a

R9

R10

la independena fizic a datelor). Atunci cnd bazei de date i se aduc modificri neconforme, datele se conserv (regula referitoare la independena logic a datelor). Restriciile de integritate sunt definte n limbajul folosit de sistem (regula referitoare la restriciile de integritate).

R11

R12

datelor sau n metodele de acces. Programele de aplicaie nu trebuie s fie influenate de schimbrile efectuate asupra relaiilor bazelor de date. Restriciile de integritate sunt create n limbajul SQL i se stocheaz n dicionarul bazei de date i nu n aplicaiile individuale. Accesarea datelor pe server de ctre Este presupus producerea unui client se produce n mod continuu proces de copiere a datelor dintr-o (regula referitoare la distribuirea baz de date localizat la distan. geografic a datelor). Regulile i restriciile de integritate nu Nu trebuie folosit un limbaj de nivel pot fi evitate de nici un limbaj de acces sczut orientat pe prelucrarea pe la date (regula referitoare la prelucrarea tupluri. datelor la nivel de baz).

Trebuie precizat faptul c nici un SGBD actual nu respect n totalitate cele 13 reguli ale lui Codd. Aa cum s-a artat, o baz de date relaional reprezint o colecie de relaii (tabele n accepiunea uzual, memorate fizic n fiiere). Coloanele tabelului se numesc atribute, iar liniile se numesc tupluri. Baza de date relaional (RDB) este compus dintr-o mulime de domenii i o mulime de relaii peste care se aplic o mulime de asocieri. Domeniul este definit ca mulimea obiectelor de acelai tip. Relaia este o mulime rezultat ca urmare a agregrii (corespondenei) a dou sau mai multe mulimi. O relaie n accepiunea bazelor de date pe domeniile Di const dintr-un cap de tabel i un corp de tabel. Asocierea se realizeaz pe baz de atribute (din capul de tabel). Un astfel de exemplu este tabelul (relaia) referitor la MATERIALE: Cod_material 01212 03214 04301 Denumire_material Tabl Cornier Cherestea Cantitate 1200 400 850 Pret_unitar 180000 420000 210000

Fiecare linie descrie un anumit material. Coloanele conin etichete ce reprezint nume ale atributelor (Cod_material, Denumire_material, Cantitate, Pret_unitar). Domeniul ce reprezint codurile materialelor este: D1: {01212,03214,04301}. iar domeniul pentru tipurile de materiale (delimitate prin denumire_material) este: D2: {TABLA,CORNIER,CHERESTEA}. Domeniul pentru cantitate este: D3: {1200,400,850}. Domeniul preurilor unitare, n acest caz, este: D4: {pret_unitar pret_unitar[180000,420000]}.

Mulimea tuplurilor este definit prin produsul cartezian al domeniilor D1 X D2 X X Dn. Exemplu de tuplu: <01212,TABLA,1200,180000>. Relaia L se definete prin tupluri corespunztoare din tabel: L: {<01212,TABLA,1200,180000>, <03214,CORNIER,400,420000>}. ntr-o relaie, este necesar ca tuplurile s fie distincte (nu se permit valori duplicate). Ca urmare, se observ c relaia este reprezentat prin tabelul bidimensional n care coloanele sunt domenii iar liniile sunt tupluri. Numrul tuplurilor unei relaii este cardinalul relaiei. Numrul valorilor unui tuplu este gradul relaiei. Schema unei relaii este format din numele relaiei i lista atributelor (pentru fiecare atribut este necesar specificarea domeniului asociat). Modelul relaional este format din dou mulimi de operatori pe relaii: algebra relaional i calculul relaional. E.F.Codd a definit algebra relaional ca o colecie de operaii pe relaii, astfel nct o anumit operaie dispune de operanzi de tipul relaie i are ca rezultat tot o relaie. Tipurile de operaii acceptate de algebra relaional sunt operaii de baz (reuniunea, diferena, proiecia, produsul cartezian .a.), operaii derivate (intersecia i diviziunea) i operaii suplimentare (selecia, splitarea unei relaii, complementarea unei relaii, nchiderea tranzitiv, jonciunea etc.). Algebra relaional permite derivarea procedural a relaiilor. Se prezint ca exemplu reuniunea. Reuniunea (notat cu OR, , APPEND sau UNION) este o operaie definit pe relaiile Rel1 i Rel2 (cu aceeai schem), ce genereaz o nou relaie Rel3 (cu schema identic cu a relaiilor Rel1 i Rel2) care este format din reuniunea tuplurilor relaiilor Rel1 i Rel2 din figura de mai jos. Calculul relaional conine mulimea operatorilor din modelul relaional i este o adaptare a calculului cu predicate (o relaie este identificat cu un predicat) pentru domeniul BDR. Calculul relaional asigur definirea neprocedural, declarativ a relaiilor. Relaiile sunt precizate prin proprietile tuplurilor. Iniial, n BDR, variabilele definite asupra relaiilor aveau valori care reprezentau tupluri de relaie (variabile tuplu), obinnduse calculul relaional orientat pe tuplu. Cnd variabilele opereaz asupra domeniilor aa cum se petrec lucrurile n prezent ele sunt variabile domeniu i determin calculul relaional orientat pe domeniu. Regulile de integritate sunt aseriuni pe care datele ce formeaz baza de date trebuie s le satisfac i sunt n numr de trei: unicitatea cheii (cheia primar trebuie s fie unic i minimal), integritatea entitii (atributele cheii primare trebuie s fie diferite de null) i integritatea referirii (o cheie extern trebuie s fie null n ntregime sau s corespund unei valori a cheii primare asociate). Constrngerile structurale sunt de trei tipuri: de cheie, de referin i de entitate.

Rel1

O R
Rel2

Rel3

Diagrama operaiei reuniune

Cheia unei relaii reprezint o mulime minimal de atribute ale cror valori identific n mod unic un tuplu ntr-o relaie. Diferitele chei posibile se numesc cheicandidat. Cheia candidat aleas pentru a identifica efectiv tupluri se numete cheie primar. Conceptele folosite pentru descrierea formal, uzual i fizic a elementelor de baz ale organizrii datelor n baze de date relaionale sunt prezentate n tabelul 4.2 [44]. Tabelul 4.2 Formal Relaie Tuplu Atribut domeniu Uzual tablou linie coloan tip de dat Fizic Fiier Inregistrare Cmp tip de dat

Definirea proprietilor structurale ale relaiilor se realizeaz prin tehnica normalizrii. Se afirm c o relaie se gsete ntr-o form normal particular dac ndeplinete un numr specificat de restricii. Normalizarea se obine printr-un numr de pai succesivi, n cadrul unui proces reversibil, pn la realizarea formei dorite. Forma normal a unei relaii este necesar deoarece formele normale nu produc anomalii n actualizarea datelor unei baze de date relaionale. Tipurile de restricii folosite la formele normale ale relaiilor sunt restriciile asupra valorilor atributelor, restriciile referitoare la dependena atributelor secundare de chei, restriciile cu privire la dependena atributelor principale de toate atributele. Se folosesc urmtoarele forme normale: 1NF (forma normal 1). O relaie se gsete n 1NF dac domeniile pe care sunt definite atributele relaiei sunt formate numai din valori elementare. Un tuplu nu trebuie s conin atribute sau grupuri de atribute repetitive (nu se admit duplicate).

2NF (forma normal 2). O relaie se afl n 2NF dac este n 1NF i oricare dintre atributele non-cheie este dependent funcional complet de cheia primar a relaiei. 3NF (forma normal 3). O relaie se gsete n 3NF dac este n 2NF i atributele non-cheie nu sunt dependente tranzitiv de cheia primar a relaiei. BCNF (forma normal Boyce-Codd). O relaie este n BCNF dac dependenele funcionale netriviale ce pot apare n cadrul relaiei conin, n partea stng, ca determinant, o cheie-candidat. 4NF (forma normal 4). O relaie se gsete n 4NF dac n cadrul acesteia nu se manifest mai mult dect o dependen multivaloare. 5NF (forma normal 5). O relaie L se gsete n 5NF dac fiecare dependen jonciune este implicat printr-o cheie-candidat a lui L. Bazele de date relaionale conin structuri de date simple i intuitive. Ele prezint avantaje legate de existena unui ansamblu integrat de utilitare bazat pe un limbaj evoluat de programare (generatoare de meniuri, generatoare de forme, generatoare de aplicaii, generatoare de etichete), de existena unor limbaje speciale de definire i de manipulare a datelor, precum i de independena complet n descrierea logic a datelor (n termeni de relaii) i n descrierea fizic a datelor (n termen de fiiere). Dintre dezavantajele bazelor de date relaionale, se menioneaz imposibilitatea utilizrii obiectelor complexe i dinamice, a administrrii datelor distribuite i a cunotinelor. 5.1 Baze de date orientate obiect Bazele de date orientate pe obiecte, OODB (Object-Oriented DataBase) i SGBD asociate asigur crearea de obiecte complexe formate din componente simple, fiecare prezentnd atribute i comportament propriu. Aceste sisteme se mai numesc i sisteme de obiecte, cu originea n limbajele de programare orientate pe obiecte, OOP. Prin aceste tipuri de baze de date se ridic nivelul de abstractizare. Se face meniunea c ntre partea de limbaje de programare i partea de baze de date exist multe elemente comune; cu toate acestea, aceste pri sunt diferite: un program pe calculator este gndit s rezolve o anumit problem; o baz de date este realizat pentru a rezolva o multitudine de probleme, inclusiv cu elemente de pornire nedeterministe. Pentru un program, obiectele complexe simplific problema, n timp ce n situaia bazelor de date orientate pe obiecte, de regul, problemele se complic. Ca urmare, se cuvine s se judece n mod nuanat atunci cnd se ncearc reliefarea avantajelor utilizrii OOP i OODB. Sistemul de gestiune al bazelor de date orientate pe obiect (SGBD-OO sau OODBMS) are ca principale obiective [18]: 1. Modelarea superioar a datelor, ceea ce semnific dezvoltarea de noi aplicaii; extinderea posibilitilor de generalizare i agregare a relaiilor; evoluia ctre multimedia i hipermedia (sunet, imagine, texte). 2. Capacitatea de deducie superioar (ierarhie de clase, motenire); 3. mbuntirea interfeei cu utilizatorul:

4. Capacitatea de tratare dinamic, concomitent cu integrarea descrierii structurale i comportamentale. Modelul de dat-obiect asigur reprezentarea unor structuri de date complexe i a unor ierarhii model, creind posibilitatea de definire a unor tipuri de date care combin att structura de date ct i definirea procedurii. Un model de date orientat pe obiecte are la baz noiunea de entitate conceptual i definete un obiect ca o colecie de proprieti care descriu entitatea. O comparaie ntre noiunile clasice i cele asociate bazelor de date orientate pe obiecte este prezentat, dup Date, n tabelul urmtor: Nr.crt 1. 2. 3. 4. 5. Noiunea specific obiectelor Obiect nemutabil (care nu se poate muta) Obiect mutabil (care se poate muta) Clasa de obiecte Metoda Mesaj Noiunea clasic de comparaie Valoare Variabil Tip Operator Invocarea de operator

Obiectul reprezint conceptual o unitate identificabil cu coninut propriu, care se deosebete de ceea ce o nconjoar. Fiecare obiect dispune de un identificator unic, denumit ID al obiectului, OID (Object ID). Dou obiecte cu OID diferii sunt diferite, chiar dac sunt identice sub toate aspectele transparente utilizatorului. Dei tentaia iniial este de a considera obiecte doar unitile ce se pot muta, prin obiecte se desemneaz att unitile fixe ct i cele mutabile. Fiecare obiect posed un tip care semnific o clas de obiecte. Instana unui obiect reprezint un obiect individual. Obiectele sunt ncapsulate. Structura obiectului i modul de aciune al metodelor sale nu pot fi accesate i actualizate direct de un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Aceast caracteristic ascuns a obiectului se numete ncapsulare. ncapsularea presupune independena fizic de date. Astfel, prin ncapsulare, reprezentarea intern a unui obiect poate s fie modificat fr a fi nevoie ca aplicaiile care utilizeaz obiectul s fie rescrise. Starea unui obiect este exprimat prin valorile atributelor sale. Colecia de atribute trebuie aleas astfel nct s descrie entitatea, adic s cuprind atribute pe care utilizatorul trebuie s le cunoasc. Metoda reprezint un program care manipuleaz obiectul sau indic starea sa. Ea este asociat unei clase, iar specificarea metodei se numete semntur. Comportamentul unui obiect reprezint un set de metode sau operaii care acioneaz asupra atributelor sale. Obiectele se clasific n: obiecte elementare ca: ntreg, boolean, ir de caractere; obiecte compuse ca: nume, adres; obiecte complexe ca: autoturism, angajat. Un obiect nglobeaz urmtoarele elemente: a. structura de date; b. specificarea operaiilor; c. implementarea operaiilor. Structura unui obiect i operaiile (metodele) permise pentru acel obiect sunt definite mpreun.

Metodele i atributele nu sunt vizibile din exteriorul obiectului. Un obiect rspunde la mesaje care reprezint cereri adresate obiectului pentru a returna o valoare sau pentru a-i schimba starea. Un obiect este divizat n interfa public i n memorie privat. Interfaa public este compus din definiiile interfeelor (corespunztoare semnturilor specificaiei). Interfaa public nu face parte din obiectul corespunztor. Aceast interfa public este inclus n obiectul de definire a clasei, CDO (Class-Defining Object). CDO este obiectul ce definete clasa pentru care obiectul considerat reprezint o instan (este similar unui descriptor). Memoria privat este compus din variabile de instan (atribute sau membri) ale cror valori reprezint starea intern a obiectului. Deoarece sistemele baze de date orientate pe obiecte reale nu sunt pure (cu variabile instan care sunt netransparente utilizatorului), variabilele de instan apar ca transparente utilizatorului. Se deosebesc variabile de instan publice (transparente utilizatorului) i variabile de instan private (cele netransparente utilizatorului). Persistena este o proprietate a datelor sau a obiectelor care presupune existena lor pe o durat mai mare n comparaie cu aceea a procesului care le-a generat. Persistena reprezint proprietatea prin care starea bazei de date asigur execuia unui proces pentru a fi refolosit ulterior n alt proces. Deoarece face parte integrant din obiect, codul aferent metodelor este stocat n baza de date (ca i starea obiectului). Tipuri i clase Obiectele care prezint acelai fel de atribute i acelai comportament fac parte din acelai tip sau clas. n raport cu aceast caracteristic exist dou categorii de sisteme orientate pe obiecte : a) sisteme care admit ca noiune de baz clasa, cum ar fi: VISION, ORION, GBASSE; b) sisteme care admit ca noiune de baz tipul, cum sunt: C++, Simula, O2. ntr-un sistem orientat pe obiecte, tipul sintetizeaz elementele comune ale unui set de obiecte cu aceleai caracteristici. Acest sistem are ca i componente, interfaa i implementarea. Interfaa este partea vizibil pentru utilizator i const ntr-o list de operaii. Implementarea presupune descrierea structurii interne a datelor obiectului i realizarea procedurilor de implementare a operaiilor interfeei. Un tip este construit recursiv, ncepnd cu tipurile de baz: caracter, ntreg, real, ir de caractere, boolean. Constructorii de tipuri sunt: tuplul, lista, setul i clasa. O list este o colecie ordonat de obiecte ale aceleiai clase sau de valori ale aceluiai tip. Elementele unei liste sunt accesibile direct prin rangul lor. Operaiile permise asupra listelor sunt: afectarea (=), comparaia (= =), concatenarea (+), accesul direct ([i]), apartenena (in), sublista ([i ; j]), numrarea (count ( ) ), nlocuirea, tergerea (list ( ) ), inserarea ([:i]+=), iteraia ( { }). Noiunea de clas, dei are aceeai specificaie cu cea de tip, este asociat cu faza de execuie. Ea presupune generarea de obiecte prin operaia new aplicat unei clase i stocarea setului de obiecte care reprezint instanele clasei. Descrierea clasei servete ca ablon pentru crearea obiectele noi. O clas este un tip abstract de date care definete att structura obiectelor din clasa respectiv, ct i mulimea metodelor existente pentru aceste obiecte. Astfel, obiectele din aceeai clas prezint aceleai atribute i aceleai metode i rspund la acelai mesaj.

Motenirea ntr-o baz de date orientat pe obiecte, clasele sunt aranjate ntr-o ierarhie n care fiecare clas motenete toate atributele i metodele superclasei din care face parte. Motenirea conduce la reutilizarea codului. Motenirea reprezint mecanismul de realizare a definirii unei clase n care deriv variabilele de instan i metodele din alt definire de clas. Cnd o clas motenete, ea este considerat ca subclas. Conceptele de subclas i superclas sunt analoge conceptelor de generalizare i specializare. Obiectele, clasele i motenirea formeaz baza modelului de date orientat pe obiecte i presupune urmtoarele aspecte: obiectele sunt entiti de baz care nglobeaz structuri de date i operaii; fiecare obiect are asociat un identificator care este unic i asigurat de sistem; clasele descriu tipuri generice de obiecte, toate obiectele sunt membrii unei clase; clasele sunt nrudite prin motenire; definirea unei clase este mecanismul de specificare a schemei bazei de date; definirea unei clase poate include variabile de instan, avnd tipuri de date definite de sistem sau de utilizator; schema bazei de date poate fi extins dinamic prin definirea de noi clase. Operaiile modelului de date orientat pe obiecte Operaiile se pot grupa n modul urmtor: a) obiectele comunic ntre ele prin mesaje; b) un mesaj poate fi trimis instanelor mai multor clase; c) metodele pot fi definite, terse sau modificate; d) clasele pot fi definite i actualizate prin operaii de creare, tergere i modificare; e) instana unei clase poate fi actualizat prin metode care modific valorile variabilelor propriei instane, aceasta modificnd starea intern a obiectului. ntr-o serie de implementri, definirile de clas sunt ele nsele obiecte, numite obiecte de clas. Obiectele clas sunt instane ale unei clase generice sau ale unei metaclase. Operaiile de creare, modificare i tergere ale definirilor de clas pot fi i implementate ca mesaje. n modelul de date orientat pe obiecte, regulile de integritate reprezint o consecin a structurii modelului i a urmtoarelor operaii: toate obiectele trebuie s respecte protocolul specificat de definirile lor de clas; obiectele sunt ncapsulate, acest lucru presupunnd accesul limitat la obiecte prin folosirea protocolului de mesaje definit pentru clasa obiectului; identificatorul obiectului asigur integritatea referirii la un obiect. Ca atare, un obiect nu exist fr s aib asignat un identificator. Dac un obiect este ters sau mutat, identificatorul su trebuie i el ters sau mutat. O schem complet a unei baze de date orientat pe obiecte poate consta din una sau mai multe ierarhii de clas, mpreun cu relaiile structurale. Modificarea schemei presupune: 1. Definirea unei taxonomii i a unui model al schimbrilor. Taxonomia definete un set de schimbri semnificative ale schemei, iar modelul furnizeaz o baz pentru specificarea semanticilor schimbrilor schemei; 2. Implementarea schimbrilor schemei. Aceste schimbri pot fi:

a) schimbri referitoare la modul de definire al unei clase. Acestea includ schimbrile atributelor i metodelor definite pentru o clas, cum ar fi: schimbarea numelui sau domeniul unui atribut, adugarea, tergerea unui atribut sau a unei metode; b) schimbri referitoare la structura ierarhiei de clase care includ adugarea sau tergerea unei clase i schimbarea relaiilor superclas/subclas dintre o pereche de clase. Proiectarea bazei de date orientat pe obiecte Pentru proiectarea unei baze de date orientat pe obiecte se folosete tehnica topdown care const n identificarea componentelor dup care se stabilesc corelaiile ntre ele i se rafineaz succesiv n cascad componentele sale. Se poate utiliza i metoda bottomup prin care mai nti se identific componentele funcionale pe baza crora se vor identifica, n coleciile existente, obiectele, care pot fi reutilizate pentru noul proiect. Componentele care nu exist vor fi create ca subclase ale unor clase existente. O dat creat o ierarhie potrivit, se testeaz componentele specifice. Sistemul de gestiune al bazelor de date orientate pe obiecte (SGBD-OO sau OODBMS) conine structuri i reguli orientate ctre lucrul cu obiecte, incluznd: un sistem de date abstracte pentru construirea de noi tipuri de date; un constructor de tip ir; un constructor de tip secven; un constructor de tip nregistrare; un constructor de tip set; funcii; un constructor de tip reuniune; o compunere recursiv a elementelor anterioare. n proiectarea SGBD-OO se au n vedere urmtoarele: Principiul 1. SGBD-OO utilizeaz funcii care conin metode i proceduri ale bazei de date, cu restricia ca acestea s fie ct mai compacte, ncapsulate, ermetizate. ncapsularea funciilor l ajut pe programatorul de aplicaie s asocieze funciile pe care i le creeaz cu coleciile utilizate. Principiul 2. SGBD-OO i n general SGBDurile din generaia a treia vor prelua avantajele SGBDurilor din generaia a doua. n plus, se caut o modalitate de acces la o nregistrare existent ntr-o colecie oarecare i aceasta se poate realiza prin utilizarea unui sistem de pointeri ctre identificatorii de obiecte. Principiul 3. SGBD-OO trebuie s poat conecta i limbaje din generaia a patra. Un SGBD-OO lucreaz cu obiecte complexe, obiecte care se obin prin aplicarea de constructori asupra obiectelor simple. Identitatea obiectelor. Orice obiect exist independent de valorile atributelor sale, ceea ce conduce la dou relaii posibile: - identitatea a dou obiecte, adic sunt unul i acelai obiect; - egalitatea a dou obiecte, adic au aceeai valoare. Arhitectura SGBD-OO cuprinde trei componente: 1. Gestionarul de obiecte (Object Manager) furnizeaz interfaa dintre procesele externe i SGBD-OO. 2. Server-ul de obiecte (asigur gestiunea tranzaciei i gestiunea stocului de obiecte); 3. Stocul rezident de obiecte.

Gestionarul de obiecte asigur implementarea complet a modelului de date-obiecte pentru utilizatorul extern. Acest lucru include posibilitatea de a defini structurile i de a executa operaiile specificate prin model. El primete cereri de creare de definiri de clase, de modificare a definirilor de clase deja existente, de manipulare a mesajelor generate de un program de aplicaie n execuie. Server-ul de obiecte asigur refacerea, inseria, tergerea i actualizarea obiectelor n stocul rezident de obiecte. Un singur server poate manipula tranzacii transmise de la mai muli gestionari de obiecte. Limbajul de definire a datelor este realizat prin mecanismul de transmitere a mesajelor. Limbajul pentru cereri ad-hoc se bazeaz pe transmitere de mesaj pentru selectarea i regsirea obiectelor. Prelucrarea mesajelor. Gestionarul de obiecte asigur interfaa dintre procesele externe i SGBD-OO. El primete mesaje pentru obiecte individuale, realizeaz legturi dinamice i operaii de verificare a tipului i expediaz cerina extern pentru obiecte, ctre server-ul de obiecte. Transmiterea de mesaje i prelucrarea cererii poate fi reprezentat astfel: - controlul sesiunii (meninerea spaiului local de lucru al utilizatorului extern pentru operaii efectuate asupra bazei de date); - legtura dinamic (selectarea unei metode pentru un mesaj trimis unui obiect n momentul execuiei); - crearea de noi obiecte sau instane de clas trebuie iniiat de gestionarul de obiecte; - transmiterea cerinelor obiectului i actualizare acestuia; - transmiterea cererii. Cererile pot fi translatate n planuri de execuie n care selecia i regsirea obiectelor sunt realizate prin transmiterea de mesaje. Aceasta presupune c protocolul de mesaje al clasei obiectului este definit pentru a permite accesul la variabilele de instan necesare pentru a selecta obiectul. Obiectele, definirile de clas i metodele cerute de gestionarul de obiecte sunt regsite de server-ul de obiecte din stocul rezident de obiecte. Definirea i modificarea schemei const din urmtoarele etape: 1. Asigurarea accesului la definirile de clas existente. Definirile tuturor claselor asigurate de SGBD-OO, ca i a claselor create de utilizatorii umani, pot fi stocate permanent n SRO, ntr-o bibliotec de clas sau ntr-un dicionar de date. 2. Extensibilitatea schemei bazei de date. Aceasta include prelucrarea declaraiilor limbajului de baza de date, specificnd crearea, mutarea sau identificarea definirilor de clas. 3. Redefinirea dinamic a clasei (evoluiei schemei). Gestionarul de obiecte trimite cerine pentru regsirea i actualizarea definirilor de clas, server-ului de obiecte. Gestiunea tranzaciilor este asigurat de server-ul de obiecte. Gestiunea stocului de obiecte se refer la meninerea nivelului fizic de organizare a bazei de date obiect (ODB) i la asigurarea cilor de acces necesare realizrii accesului eficient la stocul de obiecte. Funciile de baz ale stocului de date-obiect se caracterizeaz ca fiind: 1. Suport pentru reziden, adic obiectele create i adugate trebuie reinute i dup ce se ncheie sesiunea. 2. Suport pentru obiecte mari. SGBD-OO trebuie s poat suporta stocarea i manipularea obiectelor de lungime variabil i de orice dimensiune. 3. Faciliti de arhivare i asigurare de rezerve (dubluri).

Caracteristicile care asigur regsirea i actualizarea obiectelor stocate pot fi: a) suport pentru ci de acces care este necesar pentru a asigura regsirea i actualizarea eficient a datelor stocate n baze de date mari. Aceasta include indexarea obiectelor pentru a permite regsirea eficient a obiectelor individuale, dar i indexarea obiectelor prin valorile variabilelor de instan, pentru regsirea subseturilor de obiecte pentru satisfacerea cererilor; b) tipuri de indeci specializai pentru obiecte; c) gruparea obiectelor n acelai sector de stoc secundar. d) segmentarea obiectelor stocate.

6. Elemente fundamentale ale serverelor de baze de date. 6.1 Arhitectura Client/Server ntr-o reea de calculatoare i de comunicaii dintr-o organizaie economic, unul dintre modelele de baz pe care se fundamenteaz funcionarea reelei este constituit de modelul client/server, susinut de arhitecturi adecvate n funcie de numrul de entiti componente ale lanului de lucru n reea a unei aplicaii ale crei elemente prezentare, procesare i date se gsesc pe acelai calculator sau sunt distribuite pe calculatoare diferite (n varianta standard, datele sunt stocate pe server, procesarea este divizat ntre server i client, iar prezentarea aparine clientului). Aceste arhitecturi client/server pot fi cu dou entiti (two-tier), cu trei entiti (three-tier) sau cu mai multe entiti (n-tier). Toate calculatoarele care se gsesc ntre server i client alctuiesc ceea ce se denumete generic middleware (mediul de mijloc). Serverul, ca noiune de baz, prezint dou accepiuni: un calculator dedicat pe care este instalat un soft pentru gestionarea accesului ntr-o reea local de calculatoare (LAN), inclusiv gestionarea accesului la resursele din reea din partea calculatoarelor staii de lucru (workstations); un program (conceput pe un model de proces distinct) sau un calculator care rspunde cererilor (requests) adresate de entitatea denumit client; clientul, n acest caz, este un proces care are nevoie de un serviciu pe care trebuie s i-l furnizeze serverul. Ca urmare, noiunea de server trebuie considerat n reea sub cele dou aspecte hard-soft (dualitatea hard-soft). Cea de-a doua accepiune prezentat mai sus pentru server, caracterizeaz arhitectura client/server ce permite divizarea procesului specific aplicaiei n dou componente distincte, denumite client ( front-end ) i server ( back-end ). De regul, componenta client este reprezentat de un calculator mai puin pretenios, independent, ce se prezint utilizatorului cu toate resursele la dispoziie. Spre deosebire de aceasta, componenta server este un sistem de calcul (microcalculator puternic, minicalculator sau un calculator mare - mainframe) cu caracteristici tehnologice maximale momentului implementrii n mediu distribuit (gestionare date, partajare resurse ntre clieni, securitate sporit, administrare avansat n cadrul reelei de calculatoare i de comunicaii). Cu ajutorul arhitecturii client-server se obine: conectarea n reea a mai multe calculatoare de diferite tipuri (mainframe i microcalculatoare), tratarea unitar a bazelor de date aflate

pe diferite calculatoare din reea, colaborarea categoriilor de utilizatori (utilizatori finali, administratori ai bazelor de date, programatori). ntre entitatea client i cea de server se poart un dialog permanent sau n anumite momente, de tipul cerere (request) - rspuns (response). Clientul, prin adresarea cererii de serviciu ctre server, interogheaz baza de date ce se gsete stocat pe server. Serverul gestioneaz baza de date i rspunde interogrii adresate de client. n dialogul client-server, pot exista urmtoarele cazuri: client-server, client pasiv i server pasiv. Cazul cu client pasiv se ntlnete atunci cnd se realizeaz conexiuni cu prelucrare gazd (host procesing) pe un server de tip mainframe, iar clientul este un terminal cu rol neimportant n execuia operaiilor necesare efecturii dialogului. Cazul cu server pasiv se constat atunci cnd cele mai multe aplicaii se efectueaz de ctre client, serverul ndeplind doar rolul de server de fiiere (File Server) i/sau server de imprimare (Print Server). Cel mai eficient este cazul client-server cnd activitile sunt divizate n mod echilibrat ntre client i server. Exist i situaia n care cele dou entiti, server i client, sub aspect software, pot coexista pe acelai calculator. Dac cele dou entiti sunt instalate pe acelai calculator, atunci acest calculator are instalat un sistem de operare pentru multi-procesare, deoarece clientul i serverul reprezint procese distincte. n reeaua de calculatoare i de comunicaii, un client poate adresa cereri ctre mai multe servere. De asemenea, un server poate rspunde la cererile adresate de mai muli clieni. n evoluia sa, arhitectura client-server a cunoscut mai multe generaii: generaia I, care se caracterizeaz prin faptul c server-ul stocheaz baza de date relaional, iar clientul stocheaz i execut aplicaia client. Cererile SQL sunt formulate de aplicaia client ctre SGBDR de pe server. Execuia acestor cereri de interogare i transmiterea rspunsului se efectueaz de ctre entitatea server. Entitatea client poate executa urmtoarele apeluri la transport: - SendRequest, ceea ce nseamn: clientul anun serverul asupra operaiilor ce urmeaz a fi executate; - ReceiveReply, prin care se asigur recepionarea rspunsului de la server de ctre client. n acelai timp, la entitatea server, apelurile specifice sunt urmtoarele: - ReceiveRequest, care semnific faptul c entitatea server recepioneaz cereri de interogare de la entitatea client ; - SendReply, care nseamn c serverul transmite rspunsul ctre entitatea client, rspuns ce corespunde cererii de interogare adresate anterior. generaia a II-a, caracteristic anilor 90, orientat pe obiecte. Entitatea server asigur mai multe clase de servicii clienilor: execuia aplicaiilor; interfee grafice destinate dialogului cu utilizatorul; accesul la fiierele i bazele de date administrate de SGBDR de pe server. Exist mai multe tipuri de client-server, n funcie de importana acordat unei sau alteia dintre componentele triadei stocare prelucrare prezentare: 1) client - server de prezentare, n care un proces este destinat funciei de asigurare a dialogului cu utilizatorul, iar celelalte procese considerate realizeaz gestionarea datelor i execuia aplicaiilor; 2) client - server de date, n care utilizatorul are acces la datele administrate de server utiliznd o aplicaie-client, cu ajutorul cererilor de interogare SQL;

3) client - server de proceduri pentru prelucrare, n care aplicaia-client poate realiza controlul execuiei procedurilor stocate pe server prin intermediul unei interfee specializate. Cel mai rspndit este tipul combinat client-server de date, de prezentare i de proceduri pentru prelucrare care prezint urmtoarele componente (fig.7.1): clienii, care se ocup cu gestionarea codului aplicaiei client i care dispun de interfae interactive i prietenoase cu utilizatorii finali; serverul, care stocheaz baza de date, gestioneaz conectarea i accesul la baza de date, gestioneaz logica aplicaiei, asigur securitatea bazei de date; reeaua, care asigur conectarea i comunicarea dintre clieni i server (1) i ntre servere (2). n general, aplicaiile client-server pot fi aplicaii cu baze de date distribuite, aplicaii de pot electronic, aplicaii groupware (ce permite unui grup de utilizatori dintr-o reea s colaboreze la realizarea unui anumit proiect i care ofer servicii de comunicaii (e-mail), de planificare i de administrare a proiectelor, de elaborare n comun a documentelor de diferite tipuri text, multimedia) etc. Avantajele utilizrii arhitecturii client-server sunt multiple, drintre acestea menionndu-se: administrarea centralizat, de pe server, a bazei de date; micorarea dimensiunilor aplicaiilor; reducerea traficului n reea; securitate sporit a bazelor de date stocate pe server; manipularea de ctre utilizatori, conform drepturilor de acces, a procedurilor stocate. n aplicaiile de baze de date pe Web se utilizeaz arhitectura cu trei niveluri: client, aplicaie i date. Nivelul client permite unui utilizator s comunice cu baza de date prin Web, cu ajutorul unei interfee specializate asigurate de ctre browser-ul Web la dispoziie.

Stocare baz de date Conectare i acces la baza de date Gestionare logic aplicaie Asigurare securitate baz de date

Gestionare cod aplicaie client Interfa interactiv cu utilizatorul final

Fig.6.1 Arhitectura client-server de date, de prezentare i de proceduri pentru prelucrare Nivelul aplicaie reprezint nivelul cu aplicaii la ndemna utilizatorului final, pe serverul Web care, prin intermediul protocolului HTTP, recepioneaz cererile clienilor, le prelucreaz i le transmite ctre o alt aplicaie sau/i ctre nivelul de date. Nivelul

date conine sistemul de gestiune a bazelor de date (SGBD), care conin, de regul, date multimedia. 7.1. Serverul de baze de date Microsoft SQL Server Produsul Microsoft SQL Server face parte din categoria serverelor de baze de date, care lucreaz cu aplicaii de tipul client-server i care presupune acces concurent la o anumit baz de date. Referirile se efectueaz la versiunea Microsoft SQL Server2000 care a fost precedat de versiunea Microsoft SQL Server 7.0. n momentul redactrii prezentei lucrri, este anunat versiunea Microsoft SQL Server 2005. Stocarea informaiilor pe serverul de baze de date Microsoft SQL Server se face n baze de date, fiiere i grupuri de fiiere. Microsoft SQL Server dispune de un sistem de securitate propriu, pe baz de identificatori i conturi de utilizatori ai bazelor de date. SQL Server asigur crearea i gestionarea rolurilor la nivel de server, la nivelul unei baze de date i la nivel de aplicaie; de asemenea, asigur permisiuni care pot fi alocate utilizatorilor i rolurilor. Rolurile SQL Server asigur gruparea numelor utilizatorilor bazelor de date (grupuri Windows, utilizatori Windows sau identificatori SQL Server). Atribuirea unui identificator pentru rol la nivel de server se efectueaz cu ajutorul SQL Enterprise Manager. Rolurile la nivel de aplicaie asigur aplicarea permisiunilor la un nivel mai nalt dect nivelul pe care se gsete fiecare utilizator. Atunci cnd o aplicaie activeaz un rol la nivel de aplicaie, se produce suspendarea tuturor permisiunilor utilizatorului. Activarea rolurilor necesit parole. Fiecare baz de date cuprinde roluri (exist nou roluri fixe sau predefinite i pot exista roluri ale utilizatorului) pentru care exist proceduri. Fiecare rol al unei baze de date acord utilizatorilor un numr de permisiuni i capabiliti. Numele rolului este necesar s fie unic la baza de date. Apartenena la un rol fix al unei baze de date nu are legtur cu permisiunile acordate pentru o alt baz de date. SQL Server permite realizarea salvrilor de siguran (backup). SQL Server este nsoit de utilitare i instrumente care asigur urmtoarele servicii: 1. MSSQLServer ce reprezint serverul propriu-zis de baze de date; 2. MSSearch care asigur indexarea cmpurilor de tip text care opereaz sub SQL Server; 3. SQLServerAgent ce realizeaz planificarea operaiilor, gestionarea evenimentelor, replicarea, generarea avertismentelor; 4. MSDTC (Microsoft Distributed Transaction Coordinator) adic coordonatorul tranzaciilor distribuite pe mai multe servere; 5. MSSQLServerOLAPService ce asigur serviciile de analiz a datelor prin OLAP; 6. MSSQLServerADHelper ce realizeaz integrarea activ a directoarelor pentru SQL Server. Instana n SQL reprezint o copie independent a unui server de baze de date pe un calculator din categoria platformelor Microsoft Windows. Microsoft SQl Server permite execuia a cel mult 16 astfel de instane. Instanele SQL Server pot fi prestabilite (este acceptat o singur instan prestabilit pe un anumit calculator) sau pot fi denumite (acele instane crora li s-a dat un nume la instalare). Doua instane denumite de pe acelai calculator nu sunt acceptate cu acelai nume.

Firma Microsoft a realizat controlul fiecrui serviciu prin mai multe metode realizabile prin utilitare i instrumente asociate SQL Server (instalate ntr-o copie unic, indiferent de numrul de instane instalate ale SQL Server). Utilitarele asociate SQL Server sunt urmtoarele: SQL Server Books OnLine ce reprezint manuale electronice sub form de pagini HTML (de exemplu: Getting Started, SQL Server Architecture, Creating and Maintaining dataBases, Creating and Using Data Warehouses etc.). SQL Server Service Manager care este un utilitar pentru controlul serviciilor pentru SQL Server (SQL Server, MSDTC, SQL ServerAgent i MSSearch). Client Network ce reprezint un utilitar care deservete procesul de conectare a unui calculator client la SQL Server). Server Network care este un utilitar pentru indicarea bibliotecilor de reea pe care le poate utiliza SQL Server (pentru bibliotecile ce conin date confideniale la care nu se permite accesul, se execut criptarea de ctre server a cilor de conectare la bibliotecile respective). SQL Server Query Analyser care este utilitarul destinat executrii interogrilor sau a procedurilor memorate Transact-SQL. SQL Server Enterprise Manager ce reprezint un utilitar de tipul MMC (Microsoft Management Console), adic consol de Management Microsoft ce asigur interfaa grafic de dezvoltare i administrare din SQL Server. SQL Server Profiler ce reprezint utilitarul pentru monitorizarea ntregii activiti executate de SQL Server. Utilitarele prezentate mai sus se gsesc n meniul Start al SQL Server. n afar de aceste utilitare de baz, au fost realizate instrumente pentru conectare, pentru diagnosticarea serverului i pentru ntreinere. Noiunea de replicare a fost explicat parial n capitolul destinat SGBD Microsoft Access. Procesul de replicare n SQL Server este un proces complex ce utilizeaz un scenariu de tip editor-abonat la care sunt asociate articole i publicaii. Abonaii sunt calculatoarele utilizatorilor ale datelor. Un sistem SQL Server poate juca n scenariul de tip editor-abonat unul, dou sau trei roluri din mulimea de roluri {editor, abonat, distribuitor}. Rolul de distribuitor presupune recepionarea tuturor modificrilor efectuate de abonai sau editori, memorarea acestor date i apoi trimiterea lor la editori sau abonai, la un anumit moment. Articolul reprezint un tabel sau o mulime de date dintr-un tabel, obinut prin partiionare. Publicaia este ansamblul mai multor articole combinate. Articolele i publicaiile pot fi primite de abonai prin efectuarea de abonamente. Abonamentele pot fi configurate n abonamente de intrare (configurate la nivelul fiecrui abonat) i abonamente de ieire (configurarea abonamentului se produce simultan cu crearea publicaiei). Replicarea asigur un mediu de lucru ce faciliteaz duplicarea i distribuirea mai multor copii (replici) ale acelorai date, n mai multe baze de date din reea (n mai multe locaii). n distribuirea datelor prin aceast metod se au n vedere autonomia locaiei, consistena tranzacional (care nu trebuie s afecteze consistena datelor) i latena distribuirii (ntrzierea). SQL Server permite utilizarea urmtoarelor metode de distribuire a datelor : replicarea cu combinare (fiecare locaie i poate modifica copia local a datelor replicate, astfel nct editorul combin modificrile primite de la aceste locaii);

replicarea copiilor integrale (prin transferul unei copii de ansamblu a datelor replicate de la editor la abonai); replicarea tranzacional (adic tranzaciile sunt copiate de pe serverul editor la abonai, fr existena reversului de la abonai la editor); abonarea cu actualizare (la care acualizarea poate fi imediat, cu fir de ateptate sau combinat imediat i cu fir de ateptare); replicarea copiilor integrale cu actualizare la abonai (prin aceasta, abonatul nu este necesar s se afle n contact permanent cu editorul); replicarea tranzacional cu actualizare la abonai ; tranzaciile distribuite (cu MSDTC, cu aplicarea simultan a tranzaciilor la toi abonaii). Replicarea este asigurat de cinci ageni: agent de distribuie, agent de citire din jurnalele de tranzacii specifice tuturor bazelor de date publicate, agent de combinare, agent de copiere i agent de citire din firul de ateptare. Datele pot fi publicate pe Internet prin mai multe metode. Se apreciaz c una dintre cele mai sigure metode este tehnologia reelei private virtuale, VPN (Virtual Private Network). Prin VPN se pot conecta dou reele prin utilizarea Internetului, cu protocoalele specifice, folosind servere proxy (intermediare) ctre serverele SQL. SQL Server folosete patru baze de date astfel: - master, ce conine configurrile SQL Server-ului, precum i date care privesc utilizatorii bazei de date; - model, ce reprezint o baz de date model, care se duplic de fiecare dat cnd utilizatorul creeaz o baz de date nou; - tempdb, ce este o baz de date care stocheaz tabele temporare i rezultatele intermediare ale unor interogri; - msdb, ce este utilizat de SQLServerAgent pentru memorarea datelor cu privire la sarcinile periodice (salvarea bazei de date, salvarea jurnalului etc). O baz de date SQL Server este organizat pe mai multe niveluri: componente logice ce sunt transparente utilizatorilor; tabele (tables) care conin nregistrri ale bazei de date; vederi (views); indeci (indexes); proceduri stocate (procedures); declanatori (triggers). Fizic, o baz de date include cel puin dou fiiere (fiier primar de date, primary data file, cu date i referine asupra celorlalte fiiere ale bazei de date; fiierul jurnal care nregistreaz toate modificrile efectuate n baza de date). n cazul bazelor de date foarte mari, pot exista i fiiere secundare (secondary data file). La fiecare instalare a produsului Microsoft SQL Server sunt generate mai multe baze de date: master, model, tempdb i msdb, precum i baze de date utilizator (pubs, Northwind). Metodele de creare a unei baze de date Microsoft SQL Server 2000 sunt urmtoarele: Database Creation Wizard SQL Server Enterprise Manager Cu ajutorul instruciunii CREATE DATABASE. Crearea unei noi baze de date este echivalent cu execuia unei copii a bazei de date model, prin extinderea pn la dimensiunea dorit, spaiul suplimentar fiind completat cu pagini goale. Baza de date astfel creat utilizeaz fiiere pentru stocarea fizic a datelor pe discul magnetic.

Salvarea bazelor de date n SQL Server se efectueaz complet, diferenial i prin salvarea jurnalelor de tranzacii cu ajutorul SQL Server Enterprise Manager sau cu Transact-SQL (ce va fi prezentat n paragraful urmtor). Copiile de siguran (backup) servesc pentru o restaurare a bazelor de date n caz de defectri ale serverului. SQL Server are pus la punct un scenariu de restaurare a bazelor de date n caz de dezastre. Se poate realiza recuperare automat sau manual. Recuperarea automat reprezint un proces care se deruleaz la fiecare pornire a serviciului SQL Server. Ca urmare, atunci cnd serverul se decupleaz din diferite motive, inclusiv la avarii, procesul de recuperare automat se pornete la repornirea serverului. La terminarea acestui proces de recuperare automat, bazele de date rmn ntr-o form consistent din punct de vedere logic. Pentru recuperarea tuturor bazelor de date, SQL Server utilizeaz baza de date model, dup care se creeaz baza de date tempdb, se restaureaz baza de date msdb i, n final, bazele de date ale utilizatorilor. Recuperarea manual reprezint procesul de recuperare a unei baze de date a utilizatorului, prin restaurarea unei copii complete a bazei de date (sau copie diferenial) sau restaurarea uneia sau mai multor copii pentru jurnalul de tranzacii, n ordinea n care au fost generate. n momentul restaurrii baza de date nu trebuie s fie n uz (s nu fie activ comanda USE). Pentru aceasta, trebuie reperat setul corespunztor de copii de siguran (cu comenzile RESTORE LABELONLY, RESTORE HEADERONLY, RESTORE FILELISTONLY). n continuare, se verific dac setul salvat este utilizabil (RESTORE VERIFYONLY), se restaureaz complet sau difereniat baza de date i jurnalul de tranzacii. Scenariile de recuperare sunt construite pentru diferite situaii ca recuperarea datelor dup defectarea unui disc, recuperarea datelor dup pierderea bazei de date master, SQL Server asigur, aa cum s-a precizat mai sus, servicii de extragere a datelor din bazele de date operaionale i de construire a depozitelor de date, dup care aceste date din depozite sunt supuse analizei de tip OLAP. Acest serviciu este tratat n capitolul consacrat bazelor de date n tehnologii avansate. Microsoft SQL Server prezint urmtoarele avantaje: - portabilitatea, adic capacitatea de a funciona pe o mare varietate de platforme hardware; - compatibilitatea modelului de programare cu modelele folosite n ntreaga gam de sisteme de operare Microsoft Windows (95, 98, 2000, XP); - optimizarea capabilitilor sale pentru lucrul cu baze de date mari; - execuia rapid a interogrilor SQL; - posibilitatea de extragere i analiz a datelor pentru baze de date multidimensionale; - facilitatea de integrare cu alte produse software Microsoft.

8. BAZE DE DATE DISTRIBUITE 8.1 Despre necesitatea bazelor de date distribuite n aplicaiile economice

Cnd s-a prezentat clasificarea bazelor de date, s-a artat c din punctul de vedere al modului de localizare al datelor, bazele de date pot fi locale sau distribuite. n capitolul anterior, au fost numeroase situaiile n care s-au fcut referiri la categoria de baze de date distribuite, dndu-se explicaii succinte referitoare la noiunile i elementele implicate. n consecin, este necesar o aprofundare a acestor concepte ntr-un capitol separat. S-au prezentat n capitolele anterioare ce este i cum se construiete o aplicaie Access cu ajutorul creia se poate asigura gestionarea i partajarea datelor ntre diferii utilizatori finali n reea. n cazul utilizatorilor conectai intermitent i aleator la baza de date central i de la distan (de exemplu, prin intermediul Internetului), a fost necesar dezvoltarea unei filozofii de lucru i a unor arhitecturi adecvate care s rspund unor cerine multiple. Arhitecturile client/server prezentate n capitolul anterior pot fi percepute ca un caz particular al sistemelor distribuite. Bazele de date distribuite apar ca o consecin fireasc a faptului c organizaiile economice performante sunt distribuite logic n departamente, secii, birouri, grupuri de lucru i distribuite geografic n locaii diferite ce reprezint filiale ale acestei organizaii. Abordarea bazelor de date distribuite, ca elemente fundamentale ale sistemelor informatice integrate unei organizaii economice, trebuie s aib n vedere cele trei tendine importante care redefinesc rolul acestora n aplicaiile economice: 1. Internetul i alte reele de calculatoare i de comunicaii pe arie larg, WAN (Wide Area Network) conecteaz n timp real participanii cheie: vnztori, productori, distribuitori i clieni. 2. Globalizarea pieii, a mediului de afaceri, necesit stocarea i procesarea unor cantiti mari de date (baze de date mari), distribuite n toate locaiile geografice implicate ntr-o anumit activitate sau proces economic. 3. Transformarea SUA i a altor ri industrializate n societi informaionale (economii informaionale) accentueaz importana eficienei sistemelor informatice i de comunicaii n care bazele de date distribuite joac rolul determinant prin aceea c stocheaz date ce susin informaii i cunotine, cu ciclul de via din ce n ce mai scurt. 9.2. Concepte fundamentale Aa cum s-a artat, fiierul reprezint unitatea fundamental de stocare care (ntr-o definiie simplificat) asigur deosebirea unei mulimi de date de alta de ctre sistemul de calcul. Sistemul de fiiere este format din fiiere, directoare i informaiile necesare pentru localizarea i accesul la ele. Fiecare fiier conine un grup de date, complet denumit, cum este un program, o mulime de date folosit de un program sau un document generat de utilizator (fig.8.1). n exploatarea multiutilizator a sistemelor de calcul, datorit dezavantajelor legate de accesul mai dificil la date, redundana ridicat a datelor, izolarea datelor, descrierea independent a datelor, dependena programelor fa de date, se prefer bazele de date i sistemele de gestiune a bazelor de date (SGBD sau DBMS, DataBase Management System). Baza de date este o colecie organizat dup regulile unui model de date (mulime de reguli destinate structurrii i manipulrii datelor). Gestiunea bazelor de date presupune

utilizarea ca interfa ntre programele de aplicaie i bazele de date a unui sistem de gestiune a bazei de date (fig.8.2).

PROGRAM 1
DESCRIERE DATE 1

FIIER 1

PROGRAM 2
DESCRIERE DATE 2

FIIER 2

PROGRAM 3
DESCRIERE

FIIER 3

DATE 3

Fig.8.1 Sistem de fiiere

PROGRAM DE APLICAIE 1

BAZA DE DATE

SISTEM DE GESTIUNE A BAZEI DE DATE (SGBD)

PROGRAM DE APLICAIE 2

PROGRAM DE APLICAIE 3

Fig.8.2 Gestiunea unei baze de date SGBD soluioneaz cererile utilizatorilor referitoare la diversele aciuni legate de baza de date i asigur stabilirea unor msuri de integritate i de securitate.

O baz de date distribuit, DDB (Distributed DataBase), este o colecie format din mai multe baze de date logic interconectate i care sunt localizate n nodurile unei reele de calculatoare i de comunicaii. n fapt, o DDB este o colecie de site-uri distribuite interconectate cu ajutorul unei reele de comunicaii. Dintr-o alt perspectiv, o DDB este o baz de date virtual cu componentele stocate fizic ntr-un numr de baze de date reale diferite, localizate n site-uri diferite. Sistemul de gestiune a bazei de date distribuite, DDBMS (Distributed DBMS), reprezint softul ce asigur lucrul cu DDB prin integrarea i distribuirea acestor baze de date (fig.8.3), furniznd un mecanism de acces care face distribuirea acestora transparent pentru toi utilizatorii. Sistemul baze de date distribuite, DDBS (Distributed DataBase System) este format din DDB i DDBMS. REEA DE CALCULATOARE TEHNOLOGIE A BAZEI DE DATE

distribuire

integrare SISTEM BAZE DE DATE DISTRIBUITE (DDBS) integrare

Fig.8.3 Determinrile ntr-un sistem baze de date distribuite (DDBS) Este important de menionat c ntr-un sistem baze de date distribuite (DDBS) operaia de integrare nu este similar cu aceea de centralizare. ntr-un cadru mai larg, DDBS este inclus n conceptul de calcul distribuit ce desemneaz un numr de elemente de procesare autonome, nu n mod necesar omogene, care sunt interconectate ntr-o reea de calculatoare i de comunicaii i care coopereaz n scopul realizrii sarcinilor (task-uri) atribuite. Pentru calcul distribuit, exist mai muli termeni sinonimi cum sunt: prelucrarea datelor distribuite, multiprocesare, procesare back-end, sisteme n time-sharing, sisteme modulare funcional etc. n DDBS sunt distribuite logica prelucrrii, datele, funciile i controlul. Ca urmare, un sistem baze de date distribuite, DDBS, se poate defini ca o colecie de baze de date multiple, logic interlegate, distribuite n ntreaga reea de calculatoare i de comunicaii. Este important de reinut c un DDBS nu este un sistem n time-sharing i nici un sistem multiprocesor puternic sau slab cuplat. O baz de date centralizat, CDB (Centralized DataBase) este o baz de date ce este localizat ntr-unul din nodurile reelei de calculatoare. Un sistem de gestiune a bazelor de date (SGBD) centralizat ntr-o reea de calculatoare reprezint sistemul distribuit n care utilizatorii, prin intermediul reelei de comunicaii asociate, acceseaz DDB (fig 8.4). Un mediu specific unui sistem de gestiune a bazelor de date (SGBD) distribuite, DDBMS, ofer posibilitatea accesrii bazelor de date distribuite (DDB) din oricare locaie din reeaua de calculatoare prin intermediul reelei de comunicaii asociate (fig.8.5). Aa cum se observ din configuraia DDBMS, datele sunt memorate ntr-un numr de locaii

(site-uri) ale reelei de calculatoare, iar fiecare site conine, logic, un singur procesor. DDB pot fi astfel utilizate n orice organizaie care are o structur organizatoric descentralizat, inclusiv n compunerea sistemelor informatice pentru management, MIS (Management Information Systems) i a sistemelor informatice pentru asistarea deciziei, DSS (Decision Support Systems).

SITE 2

SITE 3 SITE 1 REEA DE COMUNICAII

SITE 4

SITE 6 SITE 5

Fig.8.4 Un SGBD centralizat ntr-o reea DDBMS prezint avantaje legate de gestiunea transparent a datelor distribuite, fragmentate i replicate, de mbuntirea fiabilitii i disponibilitii prin intermediul tranzaciilor distribuite, de o dezvoltare mai facil i mai economic a DDBMS. Gestiunea transparent presupune separarea semanticilor de nivel ridicat de cele de nivel sczut (prin semantic se nelege n acest caz relaia dintre cuvinte sau simboluri i semnificaia lor). Problema fundamental n DDBMS este realizarea independenei datelor, adic separarea datelor de programele care le manipuleaz. Din punctul de vedere al oricrui utilizator, DDB este perceput ca o baz de date centralizat. Actualizarea datelor replicate necesit implementarea controlului concurenei distribuite. Proiectarea unei DDB se refer, ntre altele, la modul cum este distribuit baza de date, cum se distribuie datele replicate i nereplicate i cum se rezolv problema de gestionare a directoarelor. Directoarele (Directory) reprezint cataloage ce conin elemente de gestiune a DDB. Prelucrarea interogrilor asigur conversia tranzaciilor utilizatorului n manipularea datelor, minimizeaz costurile de transmitere a datelor i de prelucrare local a acestor date i optimizeaz aceste operaii. Controlul concurenei distribuite se refer la sincronizarea acceselor concurente la DDB, consistena i izolarea efectelor tranzaciilor i gestionarea blocrilor. Fiabilitatea privete modul cum reacioneaz sistemul la defectri, atomicitatea i durabilitatea. Relaiile existente ntre diferitele componente ale mediului DDBMS sunt sintetizate n fig. 8.6. Este interesant de precizat c ntre cerinele de

prelucrare de interes general din sistemul informatic i cerinele de prelucrare a bazelor de date exist o dihotomie. Sistemul de operare al reelei sprijin DDB. Caracteristicile de sistem deschis i de interoperabilitate al DDBS au condus la ideea dezvoltrii sistemelor multibaze de date distribuite, DMDBS (Distributed Multi-DataBase Systems).

SITE 2

SITE 3 SITE 1 REEA DE COMUNICAII

SITE 4

SITE 6 SITE 5

Fig . 8.5 Configuraia unui sistem de gestiune a bazelor de date distribuite (DDBMS)

FIABILITATE

GESTIONAREA DIRECTOARELOR

PROIECTAREA DISTRIBUIRII

CONTROLUL CONCURENEI

GESTIUNEA BLOCRILOR

PRELUCRAREA INTEROGRILOR Fig.8.6 Relaiile existente ntre diferitele componente ale mediului DDBMS Aa cum s-a artat mai sus, o baz de date distribuit, DDB (Distributed Data-Base) reprezint o baz de date ce este logic integrat (utilizatorii percep o singur baz de date), dar fizic distribuit pe mai multe calculatoare distincte, interconectate ntre ele. Utilizatorii interacioneaz cu o DDB n acelai mod n care interacioneaz cu o baz de date

centralizat. O DDB este compus din mai multe baze de date locale (LDB) care sunt memorate n nodurile unei reele de calculatoare (uneori, i dintr-o baz de date central, CDB). Baza de date central primete de la bazele de date locale numai acele colecii de date a cror stocare este justificat la nivelul CDB n scopul unor prelucrri centralizate la nivelul sistemului informatic integrat. DDB reprezint o baz de date global i este conceput dup o singur schem conceptual gobal, cunoscut i accesat de utilizatorul global. Utilizatorul local are acces i exploateaz una sau mai multe baze de date locale, n limitele permisiunii acordate de softul de gestiune n reea la dispoziie. Date C.J. a identificat dousprezece obiective pentru DDB: autonomia local a site-urilor componente ale unui sistem distribuit (n cea mai mare msur); fiecare site component poate opera, de regul, cu datele din bazele de date locale (LDB) fr a depinde de alt site; absena unei dependene de un site central; funcionarea continu datorit fiabilitii i disponibilitii crescute a sistemelor distribuite la apariia ntreruperilor aleatoare; existena transparenei (independena de localizare) adic nu este important pentru utilizatorul final unde sunt stocate fizic datele de care acesta are nevoie; independena de fragmentarea datelor, ceea ce nseamn c fragmentarea datelor n DDB (prezentat n paragraful urmtor) nu afecteaz percepia utilizatorului final, din punct de vedere logic, de nefragmentare a datelor; independena de replicarea (reproducerea) datelor, adic replicarea datelor nu afecteaz percepia utilizatorului final care, logic, se comport ca i cum datele nu ar fi fost replicate; procesarea distribuit a interogrilor; gestionarea distribuit a tranzaciilor, prin care, tranzaciile, compuse din mai muli ageni (agenii reprezint procese terminate sub denumirea de tranzacii pe anumite siteuri), sunt refcute cu ajutorul protocolului de finalizare n dou faze (finalizare/derulare napoi), iar controlul concurenei se obine prin regula de blocare; independena de hardware); independena de sistemul de operare; independena de reeaua de calculatoare i de comunicaii; independena de DDMBS; Un DBMS pentru DDB, adic un DDBMS, asigur urmtoarele obiective: a) transmiterea datelor la utilizatorii acestora (utilizatori care dispun de dreptul i autoritatea de a le accesa); b) asigurarea unui raport optim ntre centralizarea i descentralizarea resurselor de date (o centralizare ridicat a resurselor de date determin costuri foarte mari de prelucrare i transmitere a datelor la utilizatori); c) creterea durabilitii i disponibilitii sistemului (sistem open, adic deschis s primeasc oricnd noi structuri de baze de date n schema conceptual global, precum i noi restructurri ale bazelor de date locale); d) asigurarea proiectrii structurii organizatorice i funcionale a sistemului informaional conform cu structura organizaiei deservite de sistem; e) sporirea gradului de utilizare a sistemului informaional (mrirea numrului de utilizatori efectivi).

n implementarea DDMBS este valabil aceeai filozofie ca i la decizia de implementare a unei reele de calculatoare: o astfel de decizie are consecine pe termen mediu i lung, implic investiii mari, nu mai poate fi schimbat dup achiziia platformei de baz de un anumit tip dect cu plata renunrii n totalitate la soluia iniial. Ca urmare, decizia de implementare a unui anumit DDBMS implic nainte de toate alegerea unui furnizor de marc. Cei ase mari productori de DDBMS - Oracle, Sybase, Informix, Microsoft, IBM i Computer Associates monopolizeaz peste 90% din piaa mondial a domeniului.

9.1 Fragmentarea datelor n bazele de date distribuite Principiul fundamental al bazelor de date distribuite const n faptul c pentru oricare dintre utilizatorii finali, baza de date distribuit trebuie s fie perceput ca o baz de date nedistribuit. O baz de date distribuit, DDB, este fragmentat (distribuit) pe baza urmtoarelor principii: dispunerea datelor stocate n nodul de producere i de utilizare a lor; minimizarea cilor de transport de date n cadrul reelei de calculatoare. Fragmentarea DDB se realizeaz pe dou niveluri: 1. mulimea de colecii de date este partiionat n submulimi de colecii de date; 2. colecia de date este partiionat n fragmente (pe orizontal - cu aceeai structur ca i colecia de date i pe vertical fragmentele conin fiecare numai o parte din structura coleciei de date din care provin). Fragmentele rezultate dup partiionarea DDB reprezint elemente de distribuire a datelor. Ansamblul fragmentelor unei DDB stocate ntr-un nod al reelei de calculatoare reprezint o baz de date local (LDB). De regul, un fragment de date reprezint un derivat obinut prin orice combinaie aleatoare de restricii i proiecii din baza de date. Se reamintete, de la modelul relaional, c operaia de restricie asigur selecia anumitor nregistrri (rnduri) dintr-un tabel al unei baze de date relaionale, iar operaia de proiecie permite extragerea cmpurilor (coloanelor) specificate dintr-un tabel.

Dac se consider o variabil-de-relaie (variabila care face legtura ntre cmpul reprezentnd cheia primar i cmpul reprezentnd o cheie extern) de baz CL pentru entitatea CLIENTI (aa cum este perceput de utilizatorul final) ce conine clieniipersoane juridice (Corporate) ai unei bnci, cu valorile eantion prezentate n fig.9.1, se poate explica fragmentarea datelor. Dou fragmente de date, cu numele de Cl _BUC i CL _CTA, se pot defini astfel : FRAGMENT CL AS CL_BUC FROM SITE `Bucuresti` WHERE CORP# = CORP#(`C1`) OR CORP# = CORP#(`C3`), CL_CTA FROM SITE `Constanta` WHERE CORP# = CORP#(`C1`) OR CORP# = CORP#(`C2`) OR CORP# = CORP#(`C4`); Tuplurile corespunztoare clienilor bncii ce opereaz n Bucureti sunt memorate n site-ul din Bucureti, iar tuplurile clienilor bncii ce opereaz n Constana sunt memorate n site-ul din Constana.

Bucuresti CL_BUC CL# N1 N4 CORP# C1 C3 SUMA_CT 1200000 2450000

Constana

CL_CTA CL# N2 N3 N5 N6 CORP# C2 C2 C4 C1 SUMA_CT 800000 1050000 4200000 2500000

CL CL# N1 N2 N3 N4 N5 N6 CORP# C1 C2 C2 C3 C4 C1 SUMA_CT 1200000 800000 1050000 2450000 4200000 2500000

Fig.9.1 Exemplu de fragmentare a datelor Pe baza fragmentelor de date CL_BUC i CL_CTA se poate reconstitui variabilade-relaie de baz iniial CL cu ajutorul operaiei de reuniune a fragmentelor de date. Trebuie precizat faptul c operaia de reuniune se folosete pentru fragmentele orizontale, iar operaia de uniune se utilizeaz pentru fragmentele verticale. n cazul operaiei de uniune, se pot combina dou tabele ntr-unul singur pe baza valorilor comune ce exist ntrun cmp (coloan) comun. 9.2 Gestiunea tranzaciilor Tranzacia, n general, este o activitate individual ntr-un sistem de calcul (de exemplu, actualizarea unui articol de inventar sau introducerea unei comenzi efectuate de un client). n sistemele de gestiune a bazelor de date distribuite (SGBDD), tranzacia reprezint o unitate logic de prelucrare prin intermediul creia se realizeaz sigurana i consistena bazei de date. O baz de date este ntr-o stare consistent dac sunt ndeplinite toate constrngerile de integritate a datelor. Baza de date se gsete n stare consistent att naintea executrii tranzaciei ct i dup executarea acesteia (n timpul executrii tranzaciei, baza de date poate s fie n stare inconsistent). Sigurana bazei de date nseamn tolerana acesteia fa de defectri i capacitatea de recuperare a datelor dup apariia unor defectri. Consistena bazei de date semnific respectarea restriciilor de integritate a datelor dup efectuarea uneia sau mai multe operaii de prelucrare n baza de date (adugare, actualizare, tergere etc.). n esen, o tranzacie este o succesiune de operaii de scriere i de citire a bazei de date, precum i de operaii de calcul. O tranzacie este caracterizat de punctul de nceput i de punctul de sfrit. Din acest punct de vedere tranzaciile se clasific n: a) tranzacii implicite (punctul de nceput i cel de sfrit sunt automat definite); b) tranzacii explicite (utilizarea unor comenzi speciale pentru stabilirea punctelor de nceput i sfrit ale tranzaciei). n SQL-Server, tranzaciile explicite permit utilizatorului s grupeze un set de comenzi SQL ntr-o tranzacie folosind comenzile BEGIN TRANSACTION i COMMIT TRANSACTION, pentru precizarea punctelor de nceput i sfrit. Utilizatorul poate el nsui defini punctele de salvare n cazul tranzaciilor complexe, folosind comanda SAVE TRANSACTION, sau s deruleze napoi tranzacia pn la punctul de nceput sau pn la un punct de salvare anterior, folosind comanda ROLLBACK TRANSACTION. Accesul unei baze de date distribuite (ce definete gestiunea tranzaciilor) se face, de regul, n mod concurent, motiv pentru care tolerana la defectri i meninerea consistenei bazei de date prin controlul concurenei devin cerine prioritare pentru fiabilitatea bazei de date . Tolerana la defectri privete capacitatea bazei de date i a sistemului de gestiune a bazei de date de a face fa defectelor dezastruoase astfel nct s nu se piard date (s existe posibilitatea recuperrii datelor) i s nu fie afectat activitatea

(operaiunea) n curs de desfurare. Controlul concurenei se refer la mecanismele de sincronizare a acceselor cu scopul de meninere a integritii bazei de date. n concluzie, cu ajutorul toleranei la defectri i controlul concurenei se asigur sigurana i consistena bazei de date. Orice tranzacie trebuie s ia sfrit (cu rezultat pozitiv sau negativ) prin executarea tuturor operaiilor prevzute de procedur. Ultima operaie executat n acest caz este una de validare (commit). n caz contrar, ultima operaie efectuat este una de abortare (abort) cu semnificaia c tranzacia nu a reuit executarea tuturor operaiilor prevzute de procedur. Urmarea acestei situaii este anularea tuturor operaiilor efectuate asupra bazei de date i meninerea situaiei dinaintea nceperii tranzaciei. Tranzacia trebuie s ndeplineasc patru condiii, sintetizate prin acronimul ACID atomicitate, consisten, izolare i durabilitate. Atomicitatea nseamn c orice tranzacie reprezint o unitate elementar de prelucrare; execuia acesteia se produce dup regula Totul sau nimic!. Consistena unei tranzacii semnific proprietatea de transformare (corect din punct de vedere logic) a unei baze de date dintr-o stare consistent ntr-o alt stare consistent. Altfel exprimat, sunt meninute n permanen restriciile de integritate ale bazei de date (unicitatea cheilor primare i integritatea referenial). Prin consisten este reflectat corectitudinea operaiilor specifice tranzaciei. Izolarea reprezint proprietatea unei tranzacii de a poseda accesul numai la strile consistente ale bazei de date (pe timpul executrii operaiilor unei anumite tranzacii, pn la realizarea operaiei de validare, celelalte tranzacii concurente nu au permis accesul la modificrile provocate de operaiile acestei tranzacii asupra bazei de date). Prin intermediul acestei proprieti este prevenit apariia fenomenului de abortare n cascad a tranzaciilor (efectul de domino). Durabilitatea tranzaciei se refer la rezultatele tranzaciei asupra bazei de date n sensul c acestea devin permanente (sunt scrise n baza de date) dup terminarea tranzaciei. Durabilitatea se obine cu ajutorul jurnalului (un fiier secvenial n care sunt nregistrate operaiile executate de tranzacii). Jurnalul cuprinde istoria evoluiei ntregului sistem baz de date. Pentru exemplificare, se consider tranzacia efectuat de un client al unei bnci, tranzacie prin care efectueaz o plat din contul personal. Clientul bncii efectueaz aceast tranzacie prin intermediul unei maini inteligente (multimat) n sistemul selfbanking. Pentru simplificare, baza de date este format din trei relaii definite de: CLIENT (Cod_client, Nume_client, Adresa_client, Telefon_client, E_mail_client) CONT_BANCAR (Nr_cont, Cod_client, Moneda, Suma_debitoare, Suma_creditoare, Comision, Dobanda, Sold) TRANZACTIE (Cod_tranzactie, Nr_cont, Suma _tranzactie, Detalii). Atributele din relaii au semnificaia rezultat din denumirea lor. S-a pornit de la premiza c un client al unei bnci (persoan juridic sau persoan fizic) poate avea mai multe conturi bancare n cadrul aceleiai bnci (one-to-many). Nr_cont se identific cu codul IBAN. S-au evideniat unele atribute dei acestea, n practic, sunt codificate n Cod_client, Nr_cont i Cod_tranzactie. Cod_client reprezint codul unic de nregistrare fiscal (CUIF) pentru persoane juridice, respectiv codul numeric personal (CNP) pentru persoane fizice. Atributele subliniate reprezint cheile primare ale relaiilor. Nu au fost evideniate atribute ca Data_Tranzactie, Tip_tranzactie, Cont_destinatie etc. care au fost

considerate, pentru simplificare, incluse la Detalii. De asemenea, nu au fost evideniate atributele care sunt legate de securitatea tranzaciei i a datelor. Pentru efectuarea tranzaciei, clientul bncii introduce codul tranzaciei pe care dorete s o efectueze i numrul contului bancar n care se vor reflecta efectele tranzaciei care se va efectua. Dac se folosete o interfa SQL pentru efectuarea tranzaciei, reprezentarea tranzaciei de nregistrare a unei pli de ctre clientul bncii, n limbaj pseudocod, se scrie astfel: Begin Transaction TRANZACTIE Begin Input (Cod_tranzactie, Nr_cont) EXEC SQL UPDATE CONT_BANCAR Set Suma_debitoare=Suma_tranzactie WHERE Nr_cont=Numar_cont EXEC SQL INSERT INTO TRANZACTIE (Cod_tranzactie, Nr_cont, Suma_tranzactie, Detalii). VALUES (Cod_tranz, Numar_cont, Suma_plata, NULL) Output ( Plata a fost inregistrata!) End. n relaia CONT_BANCAR suma care constituie obiectul plii care se va efectua se scade din sold (se trece la suma_debitoare), iar n relaia TRANZACTIE se scrie o nregistrare care materializeaz datele de identificare a tranzaciei. Nu s-au luat n considerare toate operaiile de actualizate a datelor din baza de date considerat. Cnd tranzacia se termin cu succes, se produce n final operaia de validare (COMMIT), iar n caz contrar, se produce operaia de abortare (ABORT sau ROLLBACK). Cnd are loc abortarea, tranzacia este oprit, iar efectele operaiilor deja efectuate sunt anulate, ceea ce nseamn c baza de date este adus n starea pe care o avea naintea nceperii tranzaciei. Cnd s-a produs validarea tranzaciei, efectele acestei tranzacii nu mai pot fi anulate.

10.1. Protecia bazelor de date distribuite Protecia bazelor de date distribuite reprezint un ansamblu de msuri umane i faciliti oferite de SGBDD (DDBMS) prin care se asigur integritatea datelor (corectitudinea datelor introduse) i securitatea datelor (accesul autorizat la date). Protecia datelor se face prin salvarea lor n cazul unor defecte sau erori accidentale. Se deosebesc trei aspecte ale asigurrii integritii datelor.

a) asigurarea integritii semantice a datelor (prevenirea introducerii unor date incorecte i a efecturii unor prelucrri greite); b) controlul accesului concurent la date (prevenirea apariiei unor rezultate incorecte din execuia concurent a unor prelucrri n regim multiutilizator); c) salvarea i restaurarea bazei de date (refacerea acesteia atunci cnd a fost afectat de funcionarea anormal sau de cderea SGBDD-ului, a sistemului de operare sau ca urmare a unor defecte hardware). Integritatea semantic a datelor. Introducerea unor date eronate n baza de date sau prelucrri care furnizeaz rezultate greite trebuie prevenite prin includerea n programele de aplicaie a unor secvene pentru testarea datelor i a unor faciliti de asigurare a integritii semantice a datelor oferite de SGBDD. Concret, orice operaie asupra datelor trebuie s respecte restriciile de integritate. Dup modul n care sunt exprimate restriciile de integritate sunt implicite i explicite. Restriciile de integritate implicite nseamn existena verificrilor la introducerea datelor (nu se accept valori care nu aparin tipului de date specificat), precum i dac exist conceptul de cheie unic, la inserare se va verifica unicitatea cheiei. n modelul relaional exist dou restricii de integritate asociate cheilor primare i cheilor externe i anume: 1. Integritatea entitii care presupune c nici un atribut care particip la formarea cheie primare a unei relaii nu poate primi o valoare NULL, aceasta din motivul c o cheie primar trebuie s identifice n mod unic tuplurile unei relaii. 2. Integritatea referenial (referirii) adic orice valoare a unei chei externe din relaia care refer trebuie s aib corespondent o cheie primar cu aceeai valoare n relaia referit sau s fie NULL. Restriciile de integritate explicite pot fi incluse n programele de aplicaie i verificate n momentul execuiei sau pot fi memorate n dicionarul datelor i verificate automat de SGBDD la fiecare operaie care se execut asupra anumitor date. Controlul accesului concurent la baza de date. n sistemul multiutilizator, sistemul de operare asigur accesul concurent al programelor n execuie la resurse, dup o anumit disciplin intern. n cazul aplicaiilor, care utilizeaz aceeai baz de date, ntreruperea executrii unui proces pentru nceperea sau continuarea altora poate conduce la alterarea datelor. Asigurarea integritii datelor, n acest context, presupune existena unor faciliti speciale pentru controlul accesului concurent la date la nivelul SGBDD-ului i acestea sunt tranzaciile. Tehnica blocrii..O execuie neserial a unor tranzacii concurente este considerat corect dac este serializabil, adic dac produce acelai rezultat ca i execuia serial a acestor tranzacii. Tehnica utilizat de SGBDD pentru a asigura execuia serializabil a tranzaciilor este tehnica blocrii. n cea mai simpl form, blocarea unor date de ctre o tranzacie, interzice celorlalte tranzacii accesul la aceste date. Blocarea se poate aplica la nivelul ntregii baze de date, la nivelul unui fiier, grup de nregistrri, nregistrare sau chiar la nivelul unui singur cmp dar cu implicaii diferite. La aplicarea tehnicii blocrii, se urmresc dou aspecte: a) n procesul de actualizare este interzis accesul celorlali utilizatori pn la completarea acestei operaii; b) accesul la datele pe care un utilizator le citete fr a le actualiza este interzis utilizatorilor pentru operaia de actualizare, dar este permis pentru operaia de citire.

Blocarea poate fi: - pentru citire sau partajabil (datele pot fi folosite i de ali utilizatori dar numai pentru operaii de citire); - pentru scriere sau exclusiv (datele nu pot fi accesate de alt utilizator). Interblocarea resurselor intervine atunci cnd dou tranzacii blocheaz anumite resurse, apoi fiecare solicit resursele blocate de cealalt. De aceea la nivelul SGBDD exist faciliti de prevenire sau de rezolvare a acestor situaii, putndu-se implementa una din urmtoarele strategii: 1. Prevenirea blocrii adic programele blocheaz toate resursele de care au nevoie nc de la nceputul fiecrei tranzacii. Aceast strategie este dificil de implementat, deoarece n cele mai multe cazuri este imposibil de precizat nainte ce resursele vor fi necesare pentru o tranzacie. 2. Soluionarea interblocrii. Se poate realiza prin utilizarea de ctre sistem a unui graf al precedenelor care s reflecte dependenele dintre procese i anume ordinea n care acestea trebuie executate. Salvarea i restaurarea bazei de date are ca scop readucerea datelor la o form consistent n urma unor evenimente care au alterat corectitudinea lor, cum ar fi: 1 funcionarea anormal sau o cdere a SGBDD-ului sau a sistemului de operare; 2 o defeciune a suportului fizic pe care este memorat baza de date. SGBDD asigur acumularea de informaii despre derularea tranzaciilor pn n momentul ntreruperii lucrului i aplicarea uneia din urmtoarele strategii de restaurare: - derularea napoi a tranzaciilor necompletate (cu ROLL-BACK) i care presupune anularea modificrilor fcute de acestea asupra bazei de date; - derularea napoi a tranzaciilor completate dar neefectuate n baza de date (cu ROLLFORWARD) i care presupune efectuarea acelor transformri prin care baza de date restaurat s conin rezultatele acestora. Salvarea bazei de date este operaia prin care se stocheaz date n vederea folosirii lor pentru o eventual restaurare. Volumul informaiilor care se salveaz, natura lor i intervalul de timp dintre dou operaii succesive de salvare, determin strategia de salvare. Datele salvate pot fi diferite combinaii ntre: - copii ale bazei de date i copii ale jurnalelor acestora; - jurnale ale tranzaciilor; - jurnale ale imaginii nregistrrilor din baza de date. Copiile bazei de date pot fi realizate automat de sistem la anumite intervale de timp sau la comanda administratorului bazei de date, ori de cte ori este nevoie i de obicei pe un alt suport magnetic dect cele pe care rezid baza de date. Aceste copii pot fi utilizate doar n situaia n care prelucrrile efectuate ntre momentul realizrii copiilor i cel al apariiei unei defeciuni pot fi reluate. Acest lucru este posibil doar dac prelucrrile sunt efectuate ntr-o secven cunoscut iar timpul necesar pentru reprocesarea lor nu este foarte mare. Durata mare de execuie pentru astfel de copii face ca anumite SGBDD-uri s recurg la copii ale jurnalelor bazei de date. Volumul datelor care vor fi copiate n acest caz va fi mai mic, iar procesul de restaurare va implica ntr-o msur mai mic intervenia uman. Jurnalul tranzaciilor este un fiier special ntreinut de SGBDD, n care sunt memorate informaiile despre tranzaciile efectuate asupra bazei de date cum sunt:

identificatorul sau codul tranzaciei; momentul nceperii execuiei tranzaciei; numrul terminalului sau identificatorul utilizatorului care a iniiat tranzacia; - datele introduse; - nregistrrile modificate i tipul modificrii. Jurnalul imaginilor se deosebete de jurnalul tranzaciilor prin aceea c el nu conine descrierea operaiilor efectuate asupra bazei de date, ci efectul acestora. Acest tip de jurnal poate avea una din formele: - jurnalul cu imaginea nregistrrilor dup modificare i n acest caz conine copia fiecrei nregistrri care este modificat; - jurnalul cu imaginea nregistrrii nainte de modificare; - jurnalul care conine ambele tipuri de mai sus. n funcie de defeciunea care a determinat ntreruperea lucrului, restaurarea bazei de date se realizeaz automat de SGBDD sau manual, adic necesit intervenie uman. Restaurarea automat a bazei de date este executat de SGBDD dup oprirea i restaurarea sistemului n urma unei cderi. Prin acest proces baza de date este adus ntr-o form consistent prin derularea napoi a tranzaciilor active n momentul defeciunii i continuarea tranzaciilor nregistrate ca finalizate n fiierul jurnal, dar care nu sunt nc reflectate n baza de date. O cerere de acces la date, primit de SGBDD, va determina transferul unei pagini de disc n memoria principal. Eventualele modificri ale datelor, aflate acum n memoria principal, nu vor fi urmate imediat de rescrierea paginii respective pe disc. Aceast operaie poate fi fcut periodic sau la o cerere explicit a sistemului sau n cazul n care este nevoie de spaiu fizic pentru o alt pagin de disc solicitat. Pagina care se va nlocui va fi aceea care nu a fost utilizat ntr-un interval mare de timp. De obicei sunt meni-nute n memorie paginile frecvent utilizate, ceea ce duce la reducerea numrului de operaii de transfer ntre memoria principal i memoria extern. Acelai regim de pstrare n memorie, pn la un transfer ulterior pe disc, se aplic i informaiilor de jurnalizare a tranzaciilor. Sincronizarea memoriei cu baza de date i fiierul jurnal se realizeaz prin executarea unui punct de verificare (ceckpoint). SGBDD-ul poate executa punctul de verificare la o comand explicit CHECKPOINT. Un punct de verificare presupune executarea urmtoarelor operaii: a) oprirea proceselor active la momentul respectiv; b) forarea scrierea paginilor de memorie n jurnale i apoi n baza de date; c) scrierea unei nregistrri speciale n jurnalul tranzaciilor, scriere necesar la restaurarea i reluarea prelucrrilor care indic starea fiecrui proces activ la momentul executrii punctului de verificare, starea fiierelor temporare de lucru, pointerii la cozile de mesaje; d) continuarea proceselor anterior oprite . Restaurarea manual a bazei de date este astfel denumit deoarece implic intervenie uman i nu pentru c ar fi un proces manual. Este necesar n situaia distrugerii suportului de memorie extern pe care rezid baza de date. n cazul anumitor SGBDD-uri, acest proces se bazeaz doar pe efectuarea de copii de siguran ale bazei de date.

Restaurarea va consta din ncrcarea celei mai recente copii a bazei de date i reluarea prelucrrilor efectuate din momentul copierii i pn la producerea defeciunii. Copiile se pot realiza n una din urmtoarele maniere: 1. Deconectarea tuturor utilizatorilor de la baza de date, efectuarea copierii i apoi conectarea utilizatorilor la baza de date. 2. Efectuarea copiilor n mod dinamic, adic n timp ce utilizatorii acceseaz baza de date. Aceast facilitate este util n regim de lucru on-line. Copierea bazei de date va reflecta starea bazei de date la momentul respectiv, inclusiv efectele tranzaciilor n curs de execuie. SGBDD-ul va realiza automat derularea napoi a tranzaciilor n curs de execuie, obinndu-se astfel o stare consistent a bazei de date. Timpul consumat de operaia de copiere este dependent de mrimea bazei de date ca i de metoda de copiere utilizat. Acest parametru va fi luat n considerare la stabilirea frecvenei de realizare a copiilor. Restaurarea manual este cu att mai eficient cu ct SGBDD-ul va permite i copierea fiierelor jurnal. n intervalul dintre dou copieri ale bazei de date se vor realiza mai multe copii ale fiierului jurnal, se vor stabili punctele de verificare, n felul acesta asigurndu-se sincronizarea memoriei cu fiierul jurnal i cu baza de date. Tranzaciile inactive din jurnal vor fi terse din fiier. Procesul de restaurare presupune ncrcarea celei mai recente copii a bazei de date, urmat de ncrcarea copiilor jurnalului n ordinea n care au fost efectuate. Asigurarea securitii bazei de date presupune interzicerea accesului neautorizat la date i se realizeaz cu un set de msuri de protecie uman, software i hardware. Astfel, se pot stabili parole pe baza crora s fie permis accesul la resursele sistemului de calcul. SGBDD-ul poate activa i un jurnal pentru urmrirea accesului la baza de date, pe baza lui fiind posibil detectarea ncercrilor de acces neautorizat. Pentru cererile de I/O transmisie sistemului de operare de SGBDD sunt posibile verificri suplimentare referitoare la utilizarea corect a fiierelor sau a funciilor sistemului de operare. Hardware-ul poate oferi i el o protecie suplimentar prin transferarea datelor numai n zone de memorie care sunt controlate de SGBDD. Modalitile de asigurare a securitii bazei de date sunt: 1. Autorizarea i controlul accesului la date, care presupune identificarea utilizatorilor, restricionarea accesului acestora la date precum i stabilirea de restricii pentru datele accesate. SGBDD-urile actuale folosesc pentru identificarea utilizatorului, parole, fiecare parol fiind asociat cu anumite drepturi de acces la date. SGBDD-ul va menine pentru fiecare parol o list de privilegii pentru user-ul care folosete acea parol. User-ii pot fi asociaii unor grupuri, la drepturile fiecruia adugndu-se drepturile stabilite pentru grupul respectiv. Administratorul bazei de date este user-ul care implicit are toate drepturile asupra bazei de date precum i dreptul de a stabili sau revoca privilegii pentru ceilali utilizatori. Utilizatorii obinuii sunt cei care nu au n proprietate obiecte i nu au alte privilegii dect cele motenite ca membri ai unui grup sau menionate explicit de administratorul bazei de date sau proprietarii de obiecte. 2. Definirea i utilizarea viziunilor (a schemei externe a bazei de date). Viziunile sunt partiii logice ale bazei de date. Ele sunt definite pentru diferii utilizatori n raport cu

necesitile acestora de a avea acces la date. Securitatea datelor va fi asigurat prin definirea tuturor drepturilor necesare unui utilizator pentru o viziune i revocarea drepturilor pentru obiecte iniiale. Utilizatorul nu va avea acces la efectuarea unor operaii asupra vizunii care s afecteze obiectele iniiale. 3. Realizarea de proceduri speciale. Sunt SGBDD-uri care au facilitatea definirii unor proceduri care s fie pstrate la nivelul sistemului, ntr-o form precompilat. n aceste proceduri se vor specifica explicit operaiile care se vor efectua asupra datelor. 4. Criptarea datelor este operaia de codificare a datelor pe timpul stocrii sau al transportului lor, astfel nct descifrarea lor s poat fi fcut numai de posesorii autorizai de cod. La nivelul SGBDD-ului aceast facilitate are dou forme: a) existena unor rutine speciale care realizeaz criptarea datelor la cerere sau automat; existena unor instrumente care permit utilizatorului s-i realizeze rutine proprii de criptare. 11. Baze de date online 11.1 Problematica general Bazele de date online reprezint un tip special de baze de date distribuite care este folosit ntr-un mediu de tipul Internet, Extranet sau Intranet. Din punctul de vedere al utilizatorului final din organizaia economic, este mai puin important unde este localizat baza de date (pe Intranet-ul organizaional, pe Extranet sau pe Internet), ci dac i satisface cerinele imediate, sub aspect cantitativ i calitativ, de informare sau pentru asistarea deciziei. Reeaua Intranet este o reea local de calculatoare i de comunicaii pentru organizaii mari care asigur, prin tehnologia Web, cerinele de informare i documentare ale angajailor si, iar prin extensie, prin cont i parol de accces (reeaua Extranet), i ale utilizatorilor externi agreai de organizaie (clieni, furnizori, colaboratori externi etc.). Reeaua Intranet poate s existe complet separat de reeaua Internet. Arhitectura Intranet este prezentat, dup BDASEIG , n fig.11.1. Serverul Web, denumit i server HTTP, este un server software care folosete protocolul de transfer al hipertextelor, HTTP (HyperText Transfer Protocol) pentru a furniza documente HTML i scripturi asociate la cererea utilizatorilor finali. Prin intermediul unor interfee standard de tipul API (Application Programming Interface) sau CGI (Common Gateway Interface), se pot executa pe server programe sau scripturi prin care sunt accesate bazele de date online de diverse tipuri i organizate dup diverse modele de date. Se reamintete c scriptul este un program compus dintr-un set de instruciuni cu privire la o aplicaie sau la un program utilitar. n aplicaiile Web, scripturile sunt utilizate pentru obinerea interactivitii i personalizrii paginilor Web. n cadrul acestei reele Intranet, serviciile furnizate sunt de acces la bazele de date (de unde se obin date sub form de informaii i cunotine), de comunicaii i partajarea resurselor informatice, pentru accesarea i dezvoltarea aplicaiilor, de administrare, securitate i transport etc. Aceste servicii sunt mprite pe opt niveluri (Forrester Research). ntre acestea se regsesc o serie de servicii informaionale specializate ca pagini Web, transfer de fiiere realizabil prin intermediul protocolului FTP,

(File Transfer Protocol), groupware, tiri (News), circulaia documentelor, videoconferine i audioconferine, forumuri electronice.

PROGRAME

MESAGERIE SMTP/POP

GROUPWARE, NEWS

INTERFEE STANDARD

API
(BROWSER WEB)

TCP/I P

FTP
DIRECTOARE CU FIIERE Fig.11.1. Arhitectura reelei Intranet Paginile Web sunt documente Web, cu legturi la alte documente Web, ce sunt formate din fiiere HTML, fiiere asociate pentru grafic i scripturi, stocate ntr-un director personalizat pe un server Web, ce se identific printr-o adres de resurs tip Internet, URL (Uniform Resource Locator). Paginile Web interactive conin i applet-uri Java (programe ce se execut ntr-o aplicaie cu browser, adic program de navigare n reelele de tipul Intranet, Extranet i Internet). Mai multe documente Web, intercorelate ntre ele, formeaz un site Web. Un server Web poate stoca mai multe site-uri Web (pentru CLIENT MAIL

JAVA

persoane fizice i firme mici), dup cum mai multe servere Web pot gzdui acelai site Web (organizaiile mari). Transferul de fiiere se efectueaz n directoare de fiiere, cataloage sau dosare (folders). Groupware asigur unui grup de utilizatori din reeaua Intranet s colaboreze la realizarea unui proiect. Serviciile Web reprezint n esen o familie de aplicaii bazate pe protocoalele Web ce pot fi combinate i integrate n aplicaiile comerciale (B2B, B2C) pe Intranet, Extranet, respectiv Internet. n afara protocolului HTTP, reamintit mai sus i apreciat ca destul de nesigur, sunt utilizate alte protocoale standard ca XML i SOAP. Protocolul XML (extensible Markup Language) este o form condensat a limbajului standard generalizat de marcare, SGML (Standard Generalized Markup Language), iar protocolul de acces la obiecte simple, SOAP (Simple Object Access Protocol) permite schimbul de date structurate sub form de obiecte. Limbajul de descriere a serviciilor Web, WSDL (Web Service Description Language) este un format XML creat pentru a asigura interoperabilitatea sporit a serviciilor Web cu instrumentele de dezvoltare. Mesageria, ca activitate de livrare a mesajelor (e-mail, fax), se realizeaz prin intermediul protocolului TCP/IP de transfer a mesajelor simple n reea, SMTP (Simple Mail Transfer Protocol), protocolului pentru serverele de e-mail (oficiile potale electronice), POP3 (Post Office Protocol) i a protocolului de acces interactiv la pota electronic, IMAP (Interactive Mail Access Protocol). Serverele proxy sau intermediare realizeaz selecia mesajelor, reducnd astfel traficul prin reea. Prin extensia potei electronice s-a obinut circulaia documentelor (workflow) n Intranet. Videoconferinele i audioconferinele asigur interactivitatea utilizatorilor pasivi, prin legturi punct la punct sau multipunct, cu soft specializat (de exemplu, CU-SeeMe). Bazele de date online din Intranet sunt consultate prin intermediul navigatoarelor (browser-elor). Motoarele de cutare (Search Engine) au devenit din ce n ce mai puternice n regsirea informaiilor dup cuvinte-cheie i grupuri de cuvinte-cheie. Accesarea bazelor de date online este facilitat de realizarea paginilor Web dinamice. 11.2 Pagini Web statice i dinamice Paginile Web statice se realizeaz cu ajutorul limbajului HTML. n Microsoft Access, prin funcia de export (meniul principal File, opiunea Export), paginile Web pot prelua date dintr-un tabel, formular, interogare sau raport. Succesiunea de comenzi pentru un tabel MATERIALE este urmtoarea: selecie obiect de vizualizat dup nume din fereastra Database (table); meniul principal File; opiunea Export; fereastra Export Table MATERIALE As; caseta Save As Type cu opiunea HTML Documents; butonul Save. Paginile Web dinamice pun n eviden schimbrile survenite n baza de date online i se adapteaz permanent la aceste modificri, nefiind necesar generarea lor ca la paginile Web statice realizate cu limbajul HTML. Produsul Microsoft Access 2000, respectiv 2002, 2003, asigur generarea paginilor Web dinamice de tipul ASP (Active Server Pages) sau IDC/HTX. Tehnologia ASP pentru Web asigur script-area pe partea de server pentru realizarea interactivitii documentelor indiferent de platforma de lucru a prii de client. Utilizatorul are acces cu un editor peste codul generat de Access pentru eventuale

modificri ale elementelor de design al paginilor sau legate de datele accesate. Pot fi adugate n pagini diverse script-uri (JavaScript). Aceste pagini dinamice pot fi generate cu Access numai n cazul obiectelor de tipul tabel, interogare sau raport i pot fi recepionate pentru publicare pe servere Web de tipul Microsoft Internet Information Server(IIS) sau Personal Web Server (PWS). Serverele Web de tipul IIS funcioneaz sub sistemele de operare ncepnd cu Microsoft Windows 2000, n timp ce PWS funcioneaz sub toate versiunile sistemului de operare Microsoft Windows. Legtura dintre baza de date i pagina Web presupune definirea naintea generrii paginii Web dinamice a unui nume al sursei de date, DSN (Data Source Name) prin intermediul facilitii de conectivitate a bazelor de date deschise, ODBC (Open DataBase Connectivity). Paginile Web dinamice generate cu produsul Access de tip ASP cuprind cod text n limbajul HTML i acces la baza de date generat n limbajul VBScript. Limbajul VBScript folosete colecia de obiecte ADO (ActiveX DataBase Object) i limbajul de interogare structurat, SQL. ADO reprezint o interfa la OLE DataBase, de tipul interfeelor de programare a aplicaiilor, API (Application Programming Interface), care permite accesul la date direct dintr-o baz de date. Produsul Microsoft Access, prin obiectele de tipul Data Access Pages ce se gsesc n fereastra Database, la seciunea Pages, asigur crearea unui fiier separat de baza de date pentru pagini Web. Legtura ctre pagina Web este stocat n obiectul din baza de date ce asigur accesarea bazei de date din Access de pe Internet cu ajutorul browser-ului Microsoft Internet Explorer. Crearea unui obiect de tipul pagin Web se realizeaz prin apsarea butonului New, dup care se alege una dintre urmtoarele opiuni: Design View, ce asigur proiectarea manual a paginii Web (este similar cu shortcutul Create data access page in design view); Existing Web Pages, ce asigur proiectarea unei pagini Web avnd ca model o pagin Web existent n mediul de lucru (este similar cu shortcut-ul Edit Web page that already exists); Page Wizard, ce asigur asistarea generrii paginii Web (este similar cu shortcut-ul Create data access page by using wizard); AutoPage:Columnar, ce asigur crearea automat a paginii Web ce are aspectul unei coloane din tabelul sau interogarea selectat pentru prezentare.

Fig.11.2 Crearea formularului pentru pagina Web ce vizualizeaz tabelul MATERIALE n fereastra New Data Access Page se selecteaz tabelul sau interogarea bazei de date care constituie sursa de date pentru pagina Web (de exemplu, MATERIALE) i apoi se apas butonul OK. n modul Design View apar ferestrele Page 1: Data Access Page, Field List i Alignment and Sizing. n lista de cmpuri, Field List, se selecteaz cmpurile ce vor fi reprezentate n pagina Web (fig.11.2). n fereastra Page 1: Data Access Page apare un formular special care va fi accesibil cu un browser Web.

12. Visual Basic.NET i bazele de date distribuite Aa cum s-a artat mai sus, bazele de date distribuite (DDB) sunt baze de date implementate n reeaua de calculatoare i de comunicaii prin intermediul partiiilor componente ce sunt dispuse n diferite noduri ale reelei. Aceste baze de date pot fi centrale sau locale. O entitate client poate executa, de regul, dou tipuri de operaii asupra unei baze de date distribuite: citire (situaia n care nu se efectueaz modificri asupra bazei de date) i scriere (adugare de noi nregistrri, tergerea unor nregistrri n baza de date, modificarea coninutului unor nregistrri). Efectele operaiei de scriere se obin dac entitatea client dispune de permisiunea necesar acestui scop. ntre aplicaia entitii client

i sistemul de gestiune a bazelor de date distribuite (DDBMS) de pe serverul de date se interpune un program specilizat, adaptor de date sau driver care ndeplinete funcia de translator ntre limbajul aplicaiei clientului i limbajul specific DDBMS. Tehnologia Microsoft pentru platforma .NET, denumit ADO.NET realizeaz accesul la bazele de date relaionale i la etichetele XML. ADO.NET (Active Data Object) semnific obiecte de date active ce fac parte din clasele specifice DataSet (tabele, rnduri, coloane, relaii etc.), sursele de date pentru .NET Framework i definiiile formulate pentru tipuri particularizate specifice, de exemplu SQL Server. Etichetele XML (eXtensible Markup Language) desemneaz, alturi de atributele XML, informaii referitoare la elementele XML din compunerea documentelor XML (etichet de nceput, element, etichet de sfrit): &lt; Nume_banca =BCR din Bucuresti&gt;

Sursa de date pentru .NET FRAMEWORK

Setul de date locale

DataSet

Fig.12.1 Prile componente ale arhitecturii generale de acces la date distribuite ADO.NET Prile componente ale arhitecturii generale ADO.NET sunt baza de date (DataBase), sursa de date .NET (Data Provider) i setul de date locale DataSet, aa cum se prezint pe site-ul www.Microsoft.com (fig.12.1) i n dicionarul de calculatoare Microsoft. Serverul de date realizeaz o conexiune temporar cu entitatea client numai pe durata unei operaii de citire sau a unei operaii de scriere. Altfel exprimat, ADO.NET utilizeaz un model deconectat n scopul gestionrii bazelor de date. Pentru efectuarea unor operaii asupra bazei de date de pe serverul de date este necesar parcurgerea urmtoarelor etape : stabilirea parametrilor de realizare a conexiunii client/server; instanierea unui obiect ce aparine clasei Data Adapter, prin intermediul cruia clientul adreseaz serverului comenzi din categoriile selecie (Select), adugare (Insert), tergere (Delete), actualizare (Update), dup care recepioneaz rezultatele aciunii ntr-o baz de date local; construirea bazei de date locale cu ajutorul unei comenzi din adaptor (Data Adapter); procesarea datelor din setul de date locale (DataSet) prin modificare i transmiterea rezultatelor acestor prelucrri la serverul de date (Microsoft SQL Server, Oracle DB etc.). Locul adaptorului de date n arhitectura client/server este prezentat n fig.12.2.

XML

Prin intermedul lui Microsoft Visual Basic.NET se pot realiza conexiunile la baze de date i se pot construi seturile de date locale. Entitatea client stocheaz imaginea setului de date de care are nevoie de pe serverul de baze de date, ntr-un obiect local. Dup aceast operaie, se produce deconectarea clientului de la serverul de baze de date. Dac sunt efectuate modificri asupra nregistrrilor setului local de date, ADO.NET realizeaz actualizarea modificrilor pe server la urmtoarea conectare ce este destinat salvrilor prelucrrilor efectuate. Pentru interogarea bazei de date de pe server, exist mai multe metode: utilizarea frazelor SQL generate n mod automat de adaptorul de date (SELECT); crearea unor proceduri noi ce se memoreaz; utilizarea procedurilor deja memorate.

Set de date local (DataSet) la Client

Adaptor de date (Data Adapter)

Server de date (SQL Server, Oracle DB)

Fig.12.2. Locul adaptorului de date n arhitectura client/server Aceste metode apar ca opiuni ale ferestrei de alegere a tipului de interogare din Data Adapter. Setul de date local n ADO.NET reprezint o colecie DataTable Collection compus din mai multe tabele ce sunt obiecte DataTable. Obiectele DataTable reprezint imaginile unor tabele ale cror coloane sunt stocate n DataColumnCollection, ale cror restricii sunt coninute n ConstraintCollection, ale cror rnduri sunt stocate n DataRowCollection. De asemenea, relaiile ntre tabelele bazei de date relaionale sub form de obiecte DataRelation sunt stocate n DataRelationCollection. Setul de date local poate fi populat cu nregistrri noi prin comanda Fill (umple) care exist la adaptorul de date. Accesul la elementele din setul de date local se execut pe baza structurii ierarhice care, n sens descresctor, arat astfel: setul de date local (DataSet), tabele (Tables), rnduri (Rows), cmpuri (Fields), itemi (Items). Formularul de lucru n VB.NAT se realizeaz n aceeai manier cu cea prezentat la capitolul de Visual Basic (casete cu text, etichete, liste etc.). n cazul fiecrui set de date local pot fi vizualizate, din meniul contextual, proprietile cmpurilor acestuia, sub form de ferestre cu dou coloane. Aceste proprieti nu pot fi modificate de utilizator. 13. BAZE DE DATE N TEHNOLOGII AVANSATE Cercetrile n domeniul bazelor de date n tehnologii avansate (advanced database) evideniaz cteva tendine relevante concretizate n baze de date orientate obiect, baze de date relaionale orientate obiect, baze de date active, baze de date distribuite, baze de date online. Generaia bazelor de date n tehnologii avansate cuprinde, n principal, bazele de date active:

Baze de date deductive Baze de date multidimensionale Baze de date multimedia. Bazele de date active sunt caracterizate de comportamentul lor descrie n raport cu schimbrile ce survin n interiorul acestora sau cu evenimentele ce se produc n afara acestora. Acest comportament descrie al bazelor de date active este descris de regulile eveniment condiie aciune (ECA). Aceasta nseamn c atunci cnd (when) un eveniment se produce, se testeaz o condiie i dac (if) aceasta este adevrat la evaluare, atunci (then) se execut o aciune. 13.1 Bazele de date deductive Bazele de date deductive sunt denumite i baze de date inteligente sau baze de date bazate pe logic i sunt caracterizate de posibilitatea gestionrii adaptive a datelor n conformitate cu cerinele utilizatorilor n luarea deciziilor economice. Bazele de date deductive sunt baze mari de date ce sunt supuse analizei i interpretrii. Sistemul de gestiune aferent acestor baze de date deductive cuprinde instrumente de realizare automat a raionamentelor ce sunt realizate prin programare logic. Programarea logic reprezint un tip de programare bazat pe raionamente, n care programul este compus din fapte i reguli i are ca rezultat concluzii. Unul dntre limbajele de programare care asigur implementarea acestui tip de programare este limbajul Prolog. Prin raionament se nelege un proces de deducie (inferen) aplicat asupra setului de fapte i reguli. Faptele (facts) sunt informaii declarative, cu reprezentare simbolic, ce servesc pentru descrierea relaiilor care se refer la unul sau mai multe obiecte ale problemei de rezolvat. Relaiile descriu legturile dintre obiecte. Regulile (rules) sunt utilizate pentru definirea i deducerea de noi fapte i relaii dintre faptele cunoscute. Motoarele de inferen reprezint elementele efective de prelucrare, ce pornesc de la fapte ca date de intrare (baza de fapte) i prin construirea de raionamente pe baza regulilor, conduc la obinerea de noi fapte. Elementele de baz ale programrii logice, ale sistemelor de inteligen artificial i ale limbajului Prolog vor fi detaliate la cursul de Sisteme expert de gestiune care se studiaz n anii urmtori la specializarea Contabilitate i informatic de gestiune. n lucrarea de fa se prezint numai cteva noiuni introductive n scopul ntregirii imaginii de ansamblu asupra generaiilor de baze de date, sisteme de gestiune i tehnologii de stocare i prelucrare asociate acestora. Fundamentarea matematic a bazelor de date deductive este bazat pe universul Herbrand, adic setul de simboluri de tip constant din limbajul L, limbaj care nu conine simboluri funcie, dar conine cel puin simboluri predicative. Simbolul predicativ este specific predicatelor (predicates) ca elemente de baz n procesarea datelor prin programarea logic i care reprezint relaiile din expresiile cu fapte. Baza Herbrand cuprinde ansamblul faptelor posibile despre baza de date i se constituie ntr-un sistem nchis. Bazele de date deductive utilizeaz, n principal, logica propoziiilor de ordinul I, adic acel limbaj formal ce conine un alfabet, reguli de sintax, axiome i o regul de deducie de tipul cnd (when)...dac (if)... atunci (then) ... Este de menionat diferena esenial dintre regulile de producie specifice sistemelor expert (premis sau condiieconcluzie) i regulile specifice sistemelor de gestiune a bazelor de date active (evenimentcondiie aciune).

Bazele de date deductive prezint dou componente: componenta asociat modulului relaional (SGBDR pentru baza de fapte) i componenta asociat modulului programrii logice (pentru realizarea interogrilor). Cuplarea dintre SGBDR i modulul programrii logice (sistemul de raionamente) poate s fie cuplare slab (realizat numai n anumite momente de timp) sau cuplare strns (interaciune continu, permanent). Prin integrarea complet a instrumentelor de realizare automat a raionamentelor n cadrul SGBDR se obine un sistem de gestiune a bazelor de date deductive cu limbaj de descriere a datelor, limbaj de manipulare a datelor i limbaj de reguli. Pe baza limbajului Prolog i a unei interfee specializate n lucrul cu baze de date, s-a realizat limbajul Datalog. Limbajul Datalog este un limbaj declarativ orientat pe programarea logic acceptat la limbaj standard destinat bazelor de date deductive. Un program realizat n limbajul Datalog este o secven cu definiii de proprieti. Sintaxa limbajului nu conine predicate speciale i utilizeaz logica propoziiilor de ordinul I, fr simboluri de funcie. Bazele de date deductive sunt n curs de cercetare i de punere la punct a unor soluii practice n strns legtur cu dezvoltrile din domeniul inteligenei artificiale.

13.2 Bazele de date multidimensionale Bazele de date multidimensionale (MDB, Multidimensional DataBase) reprezint un ansamblu de date, constituite prin extracie sau transformare de date, avnd ca surse bazele de date (fiierele) interne sau externe dintr-o organizaie, date ce variaz n timp, sunt organizate multidimensional i sunt exploatate prin intermediul interogrilor convenionale sau prin tehnici de analiz simpl (OLAP) sau prin tehnici de analiz n tehnologii avansate (Data Mining). Sursele de date interne sunt bazele de date operaionale din organizaie, adic acele baze de date specifice domeniilor de gestiune ale organizaiei (producie-servicii, comercial-marketing, cercetare-dezvoltare, financiar-contabil, resurse umane) ce stocheaz datele ce se refer la tranzaciile (evenimentele) specifice domeniului de gestiune considerat. Sursele de date externe sunt reprezentate de datele provenite de la alte organizaii de coordonare sau de sintez. Prelucrarea datelor din bazele de date operaionale se realizeaz potrivit conceptului de prelucrare interactiv (online) a tranzaciilor, OLTP (On-Line Transaction Processing) ce reliefeaz caracteristicile acestor prelucrri: volum limitat de date accesate, previzibilitatea interogrilor realizate de utilizatorii finali, numr mic de intrri/ieiri asociat fiecrei tranzacii, prezen sporadic i slab a elementelor de analiz. Bazele de date multidimensionale servesc pentru obinerea de noi informaii sau pentru deducerea de noi cunotine prin interogare cu ajutorul limbajului SQL, prin prelucrare analitic online (analiz simpl) OLAP (OnLine Analytical Processing) sau prin tehnologia de rafinare inteligent (avansat) a datelor Data Mining. n tabelul 13.1 este prezentat, o comparaie ntre bazele de date operaionale i bazele de date multidimensionale.

Tabelul 13.1 Comparaie ntre bazele de date operaionale i bazele de date multidimensionale Nr. Caracteristica crt comparaie 1. Destinaia principal 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. de Bazele de date operaionale Gestiunea curent a tranzaciilor Pe procese funcionale Relaional, normalizate Actuale Nu Imediat Foarte sczut Tabele detaliate Mare Citire i screre Sute MB zeci GB Mic Bazele de date multidimensionale Component a sistemelor informatice pentru asistarea deciziilor Pe subiecte ale managementului Stea, fulg de nea, puin normalizate Temporale sau istorice Da n momente diferite Foarte ridicat Multidimensional, rezumat Mic Numai citire Zeci GB zeci TB Mare

Structurarea datelor Modele utilizate Date Agregarea datelor Actualizare Grad de consolidare Percepie Numr utilizatori Accesare Mrime Numr de nregistrri

Depozite de date La nivelul de management de exploatare, datele sunt stocate n baze de date i sunt gestionate cu SGBD-uri, prin prelucrarea tranzaciilor online, OLTP. Extragerea datelor relevante i obinerea informaiilor consolidate ale organizaiei, necesare nivelurilor superioare de management (de nivel mediu i strategic) se efectueaz prin prelucrarea analitic online, OLAP. Se obin, la acest nivel depozitele de date (Data Warehouse) ce sunt un produs al mediului organizaional (sistem informatic integrat) i al tehnologiilor informaiilor i ale comunicaiilor (IT&C) cele mai avansate. Depozitele de date conin volume mari de date (terabytes) ce servesc ca date de intrare pentru cele mai sofisticate tehnici i tehnologii de analiz i sintez. Depozitele de date sunt organizate separat de bazele de date operaionale ale organizaiei. Aceste baze de date operaionale asigur datele pentru depozite de date, dup ce sunt mai nti extrase, curate, transformate i stocate. Depozitele de date servesc pentru implementarea fizic a unor modele de date pentru asistarea deciziilor de importan strategic pentru organizaie. Caracteristicile fundamentale ale depozitelor de date sunt : orientarea pe subiecte, integrarea, caracterul istoric i persistena datelor. Orientarea pe subiecte semnific faptul c un depozit de date este focalizat pe modelarea i analiza datelor pentru asistarea deciziilor. Integrarea presupune utilizarea, pentru construirea unui depozit de date, a mai multor surse de date heterogene (fiiere de date, baze de date relaionale, nregistrri referitoare la tranzaciile online, surse de date externe organizaiei etc.). Caracterul istoric al depozitelor de date este dat de durata de stocare i folosire a datelor din depozitele de date (de regul, de la nceputul stocrii electronice a datelor din organizaie). Persistena datelor din depozitele de date se refer la caracterul permanent de stocare, cu atributul de citete-numai (read-only).

Un sistem informatic de asistare a deciziei, DSS (Decision Support System) asist luarea deciziei de management prin combinarea datelor, a modelelor i instrumentelor analitice sofisticate i a softului ntr-un singur sistem informatic puternic bazat pe depozite de date care poate sprijini luarea deciziilor structurate i semistructurate. Produsele informatice Microsoft SQL Server 7.0 sau 2000 conin instrumentul destinat serviciilor de analiz a datelor din depozitele de date, Analysis Services, denumit OLAP Services. n acest scop se utilizeaz conceptul de exploatare a datelor din depozitele de date, Microsoft Repository, prin folosirea metadatelor (Microsoft MetaData Services). Datele provenite din operaiunile curente ale organizaiei (OLTP) sau din sistemele motenite sunt stocate n baze de date i sunt manipulate, aa cum s-a prezentat n lucrarea de fa, cu ajutorul sistemelor de gestiune a bazelor de date (SGBD). Periodic, aceste date sunt extrase i asamblate n cadrul nivelurilor superioare de management ale organizaiei economice sub forma depozitelor de date (Data Warehouse), servind astfel pentru analiza i extragerea informaiilor utile nivelurilor de management mediu i strategic. Datele sunt depozitate pe categorii de interes i sunt corelate n timp (perioade mari de timp) pentru a putea fi folosite pentru analiz i interogare online. Elementele depozitelor de date sunt tabelele de fapte, dimensiunile i nivelurile de centralizare. Dimensiunile depozitelor de date sunt imense (zeci i sute de TB, terabaii). Tabelul de fapte este elementul constitutiv al depozitului de date ce const n date i informaii (fapte) referitoare la obiectul de activitate al companiei, produsele/serviciile oferite i vndute/realizate, costurile de producie, preurile practicate, detalii privind livrarea acestor produse/asigurarea serviciilor ctre beneficiari, date despre furnizori, colaboratori i beneficiari/clieni, performanele personalului companiei etc. Tabelul de dimensiuni depoziteaz date i informaii pe baza conceptului de dimensiune (aceasta poate reprezenta entitile de msurare a timpului ora, ziua, sptmna, luna, trimestrul, semestrul, anul, cincinalul, deceniul, secolul -, entitile geografice (localitatea, statul, regiunea, continentul -, entitile de producie categorie, denumire, cod, tip, calitate, cantitate vndut, pre unitar etc. Nivelurile de centralizare servesc pentru creterea vitezei de rspuns la analiza i interogarea depozitelor de date prin structurarea datelor n funcie de diverse criterii timp, categorii de produse, zon geografic, categorii de clieni etc. 13.3 Bazele de date multimedia Multimedia reprezint, n sens larg, ansamblul mijloacelor (mediilor) de comunicare prin intermediul crora se realizeaz o percepie vizual i auditiv, sub diverse forme, a informaiilor destinate unui utilizator anume. Principalul avantaj oferit de multimedia este dat de accesul rapid i facil la cunoatere i infomare. Suportul esenial al dezvoltrii multimediei este dat de progresele IT&C. Ca urmare, n acest context al informaticii i tiinei calculatoarelor, multimedia poate fi definit ca o combinaie interactiv a mai multor tipuri de date: sunete, grafic, animaie i secvene video. n Dicionarul de calculatoare Microsoft se precizeaz c multimedia reprezint un subset al hipermediei n care elementele specifice multimediei sunt integrate cu hipertextul. Hipertextul este un text legat sub forma unei reele complexe de asociaii, n care parcurgerea are caracter nesecvenial (detaliile au fost date la cursul de Informatic de gestiune baze, cnd au fost studiate elemente ale limbajului HTML). Exist mai multe standarde hipermedia: HTML (HyperText Markup Language) i variantele sale ulterioare,

MHEG (Multimedia Hypermedia Expert Group), HyTime, Dexter Hypermedia, ODA, Acrobat PDF(Portable Document Format) etc. Bazele de date multimedia, MMDB (Multimedia DataBases) sunt destinate stocrii datelor multimedia (prin extensie, datelor hipermedia). Structurile de stocare sunt eficiente i sunt realizate dup arbori speciali (de exemplu, Quadtree, Rtree sau combinaii ale acestora). Bazele de date multimedia sunt baze de date foarte mari deoarece stocarea datelor video i audio necesit spaii de memorie imense. Pe cale de consecin, interogarea acestor baze de date cere timp destul de mare. De aceea, regsirea datelor multimedia presupune aplicarea unor metode specifice. Datele multimedia sunt date dinamice i baza de date multimedia este o baz de date activ. Bazele de date multimedia sunt i baze de date reactive, n sensul c exist posibilitatea de modificare a strii mediului ca urmare a producerii unor evenimente externe: o secven video sau o pies muzical pot fi modificate, inclusiv prin alterarea coninutului acestora. Pentru datele multimedia lipsete modelul abstract de date (specific tipurilor de date alfanumerice). Datele multimedia sunt structurate pe obiecte complexe, compuse din date de tipuri elementare. De exemplu, o aplicaie de prezentare i reclam bancar poate fi format din desene animate, sunet corespunztor imaginilor i secvene de film din activitatea de frontoffice la una dintre sucursalele bncii. Obiecte complexe utilizate n realizarea spotului publicitar pot fi regsite i la monitoarele ATM-urilor bncii atunci cnd clientul efectueaz o operaiune de scoatere a numerarului din contul propriu. n aplicaiile cu baze de date multimedia, accesul la date reprezint, n realitate, interaciunea dintre utilizator i date, la nivel de obiect i la nivel de mediu de comunicare. Bazele de date multimedia sunt astfel organizate dup modelul orientat pe obiecte, pe mai multe niveluri: structura funcional sau tehnologic, structura relaional, structura de interogare sau dinamic i structura de prezentare sau de sistem. n cazul structurii funcionale sau tehnologice a bazelor de date multimedia, sunt evideniate funciile de generare, achiziie, compresie, stocare, manipulare etc. a datelor multimedia ce sunt, ulterior, integrate cu datele de tipuri clasice. n ceea ce privete structura relaional, datele multimedia provenite din surse diferite, heterogene (audio, video, animaie, imagini vectoriale, imagini raster, texte ASCII, date formatate) sunt corelate static n conformitate cu modelul orientat pe obiecte. n cazul structurii de interogare sau dinamic, metodele de regsire a datelor multimedia se utilizeaz n funcie de tipul datelor i modul de interaciune a utilizatorului cu baza de date multimedia. n sfrit, structura de prezentare sau de sistem se refer la independena bazei de date fa de platforma de lucru a utilizatorului, la mecanismele de acces concurent la baza de date, la modul de obinere a interfeelor grafice destinate utilizatorului, la scurtarea timpului de regsire a datelor multimedia i la apropierea acestuia de cel al aplicaiilor n timp real (run-time). Sistemele de gestiune a bazelor de date multimedia se fundamenteaz pe abordarea incremental ce are la baz modele intermediare de date asociate datelor grafice. Imaginile sunt interpretate ca tranziie de stri pe baza nivelelor de recunoatere a strilor obiectelor dintr-o imagine anume (scen). Cnd tranziia nceteaz se obine momentul de definire i stocare a unui model abstract al imaginii, cu cuvinte-cheie asociate. Exist limbaje de descriere a imaginilor video de tipul scenelor prin care fiecrui segment grafic din compunerea unei scene i se asociaz atribute (culoare, poziie, direcie de deplasare, efecte speciale).

SGBD multimedia sunt caracterizate de urmtoarele particulariti: datele multimedia sunt complexe, n volume mari i de tipuri variate; obiectele multimedia sunt mari, BLOB (Binary Large Objects); gestionarea datelor multimedia implic operaiuni complexe de sincronizare i de distribuire n timp i spaiu a datelor multimedia de tipuri diferite; suportul tehnic (adic gama de periferice ale sistemului informatic n a crui compunere intr bazele de date multimedia i SGBD asociat) este diversificat. Se pot da ca exemple de SGBD multimedia : SGBD multimedia orientat obiect, STORM (Structural and Temporal Object Oriented Multimedia) ce integreaz operatori structurali (tuple, set, list) cu relaii temporale (equal, after, before); Modelul orientat obiect, MOAP (Multimedia Object and Application Model), ce reprezint obiectele multimedia sub forma unei ierarhii de clase orientate obiect, iar aplicaiile multimedia interactive sunt obinute pe baza scenariilor bazate pe aplicaii i evenimente sistem, cu obiecte definite temporal i spaial. SGBD multimedia realizeaz stocarea i transmiterea pe canalele de comunicaii a datelor multimedia sub form comprimat. Exist tehnici de compresie avansate care realizeaz comprimarea datelor multimedia cu rate de compresie situate ntre 10:1 i 50:1 pentru imagini, respectiv 2000:1 pentru semnal video. Compresia datelor multimedia se execut dup standarde ca JPEG (Joint Photographic Expert Group) rata de compresie 15:1, MPEG (Moving Pictures Expert Group) rata de compresie a imaginilor n micare 200:1, iar a semnalului audio 10:1. Crearea bazelor de date multimedia se realizeaz cu soft specializat (cu funcii de stocare i de consultare). De exemplu, Multimedia Toolbox, ce aparine firmei Asymetrix, este un instrument de realizat cri multimedia, orientat pe programare vizual, sub sistemul de operare Microsoft Windows. Limbajul de programare de tip script ncorporat n Multimedia Toolbox se numete OpenScript i servete pentru descrierea scenariului aplicaiei. Datele multimedia sunt afiate i transmise sub form de fluxuri (stream-uri) continue n timp. Bazele de date multimedia se folosesc cu precdere n descrierea i prezentarea produselor (un magazin virtual pe Internet - mall electronic utilizeaz n mod obligatoriu baze de date multimedia cu imaginile produselor ce se ofer spre vnzare), n administraia electronic, e-government (descrierea formularelor de contabilitate, a formularelor de nregistrare a plii impozitelor i taxelor, a documentelor specifice obinerii permisului auto, n activitatea de instruire i educaie (tutori inteligeni, enciclopedii multimedia educaionale), n activitatea de documentare (documente hipertext) etc. 13.4 Bazele de date relaionale orientate obiect Prin extinderea facilitilor oferite de bazele de date relaionale cu includerea structurilor de date complexe de natura obiectelor, s-au obinut baze de date relaionale orientate obiect. SGBD-ul asociat bazelor de date relaionale orientate obiect, OORDBMS (Object-Oriented Relational DataBases Management System), include elemente din SGBD relaional (RDBMS) i din SGBD orientat pe obiecte (OODBMS).

Conceptul de domeniu din teoria bazelor de date relaionale este echivalent cu conceptul de clas de obiecte din teoria bazelor de date orientate pe obiecte. Se consider ns erori ca s se echivaleze variabila de relaie din lumea relaional cu clasa de obiecte din lumea obiectelor i s se amestece relaiile cu pointerii prin care se afecteaz integritatea conceptual a modelului relaional. Se reamintete aici c pointerii sunt variabile ce conin adrese pentru itemi de date (itemii de date pot fi cuvinte, serii de numere sau nregistrri din fiiere) sau pentru instruciuni. Revenind la una dintre ideile de baz prezentate mai sus, pe cale de consecin, tabelele nu pot fi egalate cu clasele. Stonebraker a realizat o matrice de clasificare a SGBD (fig.13.1) care ajut la o mai bun nelegere a interaciunilor dintre cele dou modele pentru baze de date (relaional i orientat pe obiecte). Exemplele tipice asociate celor patru cuadrani (sferturi) ai matricei Stonebraker sunt: pentru cuadrantul 1 procesorul de texte clasic; pentru cuadrantul 2 aplicaiile economice (din domeniul afacerilor); pentru cuadrantul 3 aplicaiile de proiectare asistat de calculator, CAD (Computer Aided Design); pentru cuadrantul 4 aplicaiile cu baze de date multimedia. 2. Aplicaii pentru date simple cu cerine de interogri ad-hoc 1. Aplicaii pentru date simple fr cerine de interogri ad-hoc DATE SIMPLE 4. Aplicaii pentru date complexe cu cerine de interogri ad-hoc 3. Aplicaii pentru date complexe fr cerine de interogri ad-hoc

INTEROGARE PREZENT INTEROGARE ABSENT

DATE COMPLEXE

Fig.13.1 Matricea de clasificare a SGBD (matricea lui Stonebraker) Interogarea ad-hoc a unei baze de date semnific, n acest caz, interogarea imediat efectuat asupra bazei de date. Dac se ia, ca exemplu, o baz de date ce conine produsele unei firme de aparatur electronic i se adaug la aceast baz de date imagini cu produsele respective, se pune problema determinrii acelor produse electronice care satisfac o anumit caracteristic de design (aspect exterior). Este necesar prelucrarea imaginilor produselor electronice (ca

obiecte) pentru a obine rspunsul la problema ridicat. Caracteristicile dorite la selecie se descriu printr-o metod ataat obiectului. Se pot crea tabele prin intermediul caracteristicii de motenire (inheritance) specific obiectelor. Crearea unor funcii la nivel de nregistrare, la nivel de tabel i chiar la nivel de baz de date sunt ci de soluionare a problemelor practice care depesc cadrul bazelor de date relaionale, conducnd la ideea de baz de date relaional orientat obiect. Bazele de date relaionale orientate obiect asigur utilizarea la interogare a metodelor obiectelor diverse i a unor noi operatori pentru obiecte, precum i posibilitatea definirii propriilor metode pentru obiectele folosite din partea utilizatorului final. Date C.J. demonstreaz c un sistem obiect-relaional prezint mai multe caracteristici, dintre care se menioneaz: cerina de interogare ad-hoc, cu definirea vederilor (view-urilor) i constrngeri de integritate declarative; definirea dinamic a claselor pentru rezultatele interogrilor ad-hoc; metode ce includ mai multe clase; posibilitatea accesului dual interactiv i programat la baza de date; existena regulilor pentru chei externe sau strine etc. n cazul ultimelor versiuni ale SGBD Oracle, a fost implementat modelul obiecturalrelaional de date.

13. BAZE DE DATE N TEHNOLOGII AVANSATE Cercetrile n domeniul bazelor de date n tehnologii avansate (advanced database) evideniaz cteva tendine relevante concretizate n baze de date orientate obiect, baze de date relaionale orientate obiect, baze de date active, baze de date distribuite, baze de date online. Generaia bazelor de date n tehnologii avansate cuprinde, n principal, bazele de date active: Baze de date deductive Baze de date multidimensionale Baze de date multimedia. Bazele de date active sunt caracterizate de comportamentul lor descrie n raport cu schimbrile ce survin n interiorul acestora sau cu evenimentele ce se produc n afara acestora. Acest comportament descrie al bazelor de date active este descris de regulile eveniment condiie aciune (ECA). Aceasta nseamn c atunci cnd (when) un eveniment se produce, se testeaz o condiie i dac (if) aceasta este adevrat la evaluare, atunci (then) se execut o aciune. 13.1 Bazele de date deductive Bazele de date deductive sunt denumite i baze de date inteligente sau baze de date bazate pe logic i sunt caracterizate de posibilitatea gestionrii adaptive a datelor n conformitate cu cerinele utilizatorilor n luarea deciziilor economice. Bazele de date deductive sunt baze mari de date ce sunt supuse analizei i interpretrii. Sistemul de gestiune aferent acestor baze de date deductive cuprinde instrumente de realizare automat

a raionamentelor ce sunt realizate prin programare logic. Programarea logic reprezint un tip de programare bazat pe raionamente, n care programul este compus din fapte i reguli i are ca rezultat concluzii. Unul dntre limbajele de programare care asigur implementarea acestui tip de programare este limbajul Prolog. Prin raionament se nelege un proces de deducie (inferen) aplicat asupra setului de fapte i reguli. Faptele (facts) sunt informaii declarative, cu reprezentare simbolic, ce servesc pentru descrierea relaiilor care se refer la unul sau mai multe obiecte ale problemei de rezolvat. Relaiile descriu legturile dintre obiecte. Regulile (rules) sunt utilizate pentru definirea i deducerea de noi fapte i relaii dintre faptele cunoscute. Motoarele de inferen reprezint elementele efective de prelucrare, ce pornesc de la fapte ca date de intrare (baza de fapte) i prin construirea de raionamente pe baza regulilor, conduc la obinerea de noi fapte. Elementele de baz ale programrii logice, ale sistemelor de inteligen artificial i ale limbajului Prolog vor fi detaliate la cursul de Sisteme expert de gestiune care se studiaz n anii urmtori la specializarea Contabilitate i informatic de gestiune. n lucrarea de fa se prezint numai cteva noiuni introductive n scopul ntregirii imaginii de ansamblu asupra generaiilor de baze de date, sisteme de gestiune i tehnologii de stocare i prelucrare asociate acestora. Fundamentarea matematic a bazelor de date deductive este bazat pe universul Herbrand, adic setul de simboluri de tip constant din limbajul L, limbaj care nu conine simboluri funcie, dar conine cel puin simboluri predicative. Simbolul predicativ este specific predicatelor (predicates) ca elemente de baz n procesarea datelor prin programarea logic i care reprezint relaiile din expresiile cu fapte. Baza Herbrand cuprinde ansamblul faptelor posibile despre baza de date i se constituie ntr-un sistem nchis. Bazele de date deductive utilizeaz, n principal, logica propoziiilor de ordinul I, adic acel limbaj formal ce conine un alfabet, reguli de sintax, axiome i o regul de deducie de tipul cnd (when)...dac (if)... atunci (then) ... Este de menionat diferena esenial dintre regulile de producie specifice sistemelor expert (premis sau condiieconcluzie) i regulile specifice sistemelor de gestiune a bazelor de date active (evenimentcondiie aciune). Bazele de date deductive prezint dou componente: componenta asociat modulului relaional (SGBDR pentru baza de fapte) i componenta asociat modulului programrii logice (pentru realizarea interogrilor). Cuplarea dintre SGBDR i modulul programrii logice (sistemul de raionamente) poate s fie cuplare slab (realizat numai n anumite momente de timp) sau cuplare strns (interaciune continu, permanent). Prin integrarea complet a instrumentelor de realizare automat a raionamentelor n cadrul SGBDR se obine un sistem de gestiune a bazelor de date deductive cu limbaj de descriere a datelor, limbaj de manipulare a datelor i limbaj de reguli. Pe baza limbajului Prolog i a unei interfee specializate n lucrul cu baze de date, s-a realizat limbajul Datalog. Limbajul Datalog este un limbaj declarativ orientat pe programarea logic acceptat la limbaj standard destinat bazelor de date deductive. Un program realizat n limbajul Datalog este o secven cu definiii de proprieti. Sintaxa limbajului nu conine predicate speciale i utilizeaz logica propoziiilor de ordinul I, fr simboluri de funcie. Bazele de date deductive sunt n curs de cercetare i de punere la punct a unor soluii practice n strns legtur cu dezvoltrile din domeniul inteligenei artificiale.

13.2 Bazele de date multidimensionale Bazele de date multidimensionale (MDB, Multidimensional DataBase) reprezint un ansamblu de date, constituite prin extracie sau transformare de date, avnd ca surse bazele de date (fiierele) interne sau externe dintr-o organizaie, date ce variaz n timp, sunt organizate multidimensional i sunt exploatate prin intermediul interogrilor convenionale sau prin tehnici de analiz simpl (OLAP) sau prin tehnici de analiz n tehnologii avansate (Data Mining). Sursele de date interne sunt bazele de date operaionale din organizaie, adic acele baze de date specifice domeniilor de gestiune ale organizaiei (producie-servicii, comercial-marketing, cercetare-dezvoltare, financiar-contabil, resurse umane) ce stocheaz datele ce se refer la tranzaciile (evenimentele) specifice domeniului de gestiune considerat. Sursele de date externe sunt reprezentate de datele provenite de la alte organizaii de coordonare sau de sintez. Prelucrarea datelor din bazele de date operaionale se realizeaz potrivit conceptului de prelucrare interactiv (online) a tranzaciilor, OLTP (On-Line Transaction Processing) ce reliefeaz caracteristicile acestor prelucrri: volum limitat de date accesate, previzibilitatea interogrilor realizate de utilizatorii finali, numr mic de intrri/ieiri asociat fiecrei tranzacii, prezen sporadic i slab a elementelor de analiz. Bazele de date multidimensionale servesc pentru obinerea de noi informaii sau pentru deducerea de noi cunotine prin interogare cu ajutorul limbajului SQL, prin prelucrare analitic online (analiz simpl) OLAP (OnLine Analytical Processing) sau prin tehnologia de rafinare inteligent (avansat) a datelor Data Mining. n tabelul 13.1 este prezentat, o comparaie ntre bazele de date operaionale i bazele de date multidimensionale. Tabelul 13.1 Comparaie ntre bazele de date operaionale i bazele de date multidimensionale Nr. Caracteristica crt comparaie 13. Destinaia principal 14. 15. 16. 17. 18. 19. 20. de Bazele de date operaionale Gestiunea curent a tranzaciilor Pe procese funcionale Relaional, normalizate Actuale Nu Imediat Foarte sczut Tabele detaliate Bazele de date multidimensionale Component a sistemelor informatice pentru asistarea deciziilor Pe subiecte ale managementului Stea, fulg de nea, puin normalizate Temporale sau istorice Da n momente diferite Foarte ridicat Multidimensional, rezumat

Structurarea datelor Modele utilizate Date Agregarea datelor Actualizare Grad de consolidare Percepie

21. 22. 23. 24.

Numr utilizatori Accesare Mrime Numr de nregistrri

Mare Citire i screre Sute MB zeci GB Mic

Mic Numai citire Zeci GB zeci TB Mare

Depozite de date La nivelul de management de exploatare, datele sunt stocate n baze de date i sunt gestionate cu SGBD-uri, prin prelucrarea tranzaciilor online, OLTP. Extragerea datelor relevante i obinerea informaiilor consolidate ale organizaiei, necesare nivelurilor superioare de management (de nivel mediu i strategic) se efectueaz prin prelucrarea analitic online, OLAP. Se obin, la acest nivel depozitele de date (Data Warehouse) ce sunt un produs al mediului organizaional (sistem informatic integrat) i al tehnologiilor informaiilor i ale comunicaiilor (IT&C) cele mai avansate. Depozitele de date conin volume mari de date (terabytes) ce servesc ca date de intrare pentru cele mai sofisticate tehnici i tehnologii de analiz i sintez. Depozitele de date sunt organizate separat de bazele de date operaionale ale organizaiei. Aceste baze de date operaionale asigur datele pentru depozite de date, dup ce sunt mai nti extrase, curate, transformate i stocate. Depozitele de date servesc pentru implementarea fizic a unor modele de date pentru asistarea deciziilor de importan strategic pentru organizaie. Caracteristicile fundamentale ale depozitelor de date sunt : orientarea pe subiecte, integrarea, caracterul istoric i persistena datelor. Orientarea pe subiecte semnific faptul c un depozit de date este focalizat pe modelarea i analiza datelor pentru asistarea deciziilor. Integrarea presupune utilizarea, pentru construirea unui depozit de date, a mai multor surse de date heterogene (fiiere de date, baze de date relaionale, nregistrri referitoare la tranzaciile online, surse de date externe organizaiei etc.). Caracterul istoric al depozitelor de date este dat de durata de stocare i folosire a datelor din depozitele de date (de regul, de la nceputul stocrii electronice a datelor din organizaie). Persistena datelor din depozitele de date se refer la caracterul permanent de stocare, cu atributul de citete-numai (read-only). Un sistem informatic de asistare a deciziei, DSS (Decision Support System) asist luarea deciziei de management prin combinarea datelor, a modelelor i instrumentelor analitice sofisticate i a softului ntr-un singur sistem informatic puternic bazat pe depozite de date care poate sprijini luarea deciziilor structurate i semistructurate. Produsele informatice Microsoft SQL Server 7.0 sau 2000 conin instrumentul destinat serviciilor de analiz a datelor din depozitele de date, Analysis Services, denumit OLAP Services. n acest scop se utilizeaz conceptul de exploatare a datelor din depozitele de date, Microsoft Repository, prin folosirea metadatelor (Microsoft MetaData Services). Datele provenite din operaiunile curente ale organizaiei (OLTP) sau din sistemele motenite sunt stocate n baze de date i sunt manipulate, aa cum s-a prezentat n lucrarea de fa, cu ajutorul sistemelor de gestiune a bazelor de date (SGBD). Periodic, aceste date sunt extrase i asamblate n cadrul nivelurilor superioare de management ale organizaiei economice sub forma depozitelor de date (Data Warehouse), servind astfel pentru analiza i extragerea informaiilor utile nivelurilor de management mediu i strategic. Datele sunt depozitate pe categorii de interes i sunt corelate n timp (perioade mari de timp) pentru a putea fi folosite pentru analiz i interogare online. Elementele depozitelor de date sunt

tabelele de fapte, dimensiunile i nivelurile de centralizare. Dimensiunile depozitelor de date sunt imense (zeci i sute de TB, terabaii). Tabelul de fapte este elementul constitutiv al depozitului de date ce const n date i informaii (fapte) referitoare la obiectul de activitate al companiei, produsele/serviciile oferite i vndute/realizate, costurile de producie, preurile practicate, detalii privind livrarea acestor produse/asigurarea serviciilor ctre beneficiari, date despre furnizori, colaboratori i beneficiari/clieni, performanele personalului companiei etc. Tabelul de dimensiuni depoziteaz date i informaii pe baza conceptului de dimensiune (aceasta poate reprezenta entitile de msurare a timpului ora, ziua, sptmna, luna, trimestrul, semestrul, anul, cincinalul, deceniul, secolul -, entitile geografice (localitatea, statul, regiunea, continentul -, entitile de producie categorie, denumire, cod, tip, calitate, cantitate vndut, pre unitar etc. Nivelurile de centralizare servesc pentru creterea vitezei de rspuns la analiza i interogarea depozitelor de date prin structurarea datelor n funcie de diverse criterii timp, categorii de produse, zon geografic, categorii de clieni etc. 13.3 Bazele de date multimedia Multimedia reprezint, n sens larg, ansamblul mijloacelor (mediilor) de comunicare prin intermediul crora se realizeaz o percepie vizual i auditiv, sub diverse forme, a informaiilor destinate unui utilizator anume. Principalul avantaj oferit de multimedia este dat de accesul rapid i facil la cunoatere i infomare. Suportul esenial al dezvoltrii multimediei este dat de progresele IT&C. Ca urmare, n acest context al informaticii i tiinei calculatoarelor, multimedia poate fi definit ca o combinaie interactiv a mai multor tipuri de date: sunete, grafic, animaie i secvene video. n Dicionarul de calculatoare Microsoft se precizeaz c multimedia reprezint un subset al hipermediei n care elementele specifice multimediei sunt integrate cu hipertextul. Hipertextul este un text legat sub forma unei reele complexe de asociaii, n care parcurgerea are caracter nesecvenial (detaliile au fost date la cursul de Informatic de gestiune baze, cnd au fost studiate elemente ale limbajului HTML). Exist mai multe standarde hipermedia: HTML (HyperText Markup Language) i variantele sale ulterioare, MHEG (Multimedia Hypermedia Expert Group), HyTime, Dexter Hypermedia, ODA, Acrobat PDF(Portable Document Format) etc. Bazele de date multimedia, MMDB (Multimedia DataBases) sunt destinate stocrii datelor multimedia (prin extensie, datelor hipermedia). Structurile de stocare sunt eficiente i sunt realizate dup arbori speciali (de exemplu, Quadtree, Rtree sau combinaii ale acestora). Bazele de date multimedia sunt baze de date foarte mari deoarece stocarea datelor video i audio necesit spaii de memorie imense. Pe cale de consecin, interogarea acestor baze de date cere timp destul de mare. De aceea, regsirea datelor multimedia presupune aplicarea unor metode specifice. Datele multimedia sunt date dinamice i baza de date multimedia este o baz de date activ. Bazele de date multimedia sunt i baze de date reactive, n sensul c exist posibilitatea de modificare a strii mediului ca urmare a producerii unor evenimente externe: o secven video sau o pies muzical pot fi modificate, inclusiv prin alterarea coninutului acestora. Pentru datele multimedia lipsete modelul abstract de date (specific tipurilor de date alfanumerice). Datele multimedia sunt structurate pe obiecte complexe, compuse din date de tipuri elementare. De exemplu, o aplicaie de prezentare i reclam bancar poate fi format din

desene animate, sunet corespunztor imaginilor i secvene de film din activitatea de frontoffice la una dintre sucursalele bncii. Obiecte complexe utilizate n realizarea spotului publicitar pot fi regsite i la monitoarele ATM-urilor bncii atunci cnd clientul efectueaz o operaiune de scoatere a numerarului din contul propriu. n aplicaiile cu baze de date multimedia, accesul la date reprezint, n realitate, interaciunea dintre utilizator i date, la nivel de obiect i la nivel de mediu de comunicare. Bazele de date multimedia sunt astfel organizate dup modelul orientat pe obiecte, pe mai multe niveluri: structura funcional sau tehnologic, structura relaional, structura de interogare sau dinamic i structura de prezentare sau de sistem. n cazul structurii funcionale sau tehnologice a bazelor de date multimedia, sunt evideniate funciile de generare, achiziie, compresie, stocare, manipulare etc. a datelor multimedia ce sunt, ulterior, integrate cu datele de tipuri clasice. n ceea ce privete structura relaional, datele multimedia provenite din surse diferite, heterogene (audio, video, animaie, imagini vectoriale, imagini raster, texte ASCII, date formatate) sunt corelate static n conformitate cu modelul orientat pe obiecte. n cazul structurii de interogare sau dinamic, metodele de regsire a datelor multimedia se utilizeaz n funcie de tipul datelor i modul de interaciune a utilizatorului cu baza de date multimedia. n sfrit, structura de prezentare sau de sistem se refer la independena bazei de date fa de platforma de lucru a utilizatorului, la mecanismele de acces concurent la baza de date, la modul de obinere a interfeelor grafice destinate utilizatorului, la scurtarea timpului de regsire a datelor multimedia i la apropierea acestuia de cel al aplicaiilor n timp real (run-time). Sistemele de gestiune a bazelor de date multimedia se fundamenteaz pe abordarea incremental ce are la baz modele intermediare de date asociate datelor grafice. Imaginile sunt interpretate ca tranziie de stri pe baza nivelelor de recunoatere a strilor obiectelor dintr-o imagine anume (scen). Cnd tranziia nceteaz se obine momentul de definire i stocare a unui model abstract al imaginii, cu cuvinte-cheie asociate. Exist limbaje de descriere a imaginilor video de tipul scenelor prin care fiecrui segment grafic din compunerea unei scene i se asociaz atribute (culoare, poziie, direcie de deplasare, efecte speciale). SGBD multimedia sunt caracterizate de urmtoarele particulariti: datele multimedia sunt complexe, n volume mari i de tipuri variate; obiectele multimedia sunt mari, BLOB (Binary Large Objects); gestionarea datelor multimedia implic operaiuni complexe de sincronizare i de distribuire n timp i spaiu a datelor multimedia de tipuri diferite; suportul tehnic (adic gama de periferice ale sistemului informatic n a crui compunere intr bazele de date multimedia i SGBD asociat) este diversificat. Se pot da ca exemple de SGBD multimedia : SGBD multimedia orientat obiect, STORM (Structural and Temporal Object Oriented Multimedia) ce integreaz operatori structurali (tuple, set, list) cu relaii temporale (equal, after, before); Modelul orientat obiect, MOAP (Multimedia Object and Application Model), ce reprezint obiectele multimedia sub forma unei ierarhii de clase orientate obiect, iar aplicaiile multimedia interactive sunt obinute pe baza scenariilor bazate pe aplicaii i evenimente sistem, cu obiecte definite temporal i spaial.

SGBD multimedia realizeaz stocarea i transmiterea pe canalele de comunicaii a datelor multimedia sub form comprimat. Exist tehnici de compresie avansate care realizeaz comprimarea datelor multimedia cu rate de compresie situate ntre 10:1 i 50:1 pentru imagini, respectiv 2000:1 pentru semnal video. Compresia datelor multimedia se execut dup standarde ca JPEG (Joint Photographic Expert Group) rata de compresie 15:1, MPEG (Moving Pictures Expert Group) rata de compresie a imaginilor n micare 200:1, iar a semnalului audio 10:1. Crearea bazelor de date multimedia se realizeaz cu soft specializat (cu funcii de stocare i de consultare). De exemplu, Multimedia Toolbox, ce aparine firmei Asymetrix, este un instrument de realizat cri multimedia, orientat pe programare vizual, sub sistemul de operare Microsoft Windows. Limbajul de programare de tip script ncorporat n Multimedia Toolbox se numete OpenScript i servete pentru descrierea scenariului aplicaiei. Datele multimedia sunt afiate i transmise sub form de fluxuri (stream-uri) continue n timp. Bazele de date multimedia se folosesc cu precdere n descrierea i prezentarea produselor (un magazin virtual pe Internet - mall electronic utilizeaz n mod obligatoriu baze de date multimedia cu imaginile produselor ce se ofer spre vnzare), n administraia electronic, e-government (descrierea formularelor de contabilitate, a formularelor de nregistrare a plii impozitelor i taxelor, a documentelor specifice obinerii permisului auto, n activitatea de instruire i educaie (tutori inteligeni, enciclopedii multimedia educaionale), n activitatea de documentare (documente hipertext) etc. 13.4 Bazele de date relaionale orientate obiect Prin extinderea facilitilor oferite de bazele de date relaionale cu includerea structurilor de date complexe de natura obiectelor, s-au obinut baze de date relaionale orientate obiect. SGBD-ul asociat bazelor de date relaionale orientate obiect, OORDBMS (Object-Oriented Relational DataBases Management System), include elemente din SGBD relaional (RDBMS) i din SGBD orientat pe obiecte (OODBMS). Conceptul de domeniu din teoria bazelor de date relaionale este echivalent cu conceptul de clas de obiecte din teoria bazelor de date orientate pe obiecte. Se consider ns erori ca s se echivaleze variabila de relaie din lumea relaional cu clasa de obiecte din lumea obiectelor i s se amestece relaiile cu pointerii prin care se afecteaz integritatea conceptual a modelului relaional. Se reamintete aici c pointerii sunt variabile ce conin adrese pentru itemi de date (itemii de date pot fi cuvinte, serii de numere sau nregistrri din fiiere) sau pentru instruciuni. Revenind la una dintre ideile de baz prezentate mai sus, pe cale de consecin, tabelele nu pot fi egalate cu clasele. Stonebraker a realizat o matrice de clasificare a SGBD (fig.13.1) care ajut la o mai bun nelegere a interaciunilor dintre cele dou modele pentru baze de date (relaional i orientat pe obiecte). Exemplele tipice asociate celor patru cuadrani (sferturi) ai matricei Stonebraker sunt: pentru cuadrantul 1 procesorul de texte clasic; pentru cuadrantul 2 aplicaiile economice (din domeniul afacerilor); pentru cuadrantul 3 aplicaiile de proiectare asistat de calculator, CAD (Computer Aided Design);

pentru cuadrantul 4 aplicaiile cu baze de date multimedia. 2. Aplicaii pentru date simple cu cerine de interogri ad-hoc 1. Aplicaii pentru date simple fr cerine de interogri ad-hoc DATE SIMPLE 4. Aplicaii pentru date complexe cu cerine de interogri ad-hoc 3. Aplicaii pentru date complexe fr cerine de interogri ad-hoc

INTEROGARE PREZENT INTEROGARE ABSENT

DATE COMPLEXE

Fig.13.1 Matricea de clasificare a SGBD (matricea lui Stonebraker) Interogarea ad-hoc a unei baze de date semnific, n acest caz, interogarea imediat efectuat asupra bazei de date. Dac se ia, ca exemplu, o baz de date ce conine produsele unei firme de aparatur electronic i se adaug la aceast baz de date imagini cu produsele respective, se pune problema determinrii acelor produse electronice care satisfac o anumit caracteristic de design (aspect exterior). Este necesar prelucrarea imaginilor produselor electronice (ca obiecte) pentru a obine rspunsul la problema ridicat. Caracteristicile dorite la selecie se descriu printr-o metod ataat obiectului. Se pot crea tabele prin intermediul caracteristicii de motenire (inheritance) specific obiectelor. Crearea unor funcii la nivel de nregistrare, la nivel de tabel i chiar la nivel de baz de date sunt ci de soluionare a problemelor practice care depesc cadrul bazelor de date relaionale, conducnd la ideea de baz de date relaional orientat obiect. Bazele de date relaionale orientate obiect asigur utilizarea la interogare a metodelor obiectelor diverse i a unor noi operatori pentru obiecte, precum i posibilitatea definirii propriilor metode pentru obiectele folosite din partea utilizatorului final. Date C.J. demonstreaz c un sistem obiect-relaional prezint mai multe caracteristici, dintre care se menioneaz: cerina de interogare ad-hoc, cu definirea vederilor (view-urilor) i constrngeri de integritate declarative; definirea dinamic a claselor pentru rezultatele interogrilor ad-hoc; metode ce includ mai multe clase; posibilitatea accesului dual interactiv i programat la baza de date; existena regulilor pentru chei externe sau strine etc.

n cazul ultimelor versiuni ale SGBD Oracle, a fost implementat modelul obiecturalrelaional de date.