db4o (base de datos para objetos) era una base de datos de objetos de código abierto integrable para desarrolladores de Java y .NET . Fue desarrollado, con licencia comercial y respaldado por Actian . En octubre de 2014, Actian declinó continuar buscando y promoviendo activamente la oferta comercial de productos db4o para nuevos clientes. [1]
Desarrollador (es) | Actian |
---|---|
Lanzamiento estable | 8.0 |
Escrito en | C # , Java |
Sistema operativo | Multiplataforma |
Tipo | Base de datos de objetos |
Licencia | Licencia pública general GNU (GPL) db4o Licencia de compatibilidad de código abierto (dOCL) Licencia propietaria |
Sitio web | www |
Historia
El término sistema de base de datos orientado a objetos se remonta aproximadamente a 1985, aunque los primeros desarrollos de investigación en esta área comenzaron a mediados de la década de 1970. Los primeros sistemas de gestión de bases de datos de objetos comerciales se crearon a principios de la década de 1990; estos agregaron el concepto de persistencia basada en bases de datos nativas en el campo del desarrollo orientado a objetos.
La segunda ola de crecimiento se observó en la primera década del siglo XXI, cuando aparecieron en el mercado bases de datos orientadas a objetos escritas completamente en un lenguaje orientado a objetos . db4o es uno de los ejemplos de tales sistemas escritos completamente en Java y C #.
El proyecto db4o fue iniciado en 2000 por el arquitecto jefe Carl Rosenberger, y se envió en 2001. Fue utilizado en aplicaciones empresariales y académicas antes de su anuncio comercial en 2004 por la empresa privada recién creada Db4objects Inc.
En 2008, db4o fue comprado por Versant Corporation , que lo comercializó como software de código abierto con dos licencias: comercial y GNU General Public License (GPL).
Descripción general
db4o representa un modelo de base de datos orientado a objetos . Uno de sus principales objetivos es proporcionar una interfaz fácil y nativa de persistencia para lenguajes de programación orientados a objetos. El desarrollo con la base de datos db4o no requiere la creación de un modelo de datos por separado , el modelo de clase de la aplicación define la estructura de los datos. db4o intenta evitar el desajuste de impedancia relacional / objeto eliminando la capa relacional de un proyecto de software. db4o está escrito en Java y .NET y proporciona las respectivas API. Puede ejecutarse en cualquier sistema operativo que admita Java o .NET. Se ofrece bajo licencias que incluyen GPL, la licencia de compatibilidad de fuente abierta db4o (dOCL) y una licencia comercial para su uso en software propietario.
Los desarrolladores que utilizan bases de datos relacionales pueden ver db40 como una herramienta complementaria. El intercambio de datos db4o-RDBMS se puede implementar utilizando el sistema de replicación db4o (dRS). dRS también se puede utilizar para la migración entre tecnologías de objetos (db4o) y relacionales ( RDBMS ).
Como base de datos incorporada, db4o se puede ejecutar en el proceso de aplicación. Se distribuye como biblioteca (jar / dll).
Características
Base de datos de una línea de código
db4o contiene una función para almacenar cualquier objeto:
objectContainer . store ( new SomeClass ());
SomeClass aquí no requiere ninguna implementación de interfaz, anotaciones o atributos agregados. Puede ser cualquier clase de aplicación, incluidas las clases de terceros contenidas en bibliotecas referenciadas.
Todos los objetos de campo (incluidas las colecciones) se guardan automáticamente. Los casos especiales se pueden manejar escribiendo controladores de tipos personalizados. [2]
Integrable
db4o está diseñado para integrarse en clientes u otros componentes de software invisibles para el usuario final. Por lo tanto, db4o no necesita un mecanismo de instalación separado, sino que viene como un archivo de biblioteca único con una huella de alrededor de 670kB en la versión .NET y alrededor de 1 MB en la versión de Java.
Modo cliente-servidor
La versión cliente / servidor permite que db4o se comunique entre las aplicaciones del lado del cliente y del servidor. Utiliza TCP / IP para la comunicación cliente-servidor y permite configurar el número de puerto. La comunicación se implementa a través de mensajería.
Debido a una característica conocida como "Reflexión genérica", db4o puede funcionar sin implementar clases persistentes en el servidor. Sin embargo, este modo tiene limitaciones. [3]
Evolución del esquema dinámico
db4o admite la evolución automática del esquema de objeto para los cambios básicos del modelo de clase (eliminación / adición de nombre de campo). Las modificaciones del modelo de clase más complejas, como el cambio de nombre de campo, el cambio de tipo de campo, el movimiento de jerarquía no se automatizan de inmediato, pero se pueden automatizar escribiendo un pequeño programa de actualización de utilidades (ver documentación ).
Esta característica puede verse como una ventaja sobre el modelo relacional, donde cualquier cambio en el esquema resulta en una revisión y actualización del código principalmente manual para que coincida con los cambios del esquema.
Consultas nativas
En lugar de utilizar API basadas en cadenas (como SQL , OQL , JDOQL, EJB QL y SODA), las consultas nativas (NQ) permiten a los desarrolladores utilizar simplemente el lenguaje de programación en sí (p. Ej., Java, C # o VB.NET) para acceder a la base de datos y así evitar un cambio de contexto constante que reduce la productividad entre el lenguaje de programación y la API de acceso a datos. Las consultas nativas también brindan seguridad de tipos , además de eliminar la necesidad de desinfectar contra la inyección de código (consulte Inyección SQL ).
LINQ
El soporte LINQ está completamente integrado en db4o para .NET versión 3.5. LINQ permite la creación de consultas orientadas a objetos de cualquier complejidad con el beneficio de verificación en tiempo de compilación, integración IDE Intellisense y refactorización automatizada.
Debido a la integración con algunas bibliotecas de código abierto, db4o también permite consultas LINQ optimizadas en Compact Framework.
LINQ se puede utilizar tanto contra el almacenamiento de datos relacionales como de objetos, proporcionando así un puente entre ellos. También se puede utilizar como una capa de abstracción, lo que permite cambiar fácilmente la tecnología de base de datos subyacente.
Desventajas
Los inconvenientes y dificultades que enfrentan otras bases de datos de objetos también se aplican a Db4o:
- Otras cosas que funcionan contra ODBMS parecen ser la falta de interoperabilidad con una gran cantidad de herramientas / características que se dan por sentadas con respecto a SQL, incluidas, entre otras, la conectividad estándar de la industria, herramientas de informes , herramientas OLAP y estándares de copia de seguridad y recuperación. [ cita requerida ] Las bases de datos de objetos también carecen de una base matemática formal, a diferencia del modelo relacional , y esto a su vez conduce a debilidades en el soporte de consultas . Sin embargo, algunos ODBMS son totalmente compatibles con SQL además del acceso de navegación, por ejemplo, Objectivity / SQL ++, Matisse e InterSystems CACHÉ. El uso efectivo puede requerir compromisos para mantener ambos paradigmas sincronizados.
Las desventajas específicas de Db4o pueden incluir:
- Falta de indexación de texto completo , bajo rendimiento en la búsqueda de texto completo [4]
- Falta de indexación para los tipos de cadenas , lo que significa que las búsquedas basadas en texto pueden ser potencialmente muy lentas
- "No existe un lenguaje de consulta general como SQL que pueda utilizarse para el análisis de datos o por otras aplicaciones. Esto no permite que db4o sea muy flexible en un entorno heterogéneo" [4]
- La replicación no se puede realizar administrativamente, es decir, se necesita programar una aplicación para lograr la replicación. "Esto es contrario a la mayoría de RDBMS, donde los administradores administran los servidores y la replicación entre ellos". [4]
- Los campos eliminados no se eliminan de inmediato, solo se ocultan hasta la próxima desfragmentación [ cita requerida ]
- No hay soporte integrado para importar / exportar datos a / desde archivos de texto, XML o JSON
Portabilidad e implementación multiplataforma
db4o admitía Java JDK 1.1.x a 6.0 y se ejecuta en Java EE y Java SE . db4o también se ejecuta con dialectos Java ME que admiten la reflexión, como CDC , Personal Profile , Symbian OS , SavaJe y Zaurus . Dependiendo de la demanda del cliente, db4o también se ejecutará en dialectos sin reflexión, como CLDC , MIDP , BlackBerry y Palm OS .
db4o se probó con éxito en JavaFX y Silverlight . db4o se ejecutó en Android .
db4o utiliza una característica personalizada llamada "reflector genérico" para representar información de clase, cuando las definiciones de clase no están disponibles, lo que permite usarlo en un entorno mixto Java-.NET, por ejemplo, cliente Java - servidor .NET y viceversa. [3] El reflector genérico también ayuda a la conversión del proyecto entre entornos, ya que no es necesario convertir la base de datos.
Documentación y soporte
db4o proporciona fuentes de documentación: tutorial, [5] documentación de referencia, [6] documentación de API, [7] paircasts en línea [8] y blogs. [9] La información también se puede recuperar de foros [10] y adiciones de la comunidad [11] (artículos, fuentes de documentación traducidas, proyectos de muestra, etc.).
Para los usuarios comerciales, db4o sugiere una suscripción a dDN (db4o developer network) con soporte garantizado las 24 horas y sesiones de emparejamiento en vivo con el cliente: Xtreme Connect. [12]
Administrador de objetos
Object Management Enterprise (OME) es una herramienta de exploración de bases de datos db4o, que está disponible como complemento para Eclipse y MS Visual Studio 2005/2008. OME permite la navegación de clases y objetos en la base de datos, la conexión a un servidor de base de datos, la construcción de consultas usando arrastrar y soltar y usar estadísticas de la base de datos.
OME proporciona algunas funciones administrativas como indexación, desfragmentación y copia de seguridad. OME se sugirió inicialmente a los clientes como un producto comercial solo disponible para los suscriptores de dDN. Desde la versión 7.8 de db4o, OME se incluyó en la distribución estándar de db4o y la fuente se puso a disposición del público en el repositorio db4o svn. [13]
Comunidad
La comunidad de miembros registrados de db4o creció a más de 60.000 miembros. [14] Los proyectos importantes relacionados con db4o, como el administrador de objetos independiente, el soporte de cifrado, el soporte de Mono, etc., están totalmente impulsados por miembros de la comunidad. El programa Code Commander de db4o definió los términos y condiciones del desarrollo de proyectos comunitarios.
db4o proporciona acceso gratuito a su código, documentación, foros y versiones a los miembros de la comunidad. La comunidad vota por las características más importantes y los errores más críticos se tienen en cuenta al definir la hoja de ruta y los planes de iteración semanales. En ocasiones, db4o organizaba concursos que permitían a los miembros de la comunidad presentar la mejor sugerencia de mejora, que luego se integraba en el código central. [15]
Versiones
db4o lanza desarrollo, producción y compilaciones estables. La versión de desarrollo proporciona las funciones más nuevas y se publica para pruebas, comentarios de la comunidad y evaluación. La versión de producción está destinada a ser utilizada en un entorno de producción e incluye características que ya han sido evaluadas y probadas por el tiempo. La versión estable está destinada a ser utilizada en el envío del producto final.
db4o también ejecuta una compilación continua, que se activa con cualquier cambio nuevo comprometido en el repositorio de código SVN. Esta compilación está abierta a la comunidad y se puede utilizar para evaluar los últimos cambios y adquirir las funciones más nuevas.
El formato de nombre de compilación db4o está destinado a proporcionar toda la información necesaria sobre la versión, el tiempo de compilación y la plataforma compatible:
Por ejemplo: db4o-7.2.30.9165-java.zip
db4o: nombre del producto, es decir, motor de base de datos db4o
7.2 - el número de lanzamiento
30 - número de iteración, es decir, un número secuencial que identifica una semana de desarrollo
9165 - Número de revisión de SVN, correspondiente a la última confirmación que desencadenó la compilación
java: versión Java de db4o. La versión .NET se identifica con "net" para las versiones .NET 2.0 o "net35" para la versión .NET 3.5. La versión .NET incluye la versión correspondiente de Compact Framework.
El repositorio público SVN de db4o también está disponible para que los desarrolladores obtengan el código fuente y compilen versiones localmente con o sin modificaciones personalizadas.
A continuación se muestra un breve resumen de las principales características de las compilaciones de desarrollo, producción y estable:
Versión | Características |
---|---|
Estable (db4o-7.4) [16] | Sharpen release (convertidor de java a c #) |
Producción (db4o-7.4) [16] | Sharpen release (convertidor de java a c #) |
Desarrollo (db4o-7.10) [17] |
|
Última versión de Versant (db4o-8.0) [1] Noviembre de 2012 | Java , .NET 3.5 , .NET 4.0 |
Referencias
- ^ a b "Declaración de Actian sobre DB4O" . Actian . Consultado el 17 de marzo de 2015 .
- ^ "Copia archivada" . Archivado desde el original el 9 de julio de 2011 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ a b "Copia archivada" . Archivado desde el original el 4 de abril de 2011 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ a b c http://wiki.hsr.ch/Datenbanken/files/25.db4oReview.pdf
- ^ "Copia archivada" . Archivado desde el original el 17 de diciembre de 2010 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 6 de noviembre de 2010 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 18 de marzo de 2011 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 10 de octubre de 2010 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 22 de septiembre de 2010 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 12 de mayo de 2009 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 25 de febrero de 2009 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ "Información del producto" . Archivado desde el original el 2 de marzo de 2009 . Consultado el 10 de junio de 2009 .
- ^ "Copia archivada" . Archivado desde el original el 9 de julio de 2011 . Consultado el 26 de agosto de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 9 de junio de 2009 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 29 de agosto de 2008 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ a b "Copia archivada" . Archivado desde el original el 8 de febrero de 2009 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 31 de mayo de 2009 . Consultado el 10 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
Otras lecturas
- Stefan Edlich, Jim Paterson, Henrik Hörning, Reidar Hörning, La guía definitiva de db4o , Apress , 2006, ISBN 1-59059-656-0
- Ted Neward, The busy Java developer's guide to db4o , (serie de 7 artículos), IBM DeveloperWorks
enlaces externos
- http://drdobbs.com - Artículo sobre RETSCAN, un sistema de escaneo de retina que usa db4o