Está en la página 1de 22

Grupo 3 BD Orientada a Objetos

BD Objeto
Relacional

BASES DE DATOS ORIENTADAS A OBJETOS Y
BASES DE DATOS OBJETO - RELACIONALES
BASES DE DATOS ORIENTADAS A OBJETOS:

ü Introducción a las Bases de datos Orientadas a Objetos.
ü Conceptos relacionados con las bases de datos orientadas a objetos.
ü Origen de las Bases de Datos Orientadas a Objetos.
ü Estructura de una bdoo.
ü Identidad de objetos.
ü Características de las Bases de Datos Orientadas a Objetos y diferencias de éstas con
respecto a las relacionales.
ü Manifiesto Malcolm Atkinson: características de un BDOO.
ü Ventajas e inconvenientes de las BDOO.
ü ODMG: el estándar de facto para modelos de objetos.

BASES DE DATOS OBJETO-RELACIONALES:

ü Introducción a las Bases de datos Objeto-Relacionales.
ü Características de las Bases de datos Objeto-Relacionales.
ü Tipos de Datos definidos por el Usuario.
ü Herencia de tipos.
ü POSTGRES.
ü SQL 99.

PNFI “931” Modelado de Datos

Grupo 3 BD Orientada a Objetos
BD Objeto
Relacional

INTRODUCCIÓN A LAS BASES DE DATOS ORIENTADAS A OBJETO

Las bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos está
orientado a objetos y almacenan y recuperan objetos en los que se almacena estado y
comportamiento. Su origen se debe a que en los modelos clásicos de datos existen problemas
para representar cierta información, puesto que aunque permiten representar gran cantidad de
datos, las operaciones que se pueden realizar con ellos son bastante simples.

Las clases utilizadas en un determinado lenguaje de programación orientado a objetos son las
mismas clases que serán utilizadas en una BDOO; de tal manera, que no es necesaria una
transformación del modelo de objetos para ser utilizado por un SGBDOO. De forma contraria,
el modelo relacional requiere abstraerse lo suficiente como para adaptar los objetos del mundo
real a tablas.

Las bases de datos orientadas a objetos surgen para evitar los problemas que surgen al tratar de
representar cierta información, aprovechar las ventajas del paradigma orientado a objetos en el
campo de las bases de datos y para evitar transformaciones entre modelos de datos (usar el
mismo modelo de objetos).

CONCEPTOS RELACIONADOS CON LAS BASES DE DATOS ORIENTADAS A
OBJETOS

En este apartado se explican los conceptos relacionados con las BDOO:

· Base de datos orientada a objetos (BDOO): una colección persistente y compatible de
objetos definida por un modelo de datos orientado a objetos.

PNFI “931” Modelado de Datos

· Dificultades para gestionar las consultas recursivas. puesto que los modelos clásicos permiten representar gran cantidad de datos. · El paso del modelo de objetos al modelo relacional genera dificultades que en el caso de las BDOO no surgen ya que el modelo es el mismo. pero las operaciones y representaciones que se pueden realizar sobre ellos son bastante simples. · Sobrecarga y poca riqueza semánticas. · Sistema Gestor de Bases de Datos Orientadas a Objetos (SGBDOO): El gestor de una base de datos orientada a objetos. PNFI “931” Modelado de Datos . · Estructura de datos homogénea.Grupo 3 BD Orientada a Objetos BD Objeto Relacional · Modelo de datos orientado a objetos: Un modelo de datos que captura la semántica de los objetos soportados en la programación orientada a objetos. las bases de datos orientadas a objetos surgen básicamente para tratar de paliar las deficiencias de los modelos anteriores y para proporcionar eficiencia y sencillez a las aplicaciones. · Operaciones limitadas. · Soporte inadecuado para las restricciones de integridad y empresariales. Las debilidades y limitaciones de los SGBDR son: · Pobre representación de las entidades del `mundo real'. ORIGEN DE LAS BASES DE DATOS ORIENTADAS A OBJETOS El origen de las BDOO se encuentra básicamente en las siguientes razones: · La existencia de problemas para representar cierta información y modelar ciertos aspectos del `mundo real'. Por lo tanto.

