BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos...

40
BASES DE DATOS BASES DE DATOS ORIENTADAS A ORIENTADAS A OBJETOS OBJETOS Introducción a las BDOO Introducción a las BDOO Administración de Bases de Datos Administración de Bases de Datos Roberto Piris Roberto Piris

Transcript of BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos...

Page 1: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

BASES DE DATOS BASES DE DATOS ORIENTADAS A ORIENTADAS A

OBJETOSOBJETOSIntroducción a las BDOOIntroducción a las BDOO

Administración de Bases de DatosAdministración de Bases de Datos

Roberto PirisRoberto Piris

Page 2: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

22

ContenidosContenidos

IntroducciónIntroducciónRepaso de conceptos de OORepaso de conceptos de OOIdentidad de objetoIdentidad de objetoEstructura de objetoEstructura de objetoEncapsulación de operaciones, métodos y persistencia.Encapsulación de operaciones, métodos y persistencia.Jerarquías de tipo y herenciaJerarquías de tipo y herenciaObjetos complejosObjetos complejosOtros conceptos de OOOtros conceptos de OO

PolimorfismoPolimorfismo Herencia múltiple y herencia selectivaHerencia múltiple y herencia selectiva Versiones y configuracionesVersiones y configuraciones

ConclusionesConclusiones

Page 3: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

33

IntroducciónIntroducción

Los SBD tradicionales muestran carencias Los SBD tradicionales muestran carencias (en diseños de ingeniería, investigaciones (en diseños de ingeniería, investigaciones científicas...)científicas...)

Se necesitan estructuras más complejas, Se necesitan estructuras más complejas, transacciones de mayor duración, nuevos transacciones de mayor duración, nuevos tipos de datos (imágenes, etc.)tipos de datos (imágenes, etc.)

Poder especificar tanto la estructura como Poder especificar tanto la estructura como las operaciones que se le pueden aplicarlas operaciones que se le pueden aplicar

Page 4: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

44

IntroducciónIntroducción

Cada vez se utilizan más los LPOOCada vez se utilizan más los LPOOLos fabricantes ya empiezan a incluir Los fabricantes ya empiezan a incluir características de OO en sus productos características de OO en sus productos → → SGBD objeto-relacionales o relacionales SGBD objeto-relacionales o relacionales extendidosextendidosSistemas experimentales: ORION, Sistemas experimentales: ORION, OPENOODB, ODE...OPENOODB, ODE...Comerciales: GEMSTONE/OPAL, Comerciales: GEMSTONE/OPAL, ONTOS, VERSANT...ONTOS, VERSANT...

Page 5: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

55

IntroducciónIntroducción

Necesidad de un estándar, cuyo Necesidad de un estándar, cuyo establecimiento lleva añosestablecimiento lleva años

Un consorcio de vendedores y usuarios Un consorcio de vendedores y usuarios (ODMG) propusieron el ODMG-93, (ODMG) propusieron el ODMG-93, revisado dando lugar al ODMG 2.0revisado dando lugar al ODMG 2.0

Page 6: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

66

Repaso de conceptos de OORepaso de conceptos de OO

El término tiene su origen en los lenguajes de El término tiene su origen en los lenguajes de programación OO, cuyas raíces están en el lenguaje programación OO, cuyas raíces están en el lenguaje SIMULA (1960).SIMULA (1960).SMALLTALK fue uno de los primeros LP que SMALLTALK fue uno de los primeros LP que incorporaron conceptos de OO, como la herencia y el incorporaron conceptos de OO, como la herencia y el paso de mensajes.paso de mensajes.Un LPOO puro, es aquel que ha sido específicamente Un LPOO puro, es aquel que ha sido específicamente diseñado para ser OO. Uno híbrido, es un LP tradicional diseñado para ser OO. Uno híbrido, es un LP tradicional que ha incorporado algunos conceptos (Ejemplo: C++).que ha incorporado algunos conceptos (Ejemplo: C++).Un objeto consta de dos componentes: el estado (el Un objeto consta de dos componentes: el estado (el valor) y el comportamiento (las operaciones).valor) y el comportamiento (las operaciones).Únicamente existen durante la ejecución del programa Únicamente existen durante la ejecución del programa (objetos transitorios).(objetos transitorios).

Page 7: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

77

Repaso de conceptos de OORepaso de conceptos de OOUna BDOO puede alargar la existencia de estos objetos, Una BDOO puede alargar la existencia de estos objetos, haciéndolos persistentes.haciéndolos persistentes.Las BDOO almacenan objetos persistentes de forma permanente Las BDOO almacenan objetos persistentes de forma permanente en un almacenamiento secundario, y permite la compartición de los en un almacenamiento secundario, y permite la compartición de los objetos con otros programas y aplicaciones.objetos con otros programas y aplicaciones.Uno de los objetivos de una BDOO es mantener cierta Uno de los objetivos de una BDOO es mantener cierta correspondencia entre los objetos de la BD y los del mundo real.correspondencia entre los objetos de la BD y los del mundo real.En las BDOO, los objetos pueden tener una cierta complejidad, al En las BDOO, los objetos pueden tener una cierta complejidad, al contener toda la información necesaria para describir el objeto. En contener toda la información necesaria para describir el objeto. En sistemas tradicionales, la información se encuentra dispersa en sistemas tradicionales, la información se encuentra dispersa en múltiples tablas. Se definen las estructuras y las operaciones múltiples tablas. Se definen las estructuras y las operaciones → se → se favorece la encapsulación.favorece la encapsulación.

