HOME

TheInfoList



OR:

An object database or object-oriented database is a database management system in which information is represented in the form of
objects Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ai ...
as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type,
object–relational database An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inherit ...
s, is a hybrid of both approaches. Object databases have been considered since the early 1980s.


Overview

Object-oriented database management systems (OODBMSs) also called ODBMS (Object Database Management System) combine database capabilities with object-oriented programming language capabilities. OODBMSs allow object-oriented programmers to develop the product, store them as objects, and replicate or modify existing objects to make new objects within the OODBMS. Because the database is integrated with the programming language, the programmer can maintain consistency within one environment, in that both the OODBMS and the programming language will use the same model of representation. Relational DBMS projects, by way of contrast, maintain a clearer division between the
database model A database model is a type of data model that determines the logical structure of a database. It fundamentally determines in which manner data can be stored, organized and manipulated. The most popular example of a database model is the relational ...
and the application. As the usage of web-based technology increases with the implementation of Intranets and extranets, companies have a vested interest in OODBMSs to display their complex data. Using a DBMS that has been specifically designed to store data as objects gives an advantage to those companies that are geared towards multimedia presentation or organizations that utilize
computer-aided design Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
(CAD). Some object-oriented databases are designed to work well with
object-oriented programming language Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
s such as Delphi, Ruby,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pr ...
, JavaScript, Perl, Java, C#, Visual Basic .NET,
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
,
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTS ...
and
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan K ...
; others such as JADE have their own programming languages. OODBMSs use exactly the same model as object-oriented programming languages.


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. Notable research projects included Encore-Ob/Server (
Brown University Brown University is a private research university in Providence, Rhode Island. Brown is the seventh-oldest institution of higher education in the United States, founded in 1764 as the College in the English Colony of Rhode Island and Provide ...
), EXODUS (
University of Wisconsin–Madison A university () is an institution of higher (or tertiary) education and research which awards academic degrees in several academic disciplines. Universities typically offer both undergraduate and postgraduate programs. In the United States, the ...
), IRIS (Hewlett-Packard), ODE (
Bell Labs Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007), is an American industrial research and scientific development company owned by mult ...
), ORION ( Microelectronics and Computer Technology Corporation or MCC), Vodak (GMD-IPSI), and Zeitgeist (Texas Instruments). The ORION project had more published papers than any of the other efforts. Won Kim of MCC compiled the best of those papers in a book published by The MIT Press. Early commercial products included 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), O2 (O2 Technology, merged with several companies, acquired by Informix, which was in turn acquired by IBM), POET (no
FastObjects
from Versant which acquired Poet Software), Versant Object Database
Versant
Corporation), VOSS (Logic Arts) and 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 to object programming languages. The early commercial products were integrated with various languages: GemStone (
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan K ...
), Gbase ( LISP), Vbase ( COP) and VOSS (Virtual Object Storage System for
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan K ...
). For much of the 1990s,
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
dominated the commercial object database management market. Vendors added Java in the late 1990s and more recently, C#. Starting in 2004, object databases have seen a second growth period when open source object databases emerged that were widely affordable and easy to use, because they are entirely written in
OOP OOP, Oop, or oop may refer to: Science and technology * Object-oriented positioning, another name for feature-oriented positioning in microscopy * Object-oriented programming, a computer programming paradigm * Order of operations, in mathemati ...
languages like Smalltalk, Java, or C#, such as Versant's
db4o db4o (database for objects) was an embeddable open-source object database for Java and .NET developers. It was developed, commercially licensed and supported by Actian. In October 2014, Actian declined to continue to actively pursue and promote ...
(db4objects), DTS/S1 from Obsidian Dynamics and Perst (McObject), available under dual open source and commercial licensing.


Timeline