· No ofrecen soporte para tipos definidos por el usuario (sólo dominios). ESTRUCTURA DE UNA BDOO El paradigma orientado a objetos se basa en el encapsulamiento de datos y del código relacionado con cada objeto en una sola unidad. · Objetos con comportamientos complejos. Se puede encontrar este tipo de complejidad acerca de tipos de datos. · Integración de los datos con sus procedimientos asociados. todas las interacciones entre PNFI “931” Modelado de Datos . las BDOO no están restringidas a estas áreas. Ya que al ofrecer la misma funcionalidad que su precursoras relacionales. · Facilidades de evolución. simulaciones. · Jerarquías de objetos o tipos y herencia. · Identificadores únicos. el resto de campos de aplicación tiene la posibilidad de aprovechar completamente la potencia que las BDOO ofrecen para modelar situaciones del mundo real. relaciones entre objetos y comportamiento de los objetos principalmente en aplicaciones de ingeniería. · Modelos extensibles mediante tipos de datos definidos por el usuario. · Interconexión e interoperabilidad. el uso de BDOO es más ventajoso si se presenta en alguno de los siguientes escenarios: · Un gran número de tipos de datos diferentes. · Manipulación navegacional y de conjunto de registros. No obstante. Mientras que las necesidades de las aplicaciones actuales con respecto a las bases de datos son: · Soporte para objetos complejos y datos multimedia. · Soporte a referencias e interrelaciones. · Transacciones de larga duración. · Problemas asociados a la concurrencia. automatización de oficina y en numerosos sistemas de información. · Un gran número de relaciones entre los objetos. Debido a las limitaciones anteriormente expuestas. · Gestión de versiones. Conceptualmente. cambios en los esquemas y el inadecuado acceso navegacional. manufacturación.Grupo 3 BD Orientada a Objetos BD Objeto Relacional · Desadaptación de impedancias.

