Base de datos relacional de objetos


Una base de datos relacional de objetos ( ORD ), o un sistema de administración de bases de datos relacionales de objetos ( ORDBMS ), es un sistema de administración de bases de datos (DBMS) similar a una base de datos relacional , pero con un modelo de base de datos orientado a objetos: los objetos, las clases y la herencia son directamente soportado en esquemas de bases de datos y en el lenguaje de consulta . Además, al igual que con los sistemas relacionales puros, admite la extensión del modelo de datos con métodos y tipos de datos personalizados .

Se puede decir que una base de datos relacional de objetos proporciona un término medio entre las bases de datos relacionales y las bases de datos orientadas a objetos . En las bases de datos relacionales de objetos, el enfoque es esencialmente el de las bases de datos relacionales: los datos residen en la base de datos y se manipulan colectivamente con consultas en un lenguaje de consulta; en el otro extremo están los OODBMS en los que la base de datos es esencialmente un almacén de objetos persistentes para software escrito en un lenguaje de programación orientado a objetos , con una API de programación para almacenar y recuperar objetos, y poco o ningún soporte específico para consultas.

La necesidad básica de una base de datos relacional de objetos surge del hecho de que tanto la base de datos relacional como la de objetos tienen sus ventajas e inconvenientes individuales. El isomorfismo del sistema de base de datos relacional con una relación matemática le permite explotar muchas técnicas útiles y teoremas de la teoría de conjuntos. Pero estos tipos de bases de datos no son óptimos para ciertos tipos de aplicaciones. Un modelo de base de datos orientado a objetos permite contenedores como conjuntos y listas, tipos de datos arbitrarios definidos por el usuario y objetos anidados. Esto trae elementos comunes entre los sistemas de tipo de aplicación y los sistemas de tipo de base de datos, lo que elimina cualquier problema de desajuste de impedancia. Pero las bases de datos de objetos, a diferencia de las relacionales, no proporcionan ninguna base matemática para su análisis profundo. [2] [3]

El objetivo básico de la base de datos relacional de objetos es cerrar la brecha entre las bases de datos relacionales y las técnicas de modelado orientadas a objetos utilizadas en lenguajes de programación como Java , C ++ , Visual Basic .NET o C # . Sin embargo, una alternativa más popular para lograr dicho puente es utilizar un sistema de base de datos relacional estándar con algún tipo de software de mapeo relacional de objetos (ORM). Mientras que los RDBMS tradicionales o productos SQL-DBMS enfocados en la gestión eficiente de datos extraídos de un conjunto limitado de tipos de datos (definidos por los estándares de lenguaje relevantes), un DBMS relacional de objetos permite a los desarrolladores de software integrar sus propios tipos y los métodos que se aplican a ellos en el DBMS.

El ORDBMS (como ODBMS o OODBMS ) está integrado con un lenguaje de programación orientado a objetos . Las propiedades características de ORDBMS son 1) datos complejos, 2) herencia de tipos y 3) comportamiento del objeto. La creación de datos complejos en la mayoría de los ORDBMS de SQL se basa en la definición de esquema preliminar mediante el tipo definido por el usuario (UDT). La jerarquía dentro de los datos complejos estructurados ofrece una propiedad adicional, la herencia de tipos . Es decir, un tipo estructurado puede tener subtipos que reutilizan todos sus atributos y contienen atributos adicionales específicos del subtipo. Otra ventaja, el comportamiento del objeto., está relacionado con el acceso a los objetos del programa. Dichos objetos de programa deben poder almacenarse y transportarse para el procesamiento de la base de datos, por lo que generalmente se denominan objetos persistentes . Dentro de una base de datos, todas las relaciones con un objeto de programa persistente son relaciones con su identificador de objeto (OID) . Todos estos puntos se pueden abordar en un sistema relacional adecuado, aunque el estándar SQL y sus implementaciones imponen restricciones arbitrarias y complejidad adicional [4] [ página necesaria ]


Ejemplo de un modelo de base de datos orientado a objetos [1]