Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


BAZE DE DATE ORIENTATE PE OBIECTE - Concepte de baza: Mostenire, Incapsularea

baze de date



+ Font mai mare | - Font mai mic



BAZE DE DATE ORIENTATE PE OBIECTE

Dezvoltarea tehnologiei sistemelor de calcul in ultimii ani a condus la patrunderea acestora in tot mai multe domenii de activitate, avand de rezolvat probleme din cele mai diverse si mai complexe. Pentru aceasta, structurile clasice de date bazate pe text si valori numerice fie se dovedesc insuficiente, fie complexitatea lor depaseste posibilitatile de prelucrare oferite de tehnologiile clasice.



Aplicatiile specifice anumitor domenii cum ar fi: proiectarea asistata de calculator, sisteme informatice geografice, sisteme bazate pe cunostinte etc., presupun stocarea unor cantitati mari de informatii cu o structura complexa. De exemplu, aplicatiile de proiectare asistata de calculator necesita stocarea si manevrarea unor desene formate din grupuri de elemente complexe, alaturi de acestea fiind necesara stocarea si a altor informatii privind materialele folosite, masini si utilaje disponibile, rezultate ale verificarilor efectuate asupra proiectului etc.

Un alt domeniu al informaticii care necesita structuri de date complexe este multimedia. Acest domeniu, spre care exista o orientare tot mai puternica, presupune integrarea imaginilor reale sau sintetizate cu sunet si muzica, integrare ce nu mai permite folosirea datelor numerice sau de tip sir de caractere.

O modalitate de rezolvare a acestor probleme este data si de tehnologia aplicatiilor orientate pe obiecte.

Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai simple, fiecare avand propriile atribute si propriul comportament. Domeniile care se preteaza in mod deosebit la o tratare orientata pe obiecte sunt:

proiectare (CAD), fabricare (CAM) si inginerie (CAE) asistate de calculator;

simulare si modelare;

sisteme informationale spatiale (GIS);

administrarea documentelor si automatizarea muncii de birou;

multimedia;

ingineria cunoasterii: baze de cunostinte, sisteme expert;

controlul proceselor in timp real, pe baza de evenimente.

Obiectivele principale ale sistemelor de gestiune orientate pe obiecte sunt:

Puterea de modelare superioara a datelor.

Posibilitati de deductie superioara (ierarhie de clase, mostenire);

Ameliorarea interfetei cu utilizatorul;

Luarea in considerare a aspectelor dinamice, integrarea descrierii structurale si comportamentale a obiectelor.

1. Modelul de date orientat pe obiecte. Concepte de baza

Un model de date orientat pe obiecte are la baza notiunea de entitate conceptuala si defineste un obiect ca o colectie de proprietati care descriu entitatea. Principalele concepte care stau la baza unui model orientat pe obiecte sunt: obiectul, incapsularea, persistenta, clasa, tipul, mostenirea, polimorfismul, identitatea si domeniul.

Obiectul

Conceptual, un obiect reprezinta o unitate identificabila si cu continut propriu, care se deosebeste de ceea ce o inconjoara.

Obiectele sunt abstractizari ale entitatilor lumii reale si se caracterizeaza prin stare si comportament.

Starea unui obiect este exprimata prin valorile atributelor sale. Colectia de atribute aleasa pentru un obiect trebuie sa fie suficienta pentru a descrie entitatea, adica trebuie sa includa acele atribute pe care le cunosc utilizatorii.

Comportamentul unui obiect reprezinta un set de metode sau operatii care actioneaza asupra atributelor sale.

Considerand, de exemplu obiectul AVION acesta poate avea ca atribute: viteza, anvergura, greutatea, culoarea, inaltimea de zbor etc.

Un obiect inglobeaza urmatoarele elemente:

structura de date;

specificarea operatiilor;

implementarea operatiilor.

Structura unui obiect si operatiile (metodele) permise pentru acel obiect sunt definite impreuna.

