P. 1
BDOO

BDOO

|Views: 560|Likes:
Published by Claudia

More info:

Published by: Claudia on Mar 08, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/17/2013

pdf

text

original

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. Diseño de BDOO

Tema 3: BDOO. Introducción
OO => Técnica de desarrollo de sw que permite resolver algunos problemas clásicos de la IS IS => aspectos dinámicos del sw BD =>aspectos estáticos del almacenamiento de información CONCEPTOS DISTINTOS 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ón

SGBD tradicionales buenos para: aplicaciones bancarias, sistemas de gestión de billetes electrónicos, productos de almacén, …. 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ón
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ón

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 de datos del SGBD.

Objeto-Relacionales M.D. 1981.1970 1960-1970 M. Relacional 2ª Generación M. en Red M.D. Introducción Generaciones de sistemas de bases de datos M.D. Orientados a Objetos .D.D.D.Tema 3: BDOO. 1983 Cod. P. Jerárquico 1ª Generación M. Semánticos Chen. Su. E.D.1976 Hammer y McLeod. ER 3ª Generación M.

Lógico clases => relaciones objetos => tuplas Código de descomposición + código de recomposición .Tema 3: BDOO. Introducción Almacenamiento de objetos en BDR SGBDR. Conceptual => M. un mecanismo para conseguir la persistencia de los objetos “correspondencias o mapping entre objetos y tuplas” Mecanismos de transformación M.

Introducción 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.

superclases y herencia Anulación y sobrecarga Polimorfismo y enlace dinámico Objetos complejos Mundo Real = Objetos que tienen un IDO . Conceptos Conceptos de la Orientación a Objetos 1) 2) 3) 4) 5) 6) 7) 8) 9) Abstracción y encapsulación Objetos y Atributos Identidad de los objetos Métodos y paso de mensajes Clases Subclases.Tema 3: BDOO.

tanto la estructura de los datos. como las operaciones para manipularlo (TAD) Ocultación de información: proporciona independencia de lo datos al ocultar los detalles internos de cada objeto Objeto = “caja negra” . Conceptos 1) Abstracción y encapsulación Abstracción: proceso mediante el que identifican los aspecto 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.Tema 3: BDOO.

Estado + Comportamiento Estado: colección de atributos que definen a un objeto (variables de instancia) = ENTIDAD . 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.Tema 3: BDOO.

Antonio García Colección (att. multivaluado) Referencias a objetos “plantilla” (FKs) SucursalObject. 15 Leganés 28911 Pilar González Yolanda Suárez.Tema 3: BDOO.Calle . Conceptos 2) Objetos y Atributos Atributos Simples Colecciones (atributos complejos) Referencias Atributo Cod_sucursal Calle Ciudad Código postal Directora Plantilla Valor 6172 Butarque.

Conceptos 3) Identidad de los objetos Todo objeto se identifica unívocamente a través de su OID .Tema 3: BDOO. 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 .

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.

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 .

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.Tema 3: BDOO. Peticiones empleadosObject. } Mensaje: comunicación entre objetos.updateSalario(1000) .

3 Ciudad = Madrid ………………. 15 Ciudad = Leganés ……………….Tema 3: BDOO.… Sucursal Atributos: Cod_sucursal Calle Ciudad Codpostal Métodos: print() getCodpostal() numeroSucursales() Cod_sucursal = 006 Calle = Alcala.… CLASE INSTANCIAS DE CLASE . Conceptos 5) Clases Patrones que agrupan objetos con los mismos atributos y que responden a los mismos mensajes.… Cod_sucursal = 007 Calle = Butarque. 27 Ciudad = Madrid ………………. Cod_sucursal = 005 Calle = Rosas.

Conceptos 6) Subclases.Tema 3: BDOO. superclases y herencia Herencia: permite definir una clase (SUBCLASE) como un caso especial de otra clase más general (SUPERCLASE) SUPERCLASE Especialización Generalización SUBCLASE .

Conceptos 6) Subclases.Tema 3: BDOO. Una herencia selectiva serviría como mecanismo de VISTAS Las subclases pueden tener propiedades propias Tipos de herencia: Herencia Simple Herencia Múltiple (difícil implementación) . superclases y herencia Por defecto las subclases heredan todas las propiedades (estado y comportamiento) de sus superclases.

superclases y herencia PERSONA DIRECTOR EMPLEADO COMERCIAL DIRECTOR COMERCIAL DIRECTOR DE VENTAS Herencia simple SUPCL Herencia múltiple “SUBCL hereda de SUPCL” SUBCL .Tema 3: BDOO. Conceptos 6) Subclases.

