Bases De Datos Orientadas A Objetos2

31
Cristina Huerta Aguilar Departamento Informática ASI 2008/2009 2º curso C6.Sistemas gestores de bases de datos

Transcript of Bases De Datos Orientadas A Objetos2

Cristina Huerta AguilarDepartamento InformáticaASI 2008/2009 2º cursoC6.Sistemas gestores de bases de datos

Se utilizan en aplicaciones más complejas donde no llegan las bases de datos tradicionales

Son adecuados cuando se necesita un buen rendimiento en la manipulación de datos complejos

La información se representa mediante objetos como los utilizados en la programación orientada a objetos

Cuando se integran las características de una base de datos con las de un lenguaje de programación orientado a objetos resulta un sistema gestor de base de datos orientada a objetos(OBDMS)

Base de datos: datos(tuplas) y relaciones que forman una interfaz de usuario que se define por si sola

Los datos son representados mediante objetos, las entidades de aplicación son clases y las relaciones mediante inclusión lógica

Mensaje: Intercambio de solicitudes entre objetos independientemente de su implementación

Variable: Estado del objeto Método: Implementación del mensaje

Cada objeto está asociado con: Conjunto de variables que contienen los datos de un

objeto. Las variables corresponden a los atributos del modelo E-R

Conjunto de mensajes a los que responde, un mensaje puede o no tener parámetros o tener uno o varios

Conjunto de métodos, cada uno de los cuales es el código que implementa un mensaje. El método devuelve un valor como respuesta al mensaje

CLASES DE OBJETOS class empleado { / / Variables string nombre; string dirección; date fecha de alta; int sueldo; / / Mensajes int sueldo-anual (); string obtenerNombre (); string obtenerDireccion (); int definirDireccion (string nueva-dir); int antigüedad(); };

Las bases de datos orientadas a objetos (BDOO) se diseñan para trabajar con lenguajes de programación como Java, C#, C++ y Visual basic.Net

Al crear un sistema de BD Orientado a Objetos se deben tener en cuenta unas características que están divididas en tres grupos: Mandatorias Opcionales Abiertas

Son aquellas obligatorias Son las que debe cumplir el sistema al tener un

sistema de BDOO Objetos complejos, Identidad de objetos,

Encapsulación, Tipos o clases, Sobrepaso con unión retardada, Extensibilidad, Completación Computacional, Persistencia y Manejador de almacenamiento secundario, Concurrencia, Recuperación y Facilidad de Query

Criterios que debe satisfacer un sistema de BDOO: Debe tener un BDMS Debe ser un sistema OO

El primer punto consiste en: Persistencia Manejador de almacenamiento secundario Concurrencia Recuperación Facilidad de Query

El segundo punto consiste en: Objetos Complejos Identidad del Objeto Encapsulación Tipos ó Clases Sobrepaso con combinación retrasada Extensibilidad Completación Computacional

Extensibilidad: proporciona tipos de datos básicos Concurrencia: permite que más de 1 usuario tenga

acceso a la BD a la vez Recuperación: vuelta al estado anterior al realizar

una transacción que no se ha finalizado

No son obligatorias y se ponen para hacer que el sistema sea mejor

Herencia múltiple, chequeo de tipos e inferencia de distribución y diseño de transacciones y versiones

Herencia múltiple: obtiene características de padres diferentes y proporciona mecanismos de que opción conviene más

Son aquellas en las que el diseñador puede poner de su parte y que están relacionadas con la programación

Paradigma de la programación, Representación o tipo del sistema y su uniformidad

Identidad de objetos Constructores de tipos Encapsulamiento Compatibilidad con los lenguajes de programación Jerarquías de tipos y herencia Manejo de objetos complejos Polimorfismo y sobrecarga de operadores Creación de versiones.

Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos

La estructura orientada a objetos impone automáticamente las restricciones relacionales: dominio, llave de integridad de identidad, identidad referencial

Propiedades OID Es generado por el sistema

Propiedades OID (continuación) Su valor no es visible para el usuario externo, sino

usado por el sistema para identificar el objeto y crear y manejar las referencias entre objetos

