• No se han encontrado resultados

Tema 3: Bases de Datos Orientadas a Objetos. 1. Introducción a las BDOO 2. Conceptos de las BDOO 3. Estándares y Sistemas 4.

N/A
N/A
Protected

Academic year: 2021

Share "Tema 3: Bases de Datos Orientadas a Objetos. 1. Introducción a las BDOO 2. Conceptos de las BDOO 3. Estándares y Sistemas 4."

Copied!
50
0
0

Texto completo

(1)

Tema 3: Bases de Datos Orientadas Tema 3: Bases de Datos Orientadas

a Objetos a Objetos

1. Introducción a las BDOO

2. Conceptos de las BDOO

3. Estándares y Sistemas

4. Diseño de BDOO

(2)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 OO => Técnica de desarrollo de sw que permite resolver algunos problemas clásicos de la IS

9 IS => aspectos dinámicos del sw

BD =>aspectos estáticos del almacenamiento de información

CONCEPTOS DISTINTOS

9 Con la aparición de la tercera generación de SGBD:

SGBDOO y SGBOR, las dos disciplinas se aúnan

permitiendo el modelado concurrente (datos + procesos)

(3)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 SGBD tradicionales buenos para: aplicaciones bancarias, sistemas de gestión de billetes electrónicos, productos de almacén, ….

9 Inconvenientes:

* Aplicaciones CAD, CAM

* Aplicaciones CASE

* Sistemas de gestión de red

* Sistemas multimedia

* Autoedición digital

* Sistemas GIS

* Web sites dinámicos

(4)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 Los SGBDR adolecen de:

* Pobre representación del mundo real. El proceso de normalización hace que se produzca pérdida de

semántica y se ralentice la recuperación

* Sobrecarga semántica. Un único constructor para todo (relación)

* Soporte inadecuado para restricciones. Deben ser incluidas en las aplicaciones

* Estructura de datos homogénea. Modelo de datos plano y restringido horizontal y verticalmente

(5)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 Los SGBDR adolecen de:

* Operaciones limitadas. SQL permite solo un conjunto finito de operaciones y recursividad limitada en

consultas

SQL3 trata de incluir operaciones para resolver las deficiencias anteriores, tratando de incluir nuevas funcionalidades.

SGBDOO tratan de hacer lo mismo, pero de manera

integrada entre el lenguaje de programación y el modelo

(6)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 Generaciones de sistemas de bases de datos

M.D. Jerárquico

M.D. ER M.D. Relacional

M.D. en Red

M.D. Semánticos

M.D. Objeto-Relacionales M.D. Orientados a Objetos 1960-1970

Cod, E.1970

Chen, P.1976

Hammer y McLeod, 1981, Su, 1983 1ª Generación

2ª Generación

3ª Generación

(7)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 Almacenamiento de objetos en BDR

SGBDR, un mecanismo para conseguir la persistencia de los objetos

“correspondencias o mapping entre objetos y tuplas”

Mecanismos de transformación M. Conceptual => M. Lógico

clases => relaciones objetos => tuplas

Código de descomposición

+

código de recomposición

(8)

Tema 3: BDOO. Introducci

Tema 3: BDOO. Introducci ó ó n n

9 Beneficios potenciales de las BDOO:

• Mejora la calidad del sw

• Disminuye los tiempos y costes de desarrollo y mantenimiento

• Incrementa la reutilización del sw

• Facilita la integración del sistema

• Facilita la representación de datos multimedia

(9)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Conceptos de la Orientación a Objetos

1) Abstracción y encapsulación 2) Objetos y Atributos

3) Identidad de los objetos

4) Métodos y paso de mensajes 5) Clases

6) Subclases, superclases y herencia 7) Anulación y sobrecarga

8) Polimorfismo y enlace dinámico 9) Objetos complejos

Mundo Real = Objetos que tienen un IDO

(10)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

1) Abstracción y encapsulación

Abstracción: proceso mediante el que identifican los aspectos esenciales de un objeto o entidad, separando el diseño de los detalles de implementación

=> encapsulación y ocultación de la información Encapsulación: cada objeto contiene, tanto la estructura de los datos, como las operaciones para manipularlo (TAD)