· Un conjunto de mensajes a los que responde. }. independientemente de los detalles correctos de su implementación. Mensaje en entorno OO no implica uso de mensajes físicos en redes informáticas. PNFI “931” Modelado de Datos . cada mensaje puede o no tener parámetros o tener uno o varios. strin dirección. Se utiliza a veces la expresión invocar un método para detonar al hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente. En general. / / Mensajes int sueldo-anual (). string obtenerDireccion (). EJEMPLOS: CLASES DE OBJETOS class empleado { / / Variables string nombre.Grupo 3 BD Orientada a Objetos BD Objeto Relacional cada objeto y el resto del sistema se realizan mediante mensajes. Por el contrario. Por lo tanto. int sueldo. int antigüedad(). cada objeto esta asociado con: · Un conjunto de variables que contiene los datos del objeto. las variables corresponden con los atributos del modelo E-R. el método devuelve un valor como respuesta al mensaje. hace referencia al intercambio de solicitudes entre los objetos. · Un conjunto de métodos. string obtenerNombre (). int definirDireccion (string nueva-dir). la inferfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mesajes permitidos. cada uno de los cuales es el código que implementa un mensaje. date fecha de alta.

Un sistema de BDOO debe contar con algún mecanismo para generar los OID con la propiedad de inmutabilidad. así. pues estos valores pueden cambiar. u OID. El valor de un OID no es visible para el usuario externo. su OID no se deberá asignar a otro objeto. Estas dos propiedades implican que el OID no debe depender del valor de ningún atributo del objeto. utilizan los mismos métodos y tienen variables del mismo nombre y tipo). Sin embargo. pese a que se diferencien en los valores asignados a las variables. dando la nueva ubicación física del objeto.Grupo 3 BD Orientada a Objetos BD Objeto Relacional Generalmente en una base de datos hay muchos objetos similares (se entiende que responden a los mismos mensajes. Algunos modelos de datos OO requieren que todo se represente como un objeto. El ejemplo Empleado muestra las variabes y los mensajes que responden a los objetos de la clase. sino que el sistema lo utiliza a nivel interno para identificar cada objeto de manera única y para crear y manejar las referencias entre objetos. esto es aunque un objeto se elimine de la Base de datos. Por tanto sería un derroche definir por separado cada uno de estos objetos. los objetos se agrupan para formar clases. Esta identidad única suele implementarse con un identificador de objeto único. como un entero. generado por el sistema. no se muestran aquí los métodos para el tratamiento de los mensajes. Con ello dos valores básicos pueden tener diferentes OID. tiene un OID. Todos los objetos de una clase comparten una definición común. También suele considerarse inapropiado basar el OID en la dirección física del objeto en el almacenamiento. Por ejemplo. Si la dirección física cambia. puede colocarse un apuntador indirecto en la dirección anterior. en algunas ocasiones se podría usar el valor entero 50 PNFI “931” Modelado de Datos . ya que una reorganización de los objetos de la base de datos podría cambiar los OID. Por tanto. La principal propiedad que debe tener un OID es la de ser inmutable. Los principales conceptos que se utilizan en las BDOO son: IDENTIDAD DE OBJETOS Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos. todo valor básico. ya sea un valor simple o un objeto complejo. También es preferible que cada OID se utilice sólo una vez. es decir. una cadena o un valor booleano. Esto preserva la identidad del objeto del mundo real que se está presentando. algunos sistemas sí usan la dirección física como OID para aumentar la eficiencia de la obtención de los objetos. lo cual es muy útil en algunos casos. El concepto de clase del modelo orientado a objetos se corresponde con el concepto de entidad del modelo E-R. el valor del OID para un objeto en particular nunca debe cambiar.

generalmente más aplicables: dominio. pero los valores no tienen OID y se representan así mismo. los valores (o estados) de los objetos complejos se pueden construir a partir de otros objetos mediante ciertos constructores de tipos. los números reales. y en otras para referirse a la edad de una persona. las fechas y cualesquiera otros tipos de datos que el sistema maneje directamente. * La estructura orientada a objetos automáticamente impone las restricciones relacionales. • Constructores de conjuntos. Aunque resulta útil como modelo teórico. Una forma de representar tales objetos es considerar a cada objeto como tripleta (i. las cadenas de caracteres. Otros constructores de uso más común son los de listas y de arreglos. PNFI “931” Modelado de Datos . v). • Constructores de tuplas. llave integridad de entidad e integridad referencial. También existe un dominio D que contiene todos los valores atómicos básicos que están disponibles directamente en el sistema. una indicación de cómo se construye el valor del objeto) y v es el valor (o estado) del objeto. * Los objetos tienen identidades únicas. Por lo regular estos incluyen los enteros. ENCAPSULAMIENTO: * Tanto la estructura de los objetos como las operaciones que se pueden aplicar a ellos se incluyen en las definiciones de clases de los objetos. CONSTRUCTORES DE TIPOS En las BDOO. y ambos tendrían el mismo valor básico de 50. Por ello también . los tipos boléanos. donde i es un identificador de objeto único (el OID). Así podrían crearse dos objetos básicos con diferentes OID. esto no es muy práctico porque puede obligar a generar demasiados OID.Grupo 3 BD Orientada a Objetos BD Objeto Relacional para representar un peso en Kilogramos. según el modelo de datos y el sistema OO. independientes de los valores de sus atributos. Puede haber varios constructores. Todo objeto debe tener un OID inmutable. la mayor parte de los sistemas de BDOO permiten representar tanto objetos como valores. c. c es un constructor (esto es. Los tres constructores básicos son: • Constructores de átomos.

por lo tanto los conceptos de la Programación Orientada a Objetos se utilizan simplemente como herramientas de diseño y se codifican. Estos lenguajes se denominan lenguajes de programación persistentes. La complejidad de los lenguajes hace la optimización automática de alto nivel.Grupo 3 BD Orientada a Objetos BD Objeto Relacional COMPATIBILIDAD CON LENGUAJES DE PROGRAMACION Si se sigue el enfoque cuando se utilizan los diagramas de Entidad-Relacion para modelar los datos y luego se convierten de manera manual en un conjunto de relaciones. sin tener que pasar por un lenguaje para el tratamiento de datos como SQL. como la reducción de E/S de disco. desde el lenguaje de programación. resulte dificil. Los sistemas proporcionan extensiones orientadas a objetos a los sistemas relacionales se denominan sistemas relacionales orientados a objetos. Para permitir la representación directa de paracidos entre las clases. JERARQUIA DE TIPOS Y HERENCIA Los esquemas de BDOO suelen necesitar un gran número de clases. lo cual especifica atributos y métodos adicionales para una clase existente. Se denominan persistentes porque los datos siguen existiendo una vez que el programa que los creó ha concluido. • Otra opción es tomar un lenguaje de programación orientado a objetos ya existente y extenderlo para que trabaje con las bases de datos. Estos lenguajes permiten a los programadores trabajar directamente con los datos. utilizandose para trabajar con una base de datos. * A la hora de decidir que opción utilizar se debe tener en cuenta que los Lenguajes Persistentes suelen ser potentes y resulta relativamente sencillo cometer errores de programación que dañen las vases de datos. hay que ubicarlas en una jerarquía de especializaciones. El concepto de jerarquía de clases es parecido al de especialización del modelo E-R. la posibilidad de las consultas declarativas es de gran importancia. Las especializaciones de las clases son denominaas subclases. En muchas aplicaciones. varias clases son parecidad entre sí. Algunas de PNFI “931” Modelado de Datos . Los objetos creados por medio de una subclases heredan todos los atributos y métodos de la clase padre. Hay varios lenguajes posibles en los que se pueden integrar estos conceptos: • Una opción es extender un lenguaje para el tratamiento de datos como el SQL añadiendo tipos complejos y la programación orientada a objetos. pero los lenguajes persistentes no permiten actualmente las consultas declarativas sin que aparezcan problemas de algun tipo. Sin embargo.

y como un tipo incluye tanto estructura como operaciones. En un SGBOO. incluso con tipos complejos. Como un SGBOO permite a los usuarios crear nuevos tipos. strin dirección. }. int sueldo. int horas-trabajadas MANEJO DE OBJETOS COMPLEJOS Los objetos se consideran complejos porque requieren un área de almacenamiento sustancial y no forman parte de los tipos de datos estándar que suelen ofrecer los SGBD. Class secretaria isa empleado { int velocidad. Puesto que el tamaño de los objetos es considerable. un SGBD podría obtener una porción del objeto y proporcionarla al programa de aplicación antes de obtener todo el objeto. Podemos crear bibliotecas de nuevos tipos definiendo su estructura y operaciones.Grupo 3 BD Orientada a Objetos BD Objeto Relacional estas caracteristicas heredadas pueden ellas mismas haber sido heredadas de clases más altas en la jerarquía. Class empleado isa persona{ date fecha de alta. }. esto puede lograrse definiendo un nuevo tipo de datos abstracto para los objetos no interpretados y suministrado los médos para seleccionar. Class cliente isa persona { int interés-prestamo. Ejemplo: Ejemplo: (Grafico) Class persona { string nombre. }. podemos considerar que un SGBOO tiene un sistema de tipos extensibles. El SGBD podría también usar técnicas de almacenamiento intermedio y caché para obtener por anticipado porciones del objeto. antes de que el programa de aplicación necesite tener acceso a ellas. PNFI “931” Modelado de Datos . comprar y exhibir tales objetos.

Altura TRIANGULO subtype_of OBJETO_GEOMETRICO (Forma=´triángulo’): Lado1. posiblemente heredado. procesa la señal. * Es posible almacenar y manipular objetos complejos tanto estructurados como no estructurados. al incluir cualesquiera atributos heredados de clases padres. se aplican actividades de mantenimiento a un sistema de software conforme sus requerimientos evolucionan. Un método puede tener acceso directamente a atributos de un objeto destino por no nombre. POLIMORFISMO El polimorfismo se refiere al uso de la misma firma de mensaje para dirigir diferentes métodos en diferentes clases. Si el sistema ya está en operación. En síntesis este concepto permite enlazar el mismo nombre o símbolo de operador a dos o más implementaciones diferentes del operador. PuntoCentral RECTANGULO subtype_of OBJETO_GEOMETRICO (Forma=´rectángulo’): Ancho. Lado2. que se pueden pasar “tal cual” al programa de aplicación para que las interprete. Area. Por lo regular. el diseñador deberá crear una nueva versión de cada uno de ellos para efectuar cambios. Cuando el diseñador envía una señal a un objeto. PNFI “931” Modelado de Datos . y si es preciso modificar uno o más módulos. Angulo CIRCULO subtype_of OBJETO_GEOMETRICO(Forma=´círculo’): Radio CREACION DE VERSIONES Muchas aplicaciones de bases de datos que usan sistemas OO requieren la existencia de varias versiones del mismo objeto. dependiendo del tipo de objetos a los que éste se aplique. pero debe tener acceso a atributos de otros objetos con señales secudarias. el método de la clase de objeto . Por lo regular. el mantenimiento implica modificar algunos de los módulos de diseño y de implementación. EJEMPLO: OBJETO_GEOMETRICO: Forma.Grupo 3 BD Orientada a Objetos BD Objeto Relacional Muchos SGBDOO pueden almacenar y obtener objetos no estructurados extenso en forma de cadenas y caracteres o de bits.

un SGBDOO debe ser capaz de almacenar y controlar múltiples versiones del mismo objeto. Un objeto en BDOO como en POO es una entidad identificable unívocamente que describe tanto el estado como el comportamiento de una entidad del `mundo real'. CARACTERÍSTICAS DE LAS BASES DE DATOS ORIENTADAS A OBJETOS Y DIFERENCIAS DE ÉSTAS CON RESPECTO A LAS RELACIONALES. Esto se llama ingeniería concurrente. Mientras que en una BDR los datos a almacenar se almacenan representados en tablas en un BDOO los datos se almacenan como objetos. además del módulo original. Cuando se permite la creación de múltiples versiones. Como se deduce del análisis anterior. Es necesario de que sus cambios sean compatibles. PNFI “931” Modelado de Datos . como un sistema de software. siempre llega el momento en que es preciso combinar (fusionar) estas dos versiones para que la versión hibrida incluya los cambios realizados. Sin embargo. El estado de un objeto es descrito mediante atributos mientras que su comportamiento es definido mediante métodos. es posible que cada una de esos módulos tenga varias versiones distintas y un grafo de versiones. Se puede actualizar concurrentemente las propias versiones del mismo módulo del software. Un objeto complejo. puede constar de muchos módulos. En caso que se requieran dos versiones.Grupo 3 BD Orientada a Objetos BD Objeto Relacional Cabe señalar que puede haber más de dos versiones de un objeto.

los SGBDOO permiten al usuario especificar qué atributos y métodos son visibles en la interfaz del objeto y pueden invocarse desde afuera. de inclusión y paramétrico. Características obligatorias de orientación a objetos: 1) Deben soportarse objetos complejos. o Herencia simple. 2) Deben soportarse mecanismos de identidad de los objetos. son equivalentes pero tienen identidades diferentes. sobrecarga (overloading) y suplantación o anulación (overriding).Grupo 3 BD Orientada a Objetos BD Objeto Relacional Las características asociadas a las BDOO son: · Objetos: cada entidad del mundo real se modela como un objeto. Los OID son independientes del contenido. Las trece características obligatorias estaban basadas en dos criterios: debía tratarse de un sistema orientado a objetos y un SGBD. ligadura tardía (late binding). PNFI “931” Modelado de Datos . La mayoría de los SGBDOO permite el acceso directo a los atributos incluyendo operaciones definidas por el propio SGBDOO las cuales leen y modifican los atributos para evitar que el usuario tenga que implementar una cantidad considerable de métodos cuyo único propósito sea el de leer y escribir los atributos de un objeto. o Polimorfismo de operación. Generalmente este identificador no es accesible ni modificable para el usuario (modo de aumentar la integridad de entidades y la integridad referencial). único para cada objeto. Object Identifier). Si dos objetos tienen el mismo estado pero diferentes OID. múltiple y repetida. o Objetos complejos. sigue siendo el mismo objeto con el mismo OID. · La forma de identificar objetos es mediante un identificador de objetos (OID. MANIFIESTO MALCOLM ATKINSON: CARACTERÍSTICAS DE UN BDOO En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos el cual propuso trece características obligatorias para un SGBDOO y cuatro opcionales. Es decir. Generalmente. · Encapsulamiento: cada objeto contiene y define procedimientos (métodos) y la interfaz mediante la cual se puede acceder a él y otros objetos pueden manipularlo. · Otros conceptos utilizados de la misma manera que en la POO son: o Clases. si un objeto cambia los valores de atributos.

también tienen sus desventajas. Esto se debe a: o Un objeto permite encapsular tanto un estado como un comportamiento.. 3) Sistema de base de datos distribuido. 8) El conjunto de todos los tipos de datos debe ser ampliable. 4) Deben soportarse los tipos o clases. Características obligatorias de SGBD: 9) Debe proporcionarse persistencia a los datos. El modelado de datos orientado a objetos permite modelar el `mundo real' de una manera mucho más fiel. 4) Soporte de versiones. 6. Las ventajas de un SGBDOO son: · Mayor capacidad de modelado. o Un objeto puede almacenar todas las relaciones que tenga con otros objetos. Aunque los SGBDOO pueden proporcionar soluciones apropiadas para muchos tipos de aplicaciones avanzadas de bases de datos. PNFI “931” Modelado de Datos . 2) Comprobación de tipos e inferencia de tipos. 13) El SGBD debe proporcionar una forma simple de consultar los datos. 12) El SGBD debe ser capaz de recuperarse de fallos hardware y software. 7) El DML debe ser computacionalmente complejo. 5) Los tipos o clases deben ser capaces de heredar de sus ancestros.Grupo 3 BD Orientada a Objetos BD Objeto Relacional 3) Debe soportarse la encapsulación. 10) El SGBD debe ser capaz de gestionar bases de datos de muy gran tamaño.Ventajas e inconvenientes de las BDOO. 11) El SGBD debe soportar a usuarios concurrentes. 6) Debe soportarse el enlace dinámico. Características opcionales: 1) Herencia múltiple.

Carencia de estándares. el modelo relacional tiene una sólida base teórica y los productos relacionales disponen de muchas herramientas de soporte que sirven tanto para desarrolladores como para usuarios finales. Los SGBDOO proporcionan mejoras significativas de rendimiento con respecto a los SGBD relacionales. El acceso navegacional es más adecuado para gestionar operaciones como los despieces. No hay ningún modelo de datos que esté universalmente aceptado para los SGBDOO y la mayoría de los modelos carecen una base teórica. OIS. lo que repercute en una mayor facilidad de mantenimiento y un menor tiempo de desarrollo. Con respecto a los SGBDR y los SGBDOR. Aunque hay autores que han argumentado que los bancos de prueba usados están dirigidos a aplicaciones de ingeniería donde los SGBDOO son más adecuados. o Agrupación de propiedades comunes de diversas clases e incluirlas en una superclase. Hay muchas áreas en las que los SGBD tradicionales no han tenido excesivo éxito como el CAD. También está demostrado que los SGBDR tienen un mejor que los SGBDOO en las aplicaciones tradicionales de bases de datos como el procesamiento de transacciones en línea (OLTP). Esto se debe a: o Se pueden construir nuevos tipos de datos a partir de los ya existentes. consultas recursivas. etc. Competencia. SQL es un estándar aprobado y ODBC es un estándar de facto. Estos productos tienen una experiencia de uso considerable. · Adecuación a las aplicaciones avanzadas de base de datos. o Reusabilidad de clases. · Lenguaje de consulta más expresivo. Carencia de experiencia. · Mayores prestaciones. Los inconvenientes de un SGBDOO son: Carencia de un modelo de datos universal. sistemas multimedia. Todavía no se dispone del nivel de experiencia del que se dispone para los sistemas tradicionales. PNFI “931” Modelado de Datos . Mientras que SQL utiliza el acceso asociativo. Además. · Ampliabilidad. El acceso navegacional desde un objeto al siguiente es la forma más común de acceso a datos en un SGBDOO. etc. Existe una carencia de estándares general para los SGBDOO. lo que reduce la redundancia. CASE.Grupo 3 BD Orientada a Objetos BD Objeto Relacional o Los objetos pueden agruparse para formar objetos complejos (herencia). en los que las capacidades de modelado de los SGBDOO han hecho que esos sistemas sí resulten efectivos para este tipo de aplicaciones.

· Lenguaje de definición de objetos (ODL. ODMG: EL ESTÁNDAR DE FACTO PARA MODELOS DE OBJETOS ODMG es un grupo de representantes de la industria de bases de datos el cual fue concebido en el verano de 1991 con el objetivo de definir estándares para los SGBDOO. La sintaxis de ODL extiende el lenguaje de definición de interfaces (IDL) de la arquitectura CORBA (Common Object Request Broker Architecture). OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas sobre bases de datos orientadas a objetos. Object Definition Language).0. sean portables entre los sistemas que lo soportan. propone los siguientes componentes principales de la arquitectura ODMG para un SGBDOO: · Modelo de objetos. proporcionando un superconjunto de la sentencia SELECT. que permite portar tanto los diseños como las implementaciones entre diversos sistemas compatibles. es el del modelo para la semántica de los objetos de una base de datos.Grupo 3 BD Orientada a Objetos BD Objeto Relacional La optimización de consultas compromete la encapsulación. · Conexión con los lenguajes C++. OQL no posee primitivas para modificar el estado de los objetos. ODL es un lenguaje para definir la especificación de los tipos de objetos para sistemas compatibles con ODMG. Define los atributos y las relaciones entre tipos y especifica la signatura de las operaciones. La última versión del estándar. Smalltalk y Java (al menos). La optimización de consultas requiere una compresión de la implementación de los objetos. ODL es el equivalente de DDL (Data Definition Languaje o lenguaje de definición de datos) de los SGBD tradicionales. Sin embargo. ya que éstas se deben realizar PNFI “931” Modelado de Datos . Está basado en SQL-92. esto compromete el concepto de encapsulación. incluyendo primitivas de alto nivel para conjuntos de objetos y estructuras. El modelo de objetos ODMG es un superconjunto del modelo de objetos de OMG. Su principal objetivo es el de facilitar la portabilidad de los esquemas entre sistemas compatibles al mismo tiempo que proporciona interoperabilidad entre distintos SGBD. El modelo de objetos aún no tiene una teoría matemática coherente que le sirva de base. El modelo de objetos ODMG permite que tanto los diseños como las implementaciones. · Lenguaje de consulta de objetos (OQL. ODMG 3. el cual lleva el mismo nombre del grupo (ODMG). para poder acceder a la base de datos de manera eficiente. Uno de sus estándares. Object Query Language).

la tecnología relacional y la tecnología de objetos. Se soportan tipos complejos como: registros. C.WHERE... conjuntos. lo que implica que se debe definir al menos dos métodos transformadores: . CARACTERÍSTICAS DE LAS BASES DE DATOS OBJETO-RELACIONALES Con las Bases de Datos Objeto-Relacional. Se pueden compartir varias bibliotecas de clases ya existentes.. Se pueden crear operadores asignándole un nombre y existencia de nuevas consultas con mayor capacidad consultiva. etc. etc. pilas. INTRODUCCIÓN A LAS BASES DE DATOS OBJETO-RELACIONALES Una Base de Datos Objeto Relacional (BDOR) es una base de datos que desde el modelo relacional evoluciona hacia una base de datos más extensa y compleja incorporando para obtener este fin. conjuntos. referencias. Java.) sino que las relaciones pueden ser definidas en función de otras. esto es lo que conocemos como reusabilidad. Existe una mayor capacidad expresiva para los conceptos y asociaciones. aunque la estructura de las tuplas no está restringida a contener escalares (tipos compuestos como vectores. se pueden crear nuevos tipos de datos. Se pueden crear funciones que tengan un código en algún lenguaje de programación como por ejemplo: SQL. listas. Estos pueden ser tipos compuestos. conceptos del modelo orientado a objetos. PNFI “931” Modelado de Datos .Otro que convierte de ASCII al nuevo tipo.Uno para convertir el tipo nuevo a ASCII .Grupo 3 BD Orientada a Objetos BD Objeto Relacional a través de los métodos que dichos objetos poseen. En una base de datos objeto-relacional se siguen almacenando tuplas.. como en SQL. que permiten gestionar aplicaciones más complejas con una gran riqueza de dominios.. La sintaxis básica de OQL es una estructura SELECT. Podemos decir que un Sistema de Gestión Objeto-Relacional (SGBDOR) contiene dos tecnologías.FROM. colas y arreglos... que es lo que denominamos herencia directa. Se soporta el encadenamiento dinámico y herencia en los tipos tupla o registro.

TIPOS DE DATOS DEFINIDOS POR EL USUARIO Los usuarios pueden definir sus propios tipos de datos. MÉTODOS A la vez que creamos un tipo de objeto.FechaNacimiento() calcula la fecha de nacimiento del alumno almacenado en x. o escritos en C almacenándose externamente.Los tipos de objetos (object types) . Estos tipos de datos pueden pertenecer a dos categorías distintas: .Grupo 3 BD Orientada a Objetos BD Objeto Relacional Posibilidad de incluir el chequeo de las reglas de integridad referencial a través de los triggers. TIPOS DE OBJETOS Un tipo de objetos define a lo que conocemos como una entidad del mundo real. Anotar como punto final de este apartado. A continuación mostramos un ejemplo: si x es una variable PL/SQL que almacena objetos del tipo Alumnos_T.Unos métodos que son procedimientos o funciones escritos en el lenguaje PL/SQL almacenándose de esta forma en la base de datos. realizamos la especificación de los métodos. . Soporte adicional para seguridad y activación de la versión cliente-servidor. a partir de los tipos básicos provistos por el sistema o por otros tipos de datos predefinidos anteriormente por el usuario. entonces x. que representan la estructura y los valores de los datos de ese tipo. Se los pueden interpretar como una plantilla de objetos de ese tipo. Está compuesto por los siguientes elementos: .Los tipos para colecciones (collection types). Los métodos se pueden ejecutar sobre los objetos de su mismo tipo.Unos atributos que pueden ser de un tipo de datos básico o de un tipo definido por el usuario. PNFI “931” Modelado de Datos . y es que aumenta la complejidad del sistema y por tanto se ocasiona un aumento del coste asociado.Para identificar el tipo de objetos se utiliza un nombre. el inconveniente que tienen las BDOR. .

un valor positivo si ocurre lo contrario y un cero si ambos son iguales.Grupo 3 BD Orientada a Objetos BD Objeto Relacional MÉTODOS CONSTRUCTORES DE TIPO Todos los tipos de objetos tienen asociado por defecto un método que se encarga de construir nuevos objetos de ese. Así es posible almacenar un conjunto de tuplas en un único atributo.Un método ORDER utiliza los atributos del objeto sobre el que se ejecuta para realizar un cálculo y compararlo con otro objeto del mismo tipo que toma como argumento de entrada. e implementa una relación de asociación entre los dos tipos de objetos. Un atributo de tipo REF almacena una referencia a un objeto del tipo definido. permiten que puedan ser referenciados desde los atributos de otros objetos o desde las columnas de tablas. . El nombre del método es el mismo que el nombre del tipo. El tipo de datos proporcionado por Oracle para soportar esta facilidad se denomina REF. REFERENCIAS ENTRE OBJETOS Los identificadores únicos. Este método debe devolver un valor negativo si el primero es mayor que el segundo. éstos pueden utilizarse para definir otros tipos.Un método de MAP es utilizado para indicar cuál de los atributos del tipo se va a utilizar para ordenar los objetos del tipo. Para poder hacer posible la realización de una comparación es necesario escoger entre un método MAP o un método ORDER: . tablas que almacenen objetos de esos tipos. y sus parámetros que tenemos en dicho método son los atributos del tipo de objetos. Esta acción se lleva a cabo indicando cuál es el criterio de comparación. todos del mismo tipo. MÉTODOS DE COMPARACIÓN Estos métodos son utilizados para que se pueda comparar los objetos de un cierto tipo. PNFI “931” Modelado de Datos . en forma de array o de tabla anidada. Por ejemplo podemos definir una tabla que utiliza un tipo de datos complejo para una de sus columnas. Un dato de tipo colección está formado por un número indefinido de elementos. Una tabla de objetos es una clase especial de tabla que almacena un objeto en cada fila. TABLAS DE OBJETOS Tras definir los tipos de objetos. TIPOS PARA COLECCIONES Los tipos para colecciones se definen para poder implementar relaciones 1:N. o para definir el tipo de los atributos de una tabla.

se almacenará aparte de la tabla como un BLOB. que es lo que conocemos como polimorfismo. PNFI “931” Modelado de Datos . Un tipo VARRAY se puede utilizar para: . o de un tipo de objetos definido por el usuario. No se produce ninguna reserva de espacio al declarar un tipo VARRAY. Estas tablas solamente pueden tener una columna que puede ser de un tipo de datos básico. Cada elemento tiene asociado un índice que indica su posición dentro del array. .Definir el tipo de datos de un atributo de un tipo de objetos. desde el objeto general supertipo TIPO_PERSONA podemos definir el subtipo TIPO_EMPLEADO que heredarán las características de su supertipo TIPO_PERSONA. Es imposible poner condiciones sobre los elementos almacenados dentro de un VARRAY. EL TIPO VARRAY Un array es un conjunto ordenado de elementos del mismo tipo. Esta es la principal limitación que tiene este tipo de dato. o el tipo que devuelve una función. El tipo objeto especializado TIPO_EMPLEADO pueden tener atributos adicionales o pueden redefinir métodos del objeto padre TIPO_PERSONA extendiendo la funcionalidad de sus tipos objeto. En caso contrario. Aparte de que los subtipos definen sus propios atributos y sus métodos.Para definir una variable PL/SQL. TABLAS ANIDADAS Una tabla anidada es un conjunto de elementos del mismo tipo en el que no existe un orden predefinido. Los subtipos son capaces de redefinir los métodos que heredan. Los argumentos de entrada de estas funciones son el conjunto de elementos que forman la colección separados por paréntesis. un parámetro. Por ejemplo. si el espacio que requiere lo permite. HERENCIA DE TIPOS La herencia de tipos surge por la posibilidad de definir tipos que sean subtipos de otros supertipos. los subtipos heredan los atributos y los métodos definidos para sus supertipos.Definir el tipo de datos de una columna de una tabla relacional. . Se almacenará con el resto de columnas de su tabla. en las consultas.Grupo 3 BD Orientada a Objetos BD Objeto Relacional Los tipos para colecciones también tienen por defecto unas funciones constructoras de colecciones cuyo nombre coincide con el del tipo.

member function PAGA( ) return number.Pueden ser definidos para tener uno o más atributos.Grupo 3 BD Orientada a Objetos BD Objeto Relacional CREATE TYPE TIPO_PERSONA AS Object (nombre varchar2(25). El usuario puede introducir en las relaciones atributos de tipo básico o predefinidos por el mismo. los cuales pueden ser: -Tipos empotrados como INTEGER -Tipos de colección como ARRAY. POSTGRES también mantiene la propiedad de herencia entre tipos de objetos de las bases de datos objeto-relacionales. Desarrollando de una manera más rápida y compleja estos tipos para su desarrollo. member function PRINTME( ) return varchar2) not final. SQL:99 permite crear los tipos estructurados definidos por el usuario. funciones y procedimientos. En 1986 se continuó con el desarrollo del código de Ingres para crear el primer SGBD objeto- relacional. -Todos los aspectos de su comportamiento son provistos mediante métodos. En este sistema se mejora el modelo relacional a partir de que los usuarios pueden crear sus propios tipos. CREATE TYPE TIPO_EMPLEADO UNDER TIPO_PERSONA (sueldo number. fecha_nac date member function EDAD( ) return number. Estos tipos estructurados tienen un número de características: . PNFI “931” Modelado de Datos . POSTGRES Comenzó como un proyecto denominado Ingres en la Universidad Berkeley de California. overriding member function PRINTME( ) return varchar2). u otro tipo de estructuras. SQL 99 Se trata de un SGBD objeto-relacional.

.Existe las jerarquías de tipo. PNFI “931” Modelado de Datos .Sus atributos son encapsulados mediante el uso del sistema generador observador y mutador de funciones (funciones get y set ). en las cuales más tipos especializados (subtipos) tienen todos sus atributos y todos los métodos de los tipos generalizados (supertipos).Las comparaciones de sus valores son únicamente realizadas mediante funciones definidas por el usuario.Grupo 3 BD Orientada a Objetos BD Objeto Relacional . pero pueden agregar nuevos atributos y métodos particulares. .

Autores: Thomas M. 4ª Edición. Ampueda Indira . Begg.es/iiguia/DBD/Practicas/boletin_1.Wesley. Editorial: Pearson Addison.pdf ODMG en la Wikipedia. http://en. Editorial: McGraw Hill. Korth.es/documentos/BD/T3-ModeloOR. Lorenzo Martino.wikipedia. Autores: Elisa Bertino. Sistemas de bases de datos: Un enfoque práctico para diseño.es/iiguia/DBD/Teoria/capitulo_4. Silva Pastor PNFI “931” Modelado de Datos .Grupo 3 BD Orientada a Objetos BD Objeto Relacional BIBLIOGRAFÍA: Sistemas de bases de datos orientadas a objetos: Conceptos y arquitecturas. 5ª Edición. Autores: Clara Martín Sastre y Enrique Medarde Caballero. Editorial: Addison- Wesley / Diaz de Santos.es/~fgarcia/docencia/poo/02-3/trabajos/S1T3. Connolly. Bases de Datos Orientadas a Objeto y el estándar ODMG.uv.pdf http://informatica. Perez Vanitza .uv. Carolyn E.usal.urjc. Fundamentos de Bases de datos. Sudarshan. Vargas Oscar .escet.pdf http://kybele. http://tejo. Alvarado Nilson . implementación y gestión.pdf http://informatica.org/wiki/ODMG Participantes: . Autores: Silberschatz.