Download - 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?