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
GemStone
Conclusiones
Í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
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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
Evolución de SGBD
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)
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
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
Í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
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, que 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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
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
 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.
Í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
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.
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.
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
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.
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
Í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
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
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++.
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
 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
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
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).
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.
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







• Obligatorias
• Opcionales y Abiertas
Seguridad y otras funcionalidades
Ventajas y posibles desventajas
SGBDOO vs. SGBDR
SGBDOO mas conocidos
O2
GemStone
Conclusiones
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

GemStone vs. Otras BDOOO