Seguro que has escuchado hablar de la programación orientada a objetos POO (Object-Oriented Programming OOP), pero ¿sabías que también existe algo denominado base de datos orientada a objetos o BDOO (Object-Oriented Database OODB)? En este post te contamos en qué consiste.
¿Qué es una base de datos orientada a objetos?
Una base de datos orientada a objetos es un sistema de bases de datos que puede trabajar con datos complejos, es decir, objetos que reflejan aquellos objetos que se utilizan en el lenguaje de programación orientado a objetos.
Para entender esto, debemos entender qué es la Programación Orientada a Objetos. También debemos entender que una de las características principales que convierte a un objeto en un OOD (base de datos orientada a objetos) es la persistencia de datos de objetos.
La persistencia es la cualidad de tienen los datos orientados a objetos de guardarse en unidades de persistencia, es decir, el almacenamiento de datos en las base de datos orientada a objetos se produce de tal modo que cuando el sistema de gestión de base de datos se inicie de nuevo, se va a poder recuperar un objeto de la base de datos con todas sus propiedades.
Este proceso es distinto en las bases de datos relacionales y las bases de datos noSQL. En las primeras, el administrador de la BD necesita componer el modelo de objeto por medio de varias consultas; en las segundas, la asignación que se hace de objetos complejos a cada una de las propiedades de la clase es perfectamente clara.
Comparación con otros modelos de bases de datos
Existen diferentes tipos de bases de datos. Veamos:
Relacionales vs. Orientadas a Objetos
- Estructura: Las bases de datos relacionales utilizan tablas y relaciones, mientras que las BDOO utilizan objetos y clases.
- Consultas: En bases de datos relacionales, las consultas se realizan con SQL, mientras que en BDOO se utilizan lenguajes de consulta orientados a objetos.
- Flexibilidad: Las BDOO son más flexibles en la representación de datos complejos, mientras que las bases de datos relacionales son más adecuadas para datos estructurados y bien definidos.
NoSQL vs. Orientadas a Objetos
- Estructura de datos: Las bases de datos NoSQL pueden manejar datos no estructurados y semi-estructurados, mientras que las BDOO se centran en objetos y sus relaciones.
- Modelo de consistencia: Las bases de datos NoSQL a menudo sacrifican la consistencia en favor de la disponibilidad y partición, mientras que las BDOO pueden mantener la consistencia de los datos complejos.
Elementos de una base de datos orientada a objetos
Al estar directamente relacionada con la programación orientada a objetos, la base de datos orientada a objetos posee objetos similares, como:
Objeto
Funcionan a modo de entidades dentro de la base de datos orientada a objetos. Pueden ser personas o cosas del mundo real que ejecutan determinadas tareas. El objeto es persistente y generalmente no se modifica. Un ejemplo de objeto puede ser la entidad “Libro 1”.
Clase
Es la agrupación de todos los objetos que poseen características y comportamientos similares en las bases de datos orientadas a objetos.
Para seguir con nuestro ejemplo, en una clase podríamos guardar todos los objetos relacionados con “Libro 1”, como “Libro 2”, “Libro 3”. La clase podría ser, por ejemplo, “Novela psicológica”, la cual a su vez podría estar guardada en otra clase denominada “Novela española/colombiana/norteamericana”.
Atributos y métodos
Los atributos son propiedades del objeto. Los métodos son la forma en la que se comportan las propiedades de dicho objeto en las bases de datos orientadas a objetos.
Los atributos del objeto “Libro 1” podrían ser: tapa, título, editorial, país, autor, etc. Los métodos podrían ser: escritura del libro, edición del libro, aprobación del libro, publicación del libro, etc.
Patrones
Los patrones permiten acceder a los objetos complejos de un modelo de base de datos orientado a objetos. Implican algunos principios que se verán a continuación.
Características de una base de datos orientada a objetos
Una base de datos orientada a objetos posee las mismas características que se usan en la programación orientada a objetos. Estas son:
Polimorfismo
Es la capacidad que tiene un objeto para adoptar múltiples formas. En una BDOO esta característica hace que el mismo código de programa funcione con diferentes tipos de datos.
Herencia
Dentro de modelo de base de datos orientado a objeto, crea relaciones jerárquicas entre distintas clases que permiten que muchas partes del código puedan reciclarse. Esta es quizás uno de los grandes objetivos de las BDOO y de la POO en general: la habilidad de poder usar código de un programa en la realización de otro programa, ya que todas las estructuras y clases tienen un patrón y un orden específico que está perfectamente alineado con las características y clases necesarias (herencia).
Encapsulación
Es la capacidad de agrupar diferentes datos y objetos en una sola clase u objeto mayor, para poder brindar seguridad al sistema realizado. Por medio de este proceso se pueden ocultar piezas de información, por ejemplo, el anonimato del autor de un libro.
Las clases interactúan entre sí a través de métodos y no es necesario saber cómo funcionan otros métodos particulares que hacen que esas clases funcionen, es decir, solo se muestra lo necesario.
Abstracción
La encapsulación del modelo de base de datos orientado a objetos hace que el proceso de abstracción en una base de datos orientada a objetos sea posible, ya que elimina toda la información no esencial y permite representar solo las características de datos relevantes para la funcionalidad necesaria.
La abstracción permite simplificar los datos modelados y a su vez posibilita la reutilización de esos datos de los elementos orientado a objetos.
Los portales G2 y DB-Engines coinciden en que algunos de los sistemas gestores de una base de datos orientada a objetos más famosos son:
- El gestor orientado a objetos de InterSystems Caché.
- El gestor orientado a objetos de Intersystems IRIS.
- El gestor orientado a objetos de Giga spaces.
- El gestor orientado a objetos de ObjectBox.
- El gestor orientado a objetos de ObjectStore.
Si quieres seguir aprendiendo sobre esta temática, te invitamos a unirte a nuestro Bootcamp en programación inicial, en donde podrás instruirte con profesores de primera y aprender todas las bases de la programación. ¡Anímate a solicitar más información y dale un giro a tu carrera!