bases de datos orientadas a objetos fileen la programación orientada a objetos, las tareas de...
TRANSCRIPT
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 1
BASES DE DATOS ORIENTADAS A OBJETOS
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.
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.
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 4
Almacenamiento BDR
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 5
Almacenamiento BDOO
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 6
Short History
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
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.
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
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);
}
}
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.
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.
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 13
VENTAJAS
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
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
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
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
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
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 19
DESVENTAJAS
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
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
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.
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).
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
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)
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;
};
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)
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
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 29
Manifiesto Malcolm
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
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
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.
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
04/10/10 BASES DE DATOS ORIENTADAS A OBJETOS 34
Mapeo de objetos
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
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) );