Es inmutable así preserva la identidad Es preferible que solo se use una vez, aunque se

elimine el objeto de la BD La inmutabilidad y el preservar la identidad implican

que el OID no dependa de atributo alguno del objeto

En las BDOO los estados de objetos complejos se pueden construir a partir de otros objetos mediante constructores

Estos objetos se representan mediante un identificador, un constructor y un estado o valor

Constructores básicos Constructores de átomos Constructores de tuplas Constructores de conjuntos

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

Los lenguajes de POO se utilizan para trabajar con la base de datos

Hay lenguajes en los que se puedan integrar estos conceptos:

Extender un lenguaje para tratamiento de datos como SQL añadiendo tipos complejos y POO creando sistemas relacionales orientados a objetos, se llaman sistemas relacionales orientados a objetos

Coger un lenguaje de programación orientado a objetos extendiéndolo para que trabaje con BD, se llaman lenguajes de programación persistentes

A la hora de elegir que opción usar, tener en cuenta que los lenguajes de programación persistentes son muy potentes y es fácil cometer errores que dañen a las BD. La optimización de alto nivel y la reducción de E/S de disco es difícil

Hay clases generales (superclases) que definen las características comunes a un determinado grupo

Las clases específicas (subclases) especifican cualidades características de un determinado grupo

Las subclases heredan los métodos y atributos de las superclases, de miembros mas altos de la jerarquía

Ejemplo:Class persona { string nombre; string dirección; }; Class cliente persona { int interés-prestamo; }; Class empleado persona{ date fecha de alta; int sueldo; };

Los objetos son complejos ya que necesitan un espacio sustancial para almacenarse a parte de no tener los valores típicos de un SGBD

Soluciones: Utilizar técnicas de almacenamiento intermedio

para obtener porciones del objeto antes que el programa de aplicación necesite tener acceso a ellas

Crear bibliotecas de tipos de datos y operaciones

Un objeto se puede comportar de formas diferentes según a que subclase pertenezca

Ejemplo:

OBJETO_GEOMETRICO: Forma, Area, PuntoCentral RECTANGULO subtype_of OBJETO_GEOMETRICO (Forma=´rectángulo’):

Ancho, Altura TRIANGULO subtype_of OBJETO_GEOMETRICO (Forma=´triángulo’):

Lado1, Lado2, Angulo CIRCULO subtype_of OBJETO_GEOMETRICO(Forma=´círculo’): Radio

Hay aplicaciones de BD que necesitan varias versiones del mismo objeto

Generalmente hay que modificar módulos de diseño e implementación

Si el sistema está operativo habrá que crear otro modulo igual al que queremos modificar y modificar la réplica

Se crea un grafo de versiones con todas las réplicas del módulo en la que hemos hecho cambios

Un SGBDOO debe controlar y almacenar las versiones del objeto

El diseñador puede especificar la estructura de objetos y determinar sus operaciones

Flexibilidad y manejo de tipos complejos Manipula datos complejos de forma rápida Tienen más rapidez de pasar de un objeto a otro que

las BDR. El JOIN es más lento que los punteros de los objetos

El agrupamiento es más eficiente, lo que reduce el tiempo de recuperación de datos de disco ya que solo necesita una lectura a disco por la agrupación

Inmadurez en el mercado Falta de estándares en la programación OO, lo que

supone un riesgo para los usuarios a parte de un coste alto y necesidad de un tiempo de pruebas considerable

No hay agrupamiento físico de objetos

Bases de Datos. Modelos, Lenguajes, DiseñosJames L. Johnson. Sistemas de Bases de DatosElmasri /Nawathe. Fundamentos de Bases de DatosHenry Korth/Abraham Silverschatz/Sudargham.

Cuáles son las principales características de una BDOO?

Que creéis que saldrá mas rentable una BDOO o una relacional?

Que ventajas les encontráis a las BDOO?Y a las relacionales?

Que características encontráis que superan a las de las BD relacionales?

Para que casos reales creéis que son mejores las BDOO?

Cuando diseñáis una base de datos en que cosas os fijáis antes de diseñarla?

Que BD creéis que es más fácil de mantener para 1 aplicación de la vida cotidiana?