Page 8: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

88

Repaso de conceptos de OORepaso de conceptos de OO

Una operación se define en dos partes: signatura o Una operación se define en dos partes: signatura o interfaz, y método o cuerpo.interfaz, y método o cuerpo.Otro concepto clave son la jerarquía de tipos y la Otro concepto clave son la jerarquía de tipos y la herencia.herencia.Un problema inicial de las BDOO era cómo representar Un problema inicial de las BDOO era cómo representar las relaciones. Se solucionó introduciendo los las relaciones. Se solucionó introduciendo los identificadores de los objetos referenciados en el propio identificadores de los objetos referenciados en el propio objeto.objeto.Algunos sistemas proporcionan medios para manejar Algunos sistemas proporcionan medios para manejar versiones, y permiten la evolución del esquema (no es versiones, y permiten la evolución del esquema (no es obligatorio).obligatorio).Otra característica es el polimorfismo, que es la Otra característica es el polimorfismo, que es la capacidad de aplicar diferentes objetos en una capacidad de aplicar diferentes objetos en una operación.operación.

Page 9: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

99

Identidad de objetoIdentidad de objeto

Se genera un identificador (OID) único a cada Se genera un identificador (OID) único a cada objeto, que no es visible al usuario externo.objeto, que no es visible al usuario externo.

El OID debe ser inmutable. También sería El OID debe ser inmutable. También sería deseable que cada OID se usara una sola vez, y deseable que cada OID se usara una sola vez, y que no dependiera de ninguno de sus atributos que no dependiera de ninguno de sus atributos (algunos utilizan la dirección física del objeto).(algunos utilizan la dirección física del objeto).

Algunos modelos de datos antiguos, exigían que Algunos modelos de datos antiguos, exigían que todo fuese un objeto, manejando así muchos todo fuese un objeto, manejando así muchos OIDs OIDs → muchos sistemas permiten la utilización → muchos sistemas permiten la utilización tanto de objetos como de valores.tanto de objetos como de valores.

Page 10: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1010

Estructura de objetoEstructura de objeto

Los objetos pueden construirse a partir de otros Los objetos pueden construirse a partir de otros más simples.más simples.Un objeto puede representarse como una tupla Un objeto puede representarse como una tupla (i, c, v), con i=identificador, c=constructor de (i, c, v), con i=identificador, c=constructor de tipo, v=estado del objeto.tipo, v=estado del objeto.Algunos constructores: átomo, tupla, conjunto, Algunos constructores: átomo, tupla, conjunto, lista, bolsa y array.lista, bolsa y array.El estado de un objeto se interpreta a partir de El estado de un objeto se interpreta a partir de su constructor.su constructor.Hay dos tipos de definiciones para una Hay dos tipos de definiciones para una comparación entre objetos: iguales vs idénticos.comparación entre objetos: iguales vs idénticos.

Page 11: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1111

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

El concepto de encapsulación está relacionado con los El concepto de encapsulación está relacionado con los conceptos de tipos de datos abstractos y de ocultación conceptos de tipos de datos abstractos y de ocultación de la información.de la información.Especificación del comportamiento del objeto mediante Especificación del comportamiento del objeto mediante operaciones de claseoperaciones de clase

La idea es definir el comportamiento de un objeto basado en las La idea es definir el comportamiento de un objeto basado en las operaciones que se le pueden aplicar externamente.operaciones que se le pueden aplicar externamente.

La estructura interna queda oculta y sólo se puede acceder La estructura interna queda oculta y sólo se puede acceder mediante ciertas operaciones predefinidas.mediante ciertas operaciones predefinidas.

Los usuarios sólo perciben la interfaz del objeto, donde se Los usuarios sólo perciben la interfaz del objeto, donde se definen los nombres y los argumentos de las operaciones.definen los nombres y los argumentos de las operaciones.

Se define signatura a la interfaz, y la implementación se conoce Se define signatura a la interfaz, y la implementación se conoce como método.como método.

Page 12: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1212

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

En las aplicaciones de BD, el requisito de que todos los objetos En las aplicaciones de BD, el requisito de que todos los objetos deben quedar encapsulados es demasiado estricto. Esto se deben quedar encapsulados es demasiado estricto. Esto se relaja diferenciando entre atributos visibles y atributos ocultos.relaja diferenciando entre atributos visibles y atributos ocultos.

Los operadores externos o un lenguaje de consulta (p.e. SQL) Los operadores externos o un lenguaje de consulta (p.e. SQL) pueden tener acceso directo a los atributos visibles.pueden tener acceso directo a los atributos visibles.