O metoda reprezinta o procedura ce manipuleaza obiectul sau indica starea sa si este totdeauna asociata unei clase.

Metodele si atributele nu sunt vizibile din "exteriorul" obiectului. Un obiect comunica cu "exteriorul" prin intermediul mesajelor . Mesajele reprezinta cereri adresate obiectului pentru a returna o valoare sau pentru a-si schimba starea.

Obiectele pot fi simple sau compuse din alte obiecte. Un obiect compus poate avea ca atribute alte obiecte, formand astfel o structura ierarhica.

Incapsularea

Structura obiectului si modul de actiune al metodelor sale nu pot fi accesate si actualizate direct de catre un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Aceasta caracteristica ascunsa a starii obiectului este cunoscuta sub numele de incapsulare. Un obiect este astfel divizat in doua parti: o parte de interfata reprezentata de mesaje si o parte ascunsa, de implementare, reprezentata de starea interna si de metodele obiectului.

Incapsularea ascunde utilizatorului complexitatea unui obiect, oferindu-i in schimb o imagine functionala simplificata a acestuia, imagine care ii permite sa modeleze si sa rezolve cu mai multa usurinta problemele complexe.

Persistenta

Aceasta este o proprietate a datelor sau a obiectelor care implica existenta mai indelungata a acestora fata de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigura pastrarea unui proces pentru a fi refolosit ulterior in alt proces.

Codul aferent metodelor, fiind parte integranta din obiect, este stocat, ca si starea obiectului, in baza de date. Aceasta inseamna ca, odata ce a fost descrisa, o metoda devine permanenta, decongestionand astfel aplicatia si asigurandu-i independenta fata de date. O modificare adusa unei metode devine imediat operanta si persista pana la o noua modificare.

Tipuri si clase

Obiectele care au acelasi fel de atribute si acelasi comportament pot fi categorisite ca facand parte din acelasi tip sau din aceeasi clasa.

Intr-un sistem orientat pe obiecte, tipul sintetizeaza elementele comune ale unui set de obiecte cu aceleasi caracteristici. Corespunde notiunii de tip abstract de date si are doua componente:

interfata;

implementarea.

Notiunea de clasa, desi are aceeasi specificatie cu cea de tip, este diferita de acesta, fiind mai mult asociata cu faza de executie si presupune doua aspecte:

generarea de obiecte;

stocarea setului de obiecte care reprezinta instantele clasei.

O clasa are o descriere ce consta dintr-un set de structuri de date comune, cunoscute ca variabile de instanta, un protocol comun ce consta dintr-un set de mesaje, la care instantele clasei vor raspunde si un set de metode pentru implementarea de operatii comune.

Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei serveste ca sablon dupa care vor fi create noile obiecte. O clasa este deci un tip abstract de date care defineste atat structura obiectelor din clasa respectiva, cat si multimea metodelor existente pentru aceste obiecte. Ca urmare, obiectele din aceeasi clasa au aceleasi atribute si aceleasi metode si raspund la aceleasi mesaje.

Clasele sunt organizate ierarhic fiecare clasa nou creata trebuind sa fie obtinuta din alta clasa deja existenta. Daca nu exista nici o clasa potrivita pentru definirea unei noi clase, aceasta va fi identificata ca o subclasa a clasei generale sistem (metaclasa). Orice subclasa mosteneste structurile si metodele superclasei din care face parte. O clasa poate crea noi instante ale obiectelor.

Mostenire

Intr-o baza de date orientate pe obiecte, clasele sunt aranjate intr-o ierarhie in care fiecare clasa mosteneste toate atributele si metodele superclasei din care face parte. Mostenirea este un concept puternic, care conduce la posibilitatea de reutilizare a codului.

Prin mostenire, o clasa preia toate atributele si metodele clasei din care deriva adaugand la ele atributele si metodele proprii. Este de asemenea posibil ca o clasa sa aiba mai mult decat o superclasa. Acest lucru este cunoscut ca mostenire multipla.

Polimorfism

Polimorfismul se refera la faptul ca, la primirea unui mesaj, stabilirea metodei care se aplica se face in mod dinamic, in functie de clasa obiectului in cauza. Astfel, instante ale unor clase diferite pot fi adresate uniform (primesc aceleasi mesaje), dar manifesta comportamente diferite. Acest fapt asigura manipularea simpla si coerenta a seturilor eterogene de obiecte.

Un alt tip de comportament polimorfic este asociat cu mostenirea. Raspunsul unui obiect la un mesaj poate fi determinat de metodele mostenite de la superclasa. Mostenirea multipla permite definirea unor forme complexe de comportament polimorfic care pot antrena uneori combinarea metodelor de la doua sau mai multe superclase.

Identitatea

Identitatea este un mijloc de a distinge un obiect de altul. Prin identitate se asigura si persistenta datelor.

Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independenta de valorile atributelor sale. Spre deosebire de modelul relational, care utilizeaza unicitatea cheii primare pentru a identifica "obiectul", tehnologia orientata pe obiecte permite modificarea valorilor oricarui atribut fara a-i afecta identitatea. Mai mult chiar, obiectele au "constiinta de sine", adica se pot referi pe ele insele prin intermediul pointerului SELF.

Fiecare instanta sau realizare a obiectului are un identificator de obiect intern, repartizat lui si cunoscut ca ID obiect sau pointer Acesta este independent de valorile atributelor sale. Fiind generat de sistem, identificatorul este unic si nu este accesibil utilizatorului.

Restrictii de integritate ale modelului de date orientat pe obiecte

In cazul modelului de date orientat pe obiecte, restrictiile de integritate cunt o consecinta a structurii modelului si a operatiilor. Urmatoarele reguli sunt important de retinut:

toate obiectele trebuie sa respecte protocolul specificat prin definirile lor de clasa;

obiectele sunt incapsulate. Aceasta presupune accesul la obiect numai prin folosirea protocolului de mesaje definit pentru clasa obiectului;

identificatorul obiectului trebuie sa asigure integritatea referirii la un obiect. Astfel, un obiect nu exista fara sa aiba asignat un identificator.

Daca un obiect este sters sau mutat atunci trebuie sa fie sterse sau mutate toate obiectele derivate din acesta..

2. Baze de date orientate pe obiecte

O baza de date orientata pe obiecte poate fi definita ca fiind rezultatul aplicarii tehnologiei orientate pe obiecte in domeniul stocarii si regasirii informatiilor. Ea ofera posibilitatea de a reprezenta structuri de date foarte complexe cu ajutorul obiectelor.

Definirea clasei este mecanismul de specificare a schemei bazei de date. Schema bazei de date consta din toate clasele care au fost definite pentru o aplicatie particulara. Definitiile de clasa includ mostenirea, relatiile de inrudire (superclasa, subclasa) si relatiile structurale dintre clase (analog cu relatiile din modelul entitate-relatie-atribut).

O schema completa de baza de date poate consta din una sau mai multe ierarhii de clasa impreuna cu relatiile structurale. Descrierile individuale ale schemei se refera la variabile de instanta ale claselor individuale.

Schema bazei de date poate fi modificata dinamica, in functie de necesitatile utilizatorilor. Pot fi identificate doua tipuri de schimbare a schemei unei baze de date orientate pe obiecte:

Schimbari referitoare la modul de definire al unei clase. Acestea includ schimbarile atributelor si metodelor definite pentru o clasa, cum ar fi schimbarea numelui sau domeniului unui atribut, adaugarea, stergerea unui atribut sau metode;

Schimbari referitoare la structura ierarhiei de clase care includ adaugarea sau stergerea unei clase si schimbarea relatiilor superclasa/subclasa dintre o pereche de clase.

Proiectarea bazelor de date orientate pe obiecte

Modul clasic de proiectare se bazeaza pe tehnica top-down. Se identifica mai intai componentele majore, se stabilesc corelatiile intre ele, iar apoi se trece la rafinari succesive, "in cascada", a componentelor.

