Organizarea datelor ocupa un loc important in proiectarea sistemelor informatice. De modul in care sunt organizate datele depinde eficienta sistemului informatic.
Organizarea datelor presupune:
definirea structurarea, ordonarea si gruparea datelor in colectii de date omogene
stabilirea relatiilor intre date
stocarea datelor pe suport informational, prelucrabil intr-un sistem de calcul.
Scopul organizarii datelor il constituie regasirea automata a datelor dupa diverse criterii.
Obiectivele urmarite in organizarea datelor sunt:
timpul de acces la date sa fie minim (acces rapid la date)
spatiul de memorie interna si externa ocupat de date sa fie cat mai redus (economie de memorie interna si externa)
datele sa apara o singura data in sistem (unicitatea 242b12c datelor)
sa se permite schimbarea structurii datelor si a relatiilor dintre ele fara a modifica programele ce le gestioneaza (flexibilitatea datelor).
Pe plan international exista mai multe grupuri specializate in standardizarea conceptelor care apar in dezvoltarea bazelor de date, cele mai importante fiind CODASYL, DBTG, ANSI/X3/SPARC etc. În 1971, CODASYL a publicat un raport care contine recomandari in privinta cerintelor de organizare, functionare si terminologie ale sistemelor de memorare si prelucrare a datelor. Vom defini cateva concepte fundamentale referitoare la structura datelor conform standardului CODASYL.
Date - aspecte elementare ale unor activitati sau evenimente nesupuse unor prelucrari, neevaluate din punct de vedere al utilitati.
Informatie - ansambluri de date corelate si elaborate intr-un scop bine determinat, pentru satisfacerea cerintelor celui care le utilizeaza.
Octet - unitate elementara de informatie, adresabila intr-un sistem de calcul.
Articol - unitate elementara de date, care poate purta un nume si deci poate fi identificata.
Tipul (schema) unui articol - ansamblu format din identificatorul folosit, descrierea multimii valorilor acceptabile si descrierea formatului de memorare.
Grup de date - ansamblu format din lista identificatorilor folositi si descrierea articolelor si a grupurilor de date.
Înregistrare - colectie de articole si sau grupuri de date identificabila printr-un nume.
Set de date - multime de inregistrari.
Zona subdiviziune a memoriei externe, identificabila printr-un nume care poate stoca inregistrari.
Schema unei baze de date - ansamblu format din lista identificatorilor folositi si descrierea articolelor, grupurilor de date, inregistrarilor, seturilor de date si a zonelor. Schema bazei de date defineste un tip de baza de date.
Baza de date - totalitatea inregistrarilor, seturilor, zonelor organizate sub o anumita schema. Este de remarcat natura relativ statica a schemei bazei de date si caracterul preponderent dinamic al datelor administrate.
Dictionarul datelor - multimea descrierii obiectelor unei baze de date. Acest dictionar este in general structurat si administrat ca o baza de date (metabaza).
Administratorul bazei de date - o persoana sau un grup de persoane responsabile de analiza, proiectarea, implementarea, exploatarea si intretinerea unei baze de date.
Sistem de gestiune a bazei de date - ansamblu de programe destinate crearii, intretinerii si exploatarii unei baze de date. Aceasta multime de programe asigura o interfata intre o baza de date si utilizatorii acesteia. Un SGBD foloseste in principiu trei limbaje: un limbaj de descriere a datelor fizice, un limbaj de descriere a datelor logice si un limbaj de prelucrare a datelor.
Definitie: Structura de date este definita ca o colectie de date intre care s-au stabilit o serie de relatii care conduc la un anumit mecanism de selectie si identificare a componentelor. Accesul la o componenta a unei structuri se poate face in doua moduri:
acces secvential sau
acces direct.
În cazul accesului secvential localizarea unei componente se face prin parcurgerea tuturor componentelor care se afla inaintea componentei accesate.
Daca o componenta din structura poate fi selectata fara a tine seama de celelalte componente, atunci structura are un acces direct.
Componentele unei structuri de date pot fi date elementare sau pot fi ele insele structuri de date.
Asupra unei structuri de date se pot efectua o multitudine de operatii care se refera la valori si/sau la structura. Dintre acestea, cele mai frecvente sunt:
crearea
consultarea (accesul la componentele structurii)
actualizarea (adaugare, stergere, modificare valori, modificare relatii)
sortarea
fuzionarea (formarea unui noi structuri din doua sau mai multe structuri)
ventilarea (spargerea structurii in doua sau mai multe structuri)
copierea
interclasarea.
Operatiile la care poate fi supusa o structura de date si eficienta cu care acestea pot fi realizate depind in mare masura de relatiile intre datele materializate pe suportul de memorie.
Un tip de structura de date este o multime ordonata de date intre care s-au stabilit anumite relatii si pentru realizarea operatiilor se foloseste un grup de operatori de baza cu o anumita semantica.
Dupa tipul componentelor structurile se clasifica in:
structuri omogene, in care componentele sunt de acelasi tip
structuri eterogene, in care componentele apartin unor tipuri diferite.
Daca o structura se poate descompune in structuri de acelasi tip, atunci structura este recursiva.
Dupa posibilitatea de modificare a valorilor si/sau structurii avem:
structuri statice, care pe tot parcursul existentei lor au acelasi numar de componente in aceeasi ordine
structuri dinamice, care permit modificarea valorilor si/sau structurii prin aplicarea operatorilor.
Din punct de vedere al nivelului de structurare al datelor avem:
structura logica, ce se refera la modul de ordonare al datelor, operatorii de tratare a datelor
structura fizica, ce se refera la modul de implementare al datelor de reprezentare efectiva pe suport informational.
Clasificarea in structuri statice si dinamice se refera, in principal la structurile fizice de date. Din acest punct de vedere, alocarea memoriei pentru o structura statica este o alocare statica, atat pentru componente cat si pentru structura. Pentru o structura dinamica, alocarea este dinamica atat la nivelul intregii structuri cat si la nivelul componentelor.
În organizarea datelor trebuie definita atat structura logica cat si structura fizica, cele doua nivele conditionandu-se reciproc.
Principalele tipuri de structuri (logice) de date sunt:
structura punctuala
structura liniara
structura arborescenta
structura retea
structura relationala.
Structura punctuala este reprezentata de o entitate grup izolata. Considerand ca nu exista relatii explicite intre realizarile entitate, acest tip de entitate luat singur reprezinta structura punctuala.
Structura liniara presupune ca intre elementele unei colectii de date sa existe o relatie de ordine totala. Acest tip de structura are urmatoarele proprietati:
Cardinalul multimii elementelor initiale este egal cu 1;
Cardinalul multimii elementelor terminale este egal cu 1;
Primul element nu are predecesori;
Ultimul element nu are succesori;
Orice element neterminal are un succesor imediat unic;
Relatiile stabilite intre date sunt de tipul 1 la 1;
Structura arborescenta (ierarhica). Daca intre elementele unei colectii de date exista o relatie de ordine, spunem ca structura acestei colectii de date este o structura arborescenta. Acest tip de structura are urmatoarele proprietati:
Exista un element unic, numit radacina arborelui;
Orice nod diferit de radacina are un predecesor imediat unic;
Orice nod neterminal are un numar finit de succesori imediati;
Relatiile stabilite intre noduri sunt de tipul 1 la m;
Structura retea. Daca intre elementele unei colectii de date exista o relatie de preordine, atunci spunem ca structura acestei colectii de date este o structura retea. Aceasta are urmatoarele proprietati:
O retea este un graf in care intre doua noduri exista legaturi bidirectionale;
Un nod are mai multi predecesori si el insusi poate fi predecesor pentru propriul sau predecesor. Apar astfel in retea cicluri. Un ciclu este un drum in care nodul initial este acelasi cu nodul final;
Cardinalul multimii elementelor initiale este mai mare sau egal cu 1;
Cardinalul multimii elementelor finale este mai mare sau egal cu 1;
Între elementele retelei se stabilesc relatii de tipul m la n;
Structura relationala.
Structura relationala este formata din mai multe tabele (relatii) de date elementare, fara o legatura aparenta intre ele. Operatiile pe aceste structuri sunt realizate cu operatori relationali ai algebrei relationale sau ai calcului relational.
Definirea unui model de date presupune precizarea urmatoarelor trei elemente:
structura modelului
operatorii care actioneaza asupra structurilor de date
restrictiile pentru mentinerea corectitudinii datelor, numite si reguli de integritate.
Descrierea structurii modelului presupune:
definirea obiectelor (entitatilor) si a caracteristicilor asociate
stabilirea relatiilor intre obiecte.
Formarea relatiilor intre inregistrari in cadrul unui model de date are ca scop reducerea redundantei datelor.
Relatia intre inregistrari poate pune in evidenta doua tipuri de legaturi:
legaturi orizontale (liste inlantuite)
legaturi verticale, care permit localizarea inregistrarii parinte.
Legatura dintre obiecte (entitati) poarta denumirea de asociere. Legaturile dintre doua entitati pot fi de trei tipuri:
legatura “unu la unu” (1->1). De exemplu, relatia dintre un apartament si un chirias. Un apartament este inchiriat unui singur chirias, iar un chirias poate beneficia de un singur apartament cu chirie.
Fig. ‑
legatura “unu la mai multi” (1->n). De exemplu: un elev poate face parte dintr-o singura clasa, iar o clasa poate avea mai multi elevi. Aceasta structura este de tip arborescent.
Fig. ‑
legatura de tipul “multi la multi” (m->n). De exemplu, un produs este achizitionat de mai multi clienti si un client poate achizitiona mai multe produse. Aceasta structura este de tip retea.
Produs 1 Produs 2 ….. Produs m
Client 1 Client 2 ….. Client n
Fig. ‑
Operatorii care actioneaza asupra structurilor de date reprezinta cel de al doilea element al unui model de date. Acesti operatori pot fi de citire, memorare, modificare, jonctiune, etc.
Regulile de integritate, cel de-al treilea element al unui model de date sunt restrictii menite sa asigure mentinerea corectitudinii datelor.
Exemple de astfel de restrictii:
Sa nu se accepte memorarea valorilor asociate caracteristicilor unui produs daca nu se cunoaste valoarea cheii lui CODP;
Sa nu se permita stergerea valorilor atributelor unui client daca acesta nu a achitat integral factura pentru cumpararea unui produs;
Modelele de date se impart in:
modele ierarhice sau arborescente
modele retea
modele relationale
modele orientate pe obiect.
Modelul ierarhic are ca structura de baza tipuri de inregistrari care grupeaza toate atributele unei entitati. Acest model introduce un nou tip de structura: ierarhia.
O ierarhie are un tip de inregistrare definit ca “radacina” si mai multe tipuri de inregistrari subordonate, legate sub forma de arbore.
Legatura de la un nod superior la unul inferior este de tipul 1->n, iar legatura de la un nod inferior la unul superior este de tipul 1->1.
Exemplu:
. . .
Fig. ‑
Deci modelul ierarhic pune la dispozitie doua structuri: tipuri de inregistrari si ierarhia.
La acest model, in cazul operatiei de actualizare apar o serie de anomalii precum:
la inserare, nu se pot introduce noi inregistrari subordonate daca nu sunt cunoscuti superiorii
la stergere, nu se sterge o inregistrare radacina, atunci se sterg automat toate inregistrarile subordonate.
În acest model, datele sunt reprezentate asemanator cu modelul ierarhic, cu deosebirea ca fiecare nod inferior poate avea mai multi superiori. În cadrul acestui model, intalnim doua structuri:
tipul de inregistrari (care asigura campurile unei inregistrari)
tipul set (care asigura legaturile intre tipurile de inregistrare).
Actualizarile in acest caz sunt cele obisnuite (adaugare, modificare, stergere) si se pot opera atat tipurile inregistrarilor logice cat si in legaturi.
Acest model are la baza teoria matematica a relatiilor. Are o singura structura de date: relatia (tabelul), o submultime a produsului cartezian al unor domenii.
În concluzie, un astfel de model poate fi privit ca o multime de tabele obtinute prin metoda normalizarii. Normalizarea pleaca de la o multime de atribute (campuri de date) si o multime de dependente functionale dintre campuri si conduce la o schema conceptuala a modelului relational intr-o forma normalizata in care se vor elimina anomaliile de actualizari.
Modelul de date orientat pe obiecte este bazat pe o colectie de obiecte. Un obiect contine valori stocate in variabilele de instanta ale acestuia, deasemenea contine fragmente de cod care opereaza asupra obiectului. Aceste fragmente de cod sunt denumite metode.
Obiectele care contin valori de acelasi tip si aceleasi metode sunt grupate impreuna in clase. O clasa poate fi vazuta de tip pentru obiecte. Aceasta combinatie de date si obiecte care formeaza definitia tipului este similara cu tipurile abstracte din limbajele de programare.
Singurul mod in care un obiect poate accesa datele unui alt obiect este prin invocarea unei metode a obiectului respectiv. Aceasta actiune este denumita trimitere de mesaj la obiect. Astfel interfata de apelare a metodelor unui obiect defineste partea vizibila din exterior a acestuia.
Partea interna a obiectului, adica variabilele de instanta si codul metodelor, nu sunt vizibile din exterior. Rezultatul este o abstractizare pe doua nivele.
Conceptul de baza de date poate fi definit ca fiind una sau mai multe colectii de date aflate in interdependenta, impreuna cu descrierea datelor si a relatiilor dintre ele.
Baza de date astfel definita trebuie sa indeplineasca urmatoarele conditii:
sa asigure o independenta sporita a datelor fata de programe si invers;
structura bazei de date trebuie astfel conceputa incat sa asigure informatiile necesare si suficiente pentru cerintele de informare si decizie;
sa se asigure o redundanta minima si controlata a datelor;
sa permita accesul rapid la informatiile stocate in baza;
Pe plan international exista mai multe grupuri specializate in standardizarea conceptelor ce apar in dezvoltarea bazelor de date, cele mai importante fiind DBTG, CODASYL, ANSI.
Bazele de date sunt extrem de variate in functie de criteriile luate in considerare. Prezentam cateva criterii:
dupa orientare: generalizate, specializate;
dupa modelul de date: ierarhice, retele, relationale, orientate obiect;
dupa amploarea geografica: locale, distribuite;
dupa limbajele utilizate: autonome (limbaje proprii), cu limbaj gazda, mixte;
Arhitectura bazelor de date evidentiaza componentele acestora si a fost standardizata international. O astfel de arhitectura generala cuprinde urmatoarele componente:
baza de date propriu-zisa in care se memoreaza colectia de date;
sistemul de gestiune al bazei de date, care este un ansamblu de programe (soft) care realizeaza gestiunea si prelucrarea complexa a datelor;
un set de proceduri manuale si automate, precum si reglementarile administrative, destinate bunei functionari a intregului sistem;
un dictionar al bazei de date (metabaza de date), ce contine informatii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentatie;
mijloacele hard utilizate:
personalul implicat:( categorii de utilizatori: neinformaticieni, de specialitate - adminstrator, analisti - programatori, gestionari, operatori).
Arhitectura bazei de date da o imagine despre modul general de organizare si functionare a ei. Componentele bazei de date pot fi structurate pe patru nivele, in functie de clasa utilizatorilor implicati:
nivelul logic - reprezinta viziunea programatorului de aplicatii, care realizeaza programele de aplicatii pentru manipularea datelor si structura logica corespunzatoare descrierii datelor aplicatiei;
nivelul conceptual (global) - reprezinta viziunea administratorului bazei de date, care realizeaza structura conceptuala (schema) corespunzatoare descrierii bazei de date si administreaza componentele bazei de date pentru manipularea datelor;
nivelul fizic (intern) descris de schema fizica a datelor (bit, octet adresa), reprezinta viziunea inginerului de sistem care realizeaza structura fizica corespunzatoare descrierii datelor pe suportul fizic.
nivelul virtual (extern) - reprezinta viziunea utilizatorului final asupra datelor.
Datele exista doar la nivel fizic, iar celelalte trei nivele reprezinta virtualizari ale acestora.
Baza de date reprezinta un sistem de definire, organizare si prelucrare a informatiei, compus din:
o colectie de date cu eventualele legaturi intre ele;
o descriere a datelor si a relatiilor dintre ele;
un sistem de programe pentru gestionarea datelor.
Utilizatorii unei baze de date pot fi:
Utilizatori nespecialisti care au la dispozitie o forma de comunicare cu baza de date apropiata de vorbirea curenta. Ei nu cunosc structura bazei de date si nici modul efectiv de lucru cu baza de date.
Utilizatori specialisti care cunosc structura bazei de date, au cunostinte de programare, cunosc problemele sistemului de operare si toate acestea le permit sa foloseasca rational baza de date, obtinand avantaje maxime.
Administratorul bazei de date este un utilizator special care defineste obiectivele exploatarii bazei de date, imparte drepturile de acces ale utilizatorilor, elaboreaza conceptia de proiectie a bazei de date, raspunde de toate activitatile si operatiile referitoare la baza de date, ajuta la definirea cerintelor utilizatorilor.
În limbajele de programare uzuale (Pascal, C), declaratiile si instructiunile executabile apartin aceluiasi limbaj. În lumea bazelor de date, functiile de declarare si manipulare a datelor sunt realizate cu ajutorul unor limbaje diferite, cum ar fi : limbaje pentru definirea datelor (LDD), limbaje pentru manipularea datelor (LMD), limbaje pentru controlul datelor (LCD).
a) Limbaje pentru definirea datelor (LDD)
Descrierea concreta a unui LDD este specifica fiecarui sistem de gestiune, dar functiile principale sunt aceleasi. La nivel conceptual, LDD realizeaza definirea entitatilor si a atributelor acestora prin nume, forma de memorare, lungime. Sunt precizate relatiile dintre date si strategiile de acces la ele, sunt stabilite criterii diferentiale de confidentialitate, sunt definite criterii de validare automata a datelor.
b) Limbaje pentru manipularea datelor (LMD)
Operatiile pe baze de date solicita un limbaj specializat, in care comenzile se exprima prin fraze ce descriu actiuni asupra bazei.
In general, o comanda are urmatoarea structura:
operatia, care poate fi calcul aritmetic sau logic, editare, extragere, deschidere, inchidere, manipulare (introducere, adaugare, stergere etc);
criterii de selectie (for, while,etc);
mod de acces (secvential , indexat etc);
forma de editare.
c) Limbaje pentru controlul datelor (LCD)
Controlul unei baze de date se refera la asigurarea confidentialitatii si integritatii datelor, la salvarea informatiei in cazul defectiuni, la obtinerea unor performante, la rezolvarea unor probleme de concurenta. De exemplu, realizarea unei interfete tranzactionale, intr-un context client-server, pentru un sistem de baze de date distribuite.
O baza de date apare ca o colectie de date stocate pe memorii externe adresabile, folosite de o multitudine de utilizatori.
Sistemul de gestiune al bazei de date reprezinta software-ul propriu-zis al acestuia care asigura realizarea urmatoarelor activitati:
definirea structurii bazei de date
incarcarea datelor in baza de date
accesul la date (interogare, actualizare)
intretinerea bazei de date
reorganizarea bazei de date (restructurarea si modificarea strategiei de acces)
securitatea datelor.
Sistemul de gestiune al bazei de date apare ca un sistem complex de programare care asigura interfata intre o baza de date si utilizatorii acestuia.
Unui sistem de gestiune a bazei de date ii revin o serie de obiective, acestea sunt:
1. Asigurarea independentei datelor.
O aplicatie este dependenta de date in sensul ca modificarea structurii de memorare a datelor sau a strategiei de acces la date afecteaza si aplicatia. Independenta datelor este totusi necesara din urmatoarele considerente:
diferite aplicatii au nevoie de viziuni diferite ale acelorasi date
administratorul bazei de date trebuie sa aiba libertatea de a schimba structura de memorare sau strategia de acces ca raspuns la cerintele utilizatorilor, fara a modifica aplicatiile existente.
Deci, modificarile care se fac la nivel de structura de date nu trebuie sa modifice programele de aplicatie.
Independenta fizica a datelor privita din doua puncte de vedere:
independenta fizica
independenta logica.
Independenta fizica a datelor face ca memorarea datelor si tehnicile fizice de memorare sa poata fi modificate fara a determina rescrierea programelor de aplicatie.
Independenta logica a datelor se refera la posibilitatea adaugarii de noi articole de date sau extinderea structurii conceptuale, fara ca aceasta sa impuna rescrierea programelor existente.
Asigurarea unei redundante minime si controlate a datelor din baza de date.
Stocarea datelor in baza de date se face astfel incat fiecare data sa apare o singura data. Totusi nu sunt excluse nici cazurile in care pentru a realiza performante sporite, referitoare la timpul de acces la date si raspuns la solicitarile utilizatorilor, sa se accepte o anumita redundanta a datelor, insa in acest caz se va institui un control automat asupra ei in vederea asigurarii coerentei datelor din baza.
Asigurarea unor facilitati sporite de utilizare a datelor.
Aceasta presupune:
folosirea datelor de catre mai multi utilizatori in diferite scopuri
accesul cat mai simplu al utilizatorilor la date
existenta unor limbaje performante de regasirea datelor
utilizarea unui limbaj cat mai apropiat de limbajul natural, cu posibilitatea exploatarii bazei de date in regim conventional. Aceasta ar oferi posibilitatea exploatarii in mod facil a bazei de date si de catre utilizatorii neinformaticieni.
Sporirea gradului de securitate a datelor impotriva accesului neautorizat la ele
Administratorul bazei de date poate prevedea ca accesul la baza de date sa se faca numai autorizat, si poate totodata defini verificari de autorizare realizate oricand se incearca accesul la anumite date;
Asigurarea integritatii datelor, impotriva unor stergeri intentionate sau neintentionate, prin intermediul unor proceduri de validare, a unor protocoale de control concurent si a unor proceduri de refacere a bazei de date dupa incidente.
Asigurarea partajabilitatii datelor.
Aceasta trebuie inteleasa nu numai sub aspectul asigurarii accesului mai multor utilizatori la aceleasi date, ci si acela al posibilitatii dezvoltarii unor aplicatii fara a se modifica structura bazei de date.
În continuare sunt prezentate cateva functii ale unui sistem de gestiune a bazei de date:
1. Functia de descriere a datelor, permite definirea structurii bazei de date cu ajutorul limbajului de definire.
În cadrul acestei functii se descriu campurile din cadrul structurii bazei de date, legaturile dintre entitatile bazei de date sau dintre atributele (campurile) aceleiasi entitati (inregistrari), metodele de acces la date, aspectele referitoare la asigurarea integritatii si confidentialitatii datelor.
2. Functia de manipulare a datelor, este cea mai complexa functie si realizeaza urmatoarele activitati:
crearea bazei de date
adaugarea unei noi inregistrari
suprimarea unor inregistrari
modificarea valorilor corespunzatoare unor campuri
cautarea, sortarea, etc.
3. Functia de utilizare, asigura multimea interfetelor necesare pentru comunicare tuturor utilizatorilor cu baza de date.
4. Functia de administrare a bazei de date apare ca o functie complexa si este de competenta administratorului bazei de date.
Un SGBD este un sistem de programe de baza dintr-un sistem informatic de gestiune care intuitiv permite utilizatorilor concurenti sa manipuleze (insereze, modifice, caute) eficient datele continute in baza de date.
Istoria SGBD poate fi rezumata in trei generatii:
modele ierarhice si retea;
modele relationale;
sisteme avansate: SGBD orientate obiect, SGBD deductive, SGBD distribuite.
Pentru modelele ierarhice si retea, datele sunt reprezentate la nivel de articol prin legaturi ierarhice (arbore) sau de tip graf. Slaba independenta fizica a datelor complica administrarea si manipularea acestora. Limbajul de manipulare a datelor impune programatorului sa specifice drumurile de acces la date.
A doua generatie de SGBD este legata de aparitia modelelor relationale (1970), care trateaza entitatile ca niste relatii. Bazele de date relationale sunt caracterizate de structuri de date simple, intuitive, inexistenta pointerilor vizibili pentru utilizator, constrangeri de integritate, o multime de operatori aplicati relatiilor care permit definirea, cautarea si reactualizarea datelor.
Bazele de date relationale ofera avantaje precum:
independenta completa in descrierea logica a datelor (in termen de relatii) si in descrierea fizica a datelor (in termen de fisiere);
un ansamblu integrat de utilitare bazat pe un limbaj de generatia a patra cum ar fi: generatoare de meniuri, generatoare de aplicatii, generatoare de forme, generatoare de etichete etc;
existenta unor limbaje speciale de definire si manipulare a datelor.
Dintre sistemele de gestiune relationale reprezentative amintim: DB2, SQL/DS, INGRES, ORACLE, INFORMIX, UNIFY, TIS, RAPPORT.
Bazele de date relationale nu folosesc insa obiecte complexe si dinamice, nu realizeaza gestiunea datelor distribuite si nici gestiunea cunostintelor.
A treia generatie de SGBD ce cuprinde sistemele avansate incearca sa depaseasca aceste limite ale sistemului relational.
a) Gestiunea obiectelor complexe (baze de date orientate obiect).
Obiectele manipulate de sistemele relationale sunt in general statice, iar comportamentul lor (dinamica lor) este dat separat prin programele de aplicatie care le manipuleaza un sistem relational nu suporta obiecte dinamice care incorporeaza atat partea de date (informatii) efective cat si o parte relativa la tratamentul lor.
În programarea orientata pe obiect, efortul consta in definirea obiectelor. Obiectele de acelasi tip formeaza o clasa care este generalizarea notiunii de tip de date definit de utilizator. Clasa include, pe langa date si metodele de acces la ele. Datele sunt vizibile doar metodelor asociate clasei respective, acest principiu numindu-se incapsularea datelor. Prin functiile numite constructori si destructori, programatorul detine controlul asupra operatiilor necesare la crearea respectiv disparitia unui obiect.
Îmbinarea tehnicii limbajelor orientate obiect cu a bazelor de date a permis realizarea bazelor de date obiect. Aceste baze permit organizarea coerenta a obiectelor partajate intre utilizatori concurenti.
Sistemele de gestiune orientate obiect prezinta urmatoarele avantaje:
realizeaza o modelare superioara;
furnizeaza posibilitati superioare de deductie (ierarhie de clase, mostenire);
imbunatatesc interfata cu utilizatorul.
b) Gestiunea cunostintelor (baze de date deductive)
O relatie este o colectie de cupluri ce reprezinta fapte. Cunostintele sunt asertiuni generale si abstracte asupra faptelor. De exemplu, 'Paul este avocat' este un fapt, iar 'Toti avocatii sunt bogati' este o cunostinta. Cunostintele permit sa rationezi, ceea ce permite deducerea de noi fapte, plecand de la fapte cunoscute ('Paul este avocat') si obtinerea de raspunsuri inteligente (putem raspunde la intrebarea 'Cine sunt bogati?', prin forma 'Toti avocatii').
Un SGBD relational suporta o forma limitata de cunostinte si anume constangerile de integritate, iar restul de cunostinte trebuie integrate in programele de aplicatie. Aceasta genereaza probleme, fie ca trebuie codificate cunostintele in programe, fie ca apare imposibilitatea de a partaja cunostintele intre utilizatori. Totul se complica daca exista un volum mare de fapte.
Bazele de date deductive, utilizand programarea logica, gestioneaza cunostintele relativ la baze de date, care in general sunt relationale. Bazele de date deductive permit deducerea de noi informatii, plecand de la informatii stocate in baza.
Un SGBD deductiv poseda:
Un limbaj de definire a datelor care permite definirea structurii predicatelor sub forma de relatii si constrangeri de integritate asociate.
Un limbaj de manipulare a datelor care permite efectuarea reactualizarilor asupra datelor si formularea unor cereri.
Un limbaj de reguli de deductie care permite ca, plecand cu predicate definite anterior, sa se specifice cum pot fi construite predicate derivate necesare filtrarilor cerute de utilizator.
c) Gestiunea datelor distribuite (baze de date distribuite)
Un sistem distribuit este un ansamblu de masini interconectate printr-o retea de comunicatie si utilizate intr-un scop global. Administrarea si manipularea datelor distribuite, situate pe diferite calculatoare si exploatate de sisteme eterogene este obiectul fundamental al bazelor de date distribuite.
Baza de date distribuita este un sistem de baze de date cooperante care rezida pe masini diferite, in locuri diferite. Aceasta multime de baze de date este exploatata de utilizator ca si cum ar fi o singura baza de date.
Un sistem paralel este un sistem conceput pentru a exploata capacitatile unui calculator multiprocesor. Implementarea unui SGBD ca un sistem paralel permite exploatarea paralelismului inerent care exista intre bazele de date.
Modelul relational a ramas instrumentul prin care se realizeaza prelucrarea datelor distribuite, deoarece:
Bazele de date relationale ofera flexibilitate de descompunere in vederea distribuirii. Tabelele se pot descompune orizontal, vertical si se pot regrupa.
Operatorii relationali pot fi folositi pentru combinatii dinamice ale informatiilor descentralizate.
Limbajele sistemelor relationale sunt concise si asigura o economie considerabila a transmiterii datelor.
Solutia pentru descentralizarea prelucrarea datelor, in scopul evitarii saturarii memoriei si a procesoarelor calculatorului central, a fost aparitia calculatoarelor 'baze de date' si a masinilor 'baze de date'. Aceasta descentralizare inseamna transferarea unei parti din functiile unui SGBD catre un calculator periferic, numit 'calculator backend', realizandu-se astfel deplasarea algoritmilor de cautare si acelor de actualizare mai aproape de memoria secundar, deci de locul unde sunt memorate datele.
Fig. Calculatorul backend
Calculatorul backend poate fi un calculator clasic, dar cu un soft specific de SGBD, caz in care poarta denumirea de 'calculator baza de date', sau poate fi o masina cu hard specializat in gestiunea bazelor de date, situatie in care este denumit 'masina baze de date'.
Masinile baze de date sunt inzestrate cu arhitecturi paralele special adaptate pentru gestionarea unui volum mare de date. Tratarea paralela a cererilor permite reducerea timpului total de executie a acestora. O executie in paralel solicita, fie descompunerea unui program in module care pot fi executate in paralel (descompunere functionala), fie descompunerea datelor in subgrupe astfel incat toate procesoarele sa execute acelasi lucru, dar pe date diferite. Performantele tratarii paralele depind de modul in care sunt efectuate descompunerile.
În urmatoarea figura este prezentata arhitectura functionala a unei masini baza de date si a calculatorului central.
Fig. Arhitectura tipica a unei masini baza de date.
Prin introducerea unui calculator backend se obtin urmatoarele avantaje in lucru cu baze de date:
Se transfera in memoria calculatorului numai datele utile, evitandu-se astfel saturarea acesteia;
Specializarea backend-ului in prelucrari pe baze de date determina performante sporite in gestionarea bazelor de date, in raport cu ale unui calculator general;
Utilizarea unor tehnici avansate de prelucrare sau acces la date, precum prelucrarea paralela.
|