1 / 64

Bases de Datos Orientadas a Objetos

Bases de Datos Orientadas a Objetos. Daniel Artázcoz & Ekaitz Balda. Índice. Introducción Historia de las BDOO Características de BDOO Obligatorias Opcionales y Abiertas Seguridad y otras funcionalidades Ventajas y posibles desventajas SGBDOO vs. SGBDR SGBDOO mas conocidos O2

melosa
Download Presentation

Bases de Datos Orientadas a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

  2. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  3. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  4. 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.

  5. 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

  6. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  7. Evolución de SGBD

  8. Historia de Base datos OO • 1967 • - Simula67 - primer lenguaje con conceptos O-O Introduce el concepto de “clase” • 1980s • Comienza el auge de los lenguajes O-O • SmallTalk-(Goldberg)-Xerox Palo Alto Research Ctr. • C++ (Stroustrup) - Bell Labs. (1983)

  9. Historia de Base datos OO • 1980s • Prototipos de investigación sistemas SGBDOO • GemStone (Copeland & Maier @ Servio Logic Corp.) (1984) Introducen el concepto de “persistencia” en lenguajes O-O: SmallTalk Objetos existen después de que la aplicación termina su ejecución

  10. Historia de Base datos OO • 1980s (cont.) • Prototipos de investigación sistemas SGBDOO (cont.) • Sistemas objeto-relacionales • POSTGRES (Stonebraker, UCB) (1986) • Startbusrt (IBM, 1985) • 1990s-2000s - Explosión SGBDOO • Sistemas comerciales: • ObjectStore • Versant • Ontos • Gemstone • PUF ! • Abarcan solamente un 1% del mercado

  11. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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)

  24. 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

  25. 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

  26. 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

  27. 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

  28. Características Opcionales y Abiertas Características Abiertas: Son como una especialización, que queda en manos del diseñador Características Opcionales: • Herencia múltiple y herencia selectiva • Versiones • Verificación e inferencia del tipo

  29. 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

  30. 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

  31. 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

  32. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  33. 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

  34. 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

  35. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  36. 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

  37. 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

  38. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  39. 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

  40. 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

  41. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  42. 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.

  43. 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

  44. 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.

  45. 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.

  46. 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

  47. SGBDOO mas conocidos • O2(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.

  48. Índice • Introducción • Historia de las BDOO • Características de BDOO • Obligatorias • Opcionales y Abiertas • Seguridad y otras funcionalidades • Ventajas y posibles desventajas • SGBDOO vs. SGBDR • SGBDOO mas conocidos • O2 • GemStone • Conclusiones

  49. O2 • O2 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.

  50. O2 • En el nivel funcional O2 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.

More Related