Ocultación de información: proporciona independencia de los datos al ocultar los detalles internos de cada objeto

Objeto = “caja negra”

(11)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

2) Objetos y Atributos

Objeto: entidad unívocamente identificable que contiene

tanto a los atributos que describen el estado de un objeto del mundo real, como las acciones asociadas con él.

Estado + Comportamiento

Estado: colección de atributos que definen a un objeto (variables de instancia) = ENTIDAD

(12)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

2) Objetos y Atributos Simples

Colecciones (atributos complejos) Referencias

Atributos

Yolanda Suárez, Antonio García Plantilla

Pilar González Directora

28911 Código postal

Leganés Ciudad

Butarque, 15 Calle

6172 Cod_sucursal

Valor Atributo

Referencias a objetos

“plantilla” (FKs)

Colección (att. multivaluado) SucursalObject.Calle

(13)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

3) Identidad de los objetos

Todo objeto se identifica unívocamente a través de su OID .

Propiedades de un OID:

ƒ Creado por el sistema

ƒ Exclusivo de cada objeto y por sistema

ƒ Invariante en el tiempo y no reutilizable

ƒ Independiente del estado del objeto

ƒ “Invisible” al usuario

(14)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

3) Identidad de los objetos

OID más restrictivo que pk (única por cada relación) Ventajas de los OID:

ƒ Eficientes – Mínimo espacio de almacenamiento

ƒ Rápidos – dirección real

ƒ No modificables – se mantiene la integridad

ƒ Independientes del contenido

¿Redundancia de objetos?

(15)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

3) Identidad de los objetos

Objetos idénticos <=> OIDs iguales (BDD) (=) Objetos iguales <=> estados iguales (= =)

igualdad profunda – mismos valores en a. ref igualdad somera – distintos valores en a.ref

Necesidad de clave primaria

(16)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

4) Métodos y mensajes

Método: define el comportamiento de un objeto

cambio de estado de un objeto => update (attributos) consulta de estado de un objeto

method void updateSalario (float inc) {

salario = salario + inc;

}

Mensaje: comunicación entre objetos. Peticiones

empleadosObject.updateSalario(1000)

(17)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

5) Clases

Patrones que agrupan objetos con los mismos atributos y que responden a los mismos mensajes.

Sucursal

Atributos:

Cod_sucursal Calle Ciudad Codpostal Métodos:

print()

getCodpostal() numeroSucursales()

Cod_sucursal = 006 Calle = Alcala, 27 Ciudad = Madrid

……….…

Cod_sucursal = 005 Calle = Rosas, 3 Ciudad = Madrid

……….…

Cod_sucursal = 007 Calle = Butarque, 15 Ciudad = Leganés

……….…

CLASE INSTANCIAS DE CLASE

(18)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

6) Subclases, superclases y herencia

Herencia: permite definir una clase (SUBCLASE) como un caso especial de otra clase más general (SUPERCLASE)

SUPERCLASE

SUBCLASE

Especialización Generalización

(19)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

6) Subclases, superclases y herencia

Por defecto las subclases heredan todas las propiedades (estado y comportamiento) de sus superclases.

Una herencia selectiva serviría como mecanismo de VISTAS Las subclases pueden tener propiedades propias

Tipos de herencia:

9 Herencia Simple

(20)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

6) Subclases, superclases y herencia

PERSONA

DIRECTOR

EMPLEADO

COMERCIAL

DIRECTOR COMERCIAL

DIRECTOR DE VENTAS

Herencia simple Herencia múltiple

“SUBCL hereda de SUPCL”

SUPCL

SUBCL

(21)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

6) Subclases, superclases y herencia

Caso especial de herencia múltiple => Herencia Repetida

DIRECTOR COMERCIAL

DIRECTOR DE VENTAS PLANTILLA

“Habría que asegurarnos de que la clase director de ventas, no herede las propiedades de PLANTILLA dos veces”

(22)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

7) Anulación y sobrecarga

Anulación: proceso de redefinir propiedades de manera que pasen de ser de las subclases a las superclases y puedan ser utilizadas por las primeras

Ventaja: eliminación de redundancias

Sobrecarga: utilización de un mismo nombre de método dentro de una clase o entre varias definiciones de clase.

