Content deleted Content added
mNo edit summary |
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
||
(13 intermediate revisions by 12 users not shown) | |||
Line 1:
{{Short description|
[[File:Object-Oriented Model.svg|thumb|320px|Example of an object-oriented model<ref name="USDT01">[http://knowledge.fhwa.dot.gov/tam/aashto.nsf/All+Documents/4825476B2B5C687285256B1F00544258/$FILE/DIGloss.pdf Data Integration Glossary] {{webarchive |url=https://web.archive.org/web/20090320001015/http://knowledge.fhwa.dot.gov/tam/aashto.nsf/All+Documents/4825476B2B5C687285256B1F00544258/$FILE/DIGloss.pdf |date=March 20, 2009 }}, U.S. Department of Transportation, August 2001.</ref>]]
An '''object database''' or '''object-oriented database''' is a [[database management system]] in which information is represented in the form of [[Object (computer science)|objects]] as used in [[object-oriented programming]]. Object databases are different from [[relational database]]s which are table-oriented. A third type, [[object–relational database]]s, is a hybrid of both approaches.
Object databases have been considered since the early 1980s.<ref>[http://odbms.org/Introduction/history.aspx ODBMS.ORG :: Object Database (ODBMS) | Object-Oriented Database (OODBMS) | Free Resource Portal]. ODBMS (2013-08-31). Retrieved on 2013-09-18. {{webarchive |url=https://web.archive.org/web/20140306143204/http://odbms.org/Introduction/history.aspx |date=March 6, 2014 }}</ref>
Line 15 ⟶ 14:
==History==
Object database management systems grew out of research during the early to mid-1970s into having intrinsic database management support for graph-structured objects. The term "object-oriented database system" first appeared around 1985.<ref>Three example references from 1985 that use the term: T. Atwood, "An Object-Oriented DBMS for Design Support Applications
Early commercial products included [[GemStone Systems|Gemstone]] (Servio Logic, name changed to GemStone Systems), Gbase (Graphael), and Vbase (Ontologic). Additional commercial products entered the market in the late 1980s through the mid 1990s. These included ITASCA (Itasca Systems), Jasmine (Fujitsu, marketed by Computer Associates), Matisse (Matisse Software), [[Objectivity/DB]] (Objectivity, Inc.), [[ObjectStore]] ([[Progress Software]], acquired from eXcelon which was originally [[Object Design, Incorporated]]), ONTOS (Ontos, Inc., name changed from Ontologic), O<sub>2</sub><ref>Bancilhon, Francois; Delobel, Claude; and Kanellakis, Paris. ''Building an Object-Oriented Database System: The Story of O<sub>2</sub>.'' Morgan Kaufmann Publishers, 1992. {{ISBN|1-55860-169-4}}.</ref> (O<sub>2</sub> Technology, merged with several companies, acquired by [[Informix]], which was in turn acquired by [[IBM]]), POET (now [http://www.versant.com/developer FastObjects] from Versant which acquired Poet Software), Versant Object Database ([http://www.versant.com Versant] Corporation), VOSS (Logic Arts) and [[JADE (programming language)|JADE]] (Jade Software Corporation). Some of these products remain on the market and have been joined by new open source and commercial products such as [[InterSystems Caché]].
Object database management systems added the concept of [[persistence (computer science)|persistence]] to object programming languages. The early commercial products were integrated with various languages: GemStone ([[Smalltalk]]), Gbase ([[LISP programming language|LISP]]), Vbase ([[C Object Processor|COP]]) and VOSS (Virtual Object Storage System for [[Smalltalk]]). For much of the 1990s, [[C++]] dominated the commercial object database management market. Vendors added [[Java programming language|Java]] in the late 1990s and more recently, [[C Sharp (programming language)|C#]].
Starting in 2004, object databases have seen a second growth period when [[Open-source software|open source]] object databases emerged that were widely affordable and easy to use, because they are entirely written in [[Object-oriented programming|OOP]] languages like Smalltalk, Java, or C#, such as Versant's [[db4o]] (db4objects), DTS/S1 from Obsidian Dynamics and [[Perst]] (McObject), available under dual [[Open-source license|open source]] and commercial licensing.
==Timeline==
Line 64 ⟶ 63:
* 2010 [[VMware]] acquires GemStone<ref>{{Cite web|url=http://www.vmware.com/company/news/releases/spring-gemstone.html|title=SpringSource to Acquire Gemstone Systems Data Management Technology|date=May 6, 2010|access-date=August 5, 2014|publisher=WMware|url-status=dead|archive-url=https://web.archive.org/web/20140808042307/http://www.vmware.com/company/news/releases/spring-gemstone.html|archive-date=August 8, 2014}}</ref>
* 2011 db4o's development stopped.
* 2012
* 2012 [[Actian]] acquires Versant Corporation
* 2013 GemTalk Systems acquires [[Gemstone (database)|Gemstone]] products from VMware<ref name=gemtalk1>{{Cite web|url=http://www.prweb.com/releases/gemtalksystems/acquires-gemstone-s/prweb10652596.htm|author=GemTalk Systems|publisher=PRWeb|date=May 2, 2013|title=GemTalk Systems Acquires GemStone/S Products from VMware|access-date=August 5, 2014|url-status=
* 2014 db4o's commercial offering is officially discontinued by Actian (which had acquired Versant)<ref>{{cite web|url=http://supportservices-old.actian.com/versant/default.html|title=restructuring our Versant Community Website}}</ref>
* 2014 [[Realm (database)|Realm]]<ref>{{cite web|url=https://www.infoq.com/news/2016/11/Realm-database-nodejs|title=Realm Releases Object Database for Node.js|website=InfoQ|url-status=live|archive-url=https://web.archive.org/web/20170202043544/https://www.infoq.com/news/2016/11/Realm-database-nodejs|archive-date=2017-02-02}}</ref>
*2017 ObjectBox<ref>{{Cite web|last=DB-Engines|title=Object Database Ranking on DB-Engines|url=https://db-engines.com/en/ranking/object+oriented+dbms
==Adoption of object databases==
Line 100:
In January 2007 the [[World Wide Web Consortium]] gave final recommendation status to the [[XQuery]] language. XQuery uses [[XML]] as its data model. Some of the ideas developed originally for object databases found their way into XQuery, but XQuery is not intrinsically object-oriented. Because of the popularity of XML, XQuery engines compete with object databases as a vehicle for storage of data that is too complex or variable to hold conveniently in a relational database. XQuery also allows modules to be written to provide encapsulation features that have been provided by Object-Oriented systems.
[[XQuery|XQuery v1]] and [[XPath 2.0|XPath v2]] and later are powerful and are available in both open source and libre (FOSS) software,<ref>{{cite web|url=https://basex.org/basex/xquery/|title=BaseX XQuery Processor|website=basex.org|url-status=live|archive-url=https://web.archive.org/web/20231216035330/https://basex.org/basex/xquery/|archive-date=2023-12-16}}</ref><ref>{{cite web|url=https://exist-db.org/exist/apps/doc/xquery|title=XQuery in eXist-db|website=exist-db.org|url-status=live|archive-url=https://web.archive.org/web/20231202052435/https://exist-db.org/exist/apps/doc/xquery|archive-date=2023-12-02}}</ref><ref>{{cite web|url=https://www.saxonica.com/html/documentation/using-xquery/index.html|title=Saxon - Using XQuery|website=www.saxonica.com|url-status=live|archive-url=https://web.archive.org/web/20200923004515/https://www.saxonica.com/html/documentation/using-xquery/index.html|archive-date=2020-09-23}}</ref> as well as in commercial systems. They are easy to learn and use, and very powerful and fast. They are not relational and XQuery is not based on SQL (although one of the people who designed XQuery also co-invented SQL). But they are also not object-oriented, in the programming sense: XQuery does not use encapsulation with hiding, implicit dispatch, and classes and methods. XQuery databases generally use XML and JSON as an interchange format, although other formats are used.
[[XQuery|XQuery v1]] and [[XPath 2.0|XPath v2]] are extremely complex (no [[Free and open-source software|FOSS software]] is implementing these standards more than 10 years after their publication) when compared to [[XPath#Syntax and semantics (XPath 1.0)|XPath v1]] and [[XSLT|XSLT v1]], and [[XML]] did not fit all community demands as an [[Open standard|open format]]. Since the early 2000s [[JSON]] has gained community adoption and popularity in applications, surpassing XML in the 2010s. [[JSONiq]], a query-analog of XQuery for JSON (sharing XQuery's core expressions and operations), demonstrated the functional equivalence of the JSON and XML formats. In this context, the main strategy of OODBMS maintainers was to retrofit JSON to their databases (by using it as the internal data type).▼
▲
In January 2016, with the [[PostgreSQL|PostgreSQL 9.5 release]]<ref>{{cite web|url=https://www.postgresql.org/docs/current/static/functions-json.html|title=PostgreSQL: Documentation: 10: 9.15. JSON Functions and Operators|website=www.postgresql.org|url-status=live|archive-url=https://web.archive.org/web/20160518071030/http://www.postgresql.org/docs/current/static/functions-json.html|archive-date=2016-05-18}}</ref> was the first FOSS OODBMS to offer an efficient JSON internal datatype (JSONB) with a complete set of functions and operations, for all basic relational and non-relational manipulations.
Line 124 ⟶ 126:
==External links==
* [http://www.odbms.org/ Object DBMS resource portal]
* [http://db-engines.com/en/ranking/object+oriented+dbms Ranking of Object Oriented DBMS] {{Webarchive|url=https://web.archive.org/web/20241201172721/https://db-engines.com/en/ranking/object%2Boriented%2Bdbms |date=2024-12-01 }} - by popularity, updated monthly from [[DB-Engines ranking|DB-Engines]]
{{Database models}}
|