Proiectarea orientata pe obiecte se bazeaza mai mult pe tehnica bottom-up. Se identifica mai intai componentele functionale pe baza carora se va construi apoi intregul edificiu. Se identifica in colectiile existente obiectele care pot fi reutilizate pentru noul proiect. Acestea vor fi preluate ca atare sau, daca este cazul, vor fi ajustate. Cele care nu exista vor fi create, uneori din temelii, dar de cele mai multe ori ca subclase ale unor clase existente. Odata creata ierarhia de clase potrivita, se testeaza componentele specifice, se pune la punct documentatia si se poate incepe actiunea de implementare.

Aceasta metodologie modifica in mod substantial planificarea lucrarilor si etapelor. Partea cea mai minutioasa a proiectarii se muta la inceputul proiectului. Daca exista deja biblioteci de obiecte utilizate in alte aplicatii, realizarea uni prototip se poate face foarte rapid. Pe baza lui se stabilesc aspectele functionale si de interfata ale aplicatiei, dupa care se trce la etapa de identificare a obiectelor, a claselor, a ierarhiei, a modului de comunicare intre obiecte. Etapa finala a proiectului consta in asamblarea acestor elemente.

Sisteme de gestiune a bazelor de date orientate pe obiecte

Sistemele de gestiune a bazelor de date orientate pe obiecte trebuie sa pastreze functiunile oferite de SGBD-urile dezvoltate anterior, folosind totodata structuri de date si reguli orientate spre lucrul cu obiecte.

Un SGBD orientat pe obiecte trebuie sa satisfaca doua criterii:

sa fie un sistem orientat pe obiecte, deci bazat pe modelul orientat pe obiecte;

sa indeplineasca cerintele unui sistem de gestiune a bazelor de date.

Arhitectura unui SGBD se refera la o descriere abstracta a organizarii unui sistem in scopul de a prezenta componentele functinale si interfetele dintre ele. Arhitectura unui SGBD-OO cuprinde trei componente majore:

Gestionarul de obiecte (Object Manager) care asigura interfata dintre procese (prelucrarile) externe si SGBD-OO;

Server-ul de obiecte care este responsabil cu asigurarea serviciilor de baza ale SGBD-urilor, cum ar fi: gestiunea tranzactiilor si gestiunea stocului de obiecte;

Stocul rezident de obiecte sau chiar baza de date obiect.

Procesele externe pot fi generate de catre diversi utilizatori prin accesarea SGBD-OO. Utilizatorii finali externi si cei care dezvolta aplicatii pot folosi diverse instrumente soft, cum ar fi: editoare de texte, browseri de obiecte si clase, accesorii de proiectare automata de baze de date si interfete pentru sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce realizeaza interfata cu gestionarul de obiecte.

In prezent, SGBD-OO comerciale sunt accesate in primul rand prin limbajele de programare orientate obiect, cum ar fi: Smalltalk, Common Lisp si C++. Interfata dintre limbajele de programare orientate pe obiecte si SGBD-OO o reprezinta limbajul pentru baza de date. Un SGBD trebuie sa asigure un limbaj pentru baze de date pentru a permite definirea si manipularea schemei bazei de date si a datelor. Exemple de SGBD-OO sunt: GemStone, ObjectStore, Ontos, Raima Object Manager, Versant etc. Toate aceste SGBD-uri ruleaza pe microcalculatoare, statii SUN, Apollo si Digital si pe PC-uri.

3. Intrebari pentru verificarea cunostintelor

Care sunt caracteristicile unui obiect ?

Explicati conceptul de mostenire.

Explicati conceptul de incapsulare.

Explicati conceptul de polimorfism.

Precizati restrictiile de integritate ale modelului de date orientat obiect.

Care sunt modalitatile de schimbare a schemei unei baze de date orientate obiect ?

Caracterizati proiectarea bazelor de date orientate obiect.

Prin ce se identifica un SGBD ca fiind orientat obiect ?



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 5949
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved