Baza e të dhënave e bazuar në objeke

parapamje|320x320px| Shembull i një modeli të orientuar ne objekte
Një **bazë e të dhënave me objekte** ose **një bazë e të dhënave e orientuar në objekte** është një sistem i menaxhimit të bazës së të dhënave në të cilin informacioni përfaqësohet në formën e objekteve siç përdoren në programimin e orientuar në objekte. Bazat e të dhënave të bazuara në objekte janë të ndryshme nga bazat e të dhënave relative të cilat janë të orientuara nga tabelat. Një lloj i tretë, bazat e të dhënave objekt-relative, është një hibrid i të dyja qasjeve. Bazat e të dhënave të objekteve janë konsideruar që nga fillimi i viteve 1980.

## Vështrim i përgjithshëm 
Sistemet e menaxhimit të bazës së të dhënave të orientuara në objekte (OODBMS) të quajtura gjithashtu ODBMS (Sistemi i Menaxhimit të Bazave të të Dhënave të Objekteve) kombinojnë aftësitë e bazës së të dhënave me aftësitë e gjuhës programuese të orientuara në objekte. OODBMS-të i lejojnë programuesit e orientuar në objekte të zhvillojnë produktin, t'i ruajnë ato si objekte dhe të përsërisin ose modifikojnë objektet ekzistuese për të krijuar objekte të reja brenda OODBMS. Për shkak se baza e të dhënave është e integruar me gjuhën e programimit, programuesi mund të ruajë qëndrueshmërinë brenda një mjedisi, në atë që si OODBMS ashtu edhe gjuha e programimit do të përdorin të njëjtin model përfaqësimi. Projektet relative DBMS, për dallim, mbajnë një ndarje më të qartë midis modelit të bazës së të dhënave dhe aplikacionit.

Teksa përdorimi i teknologjisë së bazuar në web rritet me zbatimin e Intraneteve dhe ekstraneteve, kompanitë kanë një interes të veçantë në OODBMS për të shfaqur të dhënat e tyre komplekse. Përdorimi i një DBMS që është krijuar veçanërisht për të ruajtur të dhënat si objekte u jep një përparësi atyre kompanive që janë të orientuara drejt prezantimit multimedial ose organizatave që përdorin dizajnin me ndihmën e kompjuterit (CAD).

Disa baza të dhënash të orientuara në objekte janë krijuar për të punuar mirë me gjuhë programimi të orientuara ne objekte si Delphi, Ruby, Python, JavaScript, Perl, Java, C#, Visual Basic. NET, C++, Objective-C dhe Smalltalk; të tjerët si JADE kanë gjuhët e tyre të programimit. OODBMS përdorin saktësisht të njëjtin model si gjuhët e programimit të orientuara ne objekte.

## Historia 
Sistemet e menaxhimit të bazës së të dhënave të objekteve u zhvilluan nga hulumtimi gjatë fillimit e deri në mes të viteve 1970, duke pasur një mbështetje të brendshme të menaxhimit të bazës së të dhënave për objektet e strukturuara në grafe. Termi "sistem i bazës së të dhënave të orientuar në objekte" u shfaq për herë të parë rreth vitit 1985. Projekte të shquara kërkimore përfshinin Encore-Ob/Server (Universiteti Brown), EXODUS (Universiteti i Wisconsin-Madison), IRIS (Hewlett-Packard), ODE (Bell Labs), ORION (Mikroelektronikë dhe Teknologji Kompjuterike Korporata ose MCC), Vodak (GMD-IPSI), dhe Zeitgeist (Texas Instruments). Projekti ORION kishte më shumë punime të botuara se çdo përpjekje tjetër. Won Kim i MCC-së përpiloi më të mirët nga këto punime në një libër të botuar nga The MIT Press. 

Produktet e hershme komerciale përfshinin Gemstone (Servio Logic, emri i ndryshuar në GemStone Systems), Gbase (Graphael) dhe Vbase (Ontologjik). Produkte komerciale shtesë hynë në treg në fund të viteve 1980 deri në mesin e viteve 1990. Këto përfshinin ITASCA (Itasca Systems), Jasmine (Fujitsu, i tregtuar nga Computer Associates), Matisse (Matisse Software), Objectivity/DB (Objectivity, Inc.), ObjectStore (Progress Software, i blerë nga eXcelon i cili fillimisht ishte Object Design, Incorporated), ONTOS (Ontos, Inc., emri u ndryshua nga Ontologic), O2 (O2 Technology, u shkri me disa kompani, të blera nga Informix, e cila nga ana tjetër u ble nga IBM), POET (tani FastObjects nga Versant që bleu Poet Software), Versant Object Database (Versant Corporation), VOSS (Logic Arts) dhe JADE (Jade Software Corporation). Disa nga këto produkte mbeten në treg dhe u janë bashkuar produkte të reja me kod të hapur dhe produkte komerciale si InterSystems Cache.

