Download Bases de Datos Orientadas a Objetos

Document related concepts

Mapeo objeto wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Base de datos wikipedia , lookup

Modelo de base de datos wikipedia , lookup

SQL wikipedia , lookup

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
[email protected]
• Alexandre de Spindler
ETH Zurich
IFW D 47.1
+41 44 632 74 16
[email protected]
Politecnico di Milano
Campus Bassini, Room 18/103
+39 022 399 3474
[email protected]
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