CATEGORII DOCUMENTE |
Proiectantii, cunoscand foarte bine modelul relational si apoi sesizand asemanarile si deosebirile dintre cele doua moduri de abordare a modelarii datelor, vor putea valorifica si folosi experienta dobandita anterior ca baza substantiala pentru intelegerea si insusirea metodologiei de proiectare a bazelor de date orientate obiect. Totodata, prin cunoasterea asemanarilor si deosebirilor dintre cele doua moduri de abordare apare posibilitatea conversiei unui model relational in obiectual si invers. De altfel, o astfel de practica o regasim in mod frecvent.
In cele ce urmeaza vom recurge la o prezentare comparativa a modelarii datelor, luand in considerare conceptele folosite precum si obiectivele urmarite.
In tabelul 7.1 se prezinta o comparatie intre principalele concepte utilizate in modelarea obiectuala si relationala a datelor.
Tabelul 7.1. Compararea BDOO si BDR sub aspectul conceptelor folosite
Modelul orientat pe obiecte |
Modelul relational |
Diferente |
Obiect |
Entitate |
Obiectul precizeaza si comportamentul |
Clasa de obiecte |
Tipuri de entitati |
Clasa de obiecte include si comportamentul comun obiectelor din clasa respectiva |
Ierarhia de clase |
Schema bazei de date |
Ierarhia de clase implica mostenirea iar schema implica chei externe |
Instanta de clasa |
Entitate, tuplu sau inregistrare |
Instanta poate avea un caracter mai restrictiv |
Atribut |
Atribut |
Fara diferente |
Relatii |
Relatii |
Fara diferente Au semnificatia de descrieri, insa in BDOO mostenirea include atat starea cat si comportamentul |
Mesaje / interfata |
Nu exista | |
Incapsulare |
Nu exista | |
Identificatorul de obiect (OID) |
Cheie primara |
In modelul relational daca nu se defineste cheia primara sistemul genereaza in mod automat un identificator |
Deosebirile dintre modelul BDOO si modelul BDR pot fi evidentiate si sub aspectul obiectivelor urmarite sau prin alte caracteristici, asa cum se poate observa din tabelul 7.2.
Tabelul 7.2. Compararea BDOO si BDR sub aspectul obiectivelor urmarite
BDOO |
BDR |
Obiective principale: incapsularea si independenta datelor. |
Obiectiv principal: asigurarea independentei datelor fata de programele de aplicatii. |
Independenta claselor: pot fi reorganizate fara a afecta modul de folosire a lor. |
Independenta datelor: datele pot fi reorganizate si modificate fizic fara a afecta modul de folosire. |
BDOO stocheaza date si metode. |
BDR stocheaza numai date. |
Incapsularea: datele pot fi folosite numai prin metodele claselor. |
Partitionarea datelor: datele pot fi partitionate in functie de cerintele si specificul aplicatiilor utilizatorilor. |
Obiecte active: obiectele sunt active. Cerintele cauzeaza obiectelor executarea metodelor acestora. |
Date pasive: datele sunt pasive. Anumite operatii limitate pot fi in mod automat antrenate cand datele sunt folosite. |
Complexitate: structura datelor poate fi complexa, implicand multiple tipuri de date. |
Simplicitate: utilizatorii percep datele sub forma de coloane, randuri / tupluri si tabele. |
Date inlantuite. Datele por fi inlantuite asa incat metodele claselor ofera performante sporite. Datele structurate precum si BLOB (binary larrge objects) sunt folosite pentru sunet, imagine, video etc. |
Tabele separate: fiecare relatie / tabela este separata. Operatorul de JOIN refera date din tabele separate. |
Neredundanta metodelor: neredundanta datelor si metodelor sunt realizate prin incapsulare si mostenire. Mostenirea ajuta la reducerea redundantei metodelor. |
Neredundanta datelor: Normalizarea datelor are ca scop de a elimina sau reduce redundanta datelor. Ea este folosita in faza de proiectare a bazei de date si nu in faza de dezvoltare a aplicatiilor. |
Optimizarea datelor: datele pentru un obiect pot fi inter legate si stocate impreuna, astfel incat ele pot fi accesate impreuna de mecanismul de acces. |
Performanta BDR este legata de nivelul de complexitate a structurii datelor. |
Modul conceptul consistent: modelele folosite pentru analiza, proiectare, programare si accesul bazei de date sunt similare. Conceptele aplicatiilor sunt in mod direct reprezentate prin clasele de obiecte. |
Model conceptul diferit: modelul structurii datelor si acces reprezentat prin tabele si JOIN-uri este diferit de cel in analiza, proiectare si programare. Proiectul trebuie sa fie convertit in tabele relationale si acces conform SQL. |
Analizand cele doua tipuri de baze de date, obiectuale si relationale, por fi desprinse o serie de concluzii, dintre care amintim [Date, Sabau, Kifer]:
O baza de date relationala este formata din relatii, care sunt seturi de tupluri, in timp ce o baza de date orientata pe obiecte este formata din clase, care sunt seturi de obiecte;
Intr-o baza de date relationala, componentele unui tuplu trebuie sa fie tipuri primitive (real, integer, strings etc.), in timp ce intr-o baza de date orientata pe obiecte, componentele unui obiect pot fi atat tipuri primitive cat si tipuri complexe (seturi, tupluri, liste, BLOB-uri etc.);
Bazele de date orientate pe obiecte au anumite proprietati pentru care nu gasim analogie in bazele de date relationale, cum ar fi proprietatea de mostenire si metodele apartinand obiectelor;
In anumite sisteme de baze de date orientate pe obiecte, limbajul de manipulare a datelor si limbajul gazda sunt aceleasi;
Bazele de date relationale au ca obiectiv principal asigurarea independentei datelor. Datele normalizate sunt separate de prelucrari iar, prelucrarile corespunzatoare satisfacerii cerintelor informationale nu este obligatoriu sa fie in totalitate predefinite deci se accepta si cerinte ad-hoc;
Bazele de date orientate obiect au ca obiectiv principal incapsularea, fiind stocate impreuna datele / si metodele. Ele sunt inseparabile. Se spune ca avem de a face cu independenta claselor nu cu independenta datelor;
Nevoia unui SGBDOO si nu unul relational apare atunci cand in aplicatiile de referinta avem de a face cu date complexe;
Limbajele de programare necesita o noua sintaxa; mixarea, reproducerea si noile metode de acces necesita de asemenea continuarea cercetarilor; trebuie realizate caracteristici mai solide ale limbajelor de interogare; se simte nevoia continuarii in domeniul controlului concurentei, semantica marcilor de timp si concurentei bazate pe obiectele [2, Oracle 2004 A];
Limbajul C++ nu este un limbaj prea adecvat pentru implementarea bazelor de date intrucat prezinta probleme legate de mecanica definirii atributelor, mecanica referirii la obiecte intr-un mod sistematic. Totodata, SGBD actuale bazate pe limbajul C++ duc lipsa unor importante functii ale bazei de date si, pentru a compensa aceasta s-a recurs la implementari simple ale functiilor standard ale sistemelor de gestiune, cum ar fi: inregistrarea in jurnal a tranzactiilor pentru refacerea prin derulare inainte; un monitor multifir al tranzactiilor, un limbaj de interogare si un procesor de interogari [5,6];
Piata bazelor de date orientate obiect va continua sa creasca, dar va ramane inca doar o fractiune din piata traditionala a bazelor de date [2I.S3];
Se apreciaza ca SGBDR detin ponderea cea mai mare pe piata bazelor de date. Insa ca perspectiva ele vor coexista inca mult timp impreuna cu SGBDOO.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1435
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved