1. Introducción
Db4o (DB for Objects) es una implementación de OODB libre (bajo GPL – General Public Licence, por lo tanto de código abierto) que se encuentran actualmente en el mercado. db4o representa una alternativa a las bases de datos relacionales utilizadas tradicionalmente.
DIFERENCIAS PRINCIPALES ENTRE OODB y RDB
La diferencia entre un tipo de base de datos y el otro radica en la naturaleza con la que se guardan, consultan y manejan los datos.
En las bases de datos relacionales los datos están en registros de tablas, que almacenan datos propiamente dichos o referencias a registros de otras tablas. En el modelo relacional el mapeo entre los objetos del modelo de negocio y las tablas debe establecerse y configurarse en tiempo de desarrollo.
En cambio usando db4o y las demás bases de datos orientadas a objetos esto es transparente al desarrollador, quien sólo llama desde su código a métodos del objeto que administra la base de datos para realizar una consulta, dar un alta, una modificación o eliminar algún objeto de la base de objetos. El almacenamiento y el acceso a los objetos se realiza mediante el uso de punteros (lo que facilita la navegación a través de las estructuras de dichos objetos). El tiempo de desarrollo es mucho menor en una solución orientada a objetos si se utiliza una OODB.
2. Ventajas
-> Mayor velocidad de desarrollo (transparencia)
— No hay mapeos entre objetos y tablas
— No hay que crear componentes que accedan a las bases de datos
— El código de acceso a la base es muy sencillo y entendible (métodos get, set y delete) en el caso de db4o
-> Mejor rendimiento con objetos de negocio complejos (árboles, estructuras anidadas, relaciones N a N, relaciones recursivas)
-> Fácil Backup (la base completa está en un solo archivo)
-> No necesita administración
— Tiene un recolector de basura – garbage collector – que borra los objetos que no son referenciados
— Al cambiar algo en las clases no se necesita modificar nada en la base de objetos
— Sistema de versionado automático
-> Las búsquedas se hacen directamente usando objetos
— Búsquedas usando objetos, sencillas (QBE, "Query By Example")
— Búsquedas Nativas (la manera recomendada para buscar)
— Búsquedas usando la "SODA Query API" (búsquedas de bajo nivel)
-> Los cambios en los objetos (agregar o quitar atributos a una clase) se aplican directamente en la base, sin tener que migrar datos ni reconfigurar nada.
-> Capacidades transaccionales ACID
-> Multiplataforma:
— Nativo en Java y .Net
— Dispositivos móviles, aplicaciones de escritorio, servidores,…
-> Ofrece un motor de base de datos embebida para dispositivos móviles en entornos OO
3. Inconvenientes
-> No existe un lenguaje de consultas como sql (se deben realizar programáticamente)
-> No existen restricciones, deben programarse (No implementa integridad referencial).
-> Tamaño limitado de los ficheros de BBDD (2GB – 264GB).
-> No permite clustering.
-> No existe gestión de permisos.
-> No existen aplicaciones para data mining ni informes.
-> No se puede realizar explotación de los datos existentes mediante otros medios.
-> Para accesos sencillos y persistencia de objetos simples los motores de persistencia ofrecen un rendimiento similar.
4. Rendimiento
-> Creación de objetos:
-> Tiempo Transversal (navegación a través del modelo completo)
-> Querys
— Q1 – Query en una tabla
— Q2, Q3, Q5 – Querys con rangos
— Q7 – Query que encuentra los objetos de un tipo determinado
— Q4 – Querys que encuentra objetos de un tipo y los cruza con otro mediante asociaciones one-to-many,
— Q8 – Querys que encuentran objetos de un tipo y hacen un join con otro mediante su id.
-> Comparativa con otras herramientas:
La conclusión a la que se llega es que cuanto más simple sean los datos, el mejor rendimiento lo proporcionará SQL para el acceso a Bases de Datos Relacionales (ej. JDBC). Cuando la estructura de los objetos se complica, el impacto de introducir motores de persistencia basados en el mapeo de entidades relacionales aumenta drásticamente, afectando de forma importante al rendimiento.
5. Descarga y utilización de db4o (para Java)
-> Primero hay que descargar el archivo que contiene el jar con las clases de db4o. Se puede encontrar tanto en la sección de Community como en la sección TestDrive de la página oficial del producto.
-> Para usar el jar, simplemente hay que extraerlo del zip en el que viene comprimido (dentro del directorio lib) e importarlo desde el código para comenzarlo a usar.
6. Herramientas para el manejo de BDDD de db4o
Hay disponibles dos herramientas para la gestión de bases de objetos, desde la sección de descargas del sito oficial de db4o.
-> ObjectManager (para navegar el contenido de la base de objetos y hacer consultas)
-> Plugin para Eclipse (ídem ObjectManager, pero dentro del Eclipse)
7. Licencia
DB4Object se encuentra disponible bajo licencia GPL – General Public Licence, por lo tanto de código abierto.
Para otros usos y condiciones, existen otro tipo de licencias disponibles, para más detalles consultar el siguiente enlace:






Deja un comentario