ObjectDB

Last updated
ObjectDB Object Database
Developer(s) ObjectDB Software
Stable release
2.8.9 / September 18, 2023;0 days ago (2023-09-18)
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

Structured Query Language (SQL) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). It is particularly useful in handling structured data, i.e., data incorporating relations among entities and variables.

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 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 PersistenceAPI is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

Objectivity/DB is a commercial object database produced by Objectivity, Inc. It allows applications to make standard C++, C#, Java, or Python objects persistent without having to convert the data objects into the rows and columns used by a relational database management system (RDBMS). Objectivity/DB supports the most popular object oriented languages plus SQL/ODBC and XML. It runs on Linux, Macintosh, UNIX and Windows platforms. All of the languages and platforms interoperate, with the Objectivity/DB kernel taking care of compiler and hardware platform differences.

<span class="mw-page-title-main">Db4o</span>

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.

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 works 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.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. This is a desktop application written in Java and based on Eclipse platform.

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".