Investigación sobre estado del arte y aplicación de SBDOO

| 2013-07-15 | No hay comentarios »

Introducción

Una base de datos orientada a objetos es una base de datos donde los elementos son objetos. Estos pueden ser bases de datos multimedia (videos, imágenes y sonidos), donde la herencia nos permita una mejor representación de la información, estas bases de datos tienen una identidad de ser un Todo, y no solo una parte de una gran base, por ejemplo una base de secuencias de ADN.

Un SBDOO extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades.

El objetivo de una base de datos orientada a objetos son los mismos que los de las bases de datos tradicionales, pero con la ventaja de representar los modelos de datos con un marco mucho más eficiente, manteniendo la integridad y relación entre ellos.

Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes de programación orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo que estos lenguajes de programación.

Historia

Las base de datos orientadas a objetos fue un tema que se pensó revolucionaría la manera de hacer persistente la información en los softwares durante los años 90.

En la actualidad es evidente que esto no fue así. Sin embargo, un resurgimiento de este concepto, gracias a las comunidades de software libre, y la identificación de aplicaciones idóneas para el mismo, motivan la revisión de las características de esta alternativa a las omnipresentes bases de datos relacionales.

Características

  • Mandatorias: son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO y estos son: Objetos complejos, Identidad de Objetos, Encapsulación, Tipos o clases, Sobre paso con unión retardada, Extensibilidad, Completación Computacional, Persistencia y Manejador del almacenamiento secundario, Concurrencia, Recuperación y Facilidad de Query.
  • Opcional: Son las que pueden ser añadidas para hacer el sistema mejor pero que no son Mandatorias, estas son de: herencia múltiple, chequeo de tipos e inferencia de distribución y diseño de transacciones y versiones.
  • Abiertas: Son los puntos donde el diseñador puede hacer un número de opciones y estas son el paradigma de la programación, la representación del sistema o el tipo de sistema y su uniformidad.

Ventajas

La clave que posee la BDOO es el poder que confieren al diseñador para especificar tanto la estructura de objetos complejos como las operaciones que se pueden aplicar a esos objetos.

Está su flexibilidad, y soporte para el manejo de tipos de datos complejos. Ya que puedo tener clases y subclases creadas por ejemplo una base de clientes puede tener una subclase de la referencia de este cliente y esta heredara todos sus atributos y característica de la clase original.

La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida y ágilmente. La estructura de la base de datos está dada por referencias (o apuntadores lógicos) entre objetos.

Desventajas

Al considerar la adopción de la tecnología orientada a objetos, la inmadurez del mercado de BDOO constituye una posible fuente de problemas. Hay muy pocos manejadores de base de datos en el mercado que soporten este tipo de arquitectura.

Quizá esta sea una de las causas por las cuales las SBDOO aún no tengan ese crecimiento que en algún momento tantas expectativas generaron.

Aspectos Tecnológicos

Las Bases de Datos Orientadas a Objetos permiten que múltiples usuarios compartan objetos complejos y los manipulen en un ambiente seguro y estructurado. Las bases de datos convencionales fueron diseñadas para manejar tipos de datos alfanuméricos y por esto difícilmente pueden manipular objetos y métodos (los métodos son los comportamientos definidos de los objetos).

Rendimiento

Las BDOO permiten que los objetos hagan referencia directamente a otro mediante apuntadores suaves. Esto hace que las BDOO pasen más rápido del objeto A al objeto B que las BDR, las cuales deben utilizar comandos JOIN para lograr esto. Incluso el JOIN optimizado es más lento que un recorrido de los objetos. Así, incluso sin alguna afinación especial, una BDOO es en general más rápida en esta mecánica de caza-apuntadores.

Las BDOO hacen que el agrupamiento sea más eficiente. La mayoría de los sistemas de bases de datos permiten que el operador coloque cerca las estructuras relacionadas entre sí, en el espacio de almacenamiento en disco. Esto reduce en forma radical el tiempo de recuperación de los datos relacionados, puesto que todos los datos se leen con una lectura de disco en vez de varias.

 

