Bases de Datos Orientadas a Objetos Daniel Artzcoz
Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Introducción ¿Qué es O. O. ? § "La orientación a objetos proporciona una solución que conduce a un Universo de Objetos 'bien educados' que se piden de manera cortés, concederse mutuamente sus deseos". (Dan Ingalls de Smalltalk) § ¿Por qué O. O. ? Porque tienen gran capacidad de reutilización de código y con metodología eficientes y efectivas que se aplican al proceso de producción de software.
Introducción ¿Por qué se crean las bases de datos? § Los SGBD tradicionales tienen deficiencias con aplicaciones complejas (diseño y fabricación en ingeniería, GIS, multimedia, etc. ) § Aumento del uso de los lenguajes de programación orientada a objetos § Un objetivo: mantener una correspondencia directa entre los objetos del mundo real y de la base de datos
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Evolución de SGBD
Historia de Base datos OO § 1967 § - Simula 67 - primer lenguaje conceptos O-O Introduce el concepto de “clase” § 1980 s § Comienza el auge de los lenguajes O-O § Small. Talk-(Goldberg)-Xerox Palo Alto Research Ctr. § C++ (Stroustrup) - Bell Labs. (1983)
Historia de Base datos OO § 1980 s § Prototipos de investigación sistemas SGBDOO § Gem. Stone (Copeland & Maier @ Servio Logic Corp. ) (1984) Introducen el concepto de “persistencia” en lenguajes O-O: Small. Talk Objetos existen después de que la aplicación termina su ejecución
Historia de Base datos OO § 1980 s (cont. ) § Prototipos de investigación sistemas SGBDOO (cont. ) § Sistemas objeto-relacionales § POSTGRES (Stonebraker, UCB) (1986) § Startbusrt (IBM, 1985) § 1990 s-2000 s - Explosión SGBDOO § Sistemas comerciales: § Object. Store § Versant § Ontos § Gemstone § PUF ! § Abarcan solamente un 1% del mercado
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Características de BDOO Se pueden dividir en tres grupos: § Obligatorias: Son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO § Opcionales: Son las que pueden ser añadidas para hacer el sistema mejor § Abiertas: Son las que pueden ser añadidas por el diseñador
Características Obligatorias Por ser OO § Identificador de objeto (OID) § Objetos complejos § Encapsulamiento § Tipos o clases § Herencia y jerarquía tipos § Polimorfismo y sobrecarga Por ser SGBD § Persistencia § Concurrencia § Recuperación ante fallos § Lenguaje de definición de objetos (ODL) § Lenguaje de manipulación (OQL)
Características Obligatorias Por ser OO § Identificador de objeto (OID) § Objetos complejos § Encapsulamiento § Tipos o clases § Herencia y jerarquía tipos § Polimorfismo y sobrecarga Por ser SGBD § Persistencia § Concurrencia § Recuperación ante fallos § Lenguaje de definición de objetos (ODL) § Lenguaje de manipulación (OQL)
Características Obligatorias (I) § Identificador de objeto (OID): Es único, generado por el sistema y no es visible para el usuario externo La principal propiedad de un OID es la de ser inmutable Lo mas usual es usar un entero largo como OID y luego usar alguna tabla de dispersión (hash) para hacer corresponder el valor OID con la dirección física del objeto La mayor parte de los SBDOO permiten representar tanto objetos como valores
Características Obligatorias (II) § Objetos complejos Los objetos pueden tener una estructura de objeto de complejidad arbitraria con el fin de contener toda la información significativa que describe al objeto En las bases de datos relacionales la información sobre un objeto complejo suele estar dispersa entre muchas relaciones, haciendo que se pierda la correspondencia directa entre un objeto del mundo real y su representación en la base de datos
Características Obligatorias (III) § Encapsulación Un objeto tiene normalmente dos componentes: estado (valor) y comportamiento (operaciones) La estructura interna de un objeto contiene variables de instancia, similares a los atributos en SGBDR, pero pueden ser visibles o no Si no son visibles, solo se puede acceder a través de las operaciones Permite modificar la estructura interna sin modificar los programas externos
Características Obligatorias (IV) § Tipos o clases Tipo de Objeto: es una categoría de objeto (EMPLEADO). Un objeto es una Instancia de un tipo de objeto. PERSONA (Juan Pérez) Clase: especifica una estructura de datos y los métodos operativos permisibles que se aplican a cada uno de sus objetos. Las operaciones más usuales: constructora, destructora, modificadoras y recuperadoras
Características Obligatorias (V) § Herencia y jerarquías de tipo Permite especificar nuevos tipos o clases que heredan gran parte de su estructura y operaciones previamente definidas. Esto facilita la reutilización de las definiciones de tipos existentes cuando se crean nuevos tipos de objetos El subtipo hereda toda las funciones del tipo predefinido (supertipo), dando lugar a una jerarquía de tipos o de clases
Características Obligatorias (VI) § Polimorfismo o sobrecarga de operadores Un nombre de operación se puede referir a varias implementaciones distintas, dependiendo del tipo de objetos al que se aplique
Características Obligatorias Por ser OO § Identificador de objeto (OID) § Objetos complejos § Encapsulamiento § Tipos o clases § Herencia y jerarquía tipos § Polimorfismo y sobrecarga Por ser SGBD § Persistencia § Concurrencia § Recuperación ante fallos § Lenguaje de definición de objetos (ODL) § Lenguaje de manipulación (OQL)
Características Obligatorias (VII) § Persistencia No todos los objetos se almacenan permanentemente en la base de datos • Objetos transitorios: existen durante la ejecución de un programa • Objetos persistentes: se almacenan en la base de datos y persisten después de la terminación del programa
Características Obligatorias (VIII) § Concurrencia Permite que varios usuarios o aplicaciones tengan acceso a una BD al mismo tiempo y compartan objetos de forma segura Los primeros SGBDOO no soportaban el control de concurrencia (eran sistemas de ficheros)
Características Obligatorias (IX) § Recuperación ante fallos Gestión de transacciones: incluye capacidades de recuperación ante fallos Cuando se intenta una transacción pero no se puede realizar y es necesario regresar al mismo estado en el que se encontraba la base de datos
Características Obligatorias (X) § Lenguaje de definición de objetos (ODL) Similar al DDL de los sistemas relacionales, que incorpore los constructores de tipos anteriores para definir tipos de objetos para una aplicación de base de datos específica. Usaremos las palabras clave tupla, conjunto y lista para los constructores de tipos, y usaremos los tipos de datos estándar disponibles (integer, string, flota, etc. ) para los tipos atómicos
Características Obligatorias (XI) § Lenguaje de manipulación (OQL) La sintaxis similar a la de SQL, con características adicionales como identidad de objetos, objetos complejos, operaciones, herencia, polimorfismo y relaciones
Características de BDOO Se pueden dividir en tres grupos: § Obligatorias: Son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO § Opcionales: Son las que pueden ser añadidas para hacer el sistema mejor § Abiertas: Son las que pueden ser añadidas por el diseñador
Características Opcionales y Abiertas Características Abiertas: Son como una especialización, queda en manos del diseñador Características Opcionales: § Herencia múltiple y herencia selectiva § Versiones § Verificación e inferencia del tipo
Características Opcionales (I) § Herencia múltiple y herencia selectiva Herencia múltiple: un subtipo es subtipo de dos supertipos y por tanto hereda las funciones de ambos. Herencia selectiva: cuando un subtipo hereda sólo algunas de las funciones del supertipo
Características Opcionales (II) § Versiones Algunos sistemas OO cuentan con capacidades para manejar múltiples versiones del mismo objeto Útil para conservar una versión anterior hasta que la nueva versión se haya probado y verificado, por ejemplo
Características Opcionales (III) § Verificación e inferencia del tipo Distribución: Que se puede tener parte de una BD en un servidor y otra parte en otro Sistema de Representación: Como se presentan los esquemas Uniformidad: Todo debe ser igual Asociaciones y Cardinalidad de Asociaciones: 1: 1, 1: M, M: 1, M: M
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Seguridad § Muchos SGBDOO utilizan los recursos de seguridad que les proporciona el S. O. subyacente (Unix, Windows) § Otros sistemas utilizan mecanismos de protección de esquemas mediante password § Los SGBDR son más potentes en este sentido
Otras funcionalidades § Restricciones: los SGBDOO no las soportan, se usan las operaciones predefinidas § Vistas: los SGBDOO no soportan las vistas, también se utilizan las operaciones propias del objeto
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Ventajas en BDOOs § Está su flexibilidad, y soporte para el manejo de tipos de datos complejos (modificaciones con herencia) § La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida y ágilmente, debido a las referencias o apuntadores lógicos entre objetos
Posibles Desventajas § La inmadurez del mercado de BDOO constituye una posible fuente de problemas § El segundo problema es la falta de estándares en la industria orientada a objetos, aunque cada vez tiene más fuerza el estándar ODMG
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
SGBDOO vs. SGBDR § Diferencias en el diseño: • Las relaciones: en BDOO incluir los OIDs en los dos objetos, referencias inversas, mientras en BDR es mediante atributos coincidentes • La herencia: en las BDR no existe el concepto de herencia • Operaciones: es necesario especificar las operaciones en las BDO al comienzo del diseño, mientras en las BDR no es necesario hasta la fase de implementación
SGBDOO vs. SGBDR § Tienen un OID único, para saber si es el mismo objeto o no, en las BDR es difícil saberlo § Permiten objetos complejos, mientras en las BDR están en múltiples tablas perdiendo la correspondencia con el mundo real § Reutilización y encapsulación son diferencias principales y muy importantes
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
SGBDOO mas conocidos § GEMSTONE (Meier y Stone) § Basado lenguaje OOP Smalltalk § Producto comercial que suministra: § Integridad de un objeto § Encapsulación de un objeto § Herencia simple § Interfaz externa § Control de concurrencia § Recuperación § Gestión almacenamiento secundario y autorización § Soporta acceso concurrente y métodos para mantener seguridad e integridad en la BD.
SGBDOO mas conocidos § VBASE (Andrews y Harris 1987) § § § § § SGBDOO comercial Estructura fuerte de tipos de datos Utiliza tipos datos abstractos Lenguaje TDL para definición de objetos Lenguaje implementación COP Permite creación objetos de un tipo (clase) Permite creación objetos agregados Soporta interrelaciones entre objetos: 1: 1, 1: N, N: N Los objetos pueden compartirse en múltiples procesos concurrentemente § Proporciona facilidades de seguridad y recuperación § Control de acceso es simple
SGBDOO mas conocidos § ORION (Banerjee y otros 1987) § Prototipo BDOO, igual que Gemstone deriva lenguaje OOP Smalltalk pero este ultimo dispone de capacidad herencia múltiple. § Permite: § Definición de clases § Definición jerarquía de clases § Crear y manipular objetos complejos § Diseñado para soportar de modo natural las necesidades de los OO.
SGBDOO mas conocidos § PDM (Manola y Dayal 1986) § Basado modelo funcional datos DAPLEX § Por lo que el algebra PDM muy cercana al algebra relacional § Diferencias (PDM VS RELACIONAL): § PDM tiene capacidad aplicarle funciones multiargumento a los objetos § PDM incluye operador APPLY_APPEND para composición de funciones § PDM como DAPLEX trata todo como funciones.
SGBDOO mas conocidos § IRIS (Fishman y otros) § § § Desarrollado por Hewlett Packard. Semejanza cercana a los sistemas relacionales. Utiliza administrador de almacenamiento parecido a System R. Soporta lenguaje de consultas SQL (OSQL). Permite representación: § Objetos § Colecciones objetos § Operaciones § SGBD consiste procesador de consultas que implementa modelo datos OO y que soporta abstracciones estructurales de alto nivel (clasificación, generalización, agregación, …). § Incluye una extensión a objetos de SQL
SGBDOO mas conocidos § O 2(Leeluse y otros 1988) § Soporta: § Tipos objetos § Encapsulacion § Herencia § Múltiples lenguajes BASIC, C, LISP. § Proporciona recursos: § Encapsulacion § Herencia § Sobrecarga operadores § No define clases y métodos como objetos como hacia Gemstone.
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
O 2 § O 2 Engine es quien se encarga de la funcionalidad del SGBD: § Proporciona recursos almacenamiento. § Obtención y actualización de objetos almacenados persistentes que pueden ser compartidos por múltiples programas. § Basado en arquitectura Cliente/Servidor § Contempla los sistemas de computo de redes y distribuidos. § Maquina servidora almacena a nivel página ( bloque disco) y no conoce la estructura del objeto § El servidor ocupa parte del almacenamiento de paginas en cache para reducir E/S disco. § Control concurrencia basado en bloqueo § Resuperación escritura anticipada en bitácora.
O 2 § § § En el nivel funcional O 2 Engine tiene 3 componentes: Componente almacenamiento (nivel mas bajo): Utiliza sistema almacenamiento WISS Implementación dividida entre cliente y servido Servidor: § § Maneja disco. Almacena páginas. Lee paginas. Controla recurrencia. § Cliente: § Almacena en cache las paginas § Pone las paginas al servicio de los módulos funcionales del nivel superior.
O 2 § § § § Gestor objetos (nivel intermedio): Estructurar objetos y valores Forma grupos objetos relacionados en paginas en disco Mantiene la identidad de los objetos Efectúa operaciones con objetos Los identificadores de objetos se implementaron como @fis en disco de los objetos Los objetos complejos estructurados se descomponen en registros y se usan índices para acceso a estructuras de conjuntos o listas.
O 2 § Gestor esquemas (nivel mas alto): § Lleva control definición: § § § Clases Tipos Métodos § Provee los mecanismos de herencia § Verifica la consistencia de las declaraciones de clase § Hace posible la evolución de los esquemas
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
GEMSTONE § Gem. Stone permite a desarrolladores de aplicaciones escribir métodos, los cuales son almacenados y ejecutados directamente en la base de datos. § Estos métodos pueden ser accesados ya sea internamente o por aplicaciones cliente externas § Esto puede reducir significativamente el tráfico en la red y permitir a las aplicaciones tomar ventaja del poder superior de cómputo de el servidor
GEMSTONE § Concurrencia § Gem. Stone provee soporte concurrente para aplicaciones § § § desarrolladas con Smalltalk, C++, C y con la herramienta de desarrollo propia de Ge. ODE. Todas las aplicaciones, independientemente del lenguaje en que estén escritas, pueden tener acceso simultáneo a los mismos objetos de la base de datos. La Interfaz C de Gem. Stone es una librería de funciones que pueden ser llamadas desde lenguajes que permiten llamadas a funciones C, incluyendo Ada, COBOL, Pascal, FORTRAN, LISP, y C Objetivo. La Interfaz C++ de Gem. Stone provee almacenamiento persistente para aplicaciones C++.
GEMSTONE Control de Transacciones § Múltiples usuarios pueden operar en la base de datos simultáneamente, con una variedad de modos para el control de transacciones disponibles (como bloqueo optimista o pesimista Seguridad a Nivel de Objeto § El control de autorización puede ser aplicado a cualquier objeto en la base de datos, permitiendo una refinación de la seguridad de objetos.
GEMSTONE Esquema Dinámico y Evolución de Objetos § Gem. Stone soporta la modificación de esquema a través del versionamiento de clases y permite una total migración de objetos entre versiones de sus clases con un simple envío de mensajes. La migración es totalmente personalizable y puede ser revertida. Escalabilidad § Gem. Stone tiene la capacidad para soportar 1, 000 logins y 100 usuarios activos concurrentemente en un servidor SMP de tamaño mediano. Esta característica indica que Gem. Stone es lo suficientemente poderoso por lo menos para aplicaciones departamentales
GEMSTONE Gateways § Gem. Stone incorpora gateways o bridges (puentes) de datos que permiten a aplicaciones de objetos integrar datos válidos, en formatos SQL, IMS, VSAM y otros. El nivel de integración entre Gem. Stone y datos válidos, y aplicaciones puede variar desde un simple query hasta una intensiva interoperabilidad de lectura/escritura. Esta nueva característica es particularmente útil en el papel que desempeña Gem. Stone como servidor de aplicaciones, como una de las principales tareas de este servidor para mapear peticiones de clientes en una variedad de administradores de datos
GEMSTONE Arquitectura Gem. Stone fue diseñado como un sistema cliente-servidor y consiste de dos tipos de procesos: El Gem y el Stone, y el Gem. Stone Smalltalk Interface (GSI).
GEMSTONE El Gem § Es el front-end, y puede correr ya sea en el cliente o en el servidor, esto dependiendo de consideraciones como el tráfico en la red y el rendimiento. § Maneja la compilación Smalltalk y provee una librería de clases predefinidas de cerca de 500 clases y 12, 000 métodos. § Cuando es remoto al Stone, el Gem puede ser configurado para buscar, almacenar en cache o bloquear páginas, objetos, o segmentos de datos completos. § Cada Gem toma aproximadamente 1 MB de RAM, y esto pone un límite práctico al número de usuarios simultáneos soportados. § Una máquina de 32 bits tiene un espacio de direccionamiento virtual de 4 GB, y puede tener hasta 1 GB de RAM física. La mitad de la cual es asignada al cache, y los restantes 500 MB son suficientes para 500 usuarios.
GEMSTONE El Stone § Es el administrador de la base de datos. § Se ejecuta siempre en el servidor. § Las funciones como E/S de disco, concurrencia, transacciones, recuperación y seguridad son responsabilidades del Stone. § Existe un Stone por base de datos.
GEMSTONE El GSI § Siempre se ejecuta en el cliente § Traduce clases Smalltalk y mantiene la coherencia de cache. § Dos versiones: § Una versión enlazada, la cual comparte el mismo espacio de direccionamiento con el Gem § Una versión RPC, la cual permite al GSI ser ejecutado en una máquina remota. Los objetos son automáticamente recolectados a la basura cuando ya no son referenciados.
Índice § § § Introducción Historia de las BDOO Características de BDOO § § § § Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O 2 Gem. Stone Conclusiones • Obligatorias • Opcionales y Abiertas
Conclusiones § Son las que mejor pueden representar el mundo real § Los SGBDOO se supone que son los SGBD del futuro (3ª generación) § Aunque hoy en día sólo abarcan el 1% del mercado § Versant y Ozone, dos de las más importantes, carecen de información para los usuarios externos
- Slides: 64