CATEGORII DOCUMENTE |
In domeniul bazelor date orientate obiect pe piata mondiala au aparut o serie de Sisteme de gestiune a bazelor de date orientate obiect. Unele dintre ele au rezistat timpului si concurentei, altele au disparut. In cele ce urmeaza vom recurge la o prezentare a unor dintre SGBDOO.
GEMSTOME este unul dintre primele si probabil cel mai pur sistem de gestiune a bazelor de date orientate obiect care a existat ca produs comercial [Maier 86; Maier si Stein 1987; Brett s.a. 1989]. Este construit pe o extensie a lui Smalltalk numita OPAL.
Spre deosibire de ObjectStore, Ontos si Versant, care sunt strans legate de C++, OPAL nu este strans legat de un limbaj anume desi, limbajul GemStone poate fi accesat si din alte limbaje cum ar fi Smaltalk si C++.
GemStone este orientat in principal pe aplicatii CAD/CAM si nu trateaza mostenirea multipla.
ONTOS a fost realizat si comercializat in 1990 de catre Ontos Billerica, Massachesetts. Utilizeaza C++ ca limbaj de programare pentru baza de date orientate obiect. Ontos este succesorul unui produs mai vechi numit VBase care utiliza un model orientat obiect cu prorpiile sale limbaje COP(C Object Processor - o extensie orientata obiect a limbajului C pentru acces la baza de date) si TDL (Type Definition Language). Ulterior, in Versiunea 2.0 TDL este inlocuit cu o extensie orientata obiect a SQL, numita Object SQL sau ONTOS SQL, care adauga sintaxa cererilor obiect la SQL standard. Limbajul COP este inlocuit si el cu C++.
Desi este strans legat de C++, Ontos este accesibil si din alte limbaje. Versiunea 2.0 a introdus un 4GL numit Shorthand, un front-end windows, un raport si generator de forme numit Studio. De asemenea, are un browser grafic si un instrument (tool) grafic capabil sa genereze in C++ fisiere si schema bazei de date.Metodele nu sunt stocare in baza de date asa ca trebuie mentinute legaturi intre metode si date. Schema este stocata in baza de date si este accesibila programatorilor. Clasele speciale sunt prevazute sa modeleze structurile de compunere.
Este suportat in LAN-uri utilizand un model de arhitectura Client/Server. Performanta produsului este accentuata de posibilitatea clasterizarii discului si utilizarii tehnicilor Caching. Incepand cu Versiunea 2.2 (1993) ofera suport extins pentru aplicatii de grup de lucru precum si o mai buna notificare a evenimentelor.
ONTOS poseda si alte caracteristici, dintre care enumeram:
trateaza foarte bine mostenirea multipla;
foloseste perechi de atribute inversate, in sensul ca mentine in mod automat atribute inverse, deci valorile sunt atribute care reprezinta o asociere (valori unice sau multiple);
trateaza obiecte mari de tip BLOB-uri. Pentru tinerea in pagina, atributele foarte voluminoase sunt stocate cu ajutorul unei reprezentari in arbori B;
gestioneaza versiuni ale obiectelor;
dispune de utilitare pentru administrare, cum ar fi: un browser interactiv pentru examinarea si modificarea schemei bazei de date, comenzi de modificare si regrupare fizica a datelor si un utilitar, numit Make, pentru sincronizarea programelor cu o schema modificata.
VERSANT este un alt SGBD orientat obiect realizat de Versant Object Technology la Menlo Park in California. Este implementat pe platforma de sistem UNIX, utilizand C++ ca limbaj de acces primar insa este posibil si accesul din Smalltalk sau din Object SQL.
VERSANT este cunoscut si folosit in mod deosebit pentru aplicatii multi-user in mediu de baze de date distribuite. Este bazat pe o arhitectura multi-client/multi-server. Totodata, ofera posibilitati de comunicare cu alte sisteme, cum ar fi ORACLE, cu instrumente de dezvoltare pentru GUI (Grafic User Interface) sau generatoare de rapoarte. El poate asigura si un Depozit de date (Repository) pentru un mediu CASE cum ar fi Rational ROSE CASE. Alte caracteristici ale sistemului VERSANT constau in faptul ca trateaza structurile compuse, mostenirea multipla si variantele de versiuni.
ORION este un sistem orientat obiect realizat de MCC din Austin, Texas. El ofera posibilitatea identificarii obiectelor, tratarea mostenirii multiple, obiectelor compuse, gestiunii versiunilor, indecsilor pentru acces si tranzactii. De asemenea ofera suport pentru baze de date distribuite, gestioneaza evolutia dinamica a bazei de date si accesul autorizat la date. Este implementat in limbajul LISP, versiunea extinsa orientata obiect a acestuia.
O particularitate mai deosebita a proiectului de cercetare ORION de la MCC consta in faptul ca se concentreaza pe evolutia schemei bazei de date. Schema unei baze de date orientate obiect e dinamica si poate evolua in diferite feluri fara a necesita o recompilare, astfel ca permite [Ivan Graham]:
Schimbari in descrierea unui obiect prin adaugare, stergere, actualizare de atribute sau metode;
Schimbari fata de reprezentarea obiectelor de catre sistem, de genul: adaugare, stergere sau schimbare de identitate a unui obiect. Stergerea unei clase de obicei are mai degraba efect asupra tuturor subclaselor sale care mostenesc proprietatile si comportamentul superclaselor;
Schimbari in structurile bazei de date ca: adaugare, stergere sau modificare a unei mosteniri, compuneri sau relatie asociativa.
In general, evolutia sau dezvoltarea structurii baze de date e complicata datorita prezentei mostenirii, in sensul ca daca o superclasa comporta schimbari atunci trebuie verificate toate implicatiile dependente de acea schimbare. Este important de observat ca identitatea obiectului e pastrata si trebuie sa fie pastrata pe parcursul tuturor schimbarilor schemei bazei de date orientate obiect. Pentru acest motiv se presupune ca schimbarile schemei trebuie sa fie rezonabile si nu in totalitate. Aceasta problema este strans legata de cea a controlului de versiune si majoritatea bazelor de date orientate obiect ofera un mod de control de versiune la nivel de instanta, clasa si schema. In acest scop, se poate defini o clasa cu semnificatie de istoric care ar contine ca atribute: versiunea precedenta, versiunea urmatoare si membru de set de versiune, care pot fi mostenite de orice obiect care necesita control de versiune [Kim 1988].
Desi ORION a fost in mare parte inspirat dupa modelul SMALLTALK exista un numar important de extensii in model. De exemplu, mostenirea multipla e suportata si exista trei metode prevazute pentru rezolutia de conflict. Se foloseste fie o regula "left first" (intai stanga) prin care este folosita prima superclasa dintr-o lista de superclase de la care se mosteneste metoda sau atributul conflictual; sau utilizatorul poate specifica alegerea pe care ar trebui sa o faca obiectul; sau utilizatorul poate specifica ca obiectul trebuie sa mosteneasca ambele proprietati si sa redefineasca una dintre ele.
ITASCA este realizat si comercializat de Itasca Systems Inc din Minesota, Minneapolis. Este un produs softwer bazat pe prototipurile de cercetare ORION, insa mult dezvoltat si perfectionat (1993).
ITASCA ca si ORION utilizeaza limbajul LISP insa accepta si alte limbaje de programare cum ar fi: CLOS, C, C++ si Fortran. Ruleaza pe statii de lucru UNIX.
ITASCA se bazeaza pe o arhitectura multi-clinet/multi-server distribuita si nu are nume centralizat sau server de date asa ca nu exista un singur punct de esec (de cadere). Ofera posibilitatea urmaririi evolutiei schemei dinamice si a unor servicii bune de securitate si concurenta. Trateaza structurile compuse iar notificarea evenimentului poate fi bazata pe marcare (flag-based) sau mesaj (message-based).
ITASCA ofera facilitatile de partitionare a bazei de date si distribuirea acestor partitii in spatiu geografic, fara a fi nevoie ca utilizatorul sa stie unde anume sunt stocate/localizate datele. Se foloseste indexarea claselor pentru a spori performanta, iar unde e posibil cererile se executa in paralel pe diferite masini din cadrul retelei.
Sistemul de gestiune a bazelor de date orientate obiect O2 a fost realizat in Franta de Consortiul de cercetare Altair intre 1986 si 1990 [F. Baucilhon 1988; F. Baucilhon si C. Delobel 1989; 1991]. Dupa 1991 el a fost dezvoltat si comercializat de O2 Technology la Versailles. O2 este implementat in C++ insa anumite parti sunt implementate intr-un limbaj propriu numit O2C. Este disponibil pe platformele UNIX SUN , HP, IBM, BULL si DEC.
O2 constituie un motor de baze de date, O2 Engine, in interiorul caruia sunt disponibile trei niveluri de utilizare:
Limbajele de interfata: C si C++, un L4G, O2C, limbajul de cereri obiect O2SQL si o interfata de programare a aplicatiilor de nivel de baza O2APL:
Utilitare GUI: un generator a interfetei O2LOOK si un dispozitiv de manipulare de grafice O2Graph ;
Utilitare de mediu: un mediu de programare grafica O2Tools si un ansamblu de componenti O2Kit.
O2Engine completeaza toate functiunile unui motor de baze de date: raspunde cerintelor de lucru intr-un sistem distribuit, arhitectura sa raspunde cerintelor unui model client-server, distinge gestiunea logica si gestiunea fizica a datelor, furnizand mecanismele de acces concurent si de reprize, de indexare, de optimizare a cerintelor, de plasament si de regrupare a datelor. De asemenea, ofera metode de stocare, de manipulare, de executie si prelucrare a datelor.
In esenta, O2Engine este compus si privit la trei niveluri:
Managerul schemei (schema Manager) este nivelul superior al schemei. El este responsabil cu cererea, cercetarea, modificarea si suprimarea claselor de obiecte, metodelor si supervizare la nivel global al schemei bazei de date. In aceeasi masura el este responsabil de respectarea constrangerilor de mostenire si verificarea coerentei schemei;
Managerul obiectelor (Object Manager) este situat la nivel intermediar. El raspunde de asigurarea identitatii obiectelor si de transmiterea mesajelor lor. El asigura modelul de persistenta prin atasarea si implementarea strategiilor de indexare si de regrupare, bazate pe obiectele complexe si mostenire;
Managerul hardisc (Disk Manager), componenta O2Store genereaza fisiere secventiale de inregistrari structurale, de fisiere de index de tip Arbore B. Toate aceste structuri sunt pliate in pagini, unitatea persistenta de baza.
O2Store asigura controlul localizarii fizice a paginilor pe disc. Totodata, O2 asigura incapsularea la trei niveluri: clase, scheme si baze de date.
Object Store este conceput la Burlington, Massachusetts, fiind orientat pe limbajul de programare a bazelor de date C++. Este primul sistem de gestiune a bazelor de date orientate obiect ce ruleaza mai degraba in mediul MS Windows decat in mediul UNIX.
Object Store se bazeaza pe o arhitectura multi-client/multi server pentru a suporta sistemul de lucru distribuit. Bibliotecile de clase sunt prevazute sa suporte versiunile de clase de obiecte, managementul configurarii si structurile compuse. Totodata, bibliotecile de clase suporta indexarea, clusterizarea, cererile asociative managementul relatiilor si iterarea peste seturi.
In activitatea de programare, pentru adresare se utilizeaza unele tehnici de pointeri swizzling. Conform unei astfel de tehnici, referintele de obiecte globale sunt convertite in adrese de memorie locala in momentul in care s-a incarcat un obiect in memoria principala si invers. [white 1994; Cattell; Thomas Conndy]. O astfel de tehnica ofera reducerea timpului de regasire a datelor solicitate de aplicatii.
Objectivity (Objectivity Data System Overview; Objectivity, Inc., Menlo Park, California, 1990) utilizeaza un limbaj de programare de baze de date orientate obiect bazat pe C++. Este analog cu Object Store, ONTOS si cu VERSANT. Arhitectura sa este de tip client/server distribuita cu un server central, toate operatiile efectuandu-se de o maniera transparenta asambland baze de date, scheme, utilizatori si calculatoare intr-un mediu material de sisteme de exploatare si retele heterogene. Limbajul de interfata cuprinde o biblioteca de clase in C++, o biblioteca de functii C si SQL++, suportand SQL ANSI complet si numeroase extensii obiect ale lui SQL3.
Un limbaj de nivel inalt, Object Definition Language (ODL), permite declararea conceptelor de modelare precum si a asocierilor bidirectionale (relatii bazate pe atribute inverse). Trateaza comportamentul asocierilor intre obiecte atunci cand avem de a face cu mai multe sesiuni si programarea metodelor de traversare a asocierilor. Toate acestea au ca rezultat generarea automata de metode si de declaratii C++ si C.
Punctul forte a lui Objectivity/DB este arhitectura sa client/Server distribuita, care ofera o imagine logica unicat pe multiple baze de date instalate pe masini heterogene. Utilizatorul va avea o imagine logica a obiectelor conectate si el nu va fi preocupat de faptul ca un obiect este intr-o baza de date pe o statie de lucru SUN sau ca un altul se gaseste intr-o baza de date sub Windows sau VMS. Toate operatiile se desfasoara la modul transparent in acest mediu, unde tranzactiile atomice implica si validarea in doua faze a metodelor de propagare si versionare a starii sistemului. In acest mod se accepta sub control deplasarea obiectelor dintr-o baza in alta si de pe o platforma pe alta fara afectarea aplicatiilor in curs de desfasurare si nici nu reclama modificarea lor. Schemele multiple sunt create fara afectarea altor utilizatori sau baze de date si sunt utilizabile simultan cu schemele partajate, permitand grupurilor locale sa-si defineasca propriile lor modele.
Bazele de date sunt detasabile de acest mediu partajat (baze de date federale) pentru a fi utilizate pe periferice portabile, reconectari sau deplasate catre un mediu (compatibil) diferit sau inca distribuite ca parti separate sau biblioteci de imagini.
Objectivity/DB este comercializat de Digital Corporation sub numele de DEC Object/DB si este suportat de platformele SUN, DEC, HP/900, IBM, RS/6000, NCR 3300, SGI, Windows 3.1., Windows 95, Windows NT etc.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1555
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved