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

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

Embed Size (px)

Citation preview

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

Bases de Datos Orientadas a Bases de Datos Orientadas a ObjetosObjetos

Daniel Artázcoz Daniel Artázcoz

&&

Ekaitz BaldaEkaitz Balda

Page 2: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 3: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 4: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

IntroducciónIntroducción¿Qué es O.O.?¿Qué es O.O.?

"La orientación a objetos proporciona una "La orientación a objetos proporciona una solución que conduce a un Universo de Objetos solución que conduce a un Universo de Objetos 'bien educados' que se piden de manera cortés, 'bien educados' que se piden de manera cortés, concederse mutuamente sus deseos".concederse mutuamente sus deseos". (Dan Ingalls de Smalltalk) (Dan Ingalls de Smalltalk)

¿Por qué O.O.? Porque tienen gran capacidad ¿Por qué O.O.? Porque tienen gran capacidad de reutilización de código y con metodología de reutilización de código y con metodología eficientes y efectivas que se aplican al proceso eficientes y efectivas que se aplican al proceso de producción de software.de producción de software.

Page 5: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

IntroducciónIntroducción¿Por qué se crean las bases de datos?¿Por qué se crean las bases de datos? Los SGBD tradicionales tienen deficiencias con Los SGBD tradicionales tienen deficiencias con

aplicaciones complejas (diseño y fabricación en aplicaciones complejas (diseño y fabricación en ingeniería, GIS, multimedia, etc.)ingeniería, GIS, multimedia, etc.)

Aumento del uso de los lenguajes de Aumento del uso de los lenguajes de programación orientada a objetos programación orientada a objetos

Un objetivo: mantener una correspondencia Un objetivo: mantener una correspondencia directa entre los objetos del mundo real y de la directa entre los objetos del mundo real y de la base de datosbase de datos

Page 6: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 7: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Evolución de SGBDEvolución de SGBD

Page 8: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Historia de Base datos OOHistoria 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)

Page 9: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Historia de Base datos OOHistoria 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

Page 10: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Historia de Base datos OOHistoria 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

Page 11: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 12: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características de BDOOCaracterísticas de BDOO

Se pueden dividir en tres grupos:Se pueden dividir en tres grupos: Obligatorias: Son las que el Sistema debe Obligatorias: Son las que el Sistema debe

satisfacer a orden de tener un sistema de satisfacer a orden de tener un sistema de BDOO BDOO

Opcionales: Son las que pueden ser Opcionales: Son las que pueden ser añadidas para hacer el sistema mejor añadidas para hacer el sistema mejor

Abiertas: Son las que pueden ser Abiertas: Son las que pueden ser añadidas por el diseñadorañadidas por el diseñador

Page 13: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características ObligatoriasCaracterísticas Obligatorias

Por ser OOPor ser OO Identificador de objeto Identificador de objeto

(OID) (OID) Objetos complejosObjetos complejos EncapsulamientoEncapsulamiento Tipos o clasesTipos o clases Herencia y jerarquía Herencia y jerarquía

tipostipos Polimorfismo y Polimorfismo y

sobrecargasobrecarga

Por ser SGBDPor ser SGBD PersistenciaPersistencia ConcurrenciaConcurrencia Recuperación ante Recuperación ante

fallosfallos Lenguaje de Lenguaje de

definición de objetos definición de objetos (ODL)(ODL)

Lenguaje de Lenguaje de manipulación (OQL)manipulación (OQL)

Page 14: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características ObligatoriasCaracterísticas Obligatorias

Por ser OOPor ser OO Identificador de objeto Identificador de objeto

(OID) (OID) Objetos complejosObjetos complejos EncapsulamientoEncapsulamiento Tipos o clasesTipos o clases Herencia y jerarquía Herencia y jerarquía

tipostipos Polimorfismo y Polimorfismo y

sobrecargasobrecarga

Por ser SGBDPor ser SGBD PersistenciaPersistencia ConcurrenciaConcurrencia Recuperación ante Recuperación ante

fallosfallos Lenguaje de Lenguaje de

definición de objetos definición de objetos (ODL)(ODL)

Lenguaje de Lenguaje de manipulación (OQL)manipulación (OQL)

Page 15: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (I)Características Obligatorias (I) Identificador de objeto (OID):Identificador de objeto (OID):