Casi todos los SGBD emplean algún lenguaje para tener acceso Casi todos los SGBD emplean algún lenguaje para tener acceso a los atributos visibles. El OQL se propone como lenguaje de a los atributos visibles. El OQL se propone como lenguaje de consulta estándar para BDOO.consulta estándar para BDOO.

En la mayoría de los casos, las operaciones que actualizan el En la mayoría de los casos, las operaciones que actualizan el estado de un objeto están encapsuladas, lo que define la estado de un objeto están encapsuladas, lo que define la semántica de actualización de los objetos.semántica de actualización de los objetos.

Cada tipo de objeto tiene definidas las restricciones de Cada tipo de objeto tiene definidas las restricciones de integridad programadas en los métodos que crean, destruyen y integridad programadas en los métodos que crean, destruyen y modifican los objetos. Más recientemente, el ODL para el modifican los objetos. Más recientemente, el ODL para el estándar ODMG 2.0 permite la especificación de algunas estándar ODMG 2.0 permite la especificación de algunas restricciones como claves y relaciones inversas (integridad restricciones como claves y relaciones inversas (integridad referencial)referencial)

Page 13: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1313

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

El término clase se utiliza para referirse a una El término clase se utiliza para referirse a una definición de tipo de objetos, junto con las definición de tipo de objetos, junto con las definiciones de las operaciones para ese tipo. definiciones de las operaciones para ese tipo.

Para cada clase se declaran varias operaciones, y la Para cada clase se declaran varias operaciones, y la signatura de cada operación se incluye en la signatura de cada operación se incluye en la definición de la clase. definición de la clase.

Para cada operación se debe definir un método Para cada operación se debe definir un método (implementación) en otro lugar. (implementación) en otro lugar.

Las operaciones más habituales incluyen el Las operaciones más habituales incluyen el constructor de objeto, el destructor y varias constructor de objeto, el destructor y varias operaciones para modificar el objeto. Otras operaciones para modificar el objeto. Otras operaciones nos permitirán recuperar información operaciones nos permitirán recuperar información acerca del objeto.acerca del objeto.

Page 14: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1414

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

define class Empleadotype tuple ( nombre: string;

inic: char;apellido: string;fechanacimiento: Fecha;dirección: string;sexo: char;salario: float;supervisor: Empleado;dept: Departamento; );

operations edad: integer;crear_emp: Empleado;borrar_emp: boolean;

end Empleado;

Page 15: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1515

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

define class Departamentotype tuple (nombred: string;

númerod: integer; jf: tuple (jefe: Empleado;

fechainicio: Fecha; ); localizaciones: set (string); empleados: set (Empleado);

proyectos: set (Proyecto); );operations num_de_emps: integer;

crear_dept: Departamento;borrar_dept: boolean;asignar_emp(e: Empleado): boolean;(* añade un empleado al departamento *)quitar_emp(e: Empleado): bolean;(* elimina un empleado del departamento *)

end Departamento;

Page 16: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1616

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

Una operación se aplica mediante la notación Una operación se aplica mediante la notación de punto:de punto:

Departamento d;Departamento d;

d.num_de_emps devolvería el número de empleados del departamento dd.num_de_emps devolvería el número de empleados del departamento d

Empleado e;Empleado e;

e.edad nos daría la edad del empleado ee.edad nos daría la edad del empleado e

Page 17: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1717

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

Especificación de la persistencia de objetos a Especificación de la persistencia de objetos a través del nombramiento y la alcanzabilidadtravés del nombramiento y la alcanzabilidad Lo normal es que los objetos sean creados por Lo normal es que los objetos sean creados por

programas en ejecución. programas en ejecución. No todos los objetos se almacenan el la BD.No todos los objetos se almacenan el la BD. Los objetos que sólo existen durante la ejecución del Los objetos que sólo existen durante la ejecución del

programa se denominan transitorios.programa se denominan transitorios. A los objetos que se almacenan se les llama A los objetos que se almacenan se les llama

persistentes.persistentes. Los mecanismos habituales para hacer persistente un Los mecanismos habituales para hacer persistente un

objeto son el nombramiento y la alcanzabilidad.objeto son el nombramiento y la alcanzabilidad.

Page 18: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1818

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

El nombramiento implica dar un nombre persistente y El nombramiento implica dar un nombre persistente y único al objeto que va a ser almacenado, mediante el único al objeto que va a ser almacenado, mediante el cual se puede volver a recuperar.cual se puede volver a recuperar.

El nombre se puede asignar por una sentencia o una El nombre se puede asignar por una sentencia o una operación en un programa.operación en un programa.

Los objetos persistentes nombrados se pueden Los objetos persistentes nombrados se pueden utilizar como punto de entrada a la BD.utilizar como punto de entrada a la BD.

Problema: ¿qué pasa si tenemos miles de objetos en Problema: ¿qué pasa si tenemos miles de objetos en la BD? la BD? → necesitamos nombres únicos para cada → necesitamos nombres únicos para cada uno → buscamos otra solución, la alcanzabilidad.uno → buscamos otra solución, la alcanzabilidad.