* 1966 **
MUMPS MUMPS ("Massachusetts General Hospital Utility Multi-Programming System"), or M, is an imperative, high-level programming language with an integrated transaction processing key–value database. It was originally developed at Massachusetts Gener ...
* 1979 ** InterSystems M * 1980 ** TORNADO – an object database for
CAD/CAM CAD/CAM refers to the integration of Computer-aided design (CAD) and Computer-aided manufacturing (CAM). Both of these require powerful computers. ''CAD'' software helps designers and draftsmen; ''CAM'' "reduces manpower costs" in the manufacturi ...
* 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 Versant Object Database (VOD) is an object database software product developed by Versant Corporation. The Versant Object Database enables developers using object oriented languages to transactionally store their information by allowing the res ...
started (as Object Sciences Corp) ** Objectivity, Inc. founded * Early 1990s ** Servio Logic changes name to Gemstone Systems ** Gemstone (
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan K ...
)-(
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
)-( Java) ** GBase ( LISP) ** VBase (O2- ONTOS – INFORMIX) ** Objectivity/DB * Mid 1990s ** InterSystems Caché **
Versant Object Database Versant Object Database (VOD) is an object database software product developed by Versant Corporation. The Versant Object Database enables developers using object oriented languages to transactionally store their information by allowing the r ...
** 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 db4o (database for objects) was an embeddable open-source object database for Java and .NET developers. It was developed, commercially licensed and supported by Actian. In October 2014, Actian declined to continue to actively pursue and promote ...
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 Versant Object Database (VOD) is an object database software product developed by Versant Corporation. The Versant Object Database enables developers using object oriented languages to transactionally store their information by allowing the res ...
* 2010 VMware acquires GemStone * 2011 db4o's development stopped. * 2012
Wakanda Wakanda () is a fictional country appearing in American comic books published by Marvel Comics. Wakanda has been depicted as being in East Africa. It is located in sub-Saharan Africa, and is home to the superhero Black Panther. Wakanda first app ...
first production versions with open source and commercial licenses * 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


Adoption of object databases

Object databases based on persistent programming acquired a niche in application areas such as engineering and
spatial databases Spatial may refer to: *Dimension *Space *Three-dimensional space Three-dimensional space (also: 3D space, 3-space or, rarely, tri-dimensional space) is a geometric setting in which three values (called ''parameters'') are required to determ ...
, telecommunications, and scientific areas such as
high energy physics Particle physics or high energy physics is the study of fundamental particles and forces that constitute matter and radiation. The fundamental particles in the universe are classified in the Standard Model as fermions (matter particles) and ...
and molecular biology. Another group of object databases focuses on embedded use in devices, packaged software, and
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
systems.


Technical features

