# ObjectDB

ObjectDB es una base de datos orientada a objetos para Java. Se puede utilizar en modo cliente-servidor y en modo incrustado (en proceso).
A diferencia de otras bases de datos orientadas a objetos, ObjectDB no proporciona su propia API propietaria. Por lo tanto, el trabajo con ObjectDB requiere el uso de una de las dos API estándar de Java - JPA o JDO. Ambas APIs están incorporadas en ObjectDB, por lo que no es necesario un software ORM intermedio.

## Características

ObjectDB es un software multiplataforma y se puede utilizar en varios sistemas operativos con Java SE 5 o superior. Se puede integrar en aplicaciones web Java EE y Spring y desplegado en contenedores de servlets (Tomcat, Jetty), así como en servidores de aplicaciones Java EE (GlassFish, JBoss). Fue probado en varias máquinas virtuales de Java, incluyendo HotSpot, JRockit y IBM J9.
El tamaño máximo de la base de datos es de 128 TB (131.072 GB). El número de objetos en una base de datos es ilimitado (excepto por el tamaño de la base de datos).
Todos los tipos persistibles de JPA y JDO son soportados por ObjectDB, incluyendo las clases de entidad definidas por el usuario, clases insertables (embeddable) definidas por el usuario, colecciones de Java estándar, tipos de datos básicos (valores primitivos, wrappers, String, Date, Time, Timestamp) y cualquier otra clase serializable.
Cada objeto en la base de datos tiene un identificador único. ObjectDB admite identificadores tradicionales de bases de datos orientadas a objetos, así como claves primarias como en sistemas de gestión de bases de datos relacionales, incluyendo claves primarias compuestas y generación y asignación automática de valores, como parte de su soporte de JPA, que es principalmente una API para sistemas de gestión de bases de datos relacionales.
ObjectDB soporta dos lenguajes de consulta. JDO Query Language (JDOQL), que se basa en la sintaxis de Java, y JPA Query Language (JPQL), que se basa en la sintaxis de SQL. Las consultas por criterios (criteria queries) de JPA 2 también están soportadas. Base de datos orientada a objetos La evolución de esquema automática de ObjectDB maneja la mayoría de los cambios en las clases de forma transparente, incluyendo agregar y quitar campos persistentes, cambiar los tipos de campos persistentes y modificar la jerarquía de clases. Cambiar el nombre de clases persistibles y campos persistentes también está soportado.

## Herramientas y utilidades

Las siguientes herramientas y servicios están incluidos en la distribución de ObjectDB:
* Database Explorer - Herramienta GUI para realizar consultas, visualización y edición de contenido de base de datos.
* Database Doctor - Diagnostica y repara los posibles problemas de base de datos.
* Replication - Replicación maestro-esclavo (clustering) con número ilimitado de nodos esclavos.
* Online Backup - Copia de seguridad de base de datos mediante una consulta sencilla en un EntityManager.
* Class Enhancer - Aumenta el rendimiento mediante la preparación de las clases para la persistencia.
* Transaction Replayer - Grabador y repetidor de las transacciones de base de datos.
* BIRT Reports Driver - Añade ObjectDB como fuente de datos BIRT y consultas JPQL / JDOQL como conjuntos de datos.