EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Análisis del Whitepaper DB4O
1. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Repositorios de Información Web
02 de mayo de 2015 Página 1 de 3
Análisis del Whitepaper DB4O
1. Bases de Datos Orientadas a Objetos
Una Base de Objetos deja de emplear el tradicional concepto de tablas con tuplas, para emplear en su
lugar un nuevo modelo basado en objetos, de esta forma se deja de separar las aplicaciones de los
datos, permitiendo que ambos se operen bajo las mismas y no imponiendo estructuras y lenguajes
intermedios como SQL, sino usando el mismo lenguaje programación, de hecho la forma más fácil
de entender para alguien que ha programado es la de crear y acceder a datos en variables de tipo
objeto (o tipo arrays según el lenguaje) pero que a diferencia de las variables que están en memoria
por un tiempo finito, estos datos se encuentran almacenados en disco a través de una base de datos.
Actualmente las Bases de Objetos se encuentran en un estado transición en su madurez ya que no
son muy empleadas debido a un círculo vicioso provocado porque los desarrolladores siguen traba-
jando con técnicas antiguas como la programación estructurada. Aun así, ante la falta de ODBMS
han surgido algunas adaptaciones a través de frameworks ORM (Object-Relational Mapping) que
realizan un mapeo objeto-relacional, es decir, emplean una abstracción de objetos desde el lenguaje
de programación pero sobre un RDBMS, lo cual implica que antes de guardar objetos (información)
se deban mapear descomponiéndola en formas mínimas de expresión y organizados por tipos para así
guardarlos bajo el esquema de una BD Relacional, y el realizar la lectura entonces debe hacerse el
proceso inverso para reensamblar los datos.
Hoy en día las técnicas empleadas para programar aplicaciones están comenzando a madurar
también, empleando cada vez más la programación orientada a objetos, ello porque cada vez es más
común realizar aplicaciones más modernas con características muy complejas, de hecho German Vis-
cuso (s.f.) afirma que las bases de datos relacionales son ideales para aplicaciones tradicionales, pero
para el caso de aplicaciones más sofisticadas (geográficas, multimedia, sistemas inteligentes, etc.)
que se caracterizan por estar compuestas por objetos muy complejos, entonces se requerirá de una
Base de Objetos, por lo mismo Viscuso no recomienda usar bases de datos basadas en tablas cuando
los datos al gestionar no sean tabulares (fila-columna), y tampoco lo aconseja para servidores con
aplicaciones distribuidas ni aplicaciones que deban ser escalables.
Es en 1986 que nace el primer ODBMS llamado G-Base, ha comenzado una lenta evolución en
este tipo de sistemas, de hecho se considera una primera generación enfocada en apoyar los lenguajes
persistentes usados en inteligencia artificial, en esta primera generación se incluyen G-Base, Ge-
mStone, VBase y Statice. Posteriormente una segunda generación (la actual) se comienza a emplear
para arquitecturas cliente-servidor, entre los que se encuentran Ontos, ObjetDesign, Objectivity y
Versant. Otros sistemas más recientes como Itasca, O2 y Zeitgeist han marcado el comienzo de una
tercera generación, donde se comienzan a estandarizar lenguajes y formas de operación. Hoy en día
uno de los ODBMS más populares es GemStone (Garduño Real, 2012).
2. Principales ventajas y recomendaciones de uso de Bases de Objetos
Son diversas las características y ventajas que sobresalen para las Bases de Objetos, así pues la si-
guiente lista presenta de forma resumida características que las distinguen:
2. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Repositorios de Información Web
02 de mayo de 2015 Página 2 de 3
Lenguaje con persistencia transparente a datos: Se elimina la necesidad de emplear len-
guajes de traducción como SQL. Como resultado se obtiene menos código fuente en la apli-
cación (25-70% menos) y un desempeño mayor (10-100 veces superior).
Soportan conceptos de la orientación a objetos: Lo que permite emplear por ejemplo agre-
gación, encapsulamiento, herencia y polimorfismo.
Misma capacidad del procesamiento transaccional: Permite la concurrencia, transaccio-
nes ACID, commit y rollback, acceso en paralelo, bloqueo de datos, control de concurrencia,
integridad, por solo mencionar algunos.
Capacidades adicionales: Se pueden crear versiones de objetos, tener notificaciones ante
cambios en los objetos. También hay indexación, seguridad y tolerancia a fallos con caracte-
rísticas más avanzadas.
Permite relaciones: Se pueden emplear relaciones con todas las cardinalidades. Por ejemplo,
las relaciones bidireccionales se usan para implementar recolectores de basura y así eliminar
objetos no referenciados.
De acuerdo al whitepaper (Viscuso, s.f.), los casos en los que se recomienda emplear Bases de Obje-
tos son los siguientes:
Cuando las aplicaciones usen Gestores de Bases de Datos Embebidos, para que no resulte
intrusiva la forma de almacenar los datos y no se tenga que realizar una administración.
Cuando hay Relaciones complejas y Estructuras profundas y cambiantes en los Objetos,
las cuales son características comunes en aplicaciones sofisticadas.
Cuando se empleen Técnicas de Desarrollo Ágiles y Programación Orientada a Objetos,
para disminuir costos y tiempos, así como manipular los objetos de la misma forma que como
van a manipularse al almacenar y recuperar.
Cuando los datos se accedan por navegación en lugar de por búsqueda, ya que resulta
más fácil manipularlos que en una base de datos relacional.
3. Conclusiones
El emplear programación orientada a objetos trae diferentes beneficios, los cuales, como se explica
en el whitepaper resulta exponencial si también se emplea una base de datos orientada a objetos. Sin
embargo a pesar de todas las ventajas que se mencionan y precisamente algo que no incluyó el autor
fueron los problemas actuales que presentan estos tipos de sistemas, y es que precisamente su uso se
ha visto limitado debido a la falta de estandarización, ya que a pesar de que las bases de objetos
sean tan buenas, resulta que cada fabricante las implementa a su manera e incluso llegan a contar
con características que no siempre se encuentran en otras bases de objetos. El ejemplo más claro de
todos es SQL, pues quien lo conozca no tendrá problemas en emplear cualquier DBMS, cosa que no
sucede con las bases de objetos que no cuentan con un lenguaje estándar. Asimismo, el autor tam-
poco menciono algunas otras desventajas como el bajo nivel de granularidad al manipular los datos,
ya que precisamente con SQL se pueden llegar a realizar por ejemplo consultas a un nivel de detalle
muy alto.
En general, las bases de objetos son buenas, pero considero que aún falta que maduren, por
lo que considero que son más adecuadas para resolver problemas muy específicos y no para ser usa-
dos en cualquier sistema.
3. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Repositorios de Información Web
02 de mayo de 2015 Página 3 de 3
Referencias Bibliográficas
Garduño Real, H. (09 de Abril de 2012). Las Bases de Datos Orientadas a Objetos (BDOO) | Tópicos
avanzados de BD. Recuperado el 01 de Mayo de 2015, de Tópicos avanzados de BD:
http://lya-topicos-avanzados-de-bd.blogspot.mx/2012/04/las-bases-de-datos-orientadas-ob-
jetos.html
Viscuso, G. (s.f.). Whitepaper : Bases de Objetos.