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