SBDOO comerciales

Entre los primeros se encuentran los sistemas ORIONOpenOODBIRISODE y el proyecto ENCORE/ObServer.

Entre los sistemas más reconocidos disponibles en el mercado están: GEMSTONE/OPAL de ServicLogic, ONTOS de Ontologic, Objectivity de Objectivity Inc., Versant de Versant Technologies, ObjecStore de Object Design y O2 de O2 Technology.

SBDOO libre: Db4o de db4objects (libre y de código abierto).

 

Lo que se espera de los SBDOO

  • Compatibilidad con los actuales SMBDR
  • Mejorar las herramientas de desarrollo de aplicaciones y de acceso a la BD. (Interfaz gráfica para generar las aplicaciones y reportes, herramientas de administración.
  • Puente entre los SMBDR y los SMBDOO para permitir su coexistencia.

 

Caso de éxito

Sistema: INDRA , SBDOO: db4o.

INDRA: Sistema de Control de  Trenes de Alta Velocidad de Misión Crítica

Indra Sistemas, la compañía líder en Tecnologías de la Información y Sistemas de defensa españoles ganó el contrato para construir el centro de control para el sistema de trenes bala de alta velocidad AVE de España. INDRA fue pionera en la utilización de db4o como una base de objetos de misión crítica, a prueba de fallos y de tiempo real. db4o provee la base de datos detrás de la inteligencia de este sistema integrado de control de trenes de alta velocidad (IRC).

Escrito en su totalidad en Java, IRC está a la vanguardia de los sistemas de administración de transportes. Indra se apoya en el tamaño reducido, velocidad y simplicidad de db4o para el diseño de la compleja arquitectura del sistema de control.

El conocimiento de Indra sobre aplicaciones de tiempo real los llevó a la conclusión de que el sistema se beneficiaría con una base de objetos. La arquitectura utilizada por Indra incluye tres áreas de administración permitiendo diferentes grados de accesibilidad y control de las líneas:

• Red en Tiempo Real

• Red en Tiempo Real Aproximado y

• Red Corporativa/Intranet/Internet.

Indra eligió la base de objetos db4o para administrar y controlar todas las capas del sistema conectando a una base de datos relacional en la red corporativa. La velocidad de db4o permite al sistema procesar más de 200,000 objetos por segundo»

El uso de db4o por parte de Indra les permitió enfocar los esfuerzos en el diseño y desarrollo de un modelo de información complejo e inteligente sin tener que preocuparse por las cuestiones tecnológicas relacionadas al almacenamiento de objetos. La base de objetos db4o permitió un diseño orientado a objetos puro.

Acerca de db4o

db4o se utiliza en algunas de las compañías más grandes del mundo incluyendo a BMW, Hertz, y Bosch. db4objects es una compañía de bienes privados ubicada en San Mateo, California y soportada por inversores de Silicon Valley reconocidos como Mark Leslie, CEO fundador de Veritas, quien actúa como presidente en la actualidad.

Conclusión

Con este trabajo práctico se concluye que los sistemas de bases de datos orientadas a objetos integran las características de una base de datos con las de un lenguaje de programación orientado a objetos, son creados gracias a la falta de capacidad semántica del modelo relacional con el propósito de atender nuevos tipos de aplicaciones.

Una base de datos orientada a objetos permite a una aplicación guardar sus objetos de clase a partir de estos mismos modelos de clase, dichos modelos además representan el esquema de base de datos. Esto elimina el tiempo dedicado al código de mapeo.

Los SBDOO son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulación de tipos de dato complejos. Proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje de programación orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento.

Bibliografía

Libro Korth & Silberschaft – Fundamentos de Bases de Datos, cuarta Edición.

Internet:

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Uso de db4o en Java