Title: Bases de Datos Orientadas a Objetos
1Bases 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
4IntroducciónQué 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.
5IntroducciónPor 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
7Evolución de SGBD
8Historia 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)
9Historia de Base datos OO
- 1980s
- Prototipos de investigación sistemas SGBDOO
- GemStone (Copeland Maier _at_ 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
10Historia 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
12Caracterí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
13Caracterí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)
14Caracterí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)
15Caracterí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
16Caracterí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
17Caracterí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
18Caracterí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
19Caracterí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
20Caracterí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
21Caracterí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)
22Caracterí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
23Caracterí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)
24Caracterí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
25Caracterí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
26Caracterí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 -
27Caracterí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
28Caracterí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
29Caracterí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
30Caracterí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
31Caracterí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
- 11,1M, M1, MM
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
33Seguridad
- 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
34Otras 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
36Ventajas 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
37Posibles 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
39SGBDOO 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
40SGBDOO 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
42SGBDOO 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.
43SGBDOO 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 11,1N,
NN - Los objetos pueden compartirse en múltiples
procesos concurrentemente - Proporciona facilidades de seguridad y
recuperación - Control de acceso es simple
44SGBDOO 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.
45SGBDOO 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.
46SGBDOO 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
47SGBDOO 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
49O2
- 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.
50O2
- 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.
51O2
- 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 _at_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.
52O2
- 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
54GEMSTONE
- 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
55GEMSTONE
- 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.
56GEMSTONE
- 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.
57GEMSTONE
- 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
58GEMSTONE
- 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
59GEMSTONE
- ArquitecturaGemStone 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).
60GEMSTONE
- 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.
61GEMSTONE
- 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.
62GEMSTONE
- 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
64Conclusiones
- 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