BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de...

36
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 1 BASES DE DATOS ORIENTADAS A OBJETOS

Transcript of BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de...

Page 1: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 1

BASES DE DATOS ORIENTADAS A OBJETOS

Page 2: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 2

El problema

En la programación orientada a objetos, las tareas de gestión de datos son implementadas generalmente por la manipulación de objetos, los cuales son casi siempre valores no escalares.

Page 3: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 3

¿Por qué BDOO?

Los sistemas de bases de datos orientados a objectos (SBDOO), nacen por la necesidad de expresar estructuras complejas (el mundo real) que son difícilmente expresadas en el modelo

relacional.

Page 4: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 4

Almacenamiento BDR

Page 5: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 5

Almacenamiento BDOO

Page 6: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 6

Short History

Page 7: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 7

Short History

● 1980s - Orion Research Project at MCC● 1980s - First wave of commercial products● 1991 – ODMG● 1995 - The OODBMS Manifesto ● 2001 - Final ODMG 3.0 standards

released● 2004 - Advent of Open Source

Page 8: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 8

¿En que usar los GBDOO?

● Se utilizan para almacenar datos más complejos, donde difícilmente llegan las bases de datos tradicionales.

● Son adecuados cuando se necesita un buen rendimiento en la manipulación de datos complejos.

● La información se representa mediante objetos. En la misma forma que la POO.

Page 9: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 9

Conceptos

● Objeto: Un Objeto es la representación formal de un elemento del mundo real.

● Estructura de un objeto:– Mensaje: (Relaciones) Intercambio de

solicitudes entre objetos independientemente de su implementación

– Variable: (Propiedades) Datos que caracterizan el estado del objeto

– Método: Implementación del mensaje

Page 10: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 10

Conceptos

class Rectangulo{

int x;

int y;

int ancho;

int alto;

int calcularArea(){

return (ancho*alto);

}

}

Page 11: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 11

Conceptos

● Encapsulamiento: Es el conjuto del objeto y las operaciones para manipularlo.

● Herencia: Una clase nueva se crea a partir de una clase existente

● Polimorfismo: Es la habilidad para que diferentes tipos de objetos respondan a diferentes métodos

● Agregación, persistencia, visibilidad.

Page 12: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 12

Conceptos

● Objetos complejos: Objetos cuyos atributos pueden tomar como valor otros objetos, incluyendo objetos de su mismo tipo.

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

● Instancia: Son los miembros de una clase.

Page 13: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 13

VENTAJAS

Page 14: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 14

MAYOR CAPACIDAD DE MODELADO

● Un objeto permite encapsular tanto un estado como un comportamiento.

● Un objeto puede almacenar todas las relaciones que tenga con otros objetos.

● Los objetos pueden agruparse para formar objetos complejos (herencia).

VENTAJAS

Page 15: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 15

FLEXIBILIDAD

● Se pueden construir nuevos tipos de datos a partir de los ya existentes

● Agrupar propiedades comunes de diversas clases e incluirlas en una superclase, lo que reduce la redundancia.

● Reusabilidad de clases, lo que repercute en una mayor facilidad de mantenimiento y un menor tiempo de desarrollo.

VENTAJAS

Page 16: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 16

LENGUAJE DE CONSULTA MÁS EXPRESIVO

● El acceso navegacional desde un objeto al siguiente es la forma más común de acceso a datos en un SGBDOO. Mientras que SQL utiliza el acceso asociativo.

● El acceso navegacional es más adecuado para gestionar operaciones como los despieces, consultas recursivas, etc.

VENTAJAS

Page 17: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 17

ADECUACIÓN A LAS APLICACIONES AVANZADAS DE BASE DE DATOS

● Hay muchas áreas en las que los SGBD tradicionales no han tenido excesivo éxito como el CAD, CASE, OIS, sistemas multimedia, etc. en los que las capacidades de modelado de los SGBDOO han hecho que esos sistemas sí resulten efectivos para este tipo de aplicaciones.

VENTAJAS

Page 18: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 18

MAYOR RENDIMIENTO

● Los SGBDOO proporcionan mejoras significativas de rendimiento con respecto a los SGBD relacionales.

VENTAJAS

Page 19: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 19

DESVENTAJAS

Page 20: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 20

AUSENCIA DE BASES TEÓRICAS