Sistemet e menaxhimit të bazës së të dhënave të objekteve shtuan konceptin e qëndrueshmërisë në gjuhët e programimit të objekteve. Produktet e hershme komerciale u përfshinë me gjuhë të ndryshme: GemStone (Smalltalk), Gbase (LISP), Vbase (COP) dhe VOSS (Sistemi i ruajtjes së objekteve virtuale për Smalltalk). Për pjesën më të madhe të viteve 1990, C++ dominoi tregun e menaxhimit të bazës së të dhënave të objekteve komerciale. Shitësit shtuan Java në fund të viteve 1990 dhe së fundmi, C#.

Duke filluar nga viti 2004, bazat e të dhënave të objekteve kanë pasur një periudhë të dytë të rritjes kur u shfaqën bazat e të dhënave të objekteve me burim të hapur që ishin gjerësisht të arsyeshme dhe të lehta për t'u përdorur, sepse ato janë shkruar tërësisht në gjuhët OOP si Smalltalk, Java ose C#, siç është db4o e Versant-it (db4objects), DTS/S1 nga Obsidian Dynamics dhe Perst (McObject), i disponueshëm me burim të dyfishtë të hapur dhe komercial licencimi.

## Afati kohor 
* 1966
** MUMPS
* 1979
** InterSystems M
* 1980
** TORNADO – an object database for CAD/CAM
* 1982
** Gemstone started (as Servio Logic) to build a set theoretic model data base machine.
* 1985 – Term Object Database first introduced
* 1986
** Servio Logic (Gemstone Systems) Ships Gemstone 1.0
* 1988
** Object Design, Incorporated founded, development of ObjectStore begun
** Versant Corporation started (as Object Sciences Corp)
** Objectivity, Inc. founded
* Early 1990s
** Servio Logic changes name to Gemstone Systems
** Gemstone (Smalltalk)-(C++)-(Java)
** GBase (LISP)
** VBase (O2- ONTOS – INFORMIX)
** Objectivity/DB
* Mid 1990s
** InterSystems Caché
** Versant Object Database
** ODABA
** ZODB
** Poet
** JADE
** Matisse
** Illustra Informix
* 2000s
** lambda-DB: An ODMG-Based Object-Oriented DBMS by Leonidas Fegaras, Chandrasekhar Srinivasan, Arvind Rajendran, David Maier
** db4o project started by Carl Rosenberger
** ObjectDB
* 2001 IBM acquires Informix
* 2003 odbpp public release
* 2004 db4o's commercial launch as db4objects, Inc.
* 2008 db4o acquired by Versant Corporation
* 2010 VMware acquires GemStone
* 2011 db4o's development stopped.
* 2012 Wakanda first production versions with open source and commercial licenses
* 2012 Actian acquires Versant Corporation
* 2013 GemTalk Systems acquires Gemstone products from VMware
* 2014 db4o's commercial offering is officially discontinued by Actian (which had acquired Versant)
* 2014 Realm
* 2017 ObjectBox

## Adaptimi i bazave të të dhënave të objekteve 
Bazat e të dhënave në objekte, të bazuara në programimin e qëndrueshëm, kanë fituar një vend të veçantë në fusha aplikimi të tilla si inxhinieri dhe bazat e të dhënave hapësinore,, telekomunikacioni dhe fusha shkencore si fizika e energjisë së lartë dhe biologjia molekulare.

Një grup tjetër i bazave të të dhënave të objekteve fokusohet në përdorimin e integruar në pajisje, softuer të paketuar dhe sisteme në kohë reale.

## Karakteristikat teknike 
Shumica e bazave të të dhënave të objekteve ofrojnë gjithashtu një lloj gjuhe të pyetjeve, duke lejuar që objektet të gjenden duke përdorur një qasje programimi deklarative. Është në fushën e gjuhëve të pyetjeve të objekteve, dhe integrimit të pyetjeve dhe ndërfaqeve të orientimit, që gjenden dallimet më të mëdha midis produkteve. Një përpjekje për standardizim u bë nga ODMG me gjuhën e pyetjes së objektit, OQL.

