This is a comparison of notable object database management systems, showing what fundamental object database features are implemented natively.
Name | Current Stable Version | Language(s) | SQL support | Datatypes | License | Description |
---|---|---|---|---|---|---|
Caché | 2017.2.1 | Caché ObjectScript (dynamic language), Basic. Java/.NET object mapping supported. | SQL subset. Object notation allowed. Supports embedded SQL, dynamic SQL and xDBC access. | Proprietary | MUMPS ancestry. Includes built-in support for XML, Web/AJAX and an EMB system called Ensemble. Supports embedded, client/server and distributed implementations. | |
ConceptBase | 8.1.13 (2019-12-09) | Telos | CBQL (based on Datalog) | no types but classes | open source, FreeBSD-style license | historical db, active rules, meta-modeling, deductive rules |
Db4o | 8.0 (2011-03-09) | C#, Java | db4o-sql | .NET and Java data types | GPL, custom, [1] proprietary | Native Queries, LINQ support, automatic schema evolution, Transparent Activation/Persistence, replication to RDBMS, Object Manager plugin for Visual Studio and Eclipse |
GemStone/S | 3.6.0 | Smalltalk | None | Objects and code | Proprietary, free version available | Persistent, transactional, multi-user Smalltalk developed by GemTalk Systems. |
ObjectDatabase++ | 4.4 (2015-07-03) | C++, TScript | Proprietary | Embedded | ||
ObjectDB | 2.4.6 | Java | None, uses JPA or JDO | Proprietary | ||
Objectivity/DB | 10.2.1 | C++, C#, Java, Python, Smalltalk and XML | SQL superset | Proprietary | Distributed, Parallel Query Engine | |
ObjectStore | 7.2 (July 2011) | C++, Java, interoperable with .NET | SQL subset (also has own object query language) | Proprietary | Embedded database supporting efficient, distributed management of C++ and Java objects. Avoids the complexities and limitations of ORM products such as Hibernate by storing objects directly with their relationships intact. Uses a page-based mapping system for fast locking and efficient, distributed, client-side caching. | |
ODABA | 12.3.0 (August 2013) | C++, .NET | SQL subset, DQL | Basic Types, Classes, Multiple inheritance, Weak Typed | GPL | Terminology-oriented database |
OpenAccess | 2.2 | C++ | no | Proprietary | EDA database | |
OpenLink Virtuoso (Virtuoso Universal Server) | 7.2.7 (May 2022) | C++, Java/JSP, ASP, ASPX, Mono, RDF, SPARQL, SPARUL, SQL, Perl, Python, PHP, Ruby, XML, ODBC, JDBC, ADO.NET, more | SQL 9x/200x | GPL or proprietary | ||
Perst | Java: 4.38 (2015-03-18) C#: 4.46 (2014-08-23) | Java (including Java SE, Java ME & Android), C# (including .NET, .NET Compact Framework, Mono & Silverlight) | JSQL – object-oriented subset of SQL | Java and .NET data types | GPL, Proprietary | Small footprint embedded database. Diverse indexes and specialized collection classes; LINQ; replication; ACID transactions; native full text search; includes Silverlight, Android and Java ME demo apps. |
Picolisp | 3.1.1 | Picolisp | MIT License | DB built into the language | ||
Versant Object Database / VOD / FastObjects | 10 (2021) / 9 (2015) / 14 (2020) | C++ / Java / C# | OQL (ODMG 3.0) | Proprietary | ||
Zope Object Database | Python, C | No support. Object indexing and searching is done through ZCatalog facility. | Zope Public License |
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data. The DBMS additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a database system. Often the term "database" is also used loosely to refer to any of the DBMS, the database system or an application associated with the database.
An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type, object–relational databases, is a hybrid of both approaches. Object databases have been considered since the early 1980s.
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970. A database management system used to maintain relational databases is a relational database management system (RDBMS). Many relational database systems are equipped with the option of using SQL for querying and updating the database.
Structured Query Language (SQL) is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling structured data, i.e., data incorporating relations among entities and variables.
Object–relational mapping in computer science is a programming technique for converting data between a relational database and the heap of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.
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 inheritance are directly supported in database schemas and in the query language. In addition, just as with pure relational systems, it supports extension of the data model with custom data types and methods.
Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.
Oracle Database is a proprietary multi-model database management system produced and marketed by Oracle Corporation.
This is a comparison of object–relational database management systems (ORDBMSs). Each system has at least some features of an object–relational database; they vary widely in their completeness and the approaches taken.
Object–relational impedance mismatch is a set of difficulties going between data in relational data stores and data in domain-driven object models. Relational Database Management Systems (RDBMS) is the standard method for storing data in a dedicated database, while object-oriented (OO) programming is the default method for business-centric design in programming languages. The problem lies in neither relational databases nor OO programming, but in the conceptual difficulty mapping between the two logic models. Both logical models are differently implementable using database servers, programming languages, design patterns, or other technologies. Issues range from application to enterprise scale, whenever stored relational data is used in domain-driven object models, and vice versa. Object-oriented data stores can trade this problem for other implementation difficulties.
Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single multithreaded server process that implements multiple protocols. The free and open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. The software has been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects.
JFire was an Enterprise Resource Planning and Customer Relationship Management system.
The following tables compare general and technical information for a number of available database administration tools. Please see individual product articles for further information. This article is neither all-inclusive nor necessarily up to date.
db4o 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 the commercial db4o product offering for new customers.
NoSQL is an approach to database design that focuses on providing a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Instead of the typical tabular structure of a relational database, NoSQL databases house data within one data structure. Since this non-relational database design does not require a schema, it offers rapid scalability to manage large and typically unstructured data sets. NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL-like query languages or sit alongside SQL databases in polyglot-persistent architectures.
Versant Corporation was an American-based software company building specialized NoSQL data management systems. Versant was founded in Menlo Park, California (USA) in 1988. It was headquartered in Redwood City, California.
Lists of database management systems provide indexes and/or comparisons of different types of database management system. They include:
The following is provided as an overview of and topical guide to databases:
In the field of database design, a multi-model database is a database management system designed to support multiple data models against a single, integrated backend. In contrast, most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated. Document, graph, relational, and key–value models are examples of data models that may be supported by a multi-model database.