Вы находитесь на странице: 1из 23

BASES DE DATOS ORIENTADAS A OBJETOS Y BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS

Miguel ngel Almansa Felipe Jess Mara Corts Paniagua

Bases de Datos Orientadas a Objetos

ndice
Bases de datos orientadas a objetos
1 .Introduccin. 2 .Manifiesto de los SGBD orientados al objeto. 3 .El modelo orientado a objetos. 4 .Lenguajes de programacin persistentes. 5 .Ventajas y desventajas de los SGBDOO. 6. Estndar ODMG

ndice
Bases de datos relacionales orientadas a objetos
Introduccin Relaciones anidadas Los tipos complejos y la programacin orientada a objetos. Comparacin entre BDOO y BDROO.

1.Introduccin.
Las aplicaciones de bases de datos tradicionales consisten en tareas de procesamiento de datos, tales como la banca y la gestin de nminas que presentan tipos de datos simples. Los elementos de datos bsicos son registros pequeos con campos atmicos. En los ltimos aos, la tecnologa de las bases de datos se ha aplicado a otros campos como por ejemplo, las herramientas CASE, el diseo asistido por computador (CAD) o las bases de datos multimedia cuyos requerimientos y caractersticas difieren de las tpicas aplicaciones de gestin: se necesitan tipos de datos complejos, las transacciones son de larga duracin, y se necesita asociar un comportamiento asociado a cada tipo de objeto.

Las bases de datos tradicionales no estn diseadas para almacenar objetos. Esto supone que la complejidad de los programas orientados a objetos se incremente significativamente al guardar los datos. Las bases de datos orientadas a objetos (BDOO) se disearon para simplificar la Programacin Orientada a Objetos (POO). Estas nuevas BDOO emplean las mismas estructuras y relaciones que los lenguajes de POO. Comparacin de Arquitecturas En los SGBD relacionales, el modelo de datos se distribuye en tablas, lo que implica un proceso complicado de traduccin de objetos a registros o tablas. Este proceso implica: - Mayor tiempo de desarrollo Se necesita generar cdigo para traducir objetos a tablas y tablas a objetos. - Errores de traduccin

En los SGBDOO, en cambio las clases se transportan a la BD tal y como son. Qu es un SGBOO? Un SGBDOO es un SGBD que almacena objetos y por tanto posee todas las ventajas de la orientacin a objetos.

2. Manifiesto de los SGBD orientados al objeto


Este manifiesto propone 13 caractersticas obligatorias para los SGBDOO, basado en dos criterios: debe ser un sistema orientado a objetos y debe ser un SGBD (Atkinson et al., 1989). Caractersticas: 1. Debe soportar objetos complejos: Debe ser posible construir objetos complejos aplicando constructores a objetos bsicos. 2. Identidad del objeto: Todos los objetos deben tener un identificador que es independiente de los valores de sus atributos. 3. Encapsulamiento: Los programadores solo tienen acceso a la especificacin de interfaz de los mtodos, y los datos e implementacin de estos mtodos estn ocultos en los objetos.

4.

Tipos o clases : El esquema de una BBOO contiene un conjunto de clases o tipos. 5. Tipos o clases deben ser capaz de heredar de sus supertipos o superclases: los atributos y mtodos. 6. Sobrecarga debe ser soportada: Los mtodos deben poder aplicarse a diferentes tipos. 7. El LMD debe ser completo : El LMD en los SGBDOO debe ser un lenguaje de programacin de propsito general. 8. El conjunto de tipos de datos debe ser extensible: No habr distincin entre tipos definidos por el usuario y tipos definidos por el sistema. 9. Persistencia de datos: los datos deben mantenerse despus de que la aplicacin que los cre haya finalizado. El usuario no tiene que hacer copia explcitamente. 10. El SGBD debe ser capaz de manejar grandes BD

11. El SGBD debe soportar Concurrencia : Debe disponer de mecanismos para el control de concurrencia. 12. Recuperacin: el SGBD debe proveer mecanismos de recuperacin de la informacin en caso de fallo del sistema. 13. El SGBD debe proveer un manera fcil de hacer consultas.

3.El modelo orientado a objetos


El Modelo de Objetos especifica la semntica que se puede definir explcitamente (caractersticas, cmo se relacionan los distintos objetos, cmo se nombran e identifican los objetos).El modelo de datos orientado a objetos tiene varios aspectos que vemos a continuacin: --Estructura de los objetos: .En general los objetos se corresponden con las entidades del modelo E/R. El paradigma orientado a objetos se basa en el encapsulamiento de los datos y del cdigo relacionados con cada objeto en una sola unidad. .Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes.

