análisis del whitepaper db4o

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 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:

Upload: hector-garduno-real

Post on 24-Jan-2017

179 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Análisis del Whitepaper DB4O

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:

Page 2: Análisis del Whitepaper DB4O

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.

Page 3: Análisis del Whitepaper DB4O

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.