380 likes | 640 Views
Base de Datos Orientada a Objetos. Antonio Aguilar Galicia Juana Vivas Villanueva Greysi Martínez Arce. Base de Datos Orientada a Objetos. Introducción. Visión General del Curso Evolución e Historia de los Sistemas de Gestión de Bases de Datos
E N D
Base de Datos Orientada a Objetos Antonio Aguilar Galicia Juana Vivas Villanueva Greysi Martínez Arce
Base de Datos Orientada a Objetos Introducción Visión General del Curso Evolución e Historia de los Sistemas de Gestión de Bases de Datos Requisitos de los Sistemas de Gestión de Gestión de Bases de Datos Orientados a Objetos
Ejercicios El curso será acompañado por ejercicios Trabajar con tecnologías tratadas en el curso Sesiones de tutoría por semana Iniciando en Octubre 3, 2008 IFW A 32.1, 11-12 Alexandre de Spindler ¡Opcional pero si muy recomendable!
Examen Período de sesiones de exámenes Enero 19, 2009 – Febrero 13, 2009 Las excepciones se pueden organizar para los estudiantes de intercambio. Examen oral en inglés Duración de 15 minutos 5 ECTS
Visión general del curso Fundamentos de Bases de datos orientados a objetos Introducción La persistencia de objetos db4o II. Conceptos avanzados de bases de datos orientados a objetos 4. Normas y sistemas comerciales 5. Almacenamiento e indexación Modelos de la versión III. Semántica gestionado de objetos de datos 7. Modelo de Datos OM y Leguaje de Modelo de Datos OM 8. Diseño e Implementación de OMS Avon 9. Contexto – Consciente de Gestión de Datos
Diseño de Base de Datos Diseño Conceptual Diseño de Implementación Diseño Físico
Sistema de Gestión de Base de Datos Modelo Conceptual de acceso y representación de datos Capa de Interfaz de Cliente E/R SQL, JDBC, ODBC Capa de Modelo de Datos Modelo Relacional Datos de la Semántica Operaciones de la Semántica Capa de Almacenamiento RDBMS Persistencia ACID Distribución
Evolución e Historia ODMG 1.0 Modelo de datos OM Modelo de Datos Relacional Estándar CODASYL Modelo Entidad - Relación SQL - 86 SQL :1999 XML ODMG 3.0 SQL Jerarquía Red Relacional Orientado a Objetos Objeto Relacional Semi - Estructurado XML 1960 1970 1980 1990 2000
Jerarquía en Bases de Datos Datos organizados en árbol Un padre puede tener muchos hijos Un hijo puede tener solo un padre Examen oral en inglés Duración de 15 minutos 5 ECTS Ejemplos Un padre puede tener muchos hijos Un hijo puede tener solo un padre Bibliografía Artículo Libro Autor Autor Autor
Red De Bases de Datos Datos organizados en gráfica (enrejado) Un padre puede tener muchos hijos Un hijo puede tener muchos padres Diagramas Bachmann Las propiedades definen los tipos de registro Establecer los tipos de relaciones definidas Entre padre-hijo, (doble) de la lista encadenada Consulta por el gráfico de navegación Ejemplos CODASYL Bibliografía Libro Artículo Autor Autor Autor
Bases de Datos Relacional Los datos organizados como tuplas en las relaciones Enlace entre los datos de tuplas Claves primarias y foráneas Algebra relacional Proyecto, selección, unirse Forma relacional normal Lenguaje declarativo Definición de datos, consistencia, manipulación y consulta Ejemplos Oracle 11g, Microsoft SQL Server, IBM DB2 PostgreSQL, MySQL
Bases de Datos Relacional El modelo relacional es muy simple Solo los conceptos básicos → las referencias deben ser simuladas Sistema de tipo restringido → no definidos por el usuario La falta de modelado semántico Datos complejos, control de versiones, roles Poco apoyo para los datos y la evolución del esquema Desajuste Objeto-Relacional de impedancia
Diferencia de Objeto – Relacional e Impedancia Publicación Autor Artículo Libro Resultado de aplicaciones de desarrollo orientada a objetos y relacional de la gestión de datos en choque de dos modelos incompatibles El código de mapa entre los dos modelos es una sobrecarga considerable, costoso y difícil de mantener
Bases de Datos Orientado a Objetos Los Datos representados como objetos Identidad de objeto Atributos y Métodos Referencias, relaciones, asociaciones Jerarquía de tipo extensible Tipos definidos por el usuario, los tipos de datos abstractos Herencia simple o múltiple Sobrecarga, anulación, enlace Lenguaje declarativo con fines para ad hoc Encuadernación para el lenguaje de programación orientado a objetos autor publicación Publicación Autor partición libro publicación Libro Artículo
Bases de datos Objeto - Relacional Modelo Relacional Extendido Relaciones anidadas Referencias Conjuntos Tipos de filas, tipos abstractos Funciones Lenguaje declarativo extendido Computacionalmente completo La falta de concordancia sigue siendo fundamental La mezcla de modelos
Bases de datos emergentes y futuras Bases de datos XML Curso 251-0317-00L XML yBases de datos Prof. Dr. Donald Kossmann, Dr. Peter Fischer Semestre de otoño, Miércoles 13-15 Bases de datos móviles y personales Curso 251-0373-00L Sistemas de información personal y móviles Prof. Dr. Moira C. Norrie Semestre de otoño, Jueves 9-11
Bases de Datos Orientados a Objetos • El objeto-relacional las diferencias de impedancia • Proporciona un modelo uniforme de datos • Combina las características y propiedades de: • Sistemas y lenguajes orientados a objetos • sistema gestor de base de datos
Definición de Base de Datos Orientada a Objetos • Diversos enfoques en Sistemas de Base de Datos Orientados a Objetos • Haciendo lenguajes de programación orientada a objetos persistentes • Gestión y almacenamiento de datos de objetos • Varios intentos de definir base de datos orientados a objetos • Manifestación de la base de datos orientada a objetos • 13 Características obligatorias • 5 Características opcionales • 4 Opciones abiertas • Manifiesto de secuelas • Varias objeciones desde el campo relacional • Varias propiedades importantes que no se tratan
Manifestación de la base de datos orientada a objetos Objetos complejos Objeto de identidad Encapsulación Tipos y clases Tipos y clases de herencia Anulación, sobrecarga y enlace Integridad Computacional Extensibilidad Eficiencia Concurrencia Confiabilidad Sistemas de gestión Lenguaje de consulta declarativa Sistema Orientado a Objetos Sistema Gestor de base de datos
Objetos • Objetos complejos • Objeto complejo formado a partir de otras simples y por los constructores • Registrar, configurar, capturar y constructores de la matriz de objetos complejos • Constructor perpendicular • Objeto de identidad e igualdad • Cada objeto tiene identificador de objeto único e inmutable (OID) • El intercambio de objetos a través de referencias • Dos objetos son iguales si tiene el mismo OID • Dos objetos son iguales si tiene el mismo estado • Igualdad superficial y profunda
Objetos • Encapsulación • Objeto consistente en la interfaz y la implementación • Interfaz define la asignación de los métodos públicos • La aplicación incluye datos de objetos y métodos • Estados de objetos solo se modifican a través de métodos públicos • Objeto de estructura de datos pueden estar expuestos para las consultas declarativas Interfaz publica Tipo de registro Tipo de configuración
Tipos y Clases • Tipos de datos • Definición de las propiedades del objeto • Parte estática se describe la estructura del objeto • Se describe el comportamiento dinámico de objetos • Separación de la interfaz y la implementación • Utilizado para comprobar la corrección de los programas en tiempo de compilación • Clases de Objetos • Contenedor para los objetos del mismo tipo • Los objeto se pueden agregar y quitar • Se utiliza para crear y manipular objetos en tiempo de ejecución
Tipos y Clases Tipo Valor Clase Objeto tiene tiene contiene describe
Jerarquías de Generalización • Ventajas • Herramienta de modelado de gran alcance • Garantizar la complejidad semántica • Reutilización de especificación e implementación • Herencia • Objetos de la subclase pertenecen automáticamente a superclase • Atributos y métodos se heredan de la superclase • Subclase puede introducir nuevos atributos y métodos • La migración entre las clases • Mover objetos entre los niveles de jerarquía • La especialización del objeto (↓) y generalización (↑) • Instancia de clase frente al miembro de la clase Publicación Libro Artículo Proceder
Jerarquías de Generalización • La sustitución de herencia • Subtipo tiene más operaciones que supertipo • Subtipo puede estar sustituido en donde se espera supertipo • Basada en el comportamiento en lugar de valores • La inclusión de herencia • Todos los objetos de subtipo es también objeto de supertipo • Basado en la estructura en lugar de operaciones • Restricción de la herencia • La inclusión caso especial de la herencia • Subtipo se expresa por la fuerza de supertipo • Especialización de herencia • Objetos subtipo contiene información más específica
Anulación, sobrecarga y enlace de tiempo • El reemplazo de métodos • El método es redefinido en el subtipo • Garantiza la especialización de los métodos • El método conserva la interfaz uniforme • La sobrecarga de métodos • Efecto causado por el reemplazo de métodos • Varias versiones de un método pueden existir en paralelo • El enlace • El método sobrecargado selecciona la versión adecuada en tiempo de ejecución • También conocido como método de envío virtual Forma Rectángulo Rectángulo relleno
Integridad computacional y • Integridad computacional • Requisito del lenguaje de implementación del método • Cualquier función computable puede ser expresada • Se puede realizar a través de conexión con el lenguaje actual • Extensibilidad • Las bases de datos tienen 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
La durabilidad y eficiencia • Persistencia • Los datos tienen que sobrevivir a la ejecución del programa • La persistencia ortogonal • La persistencia implícita • La gestión del almacenamiento secundario • Índice de almacenamiento • La 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 • La gestión de múltiples usuarios al mismo tiempo que interactúan • Atomicidad, coherencia, aislamiento y durabilidad • Serialisabilidad 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 para la optimización de consultas • Aplicación independiente • Trabajar en cualquier base de datos es posible • Sin necesidad de métodos adicionales de los tipos definidos por el usuario
Características opcionales y opciones abiertas • Características opcionales • Herencia múltiple • La comprobación de tipos y la inferencia • Distribución • Diseño de transacciones, las transacciones de largo, las transacciones anidadas • Versiones • Opciones abiertas • Paradigma de programación • Representación del sistema • Tipo de sistema • Uniformidad
Más allá del Manifiesto • Base de datos de administración de empresas de servicios públicos • Ver datos de definición y derivados • Los roles de objeto • Los objetos tienen funciones, además de los tipos • Los papeles se pueden ganar y perder de forma dinámica • La evolución de las bases de datos • Datos y esquemas que tienen que evolucionar en el tiempo • Restricciones • La integridad, la semántica y la evolución de las restricciones • Definición, gestión y ejecución de las restricciones
La Siguiente Semana La Persistencia en Objetos Serialización Objeto-Relacional Asignaciones y Marcos Lenguajes de programación Persistentes