Es único, generado por el sistema y no es Es único, generado por el sistema y no es visible para el usuario externovisible para el usuario externoLa principal propiedad de un OID es la de ser La principal propiedad de un OID es la de ser inmutableinmutableLo mas usual es usar un entero largo como OID Lo mas usual es usar un entero largo como OID y luego usar alguna tabla de dispersión (hash) y luego usar alguna tabla de dispersión (hash) para hacer corresponder el valor OID con la para hacer corresponder el valor OID con la dirección física del objeto dirección física del objeto La mayor parte de los SBDOO permiten La mayor parte de los SBDOO permiten representar tanto objetos como valores representar tanto objetos como valores

Page 16: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (II)Características Obligatorias (II)

Objetos complejosObjetos complejos

Los objetos pueden tener una estructura de Los objetos pueden tener una estructura de objeto de complejidad arbitraria con el fin de objeto de complejidad arbitraria con el fin de contener toda la información significativa que contener toda la información significativa que describe al objetodescribe al objetoEn las bases de datos relacionales la En las bases de datos relacionales la información sobre un objeto complejo suele información sobre un objeto complejo suele estar dispersa entre muchas relaciones, estar dispersa entre muchas relaciones, haciendo que se pierda la correspondencia haciendo que se pierda la correspondencia directa entre un objeto del mundo real y su directa entre un objeto del mundo real y su representación en la base de datos representación en la base de datos

Page 17: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (III)Características Obligatorias (III)

EncapsulaciónEncapsulación

Un objeto tiene normalmente dos componentes: Un objeto tiene normalmente dos componentes: estado (valor) y comportamiento (operaciones)estado (valor) y comportamiento (operaciones)La estructura interna de un objeto contiene La estructura interna de un objeto contiene variables de instancia, similares a los atributos variables de instancia, similares a los atributos en SGBDR, pero pueden ser visibles o noen SGBDR, pero pueden ser visibles o noSi no son visibles, solo se puede acceder a Si no son visibles, solo se puede acceder a través de las operacionestravés de las operacionesPermite modificar la estructura interna sin Permite modificar la estructura interna sin modificar los programas externosmodificar los programas externos

Page 18: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (IV)Características Obligatorias (IV)

Tipos o clasesTipos o clases

Tipo de Objeto: es una categoría de objeto Tipo de Objeto: es una categoría de objeto (EMPLEADO). Un objeto es una Instancia de un (EMPLEADO). Un objeto es una Instancia de un tipo de objeto. PERSONA (Juan Pérez)tipo de objeto. PERSONA (Juan Pérez)

Clase: especifica una estructura de datos y los Clase: especifica una estructura de datos y los métodos operativos permisibles que se aplican métodos operativos permisibles que se aplican a cada uno de sus objetos. Las operaciones a cada uno de sus objetos. Las operaciones más usuales: constructora, destructora, más usuales: constructora, destructora, modificadoras y recuperadoras modificadoras y recuperadoras

Page 19: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (V)Características Obligatorias (V)

Herencia y jerarquías de tipoHerencia y jerarquías de tipo

Permite especificar nuevos tipos o clases que heredan Permite especificar nuevos tipos o clases que heredan gran parte de su estructura y operaciones previamente gran parte de su estructura y operaciones previamente definidas. Esto facilita la reutilización de las definiciones definidas. Esto facilita la reutilización de las definiciones de tipos existentes cuando se crean nuevos tipos de de tipos existentes cuando se crean nuevos tipos de objetosobjetos

El subtipo hereda toda las funciones del tipo predefinido El subtipo hereda toda las funciones del tipo predefinido (supertipo), dando lugar a una jerarquía de tipos o de (supertipo), dando lugar a una jerarquía de tipos o de clases clases

Page 20: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (VI)Características Obligatorias (VI)

Polimorfismo o sobrecarga de operadoresPolimorfismo o sobrecarga de operadores

Un nombre de operación se puede referir Un nombre de operación se puede referir a varias implementaciones distintas, a varias implementaciones distintas, dependiendo del tipo de objetos al que se dependiendo del tipo de objetos al que se apliqueaplique

Page 21: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características ObligatoriasCaracterísticas Obligatorias

Por ser OOPor ser OO Identificador de objeto Identificador de objeto

(OID) (OID) Objetos complejosObjetos complejos EncapsulamientoEncapsulamiento Tipos o clasesTipos o clases Herencia y jerarquía Herencia y jerarquía