Page 19: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

1919

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

La alcanzabilidad funciona haciendo que un La alcanzabilidad funciona haciendo que un objeto sea alcanzable a través de otro que ya objeto sea alcanzable a través de otro que ya lo es.lo es.

Se dice que un objeto B es alcanzable desde Se dice que un objeto B es alcanzable desde un objeto a si una secuencia de referencias un objeto a si una secuencia de referencias del gráfico del objeto conduce del objeto A al del gráfico del objeto conduce del objeto A al objeto B.objeto B.

Page 20: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2020

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

define class ConjuntoDepartamentodefine class ConjuntoDepartamentotypetype set (Departamento);set (Departamento);operationsoperations añadir_dept (d: Departamento): boolean;añadir_dept (d: Departamento): boolean;

(* añade un departamento al objeto ConjuntoDepartamento *)(* añade un departamento al objeto ConjuntoDepartamento *)quitar_dept (d: Departamento): bolean;quitar_dept (d: Departamento): bolean;(* elimina un departamento del objeto ConjuntoDepartamento *)(* elimina un departamento del objeto ConjuntoDepartamento *)crear_conjunto_dept: ConjuntoDepartamento;crear_conjunto_dept: ConjuntoDepartamento;borrar_conjunto_dept:borrar_conjunto_dept: bolean;bolean;

end ConjuntoDepartamento;end ConjuntoDepartamento;

persistent name TodosDepartamentos: ConjuntoDepartamento;persistent name TodosDepartamentos: ConjuntoDepartamento;(* TodosDepartamentos es un objeto nombrado persistente de tipo ConjuntoDepartamento *)(* TodosDepartamentos es un objeto nombrado persistente de tipo ConjuntoDepartamento *)

d:= crear_dept;d:= crear_dept;(* crear un nuevo objeto Departamento en la variable d *)(* crear un nuevo objeto Departamento en la variable d *)

b:= TodosDepartamentos.añadir_dept (d);b:= TodosDepartamentos.añadir_dept (d);(* hace a de persistente añadiéndolo al conjunto persistente TodosDepartamento *)(* hace a de persistente añadiéndolo al conjunto persistente TodosDepartamento *)

Page 21: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2121

Encapsulación de operaciones, Encapsulación de operaciones, métodos y persistenciamétodos y persistencia

En un modelo típico de BD, se da por hecho que En un modelo típico de BD, se da por hecho que todos los objetos son persistentes. Así pues, cuando todos los objetos son persistentes. Así pues, cuando se define un tipo de entidad o una clase como se define un tipo de entidad o una clase como Empleado en el modelo EER, representa tanto la Empleado en el modelo EER, representa tanto la declaración de tipo Empleado como un conjunto declaración de tipo Empleado como un conjunto persistente de todos los objetos Empleado. En el persistente de todos los objetos Empleado. En el enfoque OO, una declaración de clase Empleado sólo enfoque OO, una declaración de clase Empleado sólo especifica el tipo y las operaciones de una clase de especifica el tipo y las operaciones de una clase de objetos. El usuario debe definir por separado un objetos. El usuario debe definir por separado un objeto persistente de tipo conjunto o lista cuyo valor objeto persistente de tipo conjunto o lista cuyo valor sea la colección de referencias a todos los objetos sea la colección de referencias a todos los objetos Empleado persistentes. Empleado persistentes.

Page 22: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2222

Jerarquías de tipo y herenciaJerarquías de tipo y herencia

En gran parte de las aplicaciones de BD hay En gran parte de las aplicaciones de BD hay muchísimos objetos, por lo que sería deseable poderlos muchísimos objetos, por lo que sería deseable poderlos clasificar.clasificar.Además, el sistema debería poder permitir la definición Además, el sistema debería poder permitir la definición de nuevos tipos basados en tipos predefinidos, dando de nuevos tipos basados en tipos predefinidos, dando origen a una jerarquía.origen a una jerarquía.Para definir un tipo se le asigna un nombre y una serie Para definir un tipo se le asigna un nombre y una serie de atributos y operaciones para el mismo. En algunos de atributos y operaciones para el mismo. En algunos casos, tanto atributos como operaciones se denominan casos, tanto atributos como operaciones se denominan funciones, porque consideran a los atributos como funciones, porque consideran a los atributos como operaciones con cero argumentos.operaciones con cero argumentos.

NOMBRE_DE_TIPO: función1, función2, ...NOMBRE_DE_TIPO: función1, función2, ...

Page 23: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2323

Jerarquías de tipo y herenciaJerarquías de tipo y herencia

PERSONA: Nombre, Dirección, FechaNac, Edad, NSSPERSONA: Nombre, Dirección, FechaNac, Edad, NSS

