Baza de date obiect - Object database
O bază de date de obiecte este un sistem de gestionare a bazelor de date în care informațiile sunt reprezentate sub formă de obiecte așa cum sunt utilizate în programarea orientată pe obiecte . Bazele de date de obiecte sunt diferite de bazele de date relaționale orientate spre tabel. Bazele de date relaționale obiect sunt un hibrid al ambelor abordări.
Bazele de date de obiecte au fost luate în considerare încă de la începutul anilor 1980.
Prezentare generală
Sistemele de gestionare a bazelor de date orientate pe obiecte (OODBMS) denumite și ODBMS (Object Database Management System) combină capacitățile bazei de date cu capacitățile de limbaj de programare orientate pe obiecte . OODBMS permite programatorilor orientați obiect să dezvolte produsul, să le stocheze ca obiecte și să reproducă sau să modifice obiecte existente pentru a crea obiecte noi în cadrul OODBMS. Deoarece baza de date este integrată cu limbajul de programare, programatorul poate menține coerența într-un mediu, prin aceea că atât OODBMS, cât și limbajul de programare vor folosi același model de reprezentare. Prin contrast, proiectele DBMS relaționale mențin o diviziune mai clară între modelul bazei de date și aplicație.
Pe măsură ce utilizarea tehnologiei bazate pe web crește odată cu implementarea de Intranet și extranet, companiile au un interes personal în OODBMS pentru a afișa datele lor complexe. Utilizarea unui SGBD care a fost conceput special pentru a stoca date ca obiecte oferă un avantaj acelor companii care sunt orientate spre prezentări multimedia sau organizații care utilizează proiectarea asistată de computer (CAD).
Unele baze de date orientate obiect sunt proiectate să funcționeze bine cu limbaje de programare orientate obiect, cum ar fi Delphi , Ruby , Python , JavaScript , Perl , Java , C # , Visual Basic .NET , C ++ , Objective-C și Smalltalk ; altele precum JADE au propriile limbaje de programare. OODBMS utilizează exact același model ca și limbajele de programare orientate pe obiecte.
Istorie
Sistemele de gestionare a bazelor de date de obiecte au ieșit din cercetare la începutul până la jumătatea anilor 1970, pentru a avea suport intrinsec de gestionare a bazelor de date pentru obiecte structurate în grafice. Termenul „sistem de baze de date orientat pe obiecte” a apărut pentru prima dată în jurul anului 1985. Proiecte de cercetare notabile includ Encore-Ob / Server ( Brown University ), EXODUS ( Universitatea din Wisconsin – Madison ), IRIS (Hewlett-Packard), ODE ( Bell Labs ), ORION ( Microelectronics and Computer Technology Corporation sau MCC), Vodak (GMD-IPSI) și Zeitgeist (Texas Instruments). Proiectul ORION a avut mai multe lucrări publicate decât oricare dintre celelalte eforturi. Won Kim de la MCC a compilat cele mai bune lucrări într-o carte publicată de The MIT Press.
Produsele comerciale timpurii au inclus Gemstone (Servio Logic, denumirea schimbată în GemStone Systems), Gbase (Graphael) și Vbase (Ontologic). Produse comerciale suplimentare au intrat pe piață la sfârșitul anilor '80 până la mijlocul anilor '90. Acestea includ ITASCA (Itasca Systems), Jasmine (Fujitsu, comercializat de Computer Associates), Matisse (Matisse Software), Objectivity / DB (Objectivity, Inc.), ObjectStore ( Progress Software , achiziționat de la eXcelon care a fost inițial Object Design, Incorporated ) , ONTOS (Ontos, Inc., numele a fost schimbat din Ontologic), O 2 (O 2 Technology, fuzionată cu mai multe companii, achiziționate de Informix , care a fost la rândul său achiziționată de IBM ), POET (acum FastObjects de la Versant care a achiziționat Poet Software) , Versant Object Database ( Versant Corporation), VOSS (Logic Arts) și JADE (Jade Software Corporation). Unele dintre aceste produse rămân pe piață și li s-au alăturat noi produse open source și comerciale, cum ar fi InterSystems Caché .
Sistemele de gestionare a bazelor de date de obiecte au adăugat conceptul de persistență la limbajele de programare a obiectelor. Primele produse comerciale au fost integrate cu diferite limbi: GemStone ( Smalltalk ), Gbase ( LISP ), Vbase ( COP ) și VOSS (Virtual Object Storage System for Smalltalk ). În cea mai mare parte a anilor 1990, C ++ a dominat piața de gestionare a bazelor de date cu obiecte comerciale. Furnizorii au adăugat Java la sfârșitul anilor 1990 și mai recent, C # .
Începând din 2004, bazele de date de obiecte au cunoscut o a doua perioadă de creștere, când au apărut baze de date de obiecte open source care erau pe scară largă accesibile și ușor de utilizat, deoarece sunt scrise în întregime în limbaje OOP precum Smalltalk, Java sau C #, cum ar fi Versant's db4o (db4objects) , DTS / S1 de la Obsidian Dynamics și Prest (McObject), disponibil sub licență dual open source și comercială.
Cronologie
- 1966
- 1979
- 1980
- TORNADO - o bază de date de obiecte pentru CAD / CAM
- 1982
- Gemstone a început (ca Servio Logic) să construiască o mașină de bază de date pentru modelul teoretic.
- 1985 - Baza de date Term Object introdusă pentru prima dată
- 1986
- Servio Logic (sisteme de piatră prețioasă) expediază piatră prețioasă 1.0
- 1988
- Obiectiv de proiectare, Incorporated fondat, dezvoltarea ObjectStore a început
- Versant Corporation a început (ca Object Sciences Corp)
- Înființată Objectivity, Inc.
- La începutul anilor 1990
- La mijlocul anilor 1990
- InterSystems Caché
- Baza de date Versant Object
- ODABA
- ZODB
- Poet
- JAD
- Matisse
- Illustra Informix
- Anii 2000
- lambda-DB: Un SGBD orientat pe obiecte bazat pe ODMG de Leonidas Fegaras, Chandrasekhar Srinivasan, Arvind Rajendran, David Maier
- Proiectul db4o demarat de Carl Rosenberger
- ObjectDB
- 2001 IBM achiziționează Informix
- Comunicat public odbpp 2003
- Lansarea comercială 2004 a db4o ca db4objects, Inc.
- 2008 db4o achiziționat de Versant Corporation
- 2010 VMware achiziționează GemStone
- Dezvoltarea db4o din 2011 s-a oprit.
- 2012 Wakanda prime versiuni de producție cu licențe open source și comerciale
- 2013 GemTalk Systems achiziționează produse Gemstone de la VMware
- Oferta comercială db4o din 2014 este întreruptă oficial de Actian (care achiziționase Versant)
- 2014 Tărâm
- 2017 ObjectBox
Adoptarea bazelor de date obiect
Bazele de date de obiecte bazate pe programarea persistentă au dobândit o nișă în domeniile de aplicare, cum ar fi ingineria și bazele de date spațiale , telecomunicațiile și domeniile științifice, cum ar fi fizica energiei înalte și biologia moleculară .
Un alt grup de baze de date de obiecte se concentrează pe utilizarea încorporată în dispozitive, software pachet și sisteme în timp real .
Caracteristici tehnice
Majoritatea bazelor de date de obiecte oferă, de asemenea, un fel de limbaj de interogare , permițând găsirea obiectelor folosind o abordare de programare declarativă . În zona limbajelor de interogare a obiectelor și a integrării interfețelor de interogare și de navigație se găsesc cele mai mari diferențe între produse. O încercare de standardizare a fost făcută de ODMG cu Object Query Language , OQL.
Accesul la date poate fi mai rapid, deoarece un obiect poate fi recuperat direct fără o căutare, urmând indicatorii .
O altă zonă de variație între produse este în modul în care schema unei baze de date este definită. O caracteristică generală este, totuși, că limbajul de programare și schema bazei de date utilizează definiții de același tip.
Aplicațiile multimedia sunt facilitate deoarece metodele de clasă asociate cu datele sunt responsabile pentru interpretarea corectă a acestora.
Multe baze de date de obiecte, de exemplu Gemstone sau VOSS, oferă suport pentru versiuni . Un obiect poate fi vizualizat ca setul tuturor versiunilor sale. De asemenea, versiunile de obiecte pot fi tratate ca obiecte în sine. Unele baze de date obiect oferă, de asemenea, suport sistematic pentru declanșatoare și constrângeri care stau la baza bazelor de date active .
Eficiența unei astfel de baze de date este, de asemenea, mult îmbunătățită în domeniile care necesită cantități masive de date despre un articol. De exemplu, o instituție bancară ar putea obține informațiile contului utilizatorului și le poate furniza în mod eficient informații extinse, cum ar fi tranzacții, înregistrări de informații de cont etc.
Standarde
Grupul de gestionare a datelor obiectelor a fost un consorțiu de baze de date de obiecte și furnizori de cartografiere relațională obiect-obiect, membri ai comunității academice și părți interesate. Scopul său era să creeze un set de specificații care să permită aplicații portabile care stochează obiecte în sistemele de gestionare a bazelor de date. A publicat mai multe versiuni ale specificațiilor sale. Ultima versiune a fost ODMG 3.0. Până în 2001, majoritatea furnizorilor principali de baze de date de obiecte și cartografiere obiect-relațională au afirmat că sunt conforme cu ODMG Java Language Binding. Conformitatea cu celelalte componente ale caietului de sarcini a fost mixtă. În 2001, legarea limbajului Java ODMG a fost prezentată procesului comunitar Java ca bază pentru specificația obiectelor de date Java . Companiile membre ODMG au decis atunci să își concentreze eforturile asupra specificației Java Data Objects. Ca urmare, ODMG s-a desființat în 2001.
Multe idei de baze de date de obiecte au fost, de asemenea, absorbite în SQL: 1999 și au fost implementate în diferite grade în produsele de bază de date obiect-relaționale .
În 2005, Cook, Rai și Rosenberger au propus să renunțe la toate eforturile de standardizare pentru a introduce API-uri suplimentare de interogare orientate obiect, ci mai degrabă să utilizeze limbajul de programare OO în sine, adică Java și .NET, pentru a exprima interogări. Ca urmare, au apărut interogări native . În mod similar, Microsoft a anunțat Language Integrated Query (LINQ) și DLINQ, o implementare a LINQ, în septembrie 2005, pentru a oferi capabilități de interogare de baze de date apropiate, integrate în limbaj, cu limbajele de programare C # și VB.NET 9.
În februarie 2006, Grupul de Management al Obiectelor (OMG) a anunțat că li s-a acordat dreptul de a dezvolta noi specificații bazate pe specificațiile ODMG 3.0 și formarea Grupului de lucru pentru tehnologia bazei de date a obiectelor (ODBT WG). ODBT WG a planificat să creeze un set de standarde care să încorporeze progrese în tehnologia bazei de date a obiectelor (de exemplu, replicare), gestionarea datelor (de exemplu, indexarea spațială) și formatele de date (de exemplu, XML) și să includă noi caracteristici în aceste standarde care sprijină domeniile în care se adoptă baze de date cu obiecte (de exemplu, sisteme în timp real). Activitatea Grupului de lucru ODBT a fost suspendată în martie 2009, când, ulterior turbulențelor economice de la sfârșitul anului 2008, furnizorii ODB implicați în acest efort au decis să își concentreze resursele în altă parte.
În ianuarie 2007, World Wide Web Consortium a dat recomandarea finală limbii XQuery . XQuery folosește XML ca model de date. Unele dintre ideile dezvoltate inițial pentru baze de date de obiecte și-au găsit drumul în XQuery, dar XQuery nu este orientat în mod intrinsec obiect. Datorită popularității XML, motoarele XQuery concurează cu bazele de date obiect ca vehicul pentru stocarea datelor care sunt prea complexe sau variabile pentru a fi păstrate convenabil într-o bază de date relațională. XQuery permite, de asemenea, să fie scrise module pentru a furniza caracteristici de încapsulare furnizate de sistemele orientate pe obiecte.
XQuery v1 și XPath v2 sunt extrem de complexe (niciun software FOSS nu implementează aceste standarde la mai mult de 10 ani de la publicare) în comparație cu XPath v1 și XSLT v1 , iar XML nu se potrivea tuturor cerințelor comunității ca format deschis . De la începutul anilor 2000, JSON a câștigat adoptarea și popularitatea comunității în aplicații, depășind XML în anii 2010. JSONiq , o interogare-analogică a XQuery pentru JSON (partajarea expresiilor și operațiilor de bază ale XQuery), a demonstrat echivalența funcțională a formatelor JSON și XML. În acest context, strategia principală a întreținătorilor OODBMS a fost de a reconfigura JSON în bazele lor de date (folosindu-l ca tip de date intern).
În ianuarie 2016, odată cu lansarea PostgreSQL 9.5 a fost primul FOSS OODBMS care a oferit un tip de date interne JSON (JSONB) eficient, cu un set complet de funcții și operații, pentru toate manipulările de bază relaționale și non-relaționale.
Comparație cu RDBMS
O bază de date obiect stochează date complexe și relații între date direct, fără maparea la rânduri și coloane relaționale, ceea ce le face potrivite pentru aplicații care se ocupă de date foarte complexe. Obiectele au o relație de la mulți la mulți și sunt accesate prin utilizarea de indicatori. Indicatorii sunt legați de obiecte pentru a stabili relații. Un alt avantaj al unui OODBMS este că poate fi programat cu mici diferențe procedurale fără a afecta întregul sistem.
Vezi si
- Compararea sistemelor de gestionare a bazelor de date de obiecte
- Baza de date orientată spre componente
- Baza de date EDA
- Enterprise Objects Framework
- NoSQL
- Grupul de gestionare a datelor obiectelor
- Baza de date relațională obiect
- Persistență (informatică)
- Modelul relațional
- Sistem de gestionare a bazelor de date relaționale (RDbMS)
Referințe
linkuri externe
- Portal de resurse SGBD obiecte
- Clasarea SGBD orientate pe obiecte - după popularitate, actualizată lunar de la DB-Engines