tipostipos Polimorfismo y Polimorfismo y

sobrecargasobrecarga

Por ser SGBDPor ser SGBD PersistenciaPersistencia ConcurrenciaConcurrencia Recuperación ante Recuperación ante

fallosfallos Lenguaje de Lenguaje de

definición de objetos definición de objetos (ODL)(ODL)

Lenguaje de Lenguaje de manipulación (OQL)manipulación (OQL)

Page 22: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (VII)Características Obligatorias (VII)

PersistenciaPersistencia

No todos los objetos se almacenan No todos los objetos se almacenan permanentemente en la base de datospermanentemente en la base de datos• Objetos transitorios: existen durante la Objetos transitorios: existen durante la

ejecución de un programaejecución de un programa• Objetos persistentes: se almacenan en la Objetos persistentes: se almacenan en la

base de datos y persisten después de la base de datos y persisten después de la terminación del programaterminación del programa

Page 23: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (VIII)Características Obligatorias (VIII)

ConcurrenciaConcurrencia

Permite que varios usuarios o Permite que varios usuarios o aplicaciones tengan acceso a una BD al aplicaciones tengan acceso a una BD al mismo tiempo y compartan objetos de mismo tiempo y compartan objetos de forma seguraforma seguraLos primeros SGBDOO no soportaban el Los primeros SGBDOO no soportaban el control de concurrencia (eran sistemas de control de concurrencia (eran sistemas de ficheros)ficheros)

Page 24: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (IX)Características Obligatorias (IX)

Recuperación ante fallosRecuperación ante fallos

Gestión de transacciones: incluye Gestión de transacciones: incluye capacidades de recuperación ante falloscapacidades de recuperación ante fallos

Cuando se intenta una transacción pero Cuando se intenta una transacción pero no se puede realizar y es necesario no se puede realizar y es necesario regresar al mismo estado en el que se regresar al mismo estado en el que se encontraba la base de datos encontraba la base de datos

Page 25: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (X)Características Obligatorias (X)

Lenguaje de definición de objetos (ODL)Lenguaje de definición de objetos (ODL)

Similar al DDL de los sistemas relacionales, que Similar al DDL de los sistemas relacionales, que incorpore los constructores de tipos anteriores incorpore los constructores de tipos anteriores para definir tipos de objetos para una aplicación para definir tipos de objetos para una aplicación de base de datos específica. Usaremos las de base de datos específica. Usaremos las palabras clave tupla, conjunto y lista para los palabras clave tupla, conjunto y lista para los constructores de tipos, y usaremos los tipos de constructores de tipos, y usaremos los tipos de datos estándar disponibles (integer, string, flota, datos estándar disponibles (integer, string, flota, etc.) para los tipos atómicos etc.) para los tipos atómicos

Page 26: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Obligatorias (XI)Características Obligatorias (XI)

Lenguaje de manipulación (OQL)Lenguaje de manipulación (OQL)

La sintaxis similar a la de SQL, con La sintaxis similar a la de SQL, con características adicionales como identidad características adicionales como identidad de objetos, objetos complejos, de objetos, objetos complejos, operaciones, herencia, polimorfismo y operaciones, herencia, polimorfismo y relacionesrelaciones

Page 27: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características de BDOOCaracterísticas de BDOO

Se pueden dividir en tres grupos:Se pueden dividir en tres grupos: Obligatorias: Son las que el Sistema debe Obligatorias: Son las que el Sistema debe

satisfacer a orden de tener un sistema de satisfacer a orden de tener un sistema de BDOO BDOO

Opcionales: Son las que pueden ser Opcionales: Son las que pueden ser añadidas para hacer el sistema mejor añadidas para hacer el sistema mejor

Abiertas: Son las que pueden ser Abiertas: Son las que pueden ser añadidas por el diseñadorañadidas por el diseñador

Page 28: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Opcionales y Características Opcionales y AbiertasAbiertas

Características Abiertas: Son como una Características Abiertas: Son como una especialización, que queda en manos del especialización, que queda en manos del diseñadordiseñador

Características Opcionales:Características Opcionales: Herencia múltiple y herencia selectivaHerencia múltiple y herencia selectiva VersionesVersiones Verificación e inferencia del tipoVerificación e inferencia del tipo

Page 29: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Opcionales (I)Características Opcionales (I)

Herencia múltiple y herencia selectivaHerencia múltiple y herencia selectiva

