Download Bases de Datos Orientadas a Objetos
Document related concepts
Transcript
• Índice del Curso • Evolución e Historia de Sistemas Gestores de Bases de Datos • Requerimientos de Sistemas Gestores de Bases de Datos Orientadas a Objetos • Michael Grossniklaus ETH Zurich IFW D 46.2 +41 44 632 72 73 grossniklaus@inf.ethz.ch • Alexandre de Spindler ETH Zurich IFW D 47.1 +41 44 632 74 16 despindler@inf.ethz.ch Politecnico di Milano Campus Bassini, Room 18/103 +39 022 399 3474 grossniklaus@elet.polimi.it I. Fundamentos de Bases de Datos Orientadas a Objetos 1. Introducción 2. Objeto Persistente 3. Db4o II. Conceptos Avanzados de Bases de Datos Orientadas a Objetos 1. Estándares y sistemas comerciales 2. Almacenamiento e Indexación 3. Versión Modelos III. Gestión de Datos de Objetos Semánticos 1. OM Modelo de Datos y OM Lenguaje de Modelo de Datos 2. Diseño e Implementación de OMS Avon 3. Context-Aware de Gestión de Datos Diseño Conceptual Implementación de Diseño Diseño Físico Representación del E/R Modelo Conceptual de Capa de Interfaz de Usuario SQL, JDBC, ODBC Acceso a Datos. Datos Semánticos Operación Semántica Persistencia ACID Distribución Capa de Modelo de Datos Modelo Relacional RDMS Capa de Almacenamiento SLQ -86 Modelo Entidad-Relación SQL Estándares CCDASYL Modelos de Datos Relacional ODMG 3.0 XML SQL: 1999 Modelo de Datos OM ODMG 1.0 Jerarquía RED Relación Orientado a Objetos Objeto Relacional Semi-Estructurado XML 1. Datos Organizados en un Árbol • Un Padre puede tener muchos Hijos • Un Hijo puede tener un solo Padre Bibliografía 2. Registros Descritos Por Tipos de Entidades 3. 1:N (Uno a Muchos) Relaciones Articulo Libro 4. Consulta Por Rutas de Navegación 5. Ejemplos • Archivos de Sistema • LDAP • Registro de Windows y Directorio Activo • Documentos XML y Consultas X Autor Autor Autor 1. Datos Organizados en Gráficos • Un Padre puede tener muchos Hijos • Un Hijo puede tener un solo Padre Bibliografía 2. Bachman Diagramas 3. Tipos de Registro Propiedades Definidas Libro Articulo 4. Colocar Tipos Definidos de Relaciones • Padre-Hijo, (doble) Referencia de lista,… 5. Consulta Por Navegación Gráfica 6. Ejemplos • CODASYL Autor Autor Autor 1. Datos Organizados Como Tablas en Relaciones 2. Referencia Entre Tablas de Datos • Llaves Primarias y Foráneas 3. Relación Algebraica • Project, Select, Join 4. Relaciones de Forma Normal 5. Lenguaje Declarativo • Definición de datos, Manipulación y Consultas Consistencia, 6. Ejemplos • Oracle 11g, Microsoft SQL Server, IBM DB2 • PostgreSQL, MySQL 1. El Modelo Relacional Es Muy Simple • Solo conceptos básicos -- Referencias necesarias a ser simuladas • Tipos de restricciones de sistema -- No definir tipos de usuario 2. Carencia De Modelo Semántico • Datos complejos, Versiones, Roles 3. Pequeño Soporte Para Datos y Evolución De Esquema 4. Objeto Relacional Desigualdad De Impedancia • Aplicación Orientada a Objetos Desarrollo y Gestión de Datos relacionados resultantes en conflictos de dos modelos incompatibles. • El código de mapa entre modelos es considerado sobrecarga costosa y duramente de mantener 1. Datos Representados Como Objetos • Objeto Identidad • Atributos y Métodos • Referencias, Relaciones, Asociaciones 2. Extensible Tipo Hierachy • Tipos de Usuario Definidos, Tipos de Datos Abstractos • Simple o Múltiple herencia • Sobrecargado, primordial, enlazado 3. Lenguaje Declarativo Para Fines ad hoc 4. Enlazado Para Lenguaje Orientado a Objetos de Programación 1. Modelo Relacional Extendido • Anidar Relaciones • Referencias • Sets • Tipos de Filas, Tipos Abstractos • Funciones 2. Lenguaje Declarativo Extendido • Computablemente Completo 3. Fundamental Impendance Mismach Remains 4. Mezclando Los Modelos create type AddressType ( street varchar(10), city varchar(10) ) create row type PublicationType ( title varchar(50) ) create row type BookType ( isbn varchar(10) ) under PublicationType create row type AuthorType ( name varchar(25), books setof(BookType), address AddressType ) create table Book of type BookType create table Author of type AuthorType 1. XML Bases De Datos • Curso 251-0317-00L • XML y Bases de Datos • Prof. Dr. Donald Kossmann, Dr. Peter Fischer 2. Móvil y Bases de Datos Personales • Curso 251-0373-00L • Móvil y Bases de Datos Personales • Prof. Dr. Moira C. Norrie • Autumn Semestre. Sistemas Orientados a Objetos O O D B 1. Evitar Objeto Relacional Impendance Mismatch 2. Proveer Un Modelo De Datos Uniforme 3. Combinar Aspectos y Propiedades De • Sistemas Orientados a Objetos y Lenguajes • Sistemas Gestores de Bases de Datos Sistemas de Bases de Datos 1. Diversos Enfoques De Sistemas De Bases de Datos Orientadas A Objetos • Creado Persistencia de Lenguajes de Programación Orientado a Objetos • Gestionando y Almacenando Datos de Objetos 2. Muchos Intentos de Definir Bases De Datos Orientas A Objetos 3. La Manifestación de Bases de Datos Orientadas a Objetos • 13 elementos obligatorios • 5 características opcionales • 4 abrir opciones 4. Manifestando secuelas • Varias refutaciones del campamento relacional • Varias propiedades importantes no dirigidas Sistema Orientado a Objetos Sistema Gestor de Bases de Datos 1. 2. 3. 4. 5. 6. 7. 8. Objetos Complejos Identidad de Objetos Encapsulación Tipos y Clases Tipos y Herencia de Clases Sobrecargado, primordial, enlazado Computablemente Completo Extensibilidad 9. PerPersistente 10. Eficiente 11. Concurrente 12. Fiable 13. Lenguaje de Consultas Declarativo 1. Encapsulación • Objeto consistente de interfaz e implementación • Interfaz definida de métodos públicos • Implementación incluyendo datos de objetos y métodos • El Estado de los Objetos es modificado mediante métodos públicos • Estructura de Datos de Objetos muchos son expuestos por consultas declarativas Tipo de Registro Interfaz Pública Tipo Establecido 1. Tipos De Datos • Definición de propiedades de objetos • Parte estática descrita por estructura de objetos • Parte dinámica descrita por comportamiento de objetos • Separación de interfaz e implementación • Uso de chequeo correcto de programas en tiempo de compilación 2. Objetos de Clases • Contenido para objetos del mismo tipo • El objeto puede ser agregado y removido • Uso de creación y manipulación de objetos en tiempo de ejecución 1. Objetos Complejos Formados Por Otros Constructores • Registrar, Establecer, Lista y Matriz Constructora de Objetos Complejos • Constructor otorgable 2. Identidad De Objeto e Igualdad • Todos los objetos son únicos e identificador de objetos inmutable (OID) • Compartición de objetos mediante referencias • Dos objetos son iguales si tienen un mismo estado Clase Tiene Contenido Objeto Tipo Describe Tiene Valor 1. Ventajas • Poderosas herramientas de modelado • Garantía de complejidad semántica • Reúso de especificación e implementación 2. Herencia • Objetos de subclases perteneciente automáticamente a la superclase • Los atributos y métodos son heredados de superclase • Las subclases pueden introducir nuevos atributos y métodos 3. Migración Entre Clases • Mover objetos entre niveles de herencia • Objetos especializados y generalización • Instancias de clases contra miembros de clases 1. Sustitución De Herencia • El Subtipo es mas operacional que el súper tipo • El Subtipo puede ser sustituido como súper tipos • Basado sobre mejor comportamiento que valores 2. Inclusión De Herencia • Todos los objetos de subtipos son también objetos de súper tipo • Basado sobre mejor estructura que operaciones 3. Restricción De Herencia • Caso especial de inclusión de herencia • El subtipo es expresado por restricciones sobre súper tipo 4. Restricción De Herencia • El Subtipo de objetos contienen más información especifica 1. Método Sobrecargado • El Método es redefinido en subtipo • Garantiza especialización de métodos • Preserva uniforme los métodos de interfaces 2. Método Primordial • Efecto causado por métodos sobrecargados • Varias versiones de un método pueden existir en paralelo 3. Método Enlazado • Apropiada versión de método primordial seleccionado en tiempo de ejecución • También conocido como método virtual perteneciente 1. Completamente Computacional • Requerimientos para el lenguaje de implementación de métodos • La función computable puede ser expresada • Puede ser realizada a través de conexión con lenguaje existente 2. Extensibilidad • Las Bases de Datos son establecidas de tipos predefinidos • El Desarrollo puede definir nuevos tipos de requerimientos acordes • No usable distinción entre sistema y tipos de usuario 1. Persistencia • Los Datos son supervivientes al programa de ejecución • Persistencia ortogonal • Persistencia implícita 2. Registro Gestionado Secundario • Gestión de índices • Datos Agrupados • Datos Búfer • Acceso a ruta de selección • Optimización de consultas 1. Concurrencia • Gestión de múltiples usuarios interactuando concurrentemente • Atomicidad, Consistencia, Aislamiento y Durabilidad • Serialización de operaciones 2. Fiabilidad • Elasticidad a usuarios, software y hardware • Las transacciones pueden ser confirmadas o abortadas • Restauración previa estados coherentes de datos • Rehacer y deshacer las transacciones • Operaciones de identificación 1. Lenguaje De Alto Nivel • Expresión no trivial de preguntas concisas • Base texto o interfaces graficas • Declarativo 2. Ejecución Eficiente • Posibilidad para optimización de consultas 3. Aplicación Independiente • Trabajo sobre varias bases de datos posibles • No requiere métodos adicionales sobre tipos de usuarios definidos 1. Características Opcionales • Múltiples herencias • Checando tipos e inferencia • Distribución • Designando transacciones, transacciones largas, transacciones anidadas • Versiones 2. Opciones Abiertas • Paradigma de programación • Sistema de representación • Tipo de Sistemas • Uniformidad 1. Bases De Datos Administración De Utilidades 2. Ver Definición y Datos Derivados 3. Roles De Objetos • Los Objetos tienen roles en adiciones a tipos • Los Roles pueden ser ganadores y perdedores dinámicamente 4. Evolución De Bases De Datos • El Esquema y datos tiene que evolucionar correctamente con el tiempo 5. Restricciones • Integridad, Semántico y evolución de restricciones • Definición, gestión y reforzamiento de restricciones • 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 Kaufmann 1992 • M. Stonebraker, L. A. Rowe, B. Lindsay, J. Gray, M. Carey, M. Brodie, P. Bernstein, and D. Beech: Third-Generation Database System Manifesto, In: ACM SIGMOD RECORD, 19(3), 1990 • H. Darwen and C. J. Date: The Third Manifesto, In: ACM SIGMOD RECORD, 24(1), 1995 • Serialización • Objetos Relacionales Marcados y Asignados • Lenguaje de Programación Persistente