En el tipo PERSONA, Nombre, Dirección, En el tipo PERSONA, Nombre, Dirección, FechaNac y NSS pueden implementarse como FechaNac y NSS pueden implementarse como atributos almacenados, mientras que la edad atributos almacenados, mientras que la edad puede obtenerse a partir de FechaNac y la puede obtenerse a partir de FechaNac y la fecha actual.fecha actual.

Page 24: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2424

Jerarquías de tipo y herenciaJerarquías de tipo y herencia

Cuando el diseñador o el usuario desean crear Cuando el diseñador o el usuario desean crear un nuevo tipo, similar a uno ya existente, resulta un nuevo tipo, similar a uno ya existente, resulta útil el concepto de subtipo. Éste hereda todas útil el concepto de subtipo. Éste hereda todas las funciones del tipo predefinido, llamado las funciones del tipo predefinido, llamado supertipo.supertipo.EMPLEADO: Nombre, Dirección, Fechanac, Edad, NSS, Salario, FechaAlta, EMPLEADO: Nombre, Dirección, Fechanac, Edad, NSS, Salario, FechaAlta,

AntigüedadAntigüedad

ESTUDIANTE: Nombre, Dirección, Fechanac, Edad, NSS, Titulación, NMESTUDIANTE: Nombre, Dirección, Fechanac, Edad, NSS, Titulación, NM

ESTUDIANTE y EMPLEADO heredarían todas ESTUDIANTE y EMPLEADO heredarían todas las funciones de Persona, y sólo implementarían las funciones de Persona, y sólo implementarían aquellas que les sean propiasaquellas que les sean propias

Page 25: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2525

Jerarquías de tipo y herenciaJerarquías de tipo y herencia

Definir un tipo implica definir todas sus Definir un tipo implica definir todas sus funciones e implementarlas. Cuando funciones e implementarlas. Cuando definimos un subtipo, se heredan todas definimos un subtipo, se heredan todas las funciones del supertipo, y sólo las funciones del supertipo, y sólo tenemos que implementar las nuevas, tenemos que implementar las nuevas, reduciendo así el trabajo.reduciendo así el trabajo.EMPLEADO subtype-of PERSONA: Salario, FechaAlta, AntigüedadEMPLEADO subtype-of PERSONA: Salario, FechaAlta, AntigüedadESTUDIANTE subtype-of PERSONA: Titulación, NMESTUDIANTE subtype-of PERSONA: Titulación, NM

Gracias a este mecanismo, es posible Gracias a este mecanismo, es posible definir una jerarquía supertipo/subtipodefinir una jerarquía supertipo/subtipo

Page 26: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2626

Jerarquías de tipo y herenciaJerarquías de tipo y herencia

Restricciones sobre extensiones correspondientes a una Restricciones sobre extensiones correspondientes a una jerarquía de tipos:jerarquía de tipos:

En las aplicaciones de BD es habitual que cada tipo o subtipo En las aplicaciones de BD es habitual que cada tipo o subtipo tenga asociada una extensión, que contenga la colección de tenga asociada una extensión, que contenga la colección de todos los objetos persistentes de ese tipo o subtipo.todos los objetos persistentes de ese tipo o subtipo.

En ese caso, se da la restricción que todos los objetos que En ese caso, se da la restricción que todos los objetos que pertenezcan a un subtipo también deben ser miembros de la pertenezcan a un subtipo también deben ser miembros de la extensión que corresponda a su supertipo.extensión que corresponda a su supertipo.

En algunos sistemas existe un tipo predefinido (RAIZ o En algunos sistemas existe un tipo predefinido (RAIZ o OBJETO) cuya extensión contiene a todos los objetos del OBJETO) cuya extensión contiene a todos los objetos del sistema. Entonces se lleva a cabo una clasificación, asignando sistema. Entonces se lleva a cabo una clasificación, asignando los objetos a subtipos adicionales, creando una jerarquía. En el los objetos a subtipos adicionales, creando una jerarquía. En el modelo ODMG el usuario puede especificar una extensión para modelo ODMG el usuario puede especificar una extensión para cada tipo dependiendo de la aplicación.cada tipo dependiendo de la aplicación.

En la mayor parte de sistemas se hace distinción entre En la mayor parte de sistemas se hace distinción entre colecciones y objetos persistentes y transitorios.colecciones y objetos persistentes y transitorios.

Page 27: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2727

Objetos complejosObjetos complejos

Una de las motivaciones para desarrollar Una de las motivaciones para desarrollar sistemas OO, fue la de poder representar sistemas OO, fue la de poder representar objetos complejos. Los hay de dos tipos: objetos complejos. Los hay de dos tipos: estructurados y no estructurados.estructurados y no estructurados.Objeto complejo estructurado: constituido por Objeto complejo estructurado: constituido por componentes, se define aplicando componentes, se define aplicando recurrentemente los constructores de tipos recurrentemente los constructores de tipos disponibles.disponibles.Objeto complejo no estructurado: casi siempre Objeto complejo no estructurado: casi siempre es un tipo de datos que requiere una gran es un tipo de datos que requiere una gran cantidad de almacenamiento, como un tipo de cantidad de almacenamiento, como un tipo de datos que representa a una imagen.datos que representa a una imagen.