Herencia múltiple: un subtipo es subtipo Herencia múltiple: un subtipo es subtipo de dos supertipos y por tanto hereda las de dos supertipos y por tanto hereda las funciones de ambos.funciones de ambos.

Herencia selectiva: cuando un subtipo Herencia selectiva: cuando un subtipo hereda sólo algunas de las funciones del hereda sólo algunas de las funciones del supertiposupertipo

Page 30: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Opcionales (II)Características Opcionales (II)

VersionesVersiones

Algunos sistemas OO cuentan con Algunos sistemas OO cuentan con capacidades para manejar múltiples capacidades para manejar múltiples versiones del mismo objetoversiones del mismo objeto

Útil para conservar una versión anterior Útil para conservar una versión anterior hasta que la nueva versión se haya hasta que la nueva versión se haya probado y verificado, por ejemplo probado y verificado, por ejemplo

Page 31: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Características Opcionales (III)Características Opcionales (III)

Verificación e inferencia del tipoVerificación e inferencia del tipo

Distribución: Que se puede tener parte de una Distribución: Que se puede tener parte de una BD en un servidor y otra parte en otroBD en un servidor y otra parte en otro

Sistema de Representación: Como se presentan Sistema de Representación: Como se presentan los esquemaslos esquemas

Uniformidad: Todo debe ser igualUniformidad: Todo debe ser igual

Asociaciones y Cardinalidad de Asociaciones: Asociaciones y Cardinalidad de Asociaciones: 1:1,1:M, M:1, M:M 1:1,1:M, M:1, M:M

Page 32: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 33: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SeguridadSeguridad

Muchos SGBDOO utilizan los recursos de Muchos SGBDOO utilizan los recursos de seguridad que les proporciona el S.O. seguridad que les proporciona el S.O. subyacente (Unix, Windows)subyacente (Unix, Windows)

Otros sistemas utilizan mecanismos de Otros sistemas utilizan mecanismos de protección de esquemas mediante protección de esquemas mediante passwordpassword

Los SGBDR son más potentes en este Los SGBDR son más potentes en este sentidosentido

Page 34: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Otras funcionalidadesOtras funcionalidades

Restricciones: los SGBDOO no las Restricciones: los SGBDOO no las soportan, se usan las operaciones soportan, se usan las operaciones predefinidaspredefinidas

Vistas: los SGBDOO no soportan las Vistas: los SGBDOO no soportan las vistas, también se utilizan las operaciones vistas, también se utilizan las operaciones propias del objetopropias del objeto

Page 35: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 36: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Ventajas en BDOOs Ventajas en BDOOs

Está su flexibilidad, y soporte para el Está su flexibilidad, y soporte para el manejo de tipos de datos complejos manejo de tipos de datos complejos (modificaciones con herencia)(modificaciones con herencia)

La segunda ventaja de una BDOO, es que La segunda ventaja de una BDOO, es que manipula datos complejos en forma rápida manipula datos complejos en forma rápida y ágilmente, debido a las referencias o y ágilmente, debido a las referencias o apuntadores lógicos entre objetosapuntadores lógicos entre objetos

Page 37: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

Posibles DesventajasPosibles Desventajas

La inmadurez del mercado de BDOO La inmadurez del mercado de BDOO constituye una posible fuente de constituye una posible fuente de problemas problemas

El segundo problema es la falta de El segundo problema es la falta de estándares en la industria orientada a estándares en la industria orientada a objetos, aunque cada vez tiene más objetos, aunque cada vez tiene más fuerza el estándar ODMGfuerza el estándar ODMG

Page 38: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 39: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO vs. SGBDRSGBDOO vs. SGBDR

Diferencias en el diseño:Diferencias en el diseño:• Las relaciones: en BDOO incluir los OIDs en los Las relaciones: en BDOO incluir los OIDs en los

dos objetos, referencias inversas, mientras en dos objetos, referencias inversas, mientras en BDR es mediante atributos coincidentesBDR es mediante atributos coincidentes

• La herencia: en las BDR no existe el concepto de La herencia: en las BDR no existe el concepto de herenciaherencia

• Operaciones: es necesario especificar las Operaciones: es necesario especificar las operaciones en las BDO al comienzo del diseño, operaciones en las BDO al comienzo del diseño, mientras en las BDR no es necesario hasta la fase mientras en las BDR no es necesario hasta la fase de implementaciónde implementación

Page 40: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO vs. SGBDRSGBDOO vs. SGBDR

Tienen un OID único, para saber si es el Tienen un OID único, para saber si es el mismo objeto o no, en las BDR es difícil mismo objeto o no, en las BDR es difícil saberlosaberlo

Permiten objetos complejos, mientras en Permiten objetos complejos, mientras en las BDR están en múltiples tablas las BDR están en múltiples tablas perdiendo la correspondencia con el perdiendo la correspondencia con el mundo realmundo real

Reutilización y encapsulación son Reutilización y encapsulación son diferencias principales y muy importantesdiferencias principales y muy importantes

Page 41: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 42: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos

GEMSTONE (Meier y Stone)GEMSTONE (Meier y Stone) Basado lenguaje OOP SmalltalkBasado lenguaje OOP Smalltalk Producto comercial que suministra:Producto comercial que suministra:

Integridad de un objetoIntegridad de un objeto Encapsulación de un objetoEncapsulación de un objeto Herencia simpleHerencia simple Interfaz externaInterfaz externa Control de concurrenciaControl de concurrencia RecuperaciónRecuperación Gestión almacenamiento secundario y autorizaciónGestión almacenamiento secundario y autorización

Soporta acceso concurrente y métodos para Soporta acceso concurrente y métodos para mantener seguridad e integridad en la BD.mantener seguridad e integridad en la BD.

Page 43: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos

VBASE (Andrews y Harris 1987)VBASE (Andrews y Harris 1987) SGBDOO comercialSGBDOO comercial Estructura fuerte de tipos de datosEstructura fuerte de tipos de datos Utiliza tipos datos abstractosUtiliza tipos datos abstractos Lenguaje TDL para definición de objetosLenguaje TDL para definición de objetos Lenguaje implementación COPLenguaje implementación COP Permite creación objetos de un tipo (clase)Permite creación objetos de un tipo (clase) Permite creación objetos agregadosPermite creación objetos agregados Soporta interrelaciones entre objetos: 1:1,1:N, N:NSoporta interrelaciones entre objetos: 1:1,1:N, N:N Los objetos pueden compartirse en múltiples procesos Los objetos pueden compartirse en múltiples procesos

concurrentementeconcurrentemente Proporciona facilidades de seguridad y recuperaciónProporciona facilidades de seguridad y recuperación Control de acceso es simple Control de acceso es simple

Page 44: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos

ORION (Banerjee y otros 1987)ORION (Banerjee y otros 1987) Prototipo BDOO, igual que Gemstone deriva Prototipo BDOO, igual que Gemstone deriva

lenguaje OOP Smalltalk pero este ultimo lenguaje OOP Smalltalk pero este ultimo dispone de capacidad herencia múltiple.dispone de capacidad herencia múltiple.

Permite:Permite: Definición de clasesDefinición de clases Definición jerarquía de clasesDefinición jerarquía de clases Crear y manipular objetos complejosCrear y manipular objetos complejos

Diseñado para soportar de modo natural las Diseñado para soportar de modo natural las necesidades de los OO.necesidades de los OO.

Page 45: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos

PDM (Manola y Dayal 1986)PDM (Manola y Dayal 1986) Basado modelo funcional datos DAPLEXBasado modelo funcional datos DAPLEX Por lo que el algebra PDM muy cercana al algebra Por lo que el algebra PDM muy cercana al algebra

relacionalrelacional Diferencias (PDM VS RELACIONAL):Diferencias (PDM VS RELACIONAL):

PDM tiene capacidad aplicarle funciones multiargumento a PDM tiene capacidad aplicarle funciones multiargumento a los objetoslos objetos

PDM incluye operador APPLY_APPEND para composición PDM incluye operador APPLY_APPEND para composición de funcionesde funciones

PDM como DAPLEX trata todo como funciones.PDM como DAPLEX trata todo como funciones.

Page 46: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos IRIS (Fishman y otros)IRIS (Fishman y otros)

Desarrollado por Hewlett Packard.Desarrollado por Hewlett Packard. Semejanza cercana a los sistemas relacionales.Semejanza cercana a los sistemas relacionales. Utiliza administrador de almacenamiento parecido a System R.Utiliza administrador de almacenamiento parecido a System R. Soporta lenguaje de consultas SQL (OSQL).Soporta lenguaje de consultas SQL (OSQL). Permite representación:Permite representación:

ObjetosObjetos Colecciones objetosColecciones objetos OperacionesOperaciones

SGBD consiste procesador de consultas que implementa SGBD consiste procesador de consultas que implementa modelo datos OO y que soporta abstracciones estructurales de modelo datos OO y que soporta abstracciones estructurales de alto nivel (clasificación, generalización, agregación,…).alto nivel (clasificación, generalización, agregación,…).

Incluye una extensión a objetos de SQLIncluye una extensión a objetos de SQL

Page 47: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

SGBDOO mas conocidosSGBDOO mas conocidos

O2(Leeluse y otros 1988)O2(Leeluse y otros 1988) Soporta:Soporta:

Tipos objetosTipos objetos EncapsulacionEncapsulacion HerenciaHerencia Múltiples lenguajes BASIC, C, LISP.Múltiples lenguajes BASIC, C, LISP.

Proporciona recursos:Proporciona recursos: EncapsulacionEncapsulacion HerenciaHerencia Sobrecarga operadoresSobrecarga operadores

No define clases y métodos como objetos como hacia No define clases y métodos como objetos como hacia Gemstone.Gemstone.

Page 48: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 49: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

O2O2 O2 Engine es quien se encarga de la funcionalidad del SGBD:O2 Engine es quien se encarga de la funcionalidad del SGBD:

Proporciona recursos almacenamiento.Proporciona recursos almacenamiento. Obtención y actualización de objetos almacenados persistentes que Obtención y actualización de objetos almacenados persistentes que

pueden ser compartidos por múltiples programas.pueden ser compartidos por múltiples programas.

Basado en arquitectura Cliente/ServidorBasado en arquitectura Cliente/Servidor

Contempla los sistemas de computo de redes y distribuidos.Contempla los sistemas de computo de redes y distribuidos. Maquina servidora almacena a nivel página ( bloque disco) y no Maquina servidora almacena a nivel página ( bloque disco) y no

conoce la estructura del objetoconoce la estructura del objeto El servidor ocupa parte del almacenamiento de paginas en cache El servidor ocupa parte del almacenamiento de paginas en cache

para reducir E/S disco.para reducir E/S disco. Control concurrenciaControl concurrencia basado en bloqueo basado en bloqueo ResuperaciónResuperación escritura anticipada en bitácora. escritura anticipada en bitácora.

Page 50: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

O2O2 En el nivel funcional O2 Engine tiene 3 componentes:En el nivel funcional O2 Engine tiene 3 componentes: Componente almacenamiento Componente almacenamiento (nivel mas bajo):(nivel mas bajo): Utiliza sistema almacenamiento WISSUtiliza sistema almacenamiento WISS Implementación dividida entre cliente y servidoImplementación dividida entre cliente y servido Servidor: Servidor:

Maneja disco.Maneja disco. Almacena páginas.Almacena páginas. Lee paginas.Lee paginas. Controla recurrencia.Controla recurrencia.

Cliente:Cliente: Almacena en cache las paginasAlmacena en cache las paginas Pone las paginas al servicio de los módulos funcionales del Pone las paginas al servicio de los módulos funcionales del

nivel superior.nivel superior.

Page 51: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

O2O2

Gestor objetosGestor objetos (nivel intermedio): (nivel intermedio): Estructurar objetos y valoresEstructurar objetos y valores Forma grupos objetos relacionados en paginas Forma grupos objetos relacionados en paginas

en discoen disco Mantiene la identidad de los objetosMantiene la identidad de los objetos Efectúa operaciones con objetosEfectúa operaciones con objetos Los identificadores de objetos se implementaron Los identificadores de objetos se implementaron

como @fis en disco de los objetoscomo @fis en disco de los objetos Los objetos complejos estructurados se Los objetos complejos estructurados se

descomponen en registros y se usan índices descomponen en registros y se usan índices para acceso a estructuras de conjuntos o listas.para acceso a estructuras de conjuntos o listas.

Page 52: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

O2O2

Gestor esquemasGestor esquemas (nivel mas alto): (nivel mas alto): Lleva control definición:Lleva control definición:

ClasesClases TiposTipos MétodosMétodos

Provee los mecanismos de herenciaProvee los mecanismos de herencia Verifica la consistencia de las declaraciones de Verifica la consistencia de las declaraciones de

claseclase Hace posible la evolución de los esquemasHace posible la evolución de los esquemas

Page 53: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 54: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

GemStone permite a desarrolladores de GemStone permite a desarrolladores de aplicaciones escribir métodos, los cuales son aplicaciones escribir métodos, los cuales son almacenados y ejecutados directamente en la almacenados y ejecutados directamente en la base de datos.base de datos.

Estos métodos pueden ser accesados ya sea Estos métodos pueden ser accesados ya sea internamente o por aplicaciones cliente externasinternamente o por aplicaciones cliente externas

Esto puede reducir significativamente el tráfico Esto puede reducir significativamente el tráfico en la red y permitir a las aplicaciones tomar en la red y permitir a las aplicaciones tomar ventaja del poder superior de cómputo de el ventaja del poder superior de cómputo de el servidor servidor

Page 55: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE ConcurrenciaConcurrencia GemStone provee soporte concurrente para GemStone provee soporte concurrente para

aplicaciones desarrolladas con Smalltalk, C++, C y con aplicaciones desarrolladas con Smalltalk, C++, C y con la herramienta de desarrollo propia de GeODE.la herramienta de desarrollo propia de GeODE.

Todas las aplicaciones, independientemente del Todas las aplicaciones, independientemente del lenguaje en que estén escritas, pueden tener acceso lenguaje en que estén escritas, pueden tener acceso simultáneo a los mismos objetos de la base de datos. simultáneo a los mismos objetos de la base de datos.

La Interfaz C de GemStone es una librería de funciones La Interfaz C de GemStone es una librería de funciones que pueden ser llamadas desde lenguajes que permiten que pueden ser llamadas desde lenguajes que permiten llamadas a funciones C, incluyendo Ada, COBOL, llamadas a funciones C, incluyendo Ada, COBOL, Pascal, FORTRAN, LISP, y C Objetivo. Pascal, FORTRAN, LISP, y C Objetivo.

La Interfaz C++ de GemStone provee almacenamiento La Interfaz C++ de GemStone provee almacenamiento persistente para aplicaciones C++. persistente para aplicaciones C++.

Page 56: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

Control de TransaccionesControl de Transacciones Múltiples usuarios pueden operar en la base de Múltiples usuarios pueden operar en la base de

