ObjectDB

Last updated
ObjectDB Object Database
Developer(s) ObjectDB Software
Stable release
2.9.1 / October 24, 2024;2 days ago (2024-10-24)
Written in Java
Operating system Cross-platform
Type Object database
License Proprietary [1]
Website www.objectdb.com

ObjectDB is an object database for Java. It can be used in client-server mode and in embedded (in process) mode.

Contents

Unlike other object databases, ObjectDB does not provide its own proprietary API. Accordingly, working with ObjectDB requires using one of the two standard Java APIs: JPA or JDO. Both APIs are built-in in ObjectDB, [2] [3] so an intermediate ORM software is not needed. [4] [5]

Features

ObjectDB is a cross platform software and can be used on various operating systems with Java SE 5 or higher. It can be integrated into Java EE and Spring web applications and deployed on servlet containers (Tomcat, Jetty) as well as on Java EE application servers (GlassFish, JBoss). [6] [7] It was tested on various JVMs, including HotSpot, JRockit and IBM J9. [8]

The maximum database size is 128 TB (131,072 GB). The number of objects in a database is unlimited (except by the database size). [8]

All the persistable types of JPA and JDO are supported by ObjectDB, including user defined entity classes, user defined embeddable classes, standard Java collections, basic data types (primitive values, wrapper values, String, Date, Time, Timestamp) and any other serializable classes. [8]

Every object in the database has a unique ID. ObjectDB supports both traditional object database IDs, as well as RDBMS like primary keys, including composite primary keys and auto value generation and assignment, [8] as part of its support of JPA, which is mainly an API for RDBMS.

Two query languages are supported. The JDO Query Language (JDOQL), which is based on Java syntax, and the JPA Query Language (JPQL), which is based on SQL syntax. JPA 2 criteria queries are also supported. [8]

ObjectDB automatic schema evolution handles most changes to classes transparently, including adding and removing of persistent fields, changing types of persistent fields, and modifying class hierarchy. Renaming persistable classes and persistent fields is also supported. [8]

Tools and utilities

The following tools and utilities are included in the ObjectDB distribution: [9]

Related Research Articles

Object–relational mapping in computer science is a programming technique for converting data between a relational database and the memory of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.

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 is no requirement for them to implement certain interfaces or extend from special classes. JDO 1.0 was developed under the Java Community Process as JSR 12. JDO 2.0 was developed under JSR 243 and was released on May 10, 2006. JDO 2.1 was completed in Feb 2008, developed by the Apache JDO project. JDO 2.2 was released in October 2008. JDO 3.0 was released in April 2010.

In software, a data access object (DAO) is a pattern that provides an abstract interface to some type of database or other persistence mechanism. By mapping application calls to the persistence layer, the DAO provides data operations without exposing database details. This isolation supports the single responsibility principle. It separates the data access the application needs, in terms of domain-specific objects and data types, from how these needs can be satisfied with a specific DBMS.

MySQL Cluster, also known as MySQL Ndb Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, while allowing for near linear scalability. MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL.

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

Apache Derby is a relational database management system (RDBMS) developed by the Apache Software Foundation that can be embedded in Java programs and used for online transaction processing. It has a 3.5 MB disk-space footprint.

Oracle Spatial and Graph, formerly Oracle Spatial, is a free option component of the Oracle Database. The spatial features in Oracle Spatial and Graph aid users in managing geographic and location-data in a native type within an Oracle database, potentially supporting a wide range of applications — from automated mapping, facilities management, and geographic information systems (AM/FM/GIS), to wireless location services and location-enabled e-business. The graph features in Oracle Spatial and Graph include Oracle Network Data Model (NDM) graphs used in traditional network applications in major transportation, telcos, utilities and energy organizations and RDF semantic graphs used in social networks and social interactions and in linking disparate data sets to address requirements from the research, health sciences, finance, media and intelligence communities.

Jakarta Persistence, also known as JPA is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

Polyhedra is a family of relational database management systems offered by ENEA AB, a Swedish company. The original version of Polyhedra was an in-memory database management system which could be used in high availability configurations; in 2006 Polyhedra Flash DBMS was introduced to allow databases to be stored in flash memory. All versions employ the client–server model to ensure the data are protected from misbehaving application software, and they use the same SQL, ODBC and type-4 JDBC interfaces. Polyhedra is targeted primarily for embedded use by Original Equipment Manufacturers (OEMs), and big-name customers include Ericsson, ABB, Emerson, Lockheed Martin, United Utilities and Siemens AG.

<span class="mw-page-title-main">Db4o</span> Open source object database

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.

The Jakarta Persistence Query Language is a platform-independent object-oriented query language defined as part of the Jakarta Persistence specification.

DataNucleus is an open source project which provides software products around data management in Java. The DataNucleus project started in 2008.

Apache Empire-db is a Java library that provides a high level object-oriented API for accessing relational database management systems (RDBMS) through JDBC. Apache Empire-db is open source and provided under the Apache License 2.0 from the Apache Software Foundation.

Empress Embedded Database is a relational database management system that has been embedded into applications, including medical systems, network routers, nuclear power plant monitors, satellite management systems. Empress is an ACID compliant relational database management system (RDBMS) with two-phase commit and several transaction isolation levels for real-time embedded applications. It supports both persistent and in-memory storage of data and works with text, binary, multimedia, as well as traditional data.

Effi is C++ application development framework.

Canigó is the name chosen for the Java EE framework of the Generalitat de Catalunya.

The .NET Persistence API, also referred to as NPA, is a persistence and object–relational mapping (ORM) specification for the .NET framework.

eXtremeDB is a high-performance, low-latency, ACID-compliant embedded database management system using an in-memory database system (IMDS) architecture and designed to be linked into C/C++ based programs. It runs on Windows, Linux, and other real-time and embedded operating systems.

Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink provides development tools and run-time functionalities that ease the development process and help increase functionality. Persistent object-oriented data is stored in relational databases which helps build high-performance applications. Storing data in either XML or relational databases is made possible by transforming it from object-oriented data.

References

  1. "ObjectDB License".
  2. "Home". objectdb.com.
  3. "Java - is ObjectDB production ready?".
  4. "Create applications using ObjectDb and JPA in NetBeans". www.javabeat.net. Archived from the original on 2012-09-05.
  5. "Home". jpab.org.
  6. "JPA Tutorials".
  7. "Integrate ObjectDB into Your JPA-based Java Web App". 6 April 2012.
  8. 1 2 3 4 5 6 "ObjectDB Object Database Features".
  9. "Chapter 5 - Database Tools and Utilities".