Most object databases also offer some kind of
query language Query languages, data query languages or database query languages (DQL) are computer languages used to make queries in databases and information systems. A well known example is the Structured Query Language (SQL). Types Broadly, query language ...
, allowing objects to be found using a declarative programming approach. It is in the area of object query languages, and the integration of the query and navigational interfaces, that the biggest differences between products are found. An attempt at standardization was made by the ODMG with the
Object Query Language Object Query Language (OQL) is a query language standard for object-oriented databases modeled after SQL and developed by the Object Data Management Group (ODMG). Because of its overall complexity the complete OQL standard has not yet been fully ...
, OQL. Access to data can be faster because an object can be retrieved directly without a search, by following
pointers Pointer may refer to: Places * Pointer, Kentucky * Pointers, New Jersey * Pointers Airport, Wasco County, Oregon, United States * The Pointers, a pair of rocks off Antarctica People with the name * Pointer (surname), a surname (including a ...
. Another area of variation between products is in the way that the schema of a database is defined. A general characteristic, however, is that the programming language and the database schema use the same type definitions. Multimedia applications are facilitated because the class methods associated with the data are responsible for its correct interpretation. Many object databases, for example Gemstone or VOSS, offer support for versioning. An object can be viewed as the set of all its versions. Also, object versions can be treated as objects in their own right. Some object databases also provide systematic support for triggers and constraints which are the basis of
active database An active database is a database that includes an event-driven architecture (often in the form of ECA rules) which can respond to conditions both inside and outside the database. Possible uses include security monitoring, alerting, statistics gat ...
s. The efficiency of such a database is also greatly improved in areas which demand massive amounts of data about one item. For example, a banking institution could get the user's account information and provide them efficiently with extensive information such as transactions, account information entries etc.


Standards

The Object Data Management Group was a consortium of object database and object–relational mapping vendors, members of the academic community, and interested parties. Its goal was to create a set of specifications that would allow for portable applications that store objects in database management systems. It published several versions of its specification. The last release was ODMG 3.0. By 2001, most of the major object database and object–relational mapping vendors claimed conformance to the ODMG Java Language Binding. Compliance to the other components of the specification was mixed. In 2001, the ODMG Java Language Binding was submitted to the Java Community Process as a basis for the
Java Data Objects Java Data Objects (JDO) is a specification of Java object persistence. One of its features is a transparency of the persistence services to the domain model. JDO persistent objects are ordinary Java programming language classes ( POJOs); there i ...
specification. The ODMG member companies then decided to concentrate their efforts on the Java Data Objects specification. As a result, the ODMG disbanded in 2001. Many object database ideas were also absorbed into SQL:1999 and have been implemented in varying degrees in
object–relational database An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inherit ...
products. In 2005 Cook, Rai, and Rosenberger proposed to drop all standardization efforts to introduce additional object-oriented query APIs but rather use the OO programming language itself, i.e., Java and .NET, to express queries. As a result, Native Queries emerged. Similarly, Microsoft announced
Language Integrated Query Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007. LINQ extends the langu ...
(LINQ) and DLINQ, an implementation of LINQ, in September 2005, to provide close, language-integrated database query capabilities with its programming languages C# and VB.NET 9. In February 2006, the Object Management Group (OMG) announced that they had been granted the right to develop new specifications based on the ODMG 3.0 specification and the formation of the Object Database Technology Working Group (ODBT WG). The ODBT WG planned to create a set of standards that would incorporate advances in object database technology (e.g., replication), data management (e.g., spatial indexing), and data formats (e.g., XML) and to include new features into these standards that support domains where object databases are being adopted (e.g., real-time systems). The work of the ODBT WG was suspended in March 2009 when, subsequent to the economic turmoil in late 2008, the ODB vendors involved in this effort decided to focus their resources elsewhere. In January 2007 the World Wide Web Consortium gave final recommendation status to the XQuery language. XQuery uses
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
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 v1 and XPath v2 are extremely complex (no FOSS software is implementing these standards more than 10 years after their publication) when compared to XPath v1 and XSLT v1, and
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
did not fit all community demands as an open format. Since the early 2000s JSON has gained community adoption and popularity in applications, surpassing XML in the 2010s.
JSONiq JSONiq is a query and functional programming language that is designed to declaratively query and transform collections of hierarchical and heterogeneous data in format of JSON, XML, as well as unstructured, textual data. JSONiq is an open spec ...
, 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 9.5 release 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.


Comparison with RDBMSs

An object database stores complex data and relationships between data directly, without mapping to relational rows and
columns A column or pillar in architecture and structural engineering is a structural element that transmits, through compression, the weight of the structure above to other structural elements below. In other words, a column is a compression member. ...
, and this makes them suitable for applications dealing with very complex data. Objects have a many-to-many relationship and are accessed by the use of pointers. Pointers are linked to objects to establish relationships. Another benefit of an OODBMS is that it can be programmed with small procedural differences without affecting the entire system.Burleson, Donald. (1994). OODBMSs gaining MIS ground but RDBMSs still own the road. Software Magazine, 14(11), 63


See also

*
Comparison of object database management systems This is a comparison of notable object database management systems, showing what fundamental object database features are implemented natively. See also * Comparison of object–relational database management systems * Comparison o ...
*
Component-oriented database Component-oriented database (CODB) is a way of data administration and programming DBMS's using the paradigm of the component-orientation. Concepts The paradigm of ''component-orientation'' (CO) is a development of the object-orientation (OO) in ...
* EDA database *
Enterprise Objects Framework The Enterprise Objects Framework, or more commonly simply EOF, was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms. EOF abstracts the process of interacting with a re ...
*
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existe ...
* Object Data Management Group *
Object–relational database An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inherit ...
*
Persistence (computer science) In computer science, persistence refers to the characteristic of state of a system that outlives (persists more than) the process that created it. This is achieved in practice by storing the state as data in computer data storage. Programs hav ...
*
Relational model The relational model (RM) is an approach to managing data using a structure and language consistent with first-order predicate logic, first described in 1969 by English computer scientist Edgar F. Codd, where all data is represented in terms of tu ...
*
Relational database management system A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
(RDbMS)


References


External links


Object DBMS resource portal

Ranking of Object Oriented DBMS
- by popularity, updated monthly from DB-Engines {{DEFAULTSORT:Object Database Database management systems Object-oriented programming Database models Types of databases