Qasja në të dhëna mund të jetë më e shpejtë sepse një objekt mund të merret direkt pa kërkim, duke i ndjekur treguesit.

Një fushë tjetër e dallimit midis produkteve është në mënyrën se si skema e një baze të të dhënave përcaktohet. Megjithatë, një karakteristikë e përgjithshme është se gjuha e programimit dhe skema e bazës të të dhënave përdorin përkufizime të të njëjtit lloj.

Aplikimet multimediale lehtësohen sepse metodat e klasës të lidhura   me të dhënat janë përgjegjëse për interpretimin e saktë të tyre.

Shumë baza të të dhënave të objekteve, për shembull Gemstone ose VOSS, ofrojnë mbështetje për versionimin. Një objekt mund të shihet si grup i të gjitha versioneve të tij. Gjithashtu, versionet e objekteve mund të trajtohen si objekte më vete. Disa baza të të dhënave të objekteve ofrojnë gjithashtu mbështetje sistematike për shkaktarët dhe kufizimet të cilat janë baza e bazave të të dhënave aktive.

Efikasiteti i një baze të të dhënave të tillë është përmirësuar gjithashtu shumë në fushat që kërkojnë sasi masive të dhënash për një artikull. Për shembull, një institucion bankar mund të marrë informacionin e llogarisë së përdoruesit dhe t'i sigurojë atyre në mënyrë efikase informacione të gjera si transaksionet, hyrjet e informacionit të llogarisë e të tjera.

## Standardet 
Grupi i Menaxhimit të të Dhënave të Objekteve ishte një konsorcium i shitësve të bazës së të dhënave të objekteve dhe hartës relative-objekt, anëtarë të komunitetit akademik dhe palëve të interesuara. Qëllimi i tij ishte të krijonte një sërë specifikimesh që do të lejonin aplikacione portative që ruajnë objektet në sistemet e menaxhimit të bazës së të dhënave. Ai publikoi disa versione të specifikimeve të tij. Lëshimi i fundit ishte ODMG 3.0. Deri në vitin 2001, shumica e bazës së të dhënave kryesore të objekteve dhe shitësve të hartës relative objekt pretenduan përputhshmëri me ODMG Java Language Binding. Pajtueshmëria me komponentët e tjerë të specifikimit ishte e përzier. Në vitin 2001, ODMG Java Language Binding iu dorëzua Procesit të Komunitetit Java si bazë për specifikimin e Objekteve të të Dhënave Java. Më pas, kompanitë anëtare të ODMG vendosën të përqendrojnë përpjekjet e tyre në specifikimin e Objekteve të të Dhënave Java. Si rezultat, ODMG u shpërbë në 2001.

Shumë ide të bazës së të dhënave të objekteve u absorbuan gjithashtu në SQL:1999 dhe janë zbatuar në shkallë të ndryshme në produktet e bazës së të dhënave objekt-relacionale.

Në vitin 2005 Cook, Rai dhe Rosenberger propozuan të hiqnin dorë nga të gjitha përpjekjet e standardizimit për të futur API shtesë të pyetjeve të orientuara nga objekti, por më tepër të përdornin vetë gjuhën e programimit OO, p.sh. Java dhe .NET, për të shprehur pyetje. Si rezultat, u shfaqën pyetje vendase. Në mënyrë të ngjashme, Microsoft njoftoi Language Integrated Query (LINQ) dhe DLINQ, një zbatim i LINQ, në shtator 2005, për të ofruar aftësi të afërta, të integruara në bazën e të dhënave të gjuhës me gjuhët e tij të programimit C# dhe VB.NET 9.

Në shkurt 2006, Grupi i Menaxhimit të Objekteve (OMG) njoftoi se atyre iu dha e drejta për të zhvilluar specifikime të reja bazuar në specifikimet ODMG 3.0 dhe formimin e Grupit të Punës të Teknologjisë së Bazave të të Dhënave të Objekteve (ODBT WG). ODBT GP planifikoi të krijonte një sërë normash që do të përfshinin përparimet në teknologjinë e bazës së të dhënave të objekteve (p.sh. replikimin), menaxhimin e të dhënave (p.sh. indeksimin hapësinor) dhe formatet e të dhënave (p.sh., XML) dhe të përfshinte veçori të reja në këto norma domenet mbështetëse ku janë duke u adoptuar bazat e të dhënave të objekteve (p.sh. sistemet në kohë reale). Puna e GP ODBT u ndërpre në mars 2009, si pasojë e trazirave ekonomike në fund të 2008, shitësit e ODB-së të përfshirë në këtë përpjekje vendosën t'i përqëndrojnë burimet e tyre dikund tjetër.

