Base de Datos Orientada a Objetos
Download
Report
Transcript Base de Datos Orientada a 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
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
[email protected]
[email protected]
Alexandre de Spindler
ETH Zurich
IFW D 47.1
+41 44 632 74 16
[email protected]
1.
2.
3.
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
1.
2.
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
I. Fundamentos de bases de datos orientadas a objetos
1. introducción
2. La persistencia de objetos
3. db4o
II. Conceptos avanzados de bases de datos orientadas a
objetos
4. Normas y Sistemas Comerciales
5. De almacenamiento e indexación
6. modelos de la versión
III. Los datos objeto semántico de gestión
7. OM Modelo de datos y Lenguaje Modelo de Datos
8. Diseño e Implementación de OMS Avon
9. Context-Aware Data Management
Diseño
1.
2.
1.
2.
3.
4.
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
Los datos organizados en el gráfico (red)
un padre puede tener muchos hijos.
un niño puede tener muchos padres.
Bachmann diagramas
Los tipos de registro definir las propiedades
tipos de conjunto de relaciones definidas
entre padres e hijos, (doble) lista enlazada, ...
Consulta por el gráfico de navegación
Ejemplos
CODASYL
Modelo relacional es muy simple
só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.
Los datos organizados en las tuplas en las relaciones
Enlace entre los datos de tuplas
claves primarias y foráneas
El álgebra relacional
proyecto, seleccione, se unen
formas normales de relación
Lenguaje declarativo
de definición de datos, la consistencia, la manipulación
y la consulta
Ejemplos
Oracle 11g, Microsoft SQL Server, IBM DB2
PostgreSQL, MySQL
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.
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
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
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
Bases de datos XML
Curso 251-0317-00L
XML y bases de datos
Prof. Dr. Donald Kossmann, el 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 móviles y personales
Prof. Dr. Moira C. Norrie
Semestre de otoño, jueves 09-11
O
O
Sistema
Orientado a objetos D
B
Sistema de
base de datos
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
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 tratan varias propiedades importantes
Sistema orientado
a objetos
Sistema manejadores
de base de datos
1. Los objetos complejos
2. Objeto de identidad
3. Encapsulación
4. Tipos y clases
5. Tipo y clase de jerarquías
6. Anulación, sobrecarga y enlace en
tiempo
7. Integridad Computacional
8. Extensibilidad
9. Persistencia
10. Eficiencia
11. Concurrencia
12. Confiabilidad
13. Lenguaje de consulta declarativa
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
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
Tipo
registro
Interfaz
publica
Establecimient
o del tipo
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
clase
tiene
contiene
objeto
tipo
describe
tiene
valor
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.
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.
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
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.
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.
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 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
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.
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.
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
• Los objetos relacionales Asignaciones y marcos
• Los lenguajes de programación persistentes