Ej: método “print”

(23)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

8) Polimorfismo y enlace dinámico Polimorfismo: múltiples formas

¾ Polimorfismo de operación (ad hoc)

¾ Polimorfismo de inclusión

¾ Polimorfismo paramétrico o de genericidad

Enlace dinámico: mecanismo por el que se difiere la selección del método apropiado basándose en el tipo de objeto, hasta el momento de la ejecución. (se evitan recompilaciones)

(24)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

8) Polimorfismo y enlace dinámico

Polimorfismo de operación (ad hoc) : sobrecarga

Polimorfismo de inclusión : método definido en una superclase y heredado por sus subclases

Polimorfismo paramétrico o de genericidad: utiliza tipos como

parámetros dentro de la declaración genérica de tipos o de clases.

Ej:

template <Type T>

T max (x:T, y:T) {if (x>y) return x;

else return y;

}

int max (int, int) // instanciación de la f. max para dos enteros real max (real, real) // instanciación de la f. max para dos reales Enlace

(25)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9) Objetos complejos

Objeto complejo = objeto único en el “mundo real”, pero combinado con otros objetos mediante la relación

“ES PARTE DE”

.

Dos formas de considerar los objetos contenidos:

9 Encapsulados dentro del objeto complejo: el acceso al OC se realiza utilizando los métodos del OC.

9 Con existencia independiente: solo se almacena su OID en el OC

=> COMPARTICIÓN REFERENCIAL.

Tiene su propia estructura y sus propios métodos y puede ser

(26)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9) Objetos complejos

átomo Valor atómico

set Multivaluados sin orden sin repetición

list Multivaluados ordenados sin repetición

bag Multivaluados sin orden con repetición

tupla Propiedades del objeto

(ido, tupla, <prop1:i5, prop2:i3>)

(27)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Diseño de bases de datos orientadas a objetos

No hay concepto equivalente en MDC Encapsulación

Ninguna Entidad

Instancia

Ninguna Tipo de

entidad/Supertipo Clase

No hay concepto equivalente en MDC Mensaje

Las asociaciones son guales, pero la herencia en MDOO incluye tanto el estado como el comportamiento Interrelación

Asociación

Ninguna Atributo

Atributo

El objeto incluye el comportamiento Entidad

Objeto

Dferencia MDC

M.D. OO

(28)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Diseño de bases de datos orientadas a objetos

Análisis de la redundancia : 2FN y 3FN “todo atributo de un objeto depende de la identidad del objeto”

Relaciones : atributos de referencia implementados mediante identificadores OID

1. Relaciones 1:1:

Sucursal: OID1

Cod_sucursal: B003 Calle: Butarque, 15 Ciudad: Leganes Codpostal: 28911 Director: OID6

Director: OID6

Cod_empleado: SG5 Nombre: Pilar Apellido: Castro Salario: 24000 Sucursal: OID1

(29)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Diseño de bases de datos orientadas a objetos

2. Relaciones 1:*:

Sucursal: OID1

Cod_sucursal: B003 Calle: Butarque, 15 Ciudad: Leganes Codpostal: 28911 Director: OID6

Plantilla {OID4, OID5, …}

Plantilla: OID4

Cod_empleado: SG14 Nombre: Raul Apellido: Pineda Categoria: supervisor Salario: 18000 Sucursal: OID1

(30)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Diseño de bases de datos orientadas a objetos

3. Relaciones *:*:

Cliente: OID9

Cod_clie: CR56 Nombre: Elena Apellido: Perez Tf: 123456789 Tipopref: piso Maxrent: 400 Visitas

propiedad: OID7 fecha: 26/04/2004 observaciones:

propiedad: OID2 fecha: 28/05/2004 observaciones:

Propiedad: OID2

Cod_prop: PG4 Ciudad: Valdemorillo Tipo: piso

Habitaciones: 3

………..

Visitantes: {OID9, OID10}

Cliente: OID10

Cod_clie: CR74 Nombre: Pepe Apellido: Garcia Tf: 678912345 Tipopref: piso Maxrent: 750 Visitas

propiedad: OID2 fecha: 26/04/2004 observaciones:

Propiedad: OID7