● No hay ningún modelo de datos que esté universalmente aceptado para los SGBDOO y la mayoría de los modelos carecen una base teórica.

● Falta de estándares aceptados.● El modelo de objetos aún no tiene una teoría

matemática coherente que le sirva de base.

DESVENTAJAS

Page 21: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 21

CARENCIA DE EXPERIENCIA

● Todavía no se dispone del nivel de experiencia y no existe un producto completamente maduro en este campo.

DESVENTAJAS

Page 22: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 22

OBJECT DATA MANAGEMENT GROUPODMG

http://www.odbms.org

● ODMG es un estándar desarrollado por un grupo de empresas y desarrolladores para tratar de definir los estándares, la tecnología y el uso de las bases de datos orientadas a objetos.

Page 23: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 23

ODMG 3.0

● Liberado en 2001

– Modelo de objetos.

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

– Lenguaje de consulta de objetos (OQL).

Page 24: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 24

Modelo de Objetos (ODMG)

● Paradigma de Programación Orientada a Objetos.

● La primitiva fundamental es el objeto: en ODMG todo son objetos

Page 25: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 25

Lenguaje de definicion de objetos ODL (ODMG)

PRINCIPIOS DEL ODL, Cattell (1994):● Soporta la semántica completa del

modelo de objetos de ODMG● No es un lenguaje completo● Independiente del lenguaje de

programación● Extensible (nuevas funcionalidades,

optimizaciones físicas)

Page 26: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 26

ODL

class City (extent cities)

{

attribute unsigned short city_code;

attribute string name;

attribute set<Person> population;

};

Page 27: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 27

LENGUAJE DE CONSULTADE OBJETOS (OQL)

● No es computacionalmente completo

● Es un lenguaje declarativo

● Tiene una sintaxis similar a la del SQL (OQL V 1.2)

● Proporciona sintaxis para mezclar las consultas con C++,Smalltalk y Java

● Proporciona primitivas de alto nivel para el tratamiento de todo tipo de colecciones

● No proporciona operadores de actualización explícitos (se actualiza a través de operaciones definidas sobre los objetos)

● Es facilmente optimizable (debido a que es declarativo)

Page 28: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 28

OQL

● define juanes as select distinct x

from x in persona

where x.nombre=“Juan”;

● select distinct x.salario

from x in juanes

Page 29: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 29

Manifiesto Malcolm

Page 30: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 30

Manifiesto Malcolm

En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos el cual

propuso trece características obligatorias para un SGBDOO y cuatro opcionales.

1.Deben soportarse objetos complejos

2.Deben soportarse mecanismos de identidad de los objetos

3.Debe soportarse la encapsulación

4.Deben soportarse los tipos o clases

Page 31: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 31

Manifiesto Malcolm

5.Los tipos o clases deben ser capaces de heredar de sus ancestros.

6.Debe soportarse el enlace dinámico

7.El DML debe ser computacionalmente complejo

8.El conjunto de todos los tipos de datos debe ser ampliable

Page 32: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 32

Características obligatorias de SGBD

9.Debe proporcionarse persistencia a los datos

10.El SGBD debe ser capaz de gestionar bases de datos de muy gran tamaño

11.El SGBD debe soportar a usuarios concurrentes

12.El SGBD debe ser capaz de recuperarse de fallos hardware y software

13.El SGBD debe proporcionar una forma simple de consultar los datos.

Page 33: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 33

Características opcionales:

● Herencia múltiple● Comprobación de tipos e inferencia

de tipos● Sistema de base de datos

distribuido● Soporte de versiones

Page 34: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 34

Mapeo de objetos

Page 35: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 35

Mapeo de objetos

Uso de Frameworks● Hibernate, para el

lenguaje Java● Propel, para el

lenguaje PHP● SQLAlchemy, para

el lenguaje Python● Doctrine, también

para PHP

Page 36: BASES DE DATOS ORIENTADAS A OBJETOS fileEn la programación orientada a objetos, las tareas de gestión de datos son ... ¿Por qué BDOO? Los sistemas de bases de datos orientados

04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 36

Mapeo de Objetos en Oracle

● Capa de abstracción construida sobre su tecnología relacional, por lo que los datos se siguen almacenando en columnas y tablas.

● CREATE TYPE persona AS OBJECT (

nombre VARCHAR2(30),

telefono VARCHAR2(20) );