Në janar 2007, World Wide Web Consortium i dha statusin e sugjerimit përfundimtar gjuhës XQuery. XQuery përdor XML si modelin e tij të të dhënave. Disa nga idetë e zhvilluara për bazat e të dhënave të objekteve gjetën rrugën e tyre në XQuery, por XQuery nuk është në thelb i orientuar drejt objektit. Për shkak të famës të XML, motorët XQuery garojnë me bazat e të dhënave të objekteve si një mjet për ruajtjen e të dhënave që janë shumë komplekse ose të ndryshueshme për t'u mbajtur në mënyrë të përshtatshme në një bazë të dhënash relative. XQuery gjithashtu lejon që modulet të shkruhen për të ofruar veçori të kapsulimit që janë ofruar nga sistemet e orientuara në objekte.

XQuery v1 dhe XPath v2 dhe më vonë janë të fuqishëm dhe janë të disponueshëm si në softuerin me kod të hapur ashtu edhe në libre (FOSS), si dhe në sistemet komerciale. Ato janë të lehta për t'u mësuar dhe përdorur, dhe shumë të fuqishme dhe të shpejta. Ato nuk janë relacionale dhe XQuery nuk bazohet në SQL (megjithëse një nga njerëzit që projektoi XQuery gjithashtu shpiku SQL). Por ato gjithashtu nuk janë të orientuara nga objekti, në kuptimin e programimit: XQuery nuk përdor kapsulimin me fshehje, dërgim të nënkuptuar dhe klasa dhe metoda. Bazat e të dhënave XQuery në përgjithësi përdorin XML dhe JSON si një format shkëmbimi, megjithëse përdoren formate të tjera.

Që nga fillimi i viteve 2000, JSON ka fituar miratimin dhe famën e komunitetit në aplikacionet ku zhvilluesit kontrollojnë formatin e të dhënave. JSONiq, një analog pyetësor i XQuery për JSON (duke ndarë shprehjet dhe operacionet thelbësore të XQuery), demonstroi ekuivalencën funksionale të formateve JSON dhe XML për informacionin e orientuar drejt të dhënave.

Në janar 2016, me publikimin e PostgreSQL 9.5 OODBMS FOSS ishte i pari që ofroi një tip të të dhënave të brendshme efikase JSON (JSONB) me një bashkësi të plotë funksionesh dhe operacionesh, për të gjitha manipulimet bazë relative dhe jo-relative.

## Krahasimi me RDBMS 
Një bazë e të dhënave e objekteve ruan të dhëna komplekse dhe marrëdhënie midis të dhënave drejtpërdrejt, pa hartuar në rreshta dhe kolona relative, dhe kjo i bën ato të përshtatshme për aplikacione që kanë të bëjnë me të dhëna shumë komplekse. Objektet kanë një marrëdhënie shumë-me-shumë dhe arrihen me anë të përdorimit të treguesve. Treguesit janë të lidhur me objekte për të vendosur marrëdhënie. Një përfitim tjetër i një OODBMS është se ai mund të programohet me dallime të vogla procedurale pa ndikuar në të gjithë sistemin.

## Shihni gjithashtu 
* Krahasimi i sistemeve të menaxhimit të bazës së të dhënave të objekteve
* Baza e të dhënave e orientuar nga komponentët
* Baza e të dhënave EDA
* Korniza e objekteve të ndërmarrjes
* NoSQL
* Grupi i menaxhimit të të dhënave të objekteve
* Baza e të dhënave objekt-relacionale
* Qëndrueshmëria (shkenca kompjuterike)
* Modeli relacional
* Sistemi i menaxhimit të bazës së të dhënave relacionale (RDbMS)

## Referime 
## Lidhje të jashtme 
* Portali i burimeve të objektit DBMS
* Renditja e DBMS-ve të orientuara nga objekti  - sipas popullaritetit, përditësuar çdo muaj nga DB-Engines