Base de datos orientada a objetos: el secreto mejor guardado de los modelos de bases de datos

La mayoría de las personas que gestionan regularmente bases de datos, como los programadores de software, desarrolladores web o bibliotecarios, trabajan con bases de datos relacionales o con los correspondientes sistemas gestores de base de datos (SGBD), como MySQL o MariaDB. No obstante, hay otras alternativas: las bases de datos orientadas a objetos (también llamadas bases de datos de objetos) apenas se utilizan, pero pueden mejorar mucho el rendimiento de algunos proyectos.

¿Qué son las bases de datos de objetos?

El modelo de base de datos orientada a objetos agrupa la información en paquetes relacionados entre sí: los datos de cada registro se combinan en un solo objeto, con todos sus atributos. De esta manera, toda la información está disponible en el objeto, ya que sus datos quedan agrupados en lugar de distribuidos en diferentes tablas. En los objetos no solo pueden guardarse los atributos, sino también los métodos, lo que refleja la afinidad de estas bases de datos con los lenguajes de programación orientados a objetos: al igual que en estos, cada objeto presenta un conjunto de acciones que pueden llevarse a cabo.

Los objetos se dividen a su vez en clases. Más concretamente, un objeto es una unidad concreta de una clase abstracta, lo que crea una jerarquía de clases y subclases. Dentro de esta estructura, las subclases adoptan las propiedades de las clases superordinadas y las complementan con sus propios atributos. Al mismo tiempo, los objetos de una clase también pueden relacionarse con otras clases, lo que rompe la jerarquía estricta y permite formar redes. Los objetos simples también pueden combinarse para crear objetos más complejos.

Para gestionar los diversos objetos, el SGBD orientado a objetos correspondiente asigna automáticamente un código de identificación único a cada registro, que permite recuperar los objetos una vez que se han guardado.

Ejemplo: en el contexto de una base de datos orientada a objetos, podemos guardar una bicicleta como objeto, con todos sus atributos y métodos: es roja, se puede conducir, tiene sillín, etc. Este objeto forma parte de la clase “bicicletas”, en la que, por ejemplo, también podría incluirse una bicicleta azul y otra verde. A su vez, la clase “bicicletas” es una subcategoría de “vehículos”, que también incluye la clase “coches”. Por otra parte, el objeto también está relacionado con la clase “actividades de ocio”. Si accedemos a este objeto a través de su código de identificación único, dispondremos directamente de todos sus métodos y atributos.

Bases de datos orientadas a objetos vs. relacionales

Como hemos dicho, las bases de datos relacionales son el estándar en programación y desarrollo web desde hace mucho tiempo. En este modelo, la información se almacena en tablas relacionadas entre sí. Las relaciones también permiten almacenar y consultar información compleja compuesta por varios elementos, al igual que en las bases de datos de objetos. En las últimas, sin embargo, todos los atributos de cada objeto están disponibles de inmediato y, además, los registros pueden ser mucho más complejos. Por otra parte, con las bases de datos relacionales, lo más habitual es intentar simplificar al máximo la información que se introduce. Cuanto más complejo se vuelve el conjunto de los datos, más extensas son las relaciones entre ellos, lo que ralentiza la base de datos.

Ventajas e inconvenientes del modelo de base de datos orientada a objetos

El modelo de base de datos con el que decidamos trabajar dependerá mucho del uso que queramos darle. Las bases de datos de objetos son especialmente adecuadas si ya estamos trabajando con lenguajes de programación orientados a objetos, como Java, porque los objetos del código fuente se pueden integrar fácilmente en la base de datos. Si recurrimos a una base de datos relacional, lo que suele ser lo más frecuente, nos costará incorporar objetos complejos a la estructura tabular.

Uno de los inconvenientes de este modelo es que su uso está poco extendido. Aunque se conoce desde la década de 1980, hasta ahora solo se han desarrollado unos pocos SGBD para bases de datos orientadas a objetos. La comunidad que se dedica a mejorar este modelo también es relativamente pequeña. Por ello, la mayoría de los desarrolladores prefieren utilizar bases de datos relacionales, que están generalizadas, bien documentadas y mucho más desarrolladas.

Lo que supone una ventaja en ciertas situaciones puede convertirse en un inconveniente en otras: la complejidad de los objetos garantiza que hasta las consultas y anotaciones más complejas puedan llevarse a cabo mucho más rápido que en los modelos relacionales. Sin embargo, si los procesos son sencillos en comparación, no se puede prescindir de la estructura compleja, lo que puede conllevar problemas de ralentización.

Ventajas Inconvenientes
Los conjuntos de datos complejos pueden guardarse y consultarse de forma rápida y sencilla. El uso de las bases de datos orientadas a objetos no está muy extendido.
Los códigos de identificación se asignan automáticamente a cada objeto. En algunas situaciones, la gran complejidad puede acarrear problemas de rendimiento.
Funciona bien con lenguajes de programación orientados a objetos.  
Consejo

Existen otras alternativas a MySQL y otros programas similares: por ejemplo, las bases de datos orientadas a documentos han demostrado ser muy ligeras y flexibles. Por su parte, las bases de datos orientadas a columnas son muy adecuadas para trabajar con grandes cantidades de datos.