350 likes | 543 Views
Base de Datos Orientada Objetos. Visión Global del Curso Evolución e Historia de los Sistemas de Gestión de Base de Datos Requisitos de Gestión de base de Datos Orientados a Objetos. ORGANIZACION. Michael Grossniklaus ETH Zurich Politecnico di Milano
E N D
Base de Datos Orientada Objetos Visión Global del Curso Evolución e Historia de los Sistemas de Gestión de Base de Datos Requisitos de Gestión de base de Datos Orientados a Objetos
ORGANIZACION Michael Grossniklaus ETH Zurich Politecnico di Milano IFW D 46.2 Campus Bassini, Room 18/103 +41 44 632 72 73 +39 022 399 3474 grossniklaus@inf.ethz.ch grossniklaus@elet.polimi.it Alexandre de Spindler ETH Zurich IFW D 47.1 +41 44 632 74 16 despindler@inf.ethz.ch
Ejercicios: Este curso estará acompañado por los siguientes ejercicios. Trabajo con las tecnologías tratadas en el curso de sesiones. Tutoría por semana. A partir del 03 de octubre del 2008 IFW UN 32,1,11,12 Alexandre de Spindler Opcional, pero muy recomendable
EXAMEN: CONVOCATORIA 19 de ENERO del 2009 – 13 de FEBRERO del 2009. Las excepciones se pueden organizar para estudiantes de intercambio. Examen Oral de Inglés Duración 15 minutos. 5 ECTS
Visión general del curso I. Fundamentos de bases de datos orientadas a objetos1. introducción2. La persistencia de objetos3. db4oII. Conceptos avanzados de bases de datos orientadas a objetos4. Normas y Sistemas Comerciales5. De almacenamiento e indexación6. modelos de la versiónIII. Los datos objeto semántico de gestión7. OM Modelo de datos y Lenguaje Modelo de Datos8. Diseño e Implementación de OMS Avon9. Context-Aware Data Management Diseño
Bases de Datos jerárquicas Los datos organizados en un árbol Un padre puede tener muchos hijos. Un niño sólo puede tener uno de los padres. Los registros descritos por los tipos de entidad 1: N (uno a muchos) las relaciones Consulta por el recorrido de navegación Ejemplos El sistema de archivos LDAP del Registro de Windows y Active Directory documentos XML y XQuery
Bases de Datos de Red Los datos organizados en el gráfico (red) un padre puede tener muchos hijos. un niño puede tener muchos padres. BachmanndiagramasLos tipos de registro definir las propiedadestipos de conjunto de relaciones definidasentre padres e hijos, (doble) lista enlazada, ... Consulta por el gráfico de navegación EjemplosCODASYL
Bases de Datos Relacionales Modelo relacional es muy simplesólo los conceptos básicos → referencias deben ser simuladas sistema de tipo restringido → no definidos por el usuario La falta de modelado semántico datos complejos, control de versiones, los roles poco apoyo para los datos y la evolución del esquema objeto-relacional de impedancia desajuste.
Bases de Datos Relacionales Los datos organizados en las tuplas en las relaciones Enlace entre los datos de tuplas claves primarias y foráneas El álgebra relacionalproyecto, seleccione, se unen formas normales de relación Lenguaje declarativode definición de datos, la consistencia, la manipulación y la consulta EjemplosOracle 11g, Microsoft SQL Server, IBM DB2PostgreSQL, MySQL
Diferencia de impedancia objeto-relacional El desarrollo de aplicaciones orientadas a objetos y relacionales son resultado de la gestión de datos en el choque de dos modelos incompatibles. Código de mapa entre los modelos es una sobrecarga considerable, costosa y difícil de mantener.
Base de datos orientadas a objetos • Los datos representados como objetos • Objeto de identidad • Atributos y métodos • Referencias, relaciones, asociaciones • Jerarquía de tipos extensible • Definidos por el usuario, tipos de datos abstractos • Herencia simple o múltiple • Sobrecarga, anulación, enlace • Lenguaje declarativo para efectos especiales • Vinculante para lenguaje de programación orientado a objetos
Base de datos orientadas a objetos • Modelo relacional extendido • Relaciones anidadas • Referencias • Conjuntos • Tipos de filas, tipos abstractos • Funciones • Lenguaje declarativo extendido • Computacionalmente completo • El desajuste de impedancia sigue siendo fundamental • Mezcla de modelos
Base de datos orientadas a objetos create type TipoDirección( calle varchar(10), ciudad varchar(10) ) create row type TipoPublicacion ( titulo varchar(50) ) create row type TipoLibro( isbn varchar(10) ) under TipoPublicacion create row type TipoAutor ( nombre varchar(25), Libros setof(BookType), direccion AddressType ) create table Book of type TipoLibro create table Author of type TipoAutor
Base de datos emergentes y futuras Bases de datos XMLCurso 251-0317-00LXML y bases de datosProf. Dr. Donald Kossmann, el Dr. Peter FischerSemestre de otoño, miércoles 13-15 Bases de datos móviles y personalesCurso 251-0373-00LSistemas de Información móviles y personalesProf. Dr. Moira C. NorrieSemestre de otoño, jueves 09-11
Base de datos orientadas a objetos Sistema Orientado a objetos Sistema de base de datos OODB • Diferencia de impedancia objeto-relacional evita • Proporcionar un modelo uniforme de datos • Combina las características y propiedades de • Sistemas orientados a objetos y lenguajes • Base de datos de los sistemas de gestión
Definición de base de datos orientada a objetos • Un enfoque diverso de los sistemas de bases de datos orientadas a objetos • Hacer lenguajes orientados a objetos de programación persistente • Gestión y almacenamiento de datos de objetos • Muchos intentos de definir las bases de datos orientadas a objetos • El manifiesto de base de datos orientada a objetos • 13 funciones obligatorias • 5 características opcionales • 4 opciones abiertas • Manifiesto de las consecuencias • Varias refutaciones del campo relacional • No se tratanvarias propiedades importantes
Manifiesto de la base de datos orientada a objetos 1. Los objetos complejos2. Objeto de identidad3. Encapsulación4. Tipos y clases5. Tipo y clase de jerarquías6. Anulación, sobrecarga y enlace en tiempo7. Integridad Computacional8. Extensibilidad9. Persistencia10. Eficiencia11. Concurrencia12. Confiabilidad13. Lenguaje de consulta declarativa Sistema orientado a objetos Sistema manejadores de base de datos
Objetos • Objetos complejos • Objeto formado a partir de otras más simples por los constructores • Registro, bolsa, lista y conjunto de constructores de objetos complejos • Identidad e igualdad del objeto • Cada objeto tiene un único e inmutable identificador de objeto (OID) • El intercambio de objetos a través de referencias • Dos objetos son idénticos si tienen el mismo OID • Dos objetos son iguales si tienen el mismo estado • Igualdad superficial y profundo
Objetos Tipo registro Interfaz publica Establecimiento del tipo • Encapsulación • El objeto consiste en la interfaz y la implementación • La interfaz define las firmas de los métodos públicos • La aplicación incluye datos de los objetos y métodos • El estado de objeto sólo se modifica a través de métodos públicos • Objeto en la estructura de datos pueden estar expuestos para las consultas declarativas
Tipos de datos • Definición de las propiedades del objeto • La parte estática describe la estructura del objeto • La parte dinámica describe el comportamiento dinámico de objetos • Separación de la interfaz y la implementación • Utiliza para comprobar la corrección de los programas en tiempo de compilación • Las clases de objetos • Contenedor para los objetos del mismo tipo • Los objetos se pueden agregar y quitar • Utiliza para crear y manipular objetos en tiempo de ejecución
Tipos y clases clase tipo tiene contiene describe valor objeto tiene
Jerarquías de Generalización Ventajas Herramienta de modelado de gran alcance. Garantiza complejidad semántica. Reutilización de especificación y la implementación. Herencia Los objetos de la subclase pertenecen automáticamente a la superclase. Los atributos y métodos se heredan de la superclase. La subclase puede introducir nuevos atributos y métodos. La migración entre las clases Mover objetos entre los niveles de jerarquía Objeto de especialización (↓) y generalización (↑) Clase instanciada contra miembro de la clase.
Jerarquías de Generalización Sustitución de herencia Un subtipo tiene más operaciones que un supertipo. Un subtipo puede estar sustituido en donde se espera supertipo. Basada en el comportamiento en lugar de valores. Inclusión de herencia Todo objeto de subtipo es también objeto de supertipo. Basado en la estructura en lugar de las operaciones Restricción de herencia Caso especial de herencia de inclusión. Subtipo es expresado por la fuerza de supertipo. Especialización herencia Los objetos subtipo contienen información más específica.
Anulación, sobrecarga y enlace tiempo. Reemplazo de métodos Método se redefine en el subtipo. Garantiza la especialización de los métodos. Conserva uniforme la interface del método. Sobrecarga de métodos Efecto causado por el reemplazo de métodos. La versión varios de un método puede existir en paralelo. El enlace Versión adecuada para el método sobrecargado seleccionado en tiempo de ejecución. También conocido como método virtual de envío.
Integridad Computacional y extensibilidad Integridad Computacional Requerido para el método de implementación de lenguaje. Cualquier computable puede ser expresada. Se puede realizar a través de conexión con el lenguaje actual Extensibilidad La base de datos tiene un conjunto de tipos predefinidos. Los desarrolladores pueden definir nuevos tipos de acuerdo a los requerimientos. Sin distinción de uso entre el sistema y los tipos de usuario.
Durabilidad y Eficiencia Persistencia Los datos tienen que sobrevivir a la ejecución del programa. Persistencia ortogonal. Persistencia implícita. La gestión del almacenamiento secundario Manejador de índice. Agrupación de datos. Almacenamiento temporal de datos. Selección de la ruta de acceso. Optimización de consultas.
Control de concurrencia y recuperación Concurrencia Gestión de múltiples usuarios al mismo tiempo que interactúan. Atomicidad, coherencia, aislamiento y durabilidad. Serialibilidad de operaciones. Confiabilidad. Capacidad de recuperación ante fallos del usuario, de software y hardware. Las transacciones se pueden confirmar o abortar. Restaurar el estado anterior coherente de los datos. Rehacer y deshacer las transacciones Registro de las operaciones
Lenguaje de consulta declarativa Lenguaje de alto nivel Expresa preguntas no-triviales de forma concisa. Interfaz basada en texto o gráficos. Declarativo. Ejecución Eficiente Posibilidad de optimizar consultas. Independiente de la aplicación Trabaja en cualquier base de datos posible. Sin necesidad de métodos adicionales definidos sobre los tipos de usuario.
Características opcionales y opciones abiertas Características opcionales Herencia múltiple. La comprobación de tipos y la inferencia. Distribución. Operaciones de diseño, transacciones largas, transacciones anidadas. Versiones Opciones abiertas Paradigma de programación. Representación del sistema. Tipo de sistema. Uniformidad.
Más allá del Manifiesto Administración de base de datos para empresas de servicios públicos. Ver datos de definición y derivados. Los roles de objeto Los objetos tienen funciones, además de tipos. Los roles se pueden ganar y perder de forma dinámica Evolución de base de datos. Esquema y datos deben evolucionar con gracia en el tiempo. Restricciones Integridad, semántica y la evolución de las restricciones. Definición, gestión y ejecución de las restricciones.
Bibliografía M. Atkinson, F. Bancilhon, D. DeWitt, K. Dittrich, D. Maier, and S. Zdonik: The Object-Oriented Database System Manifesto, In: Building an Object-Oriented Database System, Morgan Kaufmann1992 M. Stonebraker, L. A. Rowe, B. Lindsay, J. Gray, M. Carey, M. Brodie, P. Bernstein, and D. Beech: Third-Generation DatabaseSystemManifesto, In: ACM SIGMOD RECORD, 19(3), 1990 H. Darwen and C. J. Date: The Third Manifesto, In: ACM SIGMOD RECORD, 24(1), 1995
Siguiente semana Serialización• Los objetos relacionales Asignaciones y marcos• Los lenguajes de programación persistentes