Page 28: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2828

Objetos complejosObjetos complejos

Objetos complejos no estructurados y extensibilidad de Objetos complejos no estructurados y extensibilidad de tipos:tipos:

Ejemplos representativos: imágenes de mapa de bits y cadenas Ejemplos representativos: imágenes de mapa de bits y cadenas de texto largas. También se conocen como objetos binarios de texto largas. También se conocen como objetos binarios extensos, o BLOB.extensos, o BLOB.

Son no estructurados en el sentido de que el SGBD no sabe Son no estructurados en el sentido de que el SGBD no sabe qué estructura tienen. Sólo la aplicación que los usa sabe cómo qué estructura tienen. Sólo la aplicación que los usa sabe cómo interpretarlos.interpretarlos.

Se consideran complejos porque necesitan un área de Se consideran complejos porque necesitan un área de almacenamiento sustancial, y no forman parte de los tipos almacenamiento sustancial, y no forman parte de los tipos estándar que suelen ofrecer los SGBD.estándar que suelen ofrecer los SGBD.

Como el tamaño es grande, el SGBD podría obtener un trozo y Como el tamaño es grande, el SGBD podría obtener un trozo y pasárselo al programa antes de obtener todo el objeto. Se pasárselo al programa antes de obtener todo el objeto. Se pueden utilizar técnicas de búferes y almacenamiento en cache pueden utilizar técnicas de búferes y almacenamiento en cache para recuperar el siguiente fragmento antes de que el programa para recuperar el siguiente fragmento antes de que el programa lo necesite.lo necesite.

Page 29: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

2929

Objetos complejosObjetos complejos

El SGBD no tiene capacidad para procesar El SGBD no tiene capacidad para procesar directamente las condiciones de selección ni directamente las condiciones de selección ni otras basadas en atributos de estos objetos, a otras basadas en atributos de estos objetos, a menos que la aplicación proporcione el menos que la aplicación proporcione el código necesario para realizar la operación. código necesario para realizar la operación. En un SGBDOO esto se consigue mediante En un SGBDOO esto se consigue mediante un tipo abstracto de datos para los objetos no un tipo abstracto de datos para los objetos no interpretados y suministrando los métodos interpretados y suministrando los métodos necesarios.necesarios.

Page 30: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3030

Objetos complejosObjetos complejos

Objetos complejos estructurados:Objetos complejos estructurados: La estructura de estos objetos se construye mediante La estructura de estos objetos se construye mediante

la aplicación repetida de los constructores de tipos la aplicación repetida de los constructores de tipos que proporciona el SGBD. La estructura está que proporciona el SGBD. La estructura está definida, y el SGBD la conoce.definida, y el SGBD la conoce.

Existen dos tipos de semántica para la referencia Existen dos tipos de semántica para la referencia entre un objeto complejo y sus componentes de cada entre un objeto complejo y sus componentes de cada nivel:nivel:

La semántica de propiedad, se aplica cuando los subobjetos La semántica de propiedad, se aplica cuando los subobjetos de un objeto complejo están encapsulados dentro de éste, y de un objeto complejo están encapsulados dentro de éste, y se los considera parte de él.se los considera parte de él.La semántica de referencia se aplica cuando los La semántica de referencia se aplica cuando los componentes de un objeto complejo son ellos mismos componentes de un objeto complejo son ellos mismos objetos independientes, que son referenciados por el objeto objetos independientes, que son referenciados por el objeto complejo.complejo.

Page 31: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3131

Objetos complejosObjetos complejos Para la semántica de propiedad, los objetos que están encapsulados Para la semántica de propiedad, los objetos que están encapsulados

dentro del objeto complejo no necesitan tener su identificador de objeto dentro del objeto complejo no necesitan tener su identificador de objeto (el OID), y sólo acceden a ellos los métodos del objeto que los contiene. (el OID), y sólo acceden a ellos los métodos del objeto que los contiene. Además, desaparecen cuando se elimina el objeto principal.Además, desaparecen cuando se elimina el objeto principal.

Para la semántica de referencia, el objeto se considera que está Para la semántica de referencia, el objeto se considera que está formado por varios objetos independientes, con identidad y métodos formado por varios objetos independientes, con identidad y métodos propios. Cuando un objeto complejo necesita acceder a los propios. Cuando un objeto complejo necesita acceder a los componentes referenciados, debe hacerlo mediante los métodos componentes referenciados, debe hacerlo mediante los métodos pertinentes. Además, los componentes no desaparecen al eliminar el pertinentes. Además, los componentes no desaparecen al eliminar el objeto complejo.objeto complejo.

