Sunteți pe pagina 1din 7

Prezentarea leciei / capitolul 5:

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 Noiunea specific obiectelor Noiunea clasic de comparaie


1. Obiect nemutabil (care nu se poate muta) Valoare
2. Obiect mutabil (care se poate muta) Variabil
3. Clasa de obiecte Tip
4. Metoda Operator
5. Mesaj 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

21
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).

22
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, G-
BASSE;
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.

23
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 top-
down 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
bottom-up 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;

24
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);

25
- 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.
Lista subiectelor pentru pregtirea n vederea evalurii finale:
ntrebri:
1. Cum se definesc bazele de date orientate obiect?
2. Care sunt noiunile fundamentale utilizate n modelul de date orientat pe
obiecte?
3. Cum se clasific obiectele?
4. Definii tipurile, clasele, motenirea.
5. Care sunt operaiile modelului de date orientat pe obiecte?
6. Cum se face proiectarea bazei de date orientat pe obiecte?

26
Studiu de caz: Stabilii obiectele i tipurile de evenimente la care acestea
acioneaz, pentru o aplicaie de taxe i impozite n administraia public utiliznd
o baz de date orientat pe obiecte.

27

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