Si bien su uso aún no está muy extendido, la base de datos orientadas a objetos está viviendo un reciente resurgir como una alternativa a las bases de datos más tradicionales y así poder satisfacer necesidades de nuevas aplicaciones que usan lenguajes de programación.

En esta entrada vamos a explicar qué es una base de datos orientada a objetos, sus principales características y cómo funcionan.

Portada base de datos orientadas a objetos

¿Qué es una base de datos orientada a objetos? Definición

Por definición una base de datos orientada a objetos es una base de datos (BDOO) en la que la información está representada mediante objetos, como los presentes en la programación orientada a objetos. Al integrarse las características de una base de datos con las de un lenguaje de programación orientado a objetos (POO), se obtiene como resultado un sistema gestor de base de datos orientada a objetos (ODBMS), que hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación (pudiendo dar soporte a uno o más de este tipo de lenguajes, como por ejemplo, Visual Basic, C++ o Java).

Aunque fue en los noventa cuando vivieron su primer apogeo, las BDOO nacieron en los años 60, de mano del doctor Nygaard, un especialista en la elaboración de sistemas informáticos noruego. Su idea base era crear un software diseñado en paralelo al objeto físico, de manera que si el objeto físico tenía 50 componentes, el software tendría a su vez 50 módulos. Para poder operar con este sistema, Nygaard creó también un lenguaje de apoyo, el Simula-67.

Se siguió trabajando en el desarrollo de este tipo de base datos orientada a objetos y unos años después, Alan Kay y Xeros tomaron de referencia el trabajo de Sumila-67 para crear otro lenguaje parecido, Smalltalk, que en los 80 daría paso a C++. Actualmente, el uso de BDOO a vuelta a cobrar importancia por la necesidad de satisfacer las necesidades de nuevas aplicaciones que emplean lenguajes de programación orientados a objetos y a la actividad de las comunidades de software libre relacionadas con ellas y los POO.

Características

Las principales características de la base de datos orientadas a objetos se pueden dividir en tres grupos:

  • Mandatorias, son aquellas características que deben estar en la BDOO de forma obligatoria, es decir, los requisitos imprescindibles que el sistema debe tener:
    • Debe soportar objetos complejos.
    • Los objetos deben tener un identificador al margen de los valores de sus atributos.
    • Encapsulación, es decir, los datos e implementación de los métodos están ocultos en los objetos.
    • El esquema de la BDOO tiene un conjunto de clases.
    • Concurrencia.
    • Recuperación.
    • Completación computacional.
    • Persistencia y manejador de almacenamiento secundario.
    • Facilidad de query.
  • Opcionales cuando no es necesario incluirlas, pero si la BDOO cuenta con ellas, hará que el sistema sea mejor, entre otras:
    • Herencia múltiple.
    • Diseño de transacciones y versiones.
    • Comprobación de clases e inferencia de la distribución.
  • Abiertas, son las características que el diseñador puede poner y que están relacionadas con la programación. Existen diferentes opciones, como por ejemplo, la representación del sistema.

Aparte de estas características, las BDOO cuentan con conceptos propios y clave del modelo de objetos, entre los que encuentran estas propiedades:

  • La encapsulación oculta información al resto de objetos, de manera que pueden impedir los conflictos o los accesos incorrectos. Consiste en unir en la clase las variables (características) y los métodos (comportamientos), de manera que solo se tiene una unidad, de la que se conoce su comportamiento, pero no los detalles internos.
  • La herencia en base de datos orientada a objetos hace referencia a que los objetos heredan comportamientos dentro de una jerarquía de clases, es decir, una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda puede llamarse clase base, clase padre, superclase, clase ancestro, etc. (dependiendo del lenguaje de programación que se esté usando)
  • El polimorfismo es la propiedad que permite que una operación pueda aplicarse a objetos de distinta tipología.

Ventajas y desventajas

Como en otros tipos de bases de datos, el modelo de base de datos orientado a objetos tiene ventajas y desventajas, que debemos sopesar a la hora de implementarlo, teniendo en cuenta las necesidades que nuestra empresa, negocio o proyecto pueda tener respecto al empleo de una base de datos u otra.

Ventajas

Entre las principales ventajas con las que cuentan la base de datos orientadas a objetos tenemos las siguientes:

  • Si estamos trabajando con lenguajes de programación orientados a objetos, son las más adecuadas, puesto que los objetos del código fuente se pueden integrar fácilmente en la base de datos.
  • Permite manipular conjuntos de datos complejos de manera más rápida, tanto para guardarse como para su consulta.
  • A cada objeto se le asigna de forma automática un código de identificación.
  • Alto nivel de confiabilidad en la ejecución de transacciones ACID, es decir, que las transacciones se completan solo cuando no existen conflictos con los datos.
  • Cuentan con un mecanismo de almacenamiento en caché que crea réplicas parciales de la base de datos, lo que mejora su rendimiento.
  • Son capaces de manejar grandes volúmenes de datos.

Desventajas

En cuanto a sus desventajas, podemos hablar de una principal y es que el uso de las BDOO está poco extendido aún (incluso cuando están experimentando ese resurgir que mencionábamos al comienzo) y esto implica que todavía no hay criterios claros de estandarización y existe poca documentación sobre los proyectos que las han implementado.

Estructura

La estructura de una base de datos orientada a objetos se basa en encapsular los datos y el código relacionado con cada objeto en una sola unidad. Las interacciones entre los objetos y el resto del sistema se realizan mediante una interfaz que se define mediante un conjunto de mensajes permitidos. Hay que tener en cuenta que los mensajes en redes informáticas hacen referencia al intercambio de solicitudes entre los objetos.

Los objetos están asociados a conjuntos de variables con los datos del objeto, de mensajes a los que responde (con o sin parámetros) y de métodos (que con el código que implementa un mensaje).

La estructura de estas BDOO se diseña a partir de una serie de diagramas con los que se establecen las clases y sus relaciones, las interacciones entre los objetos y su comportamiento:

Así, a través de un diagrama de clases se presentan las clases con sus respectivas relaciones estructurales y de herencia, que se puede acompañar de un diagrama de objetos cuando no está muy claro cómo serán las instancias de las clases.

Se emplea un diagrama de secuencias para presentar las interacciones entre los objetos organizados en una secuencia temporal y describir cómo colaboran. Mientras que el diagrama de estado muestra los posibles estados en los que pueden estar un objeto y las transacciones que pueden causar un cambio de estado, estructurando la parte dinámica, la interacción y el comportamiento entre los objetos.

¿Cómo funcionan?

La base de datos orientada a objetos se fundamenta en agrupar la información en paquetes relacionados entre sí, es decir, los datos de cada registro se combinan en un solo objeto y a su vez se incluyen todos sus atributos. A diferencia de lo que ocurre con la distribución en tablas de otras bases de datos, en las BDOO toda la información está disponible en el objeto y no repartida en filas y columnas.

Así mismo, los métodos, es decir el conjunto de acciones que pueden llevarse a cabo en cada objeto, también se pueden agrupar.

Los objetos a su vez se dividen en clases, creando así una jerarquía de clases y subclases, en la que las subclases heredan las propiedades las clases superiores y las complementan con sus propios atributos. Pero esta jerarquía no es estricta, puesto que los objetos de una clase pueden relacionarse con otras clases, formando redes. Así mismo, los objetos simples pueden combinarse para crear objetos más complejos.

El sistema de gestión de base de datos orientadas a objetos asigna de forma automática un código de identificación único a cada registro (que será inmutable), permitiendo así recuperar los objetos cuando estos se han guardado y realizar consultas.

En estas bases de datos, los objetos tienen relaciones de varios a varios, en las que los indicadores (que son invisibles al usuario, puesto que funcionan a nivel interno) son los encargados de establecer dichas relaciones entre objetos.

Finalmente, como ya hemos dicho, las BDOO no emplean lenguaje SQL, sino lenguajes de programación.

Ejemplos

Veamos algunos ejemplos de bases de datos orientadas a objetos para cerrar esta entrada ilustrando lo que hemos ido viendo en ella (aunque de momento, estas bases de datos se emplean en áreas muy específicas, como la ingeniería, las telecomunicaciones o la biología molecular, es decir, que estos ejemplos están orientado a mostrar de forma más o menos sencilla cómo funcionan).

En este primer ejemplo, pongamos que tenemos una tienda de material deportivo; en un BDOO guardaremos cada objeto con sus atributos y métodos: unos patines (el objeto), son en línea, azules, para niños, para adultos, etc. (atributos y métodos). Los patines forman parte de la clase «patines», donde podemos incluir también patines negros o patines paralelos. La clase «patines» es una subcategoría de «productos deportivos con ruedas», que incluye también la clase «monopatines». Este objeto también está relacionado a su vez con la clase «deportes de exterior». Cuando accedemos a través del código identificador único del objeto, obtenemos de todos sus métodos y atributos.

Un segundo ejemplo lo podemos ver con una librería; si esta emplease una base de datos orientada a objetos, se podría guardar «libro A» como objeto, con los atributos y métodos siguientes: tapa dura, extensión, autor, etc. Libro A podría incluirse en la clase «Novela de misterio», dentro de una subclase «Novela norteamericana». Así mismo, estas clases podrían se subcategorías de «Novelas de ficción».

En conclusión, la base de datos orientado a objetos puede almacenar y manipular datos muy complejos, pudiendo además establecer relaciones entre datos de forma directa, prescindiendo de la distribución en tablas de bases de datos más tradicionales, lo que las hace mucho más flexibles, además de poder manejar datos multimedia de forma muy eficaz. Sin embargo, su uso todavía es muy reducido, limitándose a sectores muy específicos, a la espera de que se desarrollen más estándares normalizados.

Escribe aquí tu comentario

Deja un comentario

Las siguientes reglas del RGPD deben leerse y aceptarse:
Este formulario recopila tu nombre, correo electrónico y contenido para que podamos realizar un seguimiento de los comentarios dejados en la web. Para más información revisa nuestra política de privacidad, donde encontrarás más información sobre dónde, cómo y por qué almacenamos tus datos.