. La interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos. . En general cada objeto est asociado con: -Un conjunto de variables que contiene los datos del objeto (se corresponden con los atributos en el modelo E/R. -Un conjunto de mensajes a los que responde. -Un conjunto de mtodos, cada uno de los cuales es cdigo que implementa un mensaje; el mtodo devuelve un valor como respuesta al mensaje. . El trmino mensaje (invocar a un mtodo) hace referencia al intercambio de solicitudes entre objetos, independientemente de los detalles concretos de su implementacin.

. Dado que la nica interfaz externa presentada por un objeto es el conjunto de mensajes a los que responde, resulta posible modificar las definiciones de los mtodos y de las variables sin afectar al resto del sistema. . En el modelo orientado a objetos hay que expresar cada atributo de las entidades como una variable y un par de mensajes del objeto correspondiente: la variable guarda el valor del atributo, uno de los mensajes se utiliza para leer el valor del atributo y el otro para actualizar ese valor. --Clases de objetos. . Los objetos que tienen las mismas propiedades y el mismo comportamiento se agrupan en clases.Todos los objetos de una clase (ejemplar de clase) comparten una definicin comn, diferencindose en los valores de las variables

. El concepto de clase del modelo orientado a objetos se corresponde con el concepto de tipo de entidad en el modelo E/R. -- Herencia. . El uso de Jerarqua de clases permite la definicin de una clase (denominada subclase) a partir de otra clase (denominada subclase). . Los atributos de una clase son heredados por todos sus descendientes (ahorro de memoria). . La herencia de mtodos permite aumentar la reutilizacin de cdigo.Reduce redundancias y simplifica la correccin de los programas. . El concepto de jerarqua de clases es parecido al de especializacin del modelo E/R.

-- Herencia mltiple. . Existen situaciones que no pueden representarse bien en una jerarqua de clases con estructura de rbol como la que se puede formar con la herencia simple, es decir, situaciones en las que se necesita que una clase de objetos herede de ms de una clase. . Se puede utilizar la herencia mltiple para modelar el concepto de papeles.Para comprender este concepto considrese una base de datos universitaria que tenga varias subclases de persona, como estudiante, profesor e investigador.Los objetos pueden pertenecer a varias de las categoras de manera simultnea, y cada una de ellas se denomina papel.

--Identidad de los objetos. . Los objetos de las bases de datos orientadas suelen corresponder a entidades del sistema modelado por la base de datos.Las entidades conservan su identidad aunque algunas de sus propiedades cambien con el tiempo.De manera parecida, los objetos conservan su identidad aunque los valores de las variables o las definiciones de los mtodos cambien total o parcialmente con el tiempo.Este concepto de identidad no se aplica a las tuplas de las bases de datos relacionales, donde las tuplas de una relacin slo se distinguen por los valores que contienen. . En los sistemas orientados a objetos se incluye el concepto de identidad en el modelo de datos o en el leguaje de programacin y no hace falta que el usuario proporcione ningn identificador sino que cada objeto recibe del sistema de manera automtica un identificador en el momento en que se crea, que identifica al objeto de manera unvoca.

-- Continentes de objetos. . Los objetos que contienen a otros objetos se denominan objetos complejos o compuestos. Pueden existir varios niveles de continentes pudindose crear jerarquas de continentes. . De esta forma se establece una relacin de es parte de entre los objetos que forman parte del continente de objetos y el continente. . El concepto de continente de objetos es importante en los sistemas orientados a objetos, porque permite que los diferentes usuarios examinen los datos con diferente detalle.Por ejemplo los diseadores de ruedas (llanta, radios, neumtico) pueden concentrarse en los elementos de la clase ruedas sin tener que preocuparse de los objetos de las clases cambio o frenos.

4. Lenguajes de programacin persistentes


Los lenguajes de las bases de datos se diferencian de los lenguajes de programacin tradicionales en que trabajan directamente con datos que son persistentes, es decir, los datos siguen existiendo una vez que el programa que los cre ha concluido. Las relaciones de las bases de datos y las tuplas de las relaciones son ejemplos de datos persistentes. Por el contrario los nicos datos persistentes con los que los lenguajes de programacin tradicionales trabajan son los archivos. Los lenguajes de programacin persistentes son lenguajes de programacin extendidos con constructoras para el tratamiento de datos persistentes.

Los objetos que se pueden crear en los leguajes de programacin orientados a objetos son transitorios, es decir, desaparecen en cuanto se termina el programa. Si se desea transformar un lenguaje de programacin orientado a objetos en leguaje para programacin de bases de datos, el primer paso consiste en proporcionar una manera de hacer persistentes los objetos. Se han propuesto varios enfoques: . Persistencia por clases : El enfoque ms sencillo, pero el menos conveniente, consiste en declarar que una clase es persistente. Todos los objetos de la clase son, por tanto, persistentes de manera predeterminada, mientras que los objetos de las clases no persistentes son transitorios. Este enfoque no es flexible, dado que suele resultar til disponer en una misma clase tanto de objetos transitorios como persistentes.

. Persistencia por creacin: En este enfoque se introduce una sintaxis nueva para crear los objetos persistentes mediante la extensin de la sintaxis para la creacin de objetos transitorios. Por tanto los objetos son persistentes o transitorios en funcin de la manera de crearlos. . Persistencia por marcas: Es una variante del enfoque anterior que consiste en marcar los objetos como persistentes despus de haberlos creado.Todos los objetos se crean como transitorios, pero si un objeto tiene que persistir ms all de la ejecucin del programa, hay que marcarlo de manera explcita antes de que ste concluya.En este enfoque a diferencia del anterior, la decisin sobre la persistencia o la transitoriedad se retrasa hasta despus de la creacin del objeto.

10

. Persistencia por referencia: En este enfoque uno o varios objetos se declaran persistentes (objetos raz) de manera explicita.Todos los dems objetos sern persistentes si (y slo si) se hace referencia a ellos de manera directa o indirecta desde un objeto persistente (objeto raz).Este esquema tiene la ventaja de que resulta sencillo hacer que sean persistentes estructuras de datos completas con slo declarar como persistente la raz de las mismas.Sin embargo, el sistema de bases de datos sufre la carga de tener que seguir las cadenas de referencias para detectar los objetos que son persistentes, y eso puede resultar costoso.

.Cmo se almacenan y se accede a los objetos persistentes?

Para guardar un objeto en la base de datos hay que guardar por separado la parte de datos de cada objeto, mientras que la parte de cdigo que implementa los mtodos de las clases debe guardarse en la base de datos como parte del esquema de la misma, junto con las definiciones de tipos de las clases. Hay varios enfoques de hallar los objetos de la base de datos: . Uno de los enfoques consiste en dar nombres a los objetos, igual que se hace con los archivos. Este enfoque resulta til con un nmero de objetos relativamente pequeo, pero no resulta prctico para millones de objetos. . Un segundo enfoque consiste en exponer los identificadores de los objetos o los punteros persistentes de los objetos (un puntero persistente es un tipo de puntero que sigue siendo vlido despus de finalizar un programa a diferencia de los punteros internos de memoria), que pueden guardarse de manera externa.

11

. Un cuarto enfoque es guardar las colecciones de objetos y permitir que los programas iteren sobre las mismas para hallar los objetos deseados. Las colecciones de objetos pueden a su vez modelarse como objetos de tipo coleccin.

5. Ventajas y desventajas de los SGBDOO


Ventajas
.Se reduce la distancia entre el modelo conceptual de datos y el modelo lgico del desarrollo relacional. En el SGBDOO se desarrolla un nico modelo al que acceden directamente las aplicaciones. .Simplifica la conceptualizacin La utilizacin de objetos permite representar de una forma ms natural los datos que se necesitan guardar. .Mejora la comunicacin entre los usuarios, los diseadores y los analistas.

12

. Extensibilidad: Los SGBDOO permiten construir nuevos tipos de datos a partir de tipos existentes. . Existe una nica interfaz entre el LMD y el lenguaje de programacin lo que elimina lo que elimina el problema de tener incrustar un lenguaje declarativo como SQL en un lenguaje imperativo como C. . Lenguaje de consultas ms expresivo : El lenguaje de consultas es navegacional de un objeto al siguiente, en contraste con el lenguaje declarativo SQL.El acceso navegacional es ms adecuado para manipular despliegue de partes, consultas recursivas, etc. . Soporte a esquema evolutivo : el estrecho acoplamiento entre datos y aplicaciones en un SGBDOO hace ms abordable el esquema evolutivo

. Soporte a transacciones largas: necesario para muchas aplicaciones de bases de datos avanzadas. . Aplicabilidad a aplicaciones avanzadas de bases de datos(CASE, CAD, sistemas multimedia...) como ya se ha comentado. Desventajas . Falta de un modelo de datos universal como puede ser el modelo relacional. . Falta de experiencia: en comparacin con los SGBDR, el uso de los SGBDOO es todava relativamente limitado.Esto implica un nivel de experiencia menor en este tipo de sistemas. . Falta de estndares: No existe un lenguaje de consultas estndar como SQL, aunque est el lenguaje OQL (Object Query Language) de ODMG que se est convirtiendo en un estndar de facto.

13

. Competencia con los SGBDR con una amplia experiencia, con un leguaje de consultas estndar y un modelo de datos con una slida fundamentacin terica y un mayor soporte de los productos relacionales a herramientas para usuarios finales y desarrolladores. . La optimizacin de consultas compromete la encapsulacin: optimizar consultas requiere conocer la implementacin para acceder a la BD eficientemente. . Los bloqueos a nivel de objeto, utilizados en protocolos de control de concurrencia pueden afectar al rendimiento. . Complejidad: el incremento de funcionalidad provisto por un SGBDOO, como un nico nivel de modelo de almacenamiento o soporte a transacciones largas, lo hace ms complejo que un SGBDR. La complejidad conlleva productos ms caros y difciles de usar.

. Falta de soporte a las vistas: la mayora de SGBDOO no proveen mecanismos de vistas. . Falta de soporte a la seguridad: Actualmente los SGBDOO no proveen un mecanismo adecuado de seguridad. La mayora de mecanismos estn basados en un nivel de granularidad alto y los usuarios no pueden conceder derechos de acceso a objetos o clases individuales.

14

6.Estndar ODMG
Modelo de objetos propuesto por la ODMG (Object Database Management Group). Es un consorcio industrial de vendedores de SGBDOO.No es una organizacin de estndares acreditada , pero tiene mucha influencia en lo que respecta a estndares de SGBDOO. Componentes del estndar . Modelo de objetos Proporciona un modelo de objetos estndar para las BDOO. Es en el que se basan el Lenguaje de Definicin de Objetos y el Lenguaje de Consulta. . Lenguaje de especificacin de objetos (ODL). No es un lenguaje de programacin completo.

No est ligado a la sintaxis concreta de un Lenguaje de programacin (define tipos que pueden implementarse en varios lenguajes de programacin). Un esquema de datos de objeto especificado en ODL puede ser soportado por cualquier SGBDOO que cumpla el estndar ODMG. . Lenguaje de Manipulacin de Objetos (OML). Extensiones para C++, Java y Smalltalk. Extienden el lenguaje de programacin para soportar objetos persistentes.

15

BASES DE DATOS OBJETORELACIONALES

Introduccin
Extienden el modelo de datos relacional, proporcionando un sistema de tipos mas rico que incluye la programacin orientada a objetos Aade constructoras a los lenguajes de consulta relacionales como SQL para trabajar con los tipos de datos aadidos. Los Sistemas de Bases de Datos Relacionales Orientadas a Objetos (SBDOO) proporcionan un modo de cambio adecuado para los usuarios de las bases de datos relacionales que desean utilizar caractersticas orientadas a objetos.

16

Los sistemas de tipos extendidos permiten que los atributos de las tuplas tengan tipos complejos. Estas extensiones intentan conservar las bases relacionales, en concreto el acceso declarativo a los datos, al tiempo que extienden la capacidad de modelado.

Relaciones Anidadas
En un primer lugar se presenta la motivacin del modelo relacional anidado, que permite relaciones que no cumplen la 1FN y permite la representacin directa de las estructuras jerrquicas.
Se define la 1FN como la exigencia de que todos los atributos tengan dominios atmicos. Un dominio es atmico si los elementos del mismo se consideran unidades indivisibles.

17

Relaciones Anidadas
El modelo relacional anidado (MRA) es una extensin del modelo relacional en la que los dominios pueden ser atmicos o de relacin. El valor de las tuplas de los atributos puede ser una relacin, y las relaciones pueden guardarse en otras relaciones. Los objetos complejos pueden representarse mediante una nica tupla de las relaciones anidadas. Si se consideran las tuplas de las relaciones anidadas como elementos de datos, se tiene una correspondencia uno a uno entre los elementos de datos y los objetos de la vista de la base de datos del usuario.

Los Tipos Complejos y La Programacin Orientada a Objetos


Permiten que los conceptos del modelo E-R, como la identidad de las entidades, los atributos multivalorados y la generalizacin y la especializacin, se representen directamente sin que haga falta una compleja traduccin al modelo relacional. XSQL: es un lenguaje de investigacin que extiende SQL con potentes caractersticas orientadas a objetos

18

Los Tipos Complejos y La Programacin Orientada a Objetos


Los tipos estructurados y las colecciones:
Nos permiten definir atributos que son conjuntos y atributos que estn estructurados. Estas caractersticas permiten que los atributos compuestos y los atributos multivalorados de los diagramas E-R se representen directamente. _ Ej.: create type MiFecha( da integer, mes char (10), ao integer); Los tipos creados usando las instrucciones anteriores se registran en el esquema guardado en la base de datos.

Los Tipos Complejos y La Programacin Orientada a Objetos


La Herencia:
La herencia puede hallarse en dos niveles:
9 Nivel de los Tipos: los subtipos heredan los atributos de los supertipos. Se nos plantea el problema de si una entidad tiene mas de un subtipo, debe haber un nico tipo al que la entidad pertenezca. 9 Nivel de Tablas: permite que un objeto tenga varios tipos sin necesidad de tener un tipo ms especfico. Permiten que las entidades estn en mas de una tabla simultneamente.

19

Los Tipos Complejos y La Programacin Orientada a Objetos


9 Nivel de Tablas: Hay requisitos de consistencia para las subtablas y las supertablas:
Cada tupla de la supertabla puede corresponder (tener los mismos valores para todos los mismos atributos heredados) como mximo a una tupla de cada una de las subtablas. Cada tupla de las subtablas debe tener exactamente una tupla correspondiente (con los mismos valores para todos los atributos heredados) en la supertabla.

Los Tipos Complejos y La Programacin Orientada a Objetos


Tipo Referencia:
Los lenguajes orientados a objetos proporcionan la posibilidad de hacer referencia a los objetos. El atributo de un tipo puede ser una referencia a un objeto de un tipo especificado. Las tuplas de las tablas tambin pueden tener referencias dirigidas a ellas. Se pueden hacer referencia a las tuplas de las tablas utilizando la clave primaria de las mismas. Alternativamente, cada tupla de una tabla puede tener un identificador de tuplas como atributo implcito y la referencia a la tupla ser sencillamente su identificador.

20

Comparacin entre BDOO y BDROO


Ambos tipos se encuentran en el mercado, y los diseadores de bases de datos deben escoger el tipo de sistemas que resulte ms adecuado para las necesidades de la aplicacin. Las extensiones persistentes de los lenguajes de programacin y los sistemas relacionales orientados a objetos se han dirigido a mercados diferentes. La naturaleza declarativa y la limitada potencia (comparada con la de los lenguajes de programacin) del lenguaje SQL proporciona una buena proteccin de los datos respecto de los errores de programacin y hace que las optimizaciones de alto nivel, como la reduccin de E/S, resulten sencilla.

Comparacin entre BDOO y BDOR


Los Sistemas Relacionales Orientados a Objetos (SROO) se dirigen a la simplificacin de la realizacin de los modelos de datos y de las consultas mediante el uso de tipos de datos complejos. Las aplicaciones tpicas incluyen el almacenamiento y la consulta de datos complejos, incluyendo los datos multimedia. Los lenguajes declarativos como SQL, imponen una reduccin significativa del rendimiento a ciertos tipos de aplicaciones que se ejecutan en la memoria principal y realizan gran nmero de accesos a la base de datos.

21

Comparacin entre BDOO y BDROO


Los lenguajes de programacin persistentes se dirigen a las aplicaciones que se ejecutan en memoria principal y que realizan un gran nmero de accesos a la BD, y que requieren elevados rendimientos. Proporcionan acceso a los datos persistentes con poca sobrecarga y eliminan la necesidad de la traduccin de los datos si hay que tratarlos utilizando un lenguaje de programacin. En cambio son mas susceptibles de deteriorar los datos debido a los errores de programacin y no suelen disponer de grandes posibilidades de consulta.

Comparacin entre BDOO y BDROO


Los puntos fuertes de los distintos tipos de sistemas de bases de datos pueden resumirse de la manera siguiente:
Sistemas relacionales: Tipos de datos sencillos, lenguajes de consulta potentes, proteccin elevada. Bases de datos orientadas a objetos basadas en lenguajes de programacin persistentes: Tipos de datos complejos, integracin con los lenguajes de programacin, elevado rendimiento. Sistemas relacionales orientados a objetos: Tipos de datos complejos, lenguajes de consulta potentes, proteccin elevada.

22

Referencias
.Database Systems.
Thomas Connolly, Carolyn Begg. Addison Wesley.

. Fundamentos de Bases de datos.


Abraham Silberschatz, Henry F.Korth, S.Sudarshan. Mc Graw Hill. . http://basesdatos.uc3m.es/fileadmin/Docencia/BDAII/BBDDobjetos30.pdf

23

Вам также может понравиться