Bases de Datos Orientadas a Objetos Introducción Í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
Organización Michael Grossniklaus ETH Zurich IFW D 46.2 +41 44 632 72 73 grossniklaus@inf.ethz.ch Alexandre de Spindler 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
Índice del Curso Fundamentos de Bases de Datos Orientadas a Objetos Introducción Objeto Persistente Db4o Conceptos Avanzados de Bases de Datos Orientadas a Objetos Estándares y sistemas comerciales Almacenamiento e Indexación Versión Modelos Gestión de Datos de Objetos Semánticos OM Modelo de Datos y OM Lenguaje de Modelo de Datos Diseño e Implementación de OMS Avon Context-Aware de Gestión de Datos
Diseño de Base de Datos Diseño Conceptual Implementación de Diseño Diseño Físico
Sistemas gestores de Bases de datos Representación del Modelo Conceptual de Acceso a Datos. E/R SQL, JDBC, ODBC Capa de Interfaz de Usuario Datos Semánticos Operación Semántica Modelo Relacional Capa de Modelo de Datos Persistencia ACID Distribución RDMS Capa de Almacenamiento
Evolución e Historia Jerarquía RED Relación Orientado a Objetos Modelos de Datos Relacional Modelo Entidad-Relación Estándares CCDASYL ODMG 3.0 Modelo de Datos OM SQL: 1999 SLQ -86 SQL XML ODMG 1.0 Jerarquía RED Relación Orientado a Objetos Objeto Relacional Semi-Estructurado XML
Jerarquía de base de datos Datos Organizados en un Árbol Un Padre puede tener muchos Hijos Un Hijo puede tener un solo Padre Registros Descritos Por Tipos de Entidades 1:N (Uno a Muchos) Relaciones Consulta Por Rutas de Navegación Ejemplos Archivos de Sistema LDAP Registro de Windows y Directorio Activo Documentos XML y Consultas X Bibliografía Libro Articulo Autor
RED de Base de Datos Datos Organizados en Gráficos Un Padre puede tener muchos Hijos Un Hijo puede tener un solo Padre Bachman Diagramas Tipos de Registro Propiedades Definidas Colocar Tipos Definidos de Relaciones Padre-Hijo, (doble) Referencia de lista,… Consulta Por Navegación Gráfica Ejemplos CODASYL Bibliografía Libro Articulo Autor
Bases de Datos Relacional Datos Organizados Como Tablas en Relaciones Referencia Entre Tablas de Datos Llaves Primarias y Foráneas Relación Algebraica Project, Select, Join Relaciones de Forma Normal Lenguaje Declarativo Definición de datos, Consistencia, Manipulación y Consultas Ejemplos Oracle 11g, Microsoft SQL Server, IBM DB2 PostgreSQL, MySQL
Bases de Datos Relacional 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 Carencia De Modelo Semántico Datos complejos, Versiones, Roles Pequeño Soporte Para Datos y Evolución De Esquema Objeto Relacional Desigualdad De Impedancia
Objeto Relacional Impendance Mismatch 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
Bases de Datos Orientadas a Objetos Datos Representados Como Objetos Objeto Identidad Atributos y Métodos Referencias, Relaciones, Asociaciones Extensible Tipo Hierachy Tipos de Usuario Definidos, Tipos de Datos Abstractos Simple o Múltiple herencia Sobrecargado, primordial, enlazado Lenguaje Declarativo Para Fines ad hoc Enlazado Para Lenguaje de Programación Orientado a Objetos
Objeto Relacional de Bases de Datos Modelo Relacional Extendido Anidar Relaciones Referencias Sets Tipos de Filas, Tipos Abstractos Funciones Lenguaje Declarativo Extendido Computablemente Completo Fundamental Impendance Mismach Remains Mezclando Los Modelos
Objeto Relacional de Bases de Datos 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
Enlaces y Bases de Datos Futuras XML Bases De Datos Curso 251-0317-00L XML y Bases de Datos Prof. Dr. Donald Kossmann, Dr. Peter Fischer Móvil y Bases de Datos Personales Curso 251-0373-00L Prof. Dr. Moira C. Norrie Autumn Semestre.
Bases de Datos Orientadas a Objetos OODB Sistemas Orientados a Objetos Sistemas de Bases de Datos Evitar Objeto Relacional Impendance Mismatch Proveer Un Modelo De Datos Uniforme Combinar Aspectos y Propiedades De Sistemas Orientados a Objetos y Lenguajes Sistemas Gestores de Bases de Datos
Definición de Bases de Datos Orientadas a Objetos 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 Muchos Intentos de Definir Bases De Datos Orientas A Objetos La Manifestación de Bases de Datos Orientadas a Objetos 13 elementos obligatorios 5 características opcionales 4 abrir opciones Manifestando secuelas Varias refutaciones del campamento relacional Varias propiedades importantes no dirigidas
Las Manifestaciones de Las Bases de Datos Orientadas a Objetos 1. Objetos Complejos 2. Identidad de Objetos 3. Encapsulación 4. Tipos y Clases 5. Tipos y Herencia de Clases 6. Sobrecargado, primordial, enlazado 7. Computablemente Completo 8. Extensibilidad 9. PerPersistente 10. Eficiente 11. Concurrente 12. Fiable 13. Lenguaje de Consultas Declarativo Sistema Orientado a Objetos Sistema Gestor de Bases de Datos
Objetos 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
Tipos y Clases 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 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
Objetos Objetos Complejos Formados Por Otros Constructores Registrar, Establecer, Lista y Matriz Constructora de Objetos Complejos Constructor otorgable 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
Tipos y Clases Clase Tipo Tiene Describe Contenido Objeto Valor
Generalización de Jerarquía Ventajas Poderosas herramientas de modelado Garantía de complejidad semántica Reúso de especificación e implementación 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 Migración Entre Clases Mover objetos entre niveles de herencia Objetos especializados y generalización Instancias de clases contra miembros de clases
Generalización de Jerarquía 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 Inclusión De Herencia Todos los objetos de subtipos son también objetos de súper tipo Basado sobre mejor estructura que operaciones Restricción De Herencia Caso especial de inclusión de herencia El subtipo es expresado por restricciones sobre súper tipo El Subtipo de objetos contienen más información especifica
Sobrecargado, primordial y enlazado Método Sobrecargado El Método es redefinido en subtipo Garantiza especialización de métodos Preserva uniforme los métodos de interfaces Método Primordial Efecto causado por métodos sobrecargados Varias versiones de un método pueden existir en paralelo Método Enlazado Apropiada versión de método primordial seleccionado en tiempo de ejecución También conocido como método virtual perteneciente
Completamente Computacional y Extensible 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 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
Durabilidad y eficiencia Persistencia Los Datos son supervivientes al programa de ejecución Persistencia ortogonal Persistencia implícita Registro Gestionado Secundario Gestión de índices Datos Agrupados Datos Búfer Acceso a ruta de selección Optimización de consultas
Control Concurrente y Liberación Concurrencia Gestión de múltiples usuarios interactuando concurrentemente Atomicidad, Consistencia, Aislamiento y Durabilidad Serialización de operaciones 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
Lenguaje Declarativo de Consultas Lenguaje De Alto Nivel Expresión no trivial de preguntas concisas Base texto o interfaces graficas Declarativo Ejecución Eficiente Posibilidad para optimización de consultas Aplicación Independiente Trabajo sobre varias bases de datos posibles No requiere métodos adicionales sobre tipos de usuarios definidos
Características Opcionales y Opciones Abiertas Múltiples herencias Checando tipos e inferencia Distribución Designando transacciones, transacciones largas, transacciones anidadas Versiones Opciones Abiertas Paradigma de programación Sistema de representación Tipo de Sistemas Uniformidad
Más Allá del Manifiesto Bases De Datos Administración De Utilidades Ver Definición y Datos Derivados Roles De Objetos Los Objetos tienen roles en adiciones a tipos Los Roles pueden ser ganadores y perdedores dinámicamente Evolución De Bases De Datos El Esquema y datos tiene que evolucionar correctamente con el tiempo Restricciones Integridad, Semántico y evolución de restricciones Definición, gestión y reforzamiento de restricciones
Referencias 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
Bases de Datos Orientadas a Objetos Persistencia de Objetos Serialización Objetos Relacionales Marcados y Asignados Lenguaje de Programación Persistente