Los SGBD deben ofrecer opciones de almacenamiento para agrupar los Los SGBD deben ofrecer opciones de almacenamiento para agrupar los componentes de un objeto en el almacenamiento secundario. En componentes de un objeto en el almacenamiento secundario. En muchos casos la estructura se almacena sin ser interpretada en muchos casos la estructura se almacena sin ser interpretada en páginas de disco. Al recuperar una página que incluye un objeto, el páginas de disco. Al recuperar una página que incluye un objeto, el SGBDOO puede recuperar el objeto a partir de la información contenida SGBDOO puede recuperar el objeto a partir de la información contenida en las páginas de disco, las cuales pueden hacer referencia a otras en las páginas de disco, las cuales pueden hacer referencia a otras páginas de disco. Esto se conoce como ensamblaje de objetos páginas de disco. Esto se conoce como ensamblaje de objetos complejos.complejos.

Page 32: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3232

Otros conceptos de orientación a Otros conceptos de orientación a objetosobjetos

Polimorfismo (sobrecarga de operadores)Polimorfismo (sobrecarga de operadores)

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

Versiones y configuracionesVersiones y configuraciones

Page 33: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3333

Polimorfismo (sobrecarga de Polimorfismo (sobrecarga de operadores)operadores)

Permite enlazar el mismo nombre o símbolo de operador Permite enlazar el mismo nombre o símbolo de operador a dos o más implementaciones diferentes del mismo, a dos o más implementaciones diferentes del mismo, dependiendo del tipo de objeto al que se le aplique.dependiendo del tipo de objeto al que se le aplique.

OBJETO_GEOMÉTRICO: Forma, Área, PuntoReferenciaOBJETO_GEOMÉTRICO: Forma, Área, PuntoReferenciaRECTÁNGULO subtype-of OBJETO_GEOMÉTRICO (Forma=’rectángulo’): Ancuha, AlturaRECTÁNGULO subtype-of OBJETO_GEOMÉTRICO (Forma=’rectángulo’): Ancuha, AlturaTRIÁNGULO subtype-of OBJETO_GEOMÉTRICO (Forma=’triángulo’): Lado1, Lado2, ÁnguloTRIÁNGULO subtype-of OBJETO_GEOMÉTRICO (Forma=’triángulo’): Lado1, Lado2, ÁnguloCÍRCULO subtype-of OBJETO_GEOMÉTRICO (Forma=’círculo’): RadioCÍRCULO subtype-of OBJETO_GEOMÉTRICO (Forma=’círculo’): Radio

La función Área se ha declarado para todos los objetos La función Área se ha declarado para todos los objetos del tipo OBJETO_GEOMÉTRICO. Sin embargo, la del tipo OBJETO_GEOMÉTRICO. Sin embargo, la implementación del mismo puede ser diferente para implementación del mismo puede ser diferente para cada uno de los subtipos.cada uno de los subtipos.Una posibilidad es la de tener una implementación Una posibilidad es la de tener una implementación general, y luego reescribir algoritmos más eficientes general, y luego reescribir algoritmos más eficientes para cada subtipo.para cada subtipo.

Page 34: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3434

Polimorfismo (sobrecarga de Polimorfismo (sobrecarga de operadores)operadores)

Al darle diferentes implementaciones a una Al darle diferentes implementaciones a una función, estamos haciendo lo que se denomina función, estamos haciendo lo que se denomina sobrecarga de operadores.sobrecarga de operadores.El SGBDOO debe seleccionar el método El SGBDOO debe seleccionar el método apropiado para la función según el subtipo al apropiado para la función según el subtipo al que se aplique. En sistemas fuertemente que se aplique. En sistemas fuertemente tipeados, se puede hacer en tiempo de tipeados, se puede hacer en tiempo de compilación (ligadura estática o temprana). En compilación (ligadura estática o temprana). En los sistemas débilmente tipeados, (o incluso sin los sistemas débilmente tipeados, (o incluso sin tipos) es posible que el tipo no se conozca hasta tipos) es posible que el tipo no se conozca hasta el momento de la ejecución (ligadura dinámica o el momento de la ejecución (ligadura dinámica o tardía).tardía).

Page 35: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3535

Herencia múltiple y herencia Herencia múltiple y herencia selectivaselectiva

La herencia múltiple es una jerarquía de tipos que se da La herencia múltiple es una jerarquía de tipos que se da cuando un cierto subtipo es un subtipo de dos (o más) cuando un cierto subtipo es un subtipo de dos (o más) tipos diferentes y por tanto hereda las funciones de tipos diferentes y por tanto hereda las funciones de ambos supertiposambos supertipos..Problema: si los dos supertipos tienen funciones con el Problema: si los dos supertipos tienen funciones con el mismo nombre y distintas implementaciones, ¿cuál se mismo nombre y distintas implementaciones, ¿cuál se hereda?hereda?La regla general es que si una función se hereda de un La regla general es que si una función se hereda de un supertipo común, se herede sólo una vez. Para el caso supertipo común, se herede sólo una vez. Para el caso de funciones con el mismo nombre y distinta de funciones con el mismo nombre y distinta implementación, se puede dejar al usuario la decisión de implementación, se puede dejar al usuario la decisión de cuál heredar, utilizar una opción por defecto, o prohibir la cuál heredar, utilizar una opción por defecto, o prohibir la herencia múltiple si hay ambigüedad, obligando a herencia múltiple si hay ambigüedad, obligando a cambiar el nombre de una de las funciones.cambiar el nombre de una de las funciones.

