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
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)
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
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
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
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
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
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
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
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”
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
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
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
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?
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
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)
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
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
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
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
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”
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”
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)
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
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
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>)
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
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
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
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
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)
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
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)
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.
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.
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
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;
};
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;
};
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;
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
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
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
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
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
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
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
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
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
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, …..
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