La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bases de Datos Orientadas a Objetos

Presentaciones similares


Presentación del tema: "Bases de Datos Orientadas a Objetos"— Transcripción de la presentación:

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
Prototipos de investigación sistemas SGBDOO GemStone (Copeland & 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 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)

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

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

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

51 O2 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 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.

52 O2 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

53 Í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

54 GEMSTONE GemStone 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

55 GEMSTONE Concurrencia
GemStone provee soporte concurrente para aplicaciones desarrolladas con Smalltalk, C++, C y con la herramienta de desarrollo propia de GeODE. 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 GemStone 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 GemStone provee almacenamiento persistente para aplicaciones C++.

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

57 GEMSTONE Esquema Dinámico y Evolución de Objetos
GemStone 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 GemStone 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 GemStone es lo suficientemente poderoso por lo menos para aplicaciones departamentales

58 GEMSTONE Gateways GemStone 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 GemStone 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 GemStone 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

59 GEMSTONE Arquitectura GemStone fue diseñado como un sistema cliente-servidor y consiste de dos tipos de procesos: El Gem y el Stone, y el GemStone Smalltalk Interface (GSI).

60 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 1MB 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 4GB, y puede tener hasta 1GB de RAM física. La mitad de la cual es asignada al cache, y los restantes 500MB son suficientes para 500 usuarios.

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

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

63 Í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

64 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


Descargar ppt "Bases de Datos Orientadas a Objetos"

Presentaciones similares


Anuncios Google