Cod_prop: PG36 Ciudad: Colmenarejo Tipo: piso

Habitaciones: 3

………..

Visitantes: OID9

(31)

Tema 3: BDOO. Conceptos Tema 3: BDOO. Conceptos

9 Diseño de bases de datos orientadas a objetos Integridad referencial :

1. No permitir que el usuario borre explícitamente objetos

2. Permitir al usuario borrar objetos cuando ya no sean necesarios 3. Permitir al usuario modificar y borrar objetos y relaciones cuando

ya no sean requeridas

(Cada SGBDOO implementa una o varias técnicas)

Diseño comportamental : utilización de métodos públicos (m.

visibles al usuario y otros objetos) y privados (m. internos de clase) 1. M. constructores y destructores: generan/borran instancias

2. M. de acceso: getAtt. getMediaSalario, ….

3. M. transformación: cambio de estado (incrementoSalario)

(32)

Tema 3: BDOO. Est

Tema 3: BDOO. Est á á ndares ndares

9 Estandarización de OODBMS

OMG = Object Management Group www.omg.com

ODMG= Object Database Management Group www.odmg.com

(33)

Tema 3: BDOO. Est

Tema 3: BDOO. Est á á ndares ndares

9 OMG: consorcio Object Management Group

™ Sun Microsystems, Borland, AT&T/NCR, HP, Hitachi, Computer Associates, Unisys y Oracle

™ Creación de estándares de facto, promoción de técnicas OO, …

™ ODMG, 2001 (Object Data Management Group) Arquitectura:

1) Modelo de objetos (OM)

2) Lenguaje de definición de objetos (ODL) 3) Lenguaje de consulta de objetos (OQL)

4) Enlaces con los lenguajes C++, Java y Smalltalk Extensión:

5) estándar para la interoperabilidad (intercambio de datos entre BD)

(34)

Tema 3: BDOO. Est

Tema 3: BDOO. Est á á ndares ndares

9 Modelo de Objetos (OM):

™ Primitivas de modelado: objeto (identificadores únicos) y literal

™ Los objetos y literales pueden clasificarse en tipos. Todos los objetos y literales de un mismo tipo exhiben un estado y comportamiento comunes.

™ El estado de un objeto está definido por los valores de sus propiedades (atributos y relaciones). Estas propiedades suelen cambiar en el tiempo.

Propiedad = atributo o relación (1:1, 1: N, N:M) entre objetos

Los valores pueden cambiar a lo largo del tiempo.

(35)

Tema 3: BDOO. Est

Tema 3: BDOO. Est á á ndares ndares

9 Modelo de Objetos (OM):

™ El comportamiento de un objeto está definido por las operaciones ejecutadas por o en el objeto. Las operaciones pueden tener una lista de parámetros de entrada/salida con un tipo específico y puede

devolver un resultado tipado.

™ Una DB almacena OBJETOS que pueden ser compartidos por

múltiples usuarios y aplicaciones. El esquema de la BD se define en ODL y contiene instancias de los tipos definidos por su esquema.

(36)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 Modelo de Objetos (OM):

Diseño Conceptual Notación UML

Diseño de Implementación

ODBMS Diseño Estándar

ODL

(37)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

EXTENDS (relación que soporta la herencia) EXTENTS (todas las instancias de un tipo) KEYS (clave)

class profesor (extent profesores key DNI) {

atributos;

operaciones;

};

(38)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Relaciones con multiplicidad 1

Empleado Trabaja 1..1 Departamento

1..* tiene

class Empleado (extent empleados) { atributos;

relationship Departamento trabaja inverse tiene::Departamento;

};

(39)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Relaciones con multiplicidad *

Empleado Trabaja 1..1 Departamento

1..* tiene

class Departamento (extent Departamentos) { atributos;

relationship list <Empleado> tiene inverse trabaja::Empleado;

(40)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Relaciones n-arias No se soportan directamente.

1.- Se crea una clase asociación

2.- Se crean tantas relaciones binarias como sean necesarias entre la clase asociación y las clases que componen la asociación n-aria

(41)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

class juega (extent juegan) { atributos;

relaciones entre Juega Persona;

relaciones entre Juega Rol;

relaciones entre Juega Organización;

};

class Persona (extent Personas) { atributos;

relaciones entre Persona Juega;

};

class Organización (extent Organizaciones) { atributos;

relaciones entre Organización Juega;

};

class Rol (extent Roles) { atributos;

relaciones entre Rol Juega;

Persona

Rol

Organización Juega Papeles

*

Ocupan *

Pertenecen * Juega

(42)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Agregaciones. Se representan de 2 formas:

1.- Verdadera composición

class Persona (extent Personas) {

attribute set <Alias> lista-alias;

};

Persona

Alias

1..1 0..*

tiene identifica

(43)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Agregaciones

2.- Relación

class Persona (extent Personas) {

relationship set <Alia> tiene inverse:: identifica Alias };

class Alia (extent Alias) {

relationship Persona identifica inverse:: tiene Persona Persona

Alias

1..1 0..*

tiene identifica

(44)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Definition Language):

Generalizaciones parcial y sin solapamiento

Cassette CD

{disjoint}

{parcial}

class Soporte

(extent Soportes) {

};

class CD extends Soporte (extent CDs) {

};

class Cassette extends Soporte (extent Casse {

};

Soporte

(45)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Fdefinition Language):

Generalizaciones total y sin solapamiento

Cassette CD

{disjoint}

{total}

Se crea la clase A como clase abstracta.

abstract class Soporte (extent Soportes) {

};

class CD extends Soporte (extent CDs) {

};

class Cassette extends Soporte (extent Cassettes) {

Soporte

(46)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Fdefinition Language):

Generalizaciones total y con solapamiento

abstract class Vehiculos (extent Vehiculos)

{ };

class Tierra extends Vehiculo (extent Tierras)

{ };

class Mar extends Vehiculo (extent Mares)

{ };

class Anfibio extends Tierra, Mar (extent Afibios)

{ };

Mar Tierra

{overlapped}

{total}

Vehiculos

Anfibio

(47)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 ODL (Object Fdefinition Language):

Generalizaciones parcial y con solapamiento

class Vehiculos (extent Vehiculos) { };

class Tierra extends Vehiculo (extent Tierras)

{ };

class Mar extends Vehiculo (extent Mares)

{ };

class Anfibio extends Tierra, Mar (extent Afibios)

Mar Tierra

{overlapped}

{parcial}

Vehiculos

Anfibio

(48)

Tema 3: BDOO. Dise

Tema 3: BDOO. Dise ñ ñ o o

9 Manifiesto de los SGBDOO (Atkinson et al., 1989)

(1) Deben soportarse objetos complejos aplicando una serie de

constructores a los objetos básicos (SET, TUPLE, LIST/ARRAY) (2) Deben soportarse mecanismos de identidad de objetos

(3) Debe soportarse la encapsulación

Acceso a la especificación de la interfaz de los métodos (4) Deben soportarse los tipos o clases

(5) Los tipos o clases deben ser capaces de heredar de sus ancestros (6) Debe soportarse el enlace dinámico

Anulación y sobrecarga

(7) El DML debe ser computacionalmente completo Lenguaje de programación de propósito general

(49)

Tema 3: BDOO.

Tema 3: BDOO. Dise Dise ñ ñ o o

9 Manifiesto de los SGBDOO (Atkinson et al., 1989)

(8) El conjunto de todos los tipos de datos debe ser ampliable (9) Debe proporcionarse persistencia a los datos

(10) El SGBD debe ser capaz de gestionar BD de gran tamaño Índices y buffers

(11) El SGBD debe soportar usuarios concurrentes

(12) El SGBD debe ser capaz de recuperarse de fallos hw y sw

(13) El SGBD debe proporcionar una forma simple de consultar los datos Mecanismo de consulta ad hoc que sea de alto nivel

Características opcionales: herencia múltiple, comprobación de tipos, …..

(50)

Tema 3: BDOO. Bibliograf

Tema 3: BDOO. Bibliograf í í a a

¾ Sistemas de Bases de Datos Orientadas a Objeto.

E. Bertino, L. Martino. 1995

¾ Advanced Database Technology and Design Ed. Artech House. 2000

¾ Introducción a los sistemas de BD.

J. Ullman, J. Widom. 1999

Referencias

Documento similar