datos simultáneamente, con una variedad de datos simultáneamente, con una variedad de modos para el control de transacciones modos para el control de transacciones disponibles (como bloqueo optimista o pesimista disponibles (como bloqueo optimista o pesimista

Seguridad a Nivel de ObjetoSeguridad a Nivel de Objeto El control de autorización puede ser aplicado a El control de autorización puede ser aplicado a

cualquier objeto en la base de datos, cualquier objeto en la base de datos, permitiendo una refinación de la seguridad de permitiendo una refinación de la seguridad de objetos. objetos.

Page 57: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

Esquema Dinámico y Evolución de ObjetosEsquema Dinámico y Evolución de Objetos GemStone soporta la modificación de esquema a través GemStone soporta la modificación de esquema a través

del versionamiento de clases y permite una total del versionamiento de clases y permite una total migración de objetos entre versiones de sus clases con migración de objetos entre versiones de sus clases con un simple envío de mensajes. La migración es un simple envío de mensajes. La migración es totalmente personalizable y puede ser revertida. totalmente personalizable y puede ser revertida.

EscalabilidadEscalabilidad GemStone tiene la capacidad para soportar 1,000 logins GemStone tiene la capacidad para soportar 1,000 logins

y 100 usuarios activos concurrentemente en un servidor y 100 usuarios activos concurrentemente en un servidor SMP de tamaño mediano. Esta característica indica que SMP de tamaño mediano. Esta característica indica que GemStone es lo suficientemente poderoso por lo menos GemStone es lo suficientemente poderoso por lo menos para aplicaciones departamentales para aplicaciones departamentales

Page 58: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

GatewaysGateways GemStone incorpora gateways o bridges (puentes) de GemStone incorpora gateways o bridges (puentes) de

datos que permiten a aplicaciones de objetos integrar datos que permiten a aplicaciones de objetos integrar datos válidos, en formatos SQL, IMS, VSAM y otros. El datos válidos, en formatos SQL, IMS, VSAM y otros. El nivel de integración entre GemStone y datos válidos, y nivel de integración entre GemStone y datos válidos, y aplicaciones puede variar desde un simple query hasta aplicaciones puede variar desde un simple query hasta una intensiva interoperabilidad de lectura/escritura. Esta una intensiva interoperabilidad de lectura/escritura. Esta nueva característica es particularmente útil en el papel nueva característica es particularmente útil en el papel que desempeña GemStone como servidor de que desempeña GemStone como servidor de aplicaciones, como una de las principales tareas de este aplicaciones, como una de las principales tareas de este servidor para mapear peticiones de clientes en una servidor para mapear peticiones de clientes en una variedad de administradores de datos variedad de administradores de datos

Page 59: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

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

Page 60: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

El GemEl Gem Es el front-end, y puede correr ya sea en el cliente o en el servidor, 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 esto dependiendo de consideraciones como el tráfico en la red y el rendimiento.rendimiento.

Maneja la compilación Smalltalk y provee una librería de clases Maneja la compilación Smalltalk y provee una librería de clases predefinidas de cerca de 500 clases y 12,000 métodos.predefinidas de cerca de 500 clases y 12,000 métodos.

Cuando es remoto al Stone, el Gem puede ser configurado para Cuando es remoto al Stone, el Gem puede ser configurado para buscar, almacenar en cache o bloquear páginas, objetos, o buscar, almacenar en cache o bloquear páginas, objetos, o segmentos de datos completos.segmentos de datos completos.

Cada Gem toma aproximadamente 1MB de RAM, y esto pone un Cada Gem toma aproximadamente 1MB de RAM, y esto pone un límite práctico al número de usuarios simultáneos soportados.límite práctico al número de usuarios simultáneos soportados.

Una máquina de 32 bits tiene un espacio de direccionamiento 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 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 de la cual es asignada al cache, y los restantes 500MB son suficientes para 500 usuarios. suficientes para 500 usuarios.

Page 61: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

El StoneEl Stone Es el administrador de la base de datos.Es el administrador de la base de datos. Se ejecuta siempre en el servidor.Se ejecuta siempre en el servidor. Las funciones como E/S de disco, Las funciones como E/S de disco,

concurrencia, transacciones, recuperación concurrencia, transacciones, recuperación y seguridad son responsabilidades del y seguridad son responsabilidades del Stone. Stone.

Existe un Stone por base de datos. Existe un Stone por base de datos.

Page 62: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

GEMSTONEGEMSTONE

El GSIEl GSI Siempre se ejecuta en el clienteSiempre se ejecuta en el cliente Traduce clases Smalltalk y mantiene la coherencia de Traduce clases Smalltalk y mantiene la coherencia de

cache.cache. Dos versiones:Dos versiones:

Una versión enlazada, la cual comparte el mismo espacio de Una versión enlazada, la cual comparte el mismo espacio de direccionamiento con el Gem direccionamiento con el Gem

Una versión RPC, la cual permite al GSI ser ejecutado en una Una versión RPC, la cual permite al GSI ser ejecutado en una máquina remota. máquina remota.

Los objetos son automáticamente recolectados a la basura Los objetos son automáticamente recolectados a la basura cuando ya no son referenciados. cuando ya no son referenciados.

Page 63: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ÍndiceÍndice

IntroducciónIntroducción Historia de las BDOOHistoria de las BDOO Características de BDOOCaracterísticas de BDOO

• ObligatoriasObligatorias• Opcionales y AbiertasOpcionales y Abiertas

Seguridad y otras funcionalidadesSeguridad y otras funcionalidades Ventajas y posibles desventajasVentajas y posibles desventajas SGBDOO vs. SGBDRSGBDOO vs. SGBDR SGBDOO mas conocidosSGBDOO mas conocidos O2O2 GemStoneGemStone ConclusionesConclusiones

Page 64: Bases de Datos Orientadas a Objetos Daniel Artázcoz & Ekaitz Balda

ConclusionesConclusiones

Son las que mejor pueden representar el Son las que mejor pueden representar el mundo realmundo real

Los SGBDOO se supone que son los Los SGBDOO se supone que son los SGBD del futuro (3ª generación)SGBD del futuro (3ª generación)

Aunque hoy en día sólo abarcan el 1% del Aunque hoy en día sólo abarcan el 1% del mercadomercado

Versant y Ozone, dos de las más Versant y Ozone, dos de las más importantes, carecen de información para importantes, carecen de información para los usuarios externoslos usuarios externos