Sunteți pe pagina 1din 15

Elemente ale teoriei bazelor de date

Baze de date

Elemente ale teoriei bazelor de date


1.1. Activitatile si obiectivele organizarii datelor
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).
1.2. Concepte utilizate in organizarea 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 printrun 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.
1.3. Structuri de date
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.
1.3.1. Clasificarea structurilor de date
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.
1.3.2. Tipuri de structuri de date
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.
1.4. Modele de date

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. 1.4-1
-

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. 1.4-2
- 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. 1.4-3
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.

1.4.1. Modelul ierarhic


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. 1.4-4
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.
1.4.2. Modelul retea
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.
1.4.3. Modelul relational
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.
1.4.4. Modelul de date orientat pe obiecte
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.
1.5. Baze de date
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.
1.5.1. Utilizatorii unei baze de date
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.
1.5.2. Limbaje pentru baze de date.
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 clientserver, pentru un sistem de baze de date distribuite.
1.6. Sisteme de gestiune a bazelor de date
1.6.1. Definirea sistemului de gestiune a bazei de date
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 propriuzis 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.
1.6.2. Obiectivele unui sistem de gestiune a bazelor de date
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.
2. 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.
3. 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.
4. 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;
5.

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.
6. 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.
1.6.3. Functiile unui sistem de gestiune a 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.
1.6.4. Evolutia sistemelor de gestiune a bazelor 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', realizanduse astfel deplasarea algoritmilor de cautare si acelor de actualizare mai
aproape de memoria secundar, deci de locul unde sunt memorate datele.

Fig. 1.6-1 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. 1.6-2Arhitectura 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.

S-ar putea să vă placă și