Page 36: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3636

Herencia múltiple y herencia Herencia múltiple y herencia selectivaselectiva

Algunos sistemas OO no permiten la herencia Algunos sistemas OO no permiten la herencia múltiple.múltiple.

La herencia selectiva se produce cuando un La herencia selectiva se produce cuando un subtipo hereda sólo algunas funciones del subtipo hereda sólo algunas funciones del supertipo. supertipo.

Puede usarse una claúsula EXCEPT para Puede usarse una claúsula EXCEPT para enumerar las funciones que no debe heredar.enumerar las funciones que no debe heredar.

No es usual que los sistemas cuenten con este No es usual que los sistemas cuenten con este mecanismo.mecanismo.

Page 37: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3737

Versiones y configuracionesVersiones y configuraciones

Muchas aplicaciones de BD que usan sistemas Muchas aplicaciones de BD que usan sistemas OO requieren la existencia de varias versiones OO requieren la existencia de varias versiones de un mismo objeto. de un mismo objeto.

Si un sistema está en funcionamiento, y se Si un sistema está en funcionamiento, y se quieren hacer cambios sobre un objeto, el quieren hacer cambios sobre un objeto, el diseñador creará una nueva versión del objeto diseñador creará una nueva versión del objeto para efectuar los cambios. Las versiones para efectuar los cambios. Las versiones existentes no se desechan hasta que se han existentes no se desechan hasta que se han probado exhaustivamente las nuevas.probado exhaustivamente las nuevas.

Page 38: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3838

Versiones y configuracionesVersiones y configuraciones

Puede haber más de una versión de un mismo Puede haber más de una versión de un mismo objeto, por ejemplo, cuando se trabaja objeto, por ejemplo, cuando se trabaja concurrentemente. Pero en algún momento concurrentemente. Pero en algún momento habrá que combinarlas en una nueva (híbrida), habrá que combinarlas en una nueva (híbrida), lo que precisa la creación de una nueva versión. lo que precisa la creación de una nueva versión. Algunos SGBD cuentan con mecanismos para Algunos SGBD cuentan con mecanismos para averiguar si algunos cambios son incompatibles, averiguar si algunos cambios son incompatibles, ayudando en el proceso de combinación.ayudando en el proceso de combinación.Otros sistemas mantienen un gráfico de Otros sistemas mantienen un gráfico de versiones que muestra la relación entre distintas versiones que muestra la relación entre distintas versiones.versiones.

Page 39: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

3939

Versiones y configuracionesVersiones y configuraciones

Un objeto complejo consta de muchos módulos. Cuando se permite Un objeto complejo consta de muchos módulos. Cuando se permite la creación de múltiples versiones, es posible que cada uno de esos la creación de múltiples versiones, es posible que cada uno de esos módulos tenga varias versiones distintas y un gráfico de versiones. módulos tenga varias versiones distintas y un gráfico de versiones. Una configuración del objeto complejo es una colección que Una configuración del objeto complejo es una colección que consiste en una versión de cada módulo dispuesta de manera tal consiste en una versión de cada módulo dispuesta de manera tal que las versiones de módulo en la configuración sean compatibles y que las versiones de módulo en la configuración sean compatibles y juntas formen una versión válida del objeto complejo. juntas formen una versión válida del objeto complejo. Una versión nueva o configuración del objeto complejo no tiene Una versión nueva o configuración del objeto complejo no tiene que incluir versiones nuevas para cada módulo. Así pues, ciertas que incluir versiones nuevas para cada módulo. Así pues, ciertas versiones del módulo que no se han cambiado pueden pertenecer a versiones del módulo que no se han cambiado pueden pertenecer a más de una configuración del objeto complejo. más de una configuración del objeto complejo. Una configuración es una colección de versiones de diferentes Una configuración es una colección de versiones de diferentes objetos que, juntas, constituyen un objeto complejo, mientras que objetos que, juntas, constituyen un objeto complejo, mientras que el gráfico de versiones describe versiones del mismo objeto. el gráfico de versiones describe versiones del mismo objeto.

Page 40: BASES DE DATOS ORIENTADAS A OBJETOS Introducción a las BDOO Administración de Bases de Datos Roberto Piris.

4040

ConclusionesConclusiones

Los sistemas tradicionales tienen carencias, y Los sistemas tradicionales tienen carencias, y para solventarlas se recurre a la OO.para solventarlas se recurre a la OO.

La mayoría de los sistemas OO no implementan La mayoría de los sistemas OO no implementan TODAS las características de OO, sino que TODAS las características de OO, sino que relajan algunos requisitos.relajan algunos requisitos.

Las características de las BDOO están muy Las características de las BDOO están muy relacionadas con las de los LPOOrelacionadas con las de los LPOO

Se mantiene cierta correspondencia entre los Se mantiene cierta correspondencia entre los objetos de la BD y los del mundo real.objetos de la BD y los del mundo real.