Академический Документы
Профессиональный Документы
Культура Документы
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.
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.
. 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.
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.
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.
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
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.
18
19
20
21
22
Referencias
.Database Systems.
Thomas Connolly, Carolyn Begg. Addison Wesley.
23