no herede las propiedades de PLANTILLA dos veces” .Tema 3: BDOO. Conceptos 6) Subclases. superclases y herencia Caso especial de herencia múltiple => Herencia Repetida PLANTILLA DIRECTOR COMERCIAL DIRECTOR DE VENTAS “Habría que asegurarnos de que la clase director de ventas.

Ej: método “print” . 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.Tema 3: BDOO.

(se evitan recompilaciones) . 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ó del método apropiado basándose en el tipo de objeto.Tema 3: BDOO. hasta e momento de la ejecución.

max para dos enteros // instanciación de la f. else return y. real) // instanciación de la f. int) real max (real. } Enlace int max (int. y:T) { if (x>y) return x.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. max para dos reales .

Con existencia independiente: solo se almacena su OID en el OC => COMPARTICIÓN REFERENCIAL. Dos formas de considerar los objetos contenidos: Encapsulados dentro del objeto complejo: el acceso al OC se realiza utilizando los métodos del OC. Conceptos 9) Objetos complejos Objeto complejo = objeto único en el “mundo real”. .Tema 3: BDOO. pero combinado con otros objetos mediante la relación “ES PARTE DE” . Tiene su propia estructura y sus propios métodos y puede ser propiedad de varios padres.

<prop1:i5.Tema 3: BDOO. prop2:i3>) . tupla. 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.

Tema 3: BDOO. pero la herencia en MDOO incluye tanto el estado como el comportamiento No hay concepto equivalente en MDC Tipo de entidad/Supertipo Entidad Ninguna Ninguna No hay concepto equivalente en MDC Dferencia El objeto incluye el comportamiento Mensaje Clase Instancia Encapsulación . OO Objeto Atributo Asociación Entidad Atributo Interrelación MDC Ninguna Las asociaciones son guales. Conceptos Diseño de bases de datos orientadas a objetos M.D.

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 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:*: Sucursal: OID1 Cod_sucursal: B003 Calle: Butarque.Tema 3: BDOO. 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 . Conceptos Diseño de bases de datos orientadas a objetos 2.

. Visitantes: {OID9.Tema 3: BDOO. OID10} Cliente: OID10 Cod_clie: CR74 Nombre: Pepe Apellido: Garcia Tf: 678912345 Tipopref: piso Maxrent: 750 Visitas propiedad: OID2 fecha: 26/04/2004 observaciones: . Conceptos 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: OID7 Cod_prop: PG36 Ciudad: Colmenarejo Tipo: piso Habitaciones: 3 ………………. Visitantes: OID9 Propiedad: OID2 Cod_prop: PG4 Ciudad: Valdemorillo Tipo: piso Habitaciones: 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. M. Permitir al usuario borrar objetos cuando ya no sean necesarios 3. de acceso: getAtt. ….Tema 3: BDOO. Conceptos Diseño de bases de datos orientadas a objetos Integridad referencial : 1. M. constructores y destructores: generan/borran instancias 2. internos de clase) 1. 3. getMediaSalario. M. No permitir que el usuario borre explícitamente objetos 2. visibles al usuario y otros objetos) y privados (m. transformación: cambio de estado (incrementoSalario) .

omg.com ODMG= Object Database Management Group www. Estándares Estandarización de OODBMS OMG = Object Management Group www.odmg.Tema 3: BDOO.com .

… ODMG. Estándares OMG: consorcio Object Management Group Sun Microsystems. HP. Java y Smalltalk Extensión: 5) estándar para la interoperabilidad (intercambio de datos entre BD . Computer Associates. promoción de técnicas OO. Borland. 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++. Unisys y Oracle Creación de estándares de facto. Hitachi.Tema 3: BDOO. AT&T/NCR.

Propiedad = atributo o relación (1:1. Estándares Modelo de Objetos (OM): Primitivas de modelado: objeto (identificadores únicos) y literal Los objetos y literales pueden clasificarse en tipos. Estas propiedades suelen cambiar en el tiempo. . El estado de un objeto está definido por los valores de sus propiedades (atributos y relaciones). N:M) entre objetos Los valores pueden cambiar a lo largo del tiempo. 1: N. Todos los objeto y literales de un mismo tipo exhiben un estado y comportamiento comunes.Tema 3: BDOO.

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.Tema 3: BDOO. . Estándares Modelo de Objetos (OM): El comportamiento de un objeto está definido por las operaciones ejecutadas por o en el objeto. El esquema de la BD se define en ODL y contiene instancias de los tipos definidos por su esquema.

Diseño Modelo de Objetos (OM): Diseño Conceptual Notación UML Diseño Estándar ODL Diseño de Implementación ODBMS .Tema 3: BDOO.

operaciones. .Tema 3: BDOO. }. Diseño 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.

}.Tema 3: BDOO..1 Departamento class Empleado (extent empleados) { atributos. Diseño ODL (Object Definition Language): Relaciones con multiplicidad 1 Empleado 1..* Trabaja tiene 1. . relationship Departamento trabaja inverse tiene::Departamento.

.* Trabaja tiene 1.. Diseño ODL (Object Definition Language): Relaciones con multiplicidad * Empleado 1. }.Tema 3: BDOO.1 Departamento class Departamento (extent Departamentos) { atributos.. relationship list <Empleado> tiene inverse trabaja::Empleado.

..Se crea una clase asociación 2.Se crean tantas relaciones binarias como sean necesarias entr la clase asociación y las clases que componen la asociación n-aria . Diseño ODL (Object Definition Language): Relaciones n-arias No se soportan directamente.Tema 3: BDOO. 1.

}. }. class Rol (extent Roles) { atributos. }. class Persona (extent Personas) { atributos. Persona Ocupan * Papeles Juega Juega Pertenecen * * Rol Organización .Tema 3: BDOO. }. relaciones entre Organización Juega. relaciones entre Persona Juega. Diseño ODL (Object Definition Language): class juega (extent juegan) { atributos. relaciones entre Juega Persona. relaciones entre Rol Juega. class Organización (extent Organizaciones) { atributos. relaciones entre Juega Organización. relaciones entre Juega Rol.

Tema 3: BDOO.. }. Se representan de 2 formas: 1.. Diseño ODL (Object Definition Language): Agregaciones.1 0.* Alias class Persona (extent Personas) { attribute set <Alias> lista-alias.. .Verdadera composición Persona tiene identifica 1.

.* Alias class Persona (extent Personas) { relationship set <Alia> tiene inverse:: identifica Alia }. Diseño ODL (Object Definition Language): Agregaciones 2.Relación Persona tiene identifica 1...Tema 3: BDOO.1 0. . class Alia (extent Alias) { relationship Persona identifica inverse:: tiene Persona }.

.Tema 3: BDOO. class Cassette extends Soporte (extent Cas { }. class CD extends Soporte (extent CDs) { }. Diseño ODL (Object Definition Language): Generalizaciones parcial y sin solapamiento Soporte {disjoint} {parcial} CD Cassette class Soporte (extent Soportes) { }.

class Cassette extends Soporte (extent Cassette { }.Tema 3: BDOO. . Diseño ODL (Object Fdefinition Language): Generalizaciones total y sin solapamiento Se crea la clase A como clase abstracta. class CD extends Soporte (extent CDs) { }. Soporte {disjoint} {total} CD Cassette abstract class Soporte (extent Soportes) { }.

class Anfibio extends Tierra.Tema 3: BDOO. class Tierra extends Vehiculo (extent Tierras) { }. Mar (extent Afibios) { }. class Mar extends Vehiculo (extent Mares) { }. Tierra Mar Anfibio . Diseño ODL (Object Fdefinition Language): Generalizaciones total y con solapamiento Vehiculos {overlapped} {total} abstract class Vehiculos (extent Vehiculos) { }.

Mar (extent Afibios) { }. Diseño ODL (Object Fdefinition Language): Generalizaciones parcial y con solapamiento Vehiculos {overlapped} {parcial} class Vehiculos (extent Vehiculos) { }. class Anfibio extends Tierra.Tema 3: BDOO. class Tierra extends Vehiculo (extent Tierras) { }. class Mar extends Vehiculo (extent Mares) { }. Tierra Mar Anfibio .

1989) (1) Deben soportarse objetos complejos aplicando una serie de constructores a los objetos básicos (SET. 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 . TUPLE. Diseño Manifiesto de los SGBDOO (Atkinson et al..Tema 3: BDOO.

. .Tema 3: BDOO. comprobación de tipos. 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. …. Diseño Manifiesto de los SGBDOO (Atkinson et al..

Bibliografía Sistemas de Bases de Datos Orientadas a Objeto. J. Ullman. Widom.Tema 3: BDOO. L. J. Bertino. Martino. 2000 Introducción a los sistemas de BD. Artech House. 1999 . E. 1995 Advanced Database Technology and Design Ed.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->