base de datos orientada a objetos

40
BASES DE DATOS ORIENTADAS A OBJETOS Edwar Andrés Ruiz Medina @EdwarRuiz324 Andrés Felipe Montoya Ríos re.vu/ AndresMontoya @ montoya118

Upload: andres-felipe-montoya-rios

Post on 12-Jun-2015

25.961 views

Category:

Technology


3 download

DESCRIPTION

- Conceptos Básicos - Características Asociadas a POO - Definicíon - Estandar ODMG - ODL - OQL - Características de BDOO - Ventajas - Desventajas - Diferencias

TRANSCRIPT

Page 1: Base de Datos Orientada a Objetos

BASES DE DATOS ORIENTADAS A OBJETOS

Edwar Andrés Ruiz Medina

@EdwarRuiz324

Andrés Felipe Montoya Ríos

re.vu/AndresMontoya

@montoya118

Page 2: Base de Datos Orientada a Objetos

El Paradigma Orientado a Objetos

Page 3: Base de Datos Orientada a Objetos

Conceptos básicos Clase: definiciones de las propiedades y

comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Page 4: Base de Datos Orientada a Objetos

Herencia simple: Una clase implanta el tipo de objeto. Una Subclase hereda propiedades de su clase padre, una subclase puede heredar la estructura y los métodos ó algunos de los métodos. 

Herencia múltiple. Cuando una clase hereda de mas de una superclase se tiene herencia múltiple.

Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Page 5: Base de Datos Orientada a Objetos

HAY VARIOS TIPOS DE MÉTODOS QUE SON COMUNES A LA MAYORÍA DE LAS CLASES:

CONSTRUCTORES: Un constructor es un método que tiene el mismo nombre que la clase. Se ejecuta cuando se crea un objeto de una clase. Por lo tanto, un constructor contiene instrucciones para inicializar las variables de un objeto.

  DESTRUCTORES: Un destructor es un método que se

utiliza para destruir un objeto.

No todos los lenguajes orientados a objetos poseen destructores.

ACCESORES: Un accesor es un método que devuelve el valor de un atributo privado de otro objeto. Así es como los objetos externos pueden acceder a los datos encapsulados.

Page 6: Base de Datos Orientada a Objetos

MUTADORES: Un mutador es un método que almacena un nuevo valor en un atributo.

De este modo es como objetos externos pueden modificar los datos encapsulados.

SOBRECARGA DE MÉTODOS: Una de las características de las clases es que pueden tener métodos sobrecargados, que son métodos que tienen el mismo nombre pero que necesitan distintos datos para operar.

  POLIMORFISMO: En general, las subclases heredan los

métodos de sus superclases y los utilizan como si fueran suyos. Sin embargo, en algunas ocasiones no es posible escribir un método genérico que pueda ser usado por todas las subclases. 

Page 7: Base de Datos Orientada a Objetos

Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.

Page 8: Base de Datos Orientada a Objetos

Características asociadas al POO

Abstracción: consiste en captar las características esenciales de un objeto, así como su comportamiento.

Ejemplo.

¿Qué características semejantes tienen todos los automóviles?

Todos tendrán una marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.

Page 9: Base de Datos Orientada a Objetos

Ocultamiento: Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo los detalles que sean necesarios para el resto del sistema.

El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase.

Page 10: Base de Datos Orientada a Objetos

Encapsulamiento: Consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad.

La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.

Page 11: Base de Datos Orientada a Objetos

Bases de Datos Orientadas a Objetos

(BDOO)

Page 12: Base de Datos Orientada a Objetos

Los SGBDOO son creados gracias a la falta de capacidad semántica del modelo relacional con el propósito de atender nuevos tipos de aplicaciones.

o Diseño y fabricación en ingenieríao Bases de datos graficas y de imágenes o Bases de datos científicas o Sistemas de información geográficas o Bases de datos multimediao Accesos uniforme a sistemas de múltiples

bases de datos

Page 13: Base de Datos Orientada a Objetos

Otro motivo para la creación de las bases de datos orientadas a objetos es el creciente uso de los lenguajes orientados a objetos para el desarrollo de aplicaciones.

Page 14: Base de Datos Orientada a Objetos

Los objetos han entrado en el mundo de las bases de datos de formas:

  SGBD orientados a objetos puros: son SGBD

basados completamente en el modelo orientado a objetos.

  SGBD híbridos u objeto–relacionales: son

SGBD relacionales que permiten almacenar objetos en sus relaciones (tablas).

Page 15: Base de Datos Orientada a Objetos

Relaciones

Las bases de datos relacionales representan las relaciones mediante las claves ajenas.

las bases de datos orientadas a objetos implementan sus relaciones incluyendo en cada objeto los identificadores de los objetos con los que se relaciona. Un identificador de objeto es un atributo interno que posee cada objeto. Ni los programadores, ni los usuarios que realizan consultas de forma interactiva, ven o manipulan estos identificadores directamente. Los identificadores de los objetos los asigna el SGBD y es el único que los utiliza.

Page 16: Base de Datos Orientada a Objetos

Integridad de las relaciones

Para que las relaciones funcionen en una base de datos orientada a objetos pura, los identificadores de los objetos deben corresponderse en ambos extremos de la relación.

  La clase Aparejador tiene un atributo de tipo

conjunto llamado supervisa. Del mismo modo, la clase Obra tiene un atributo llamado es supervisada. Para garantizar la integridad de esta relación, un SGBD orientado a objetos puro deberá permitir que el diseñador de la base de datos pueda especificar donde debe aparecer el identificador del objeto inverso

Page 17: Base de Datos Orientada a Objetos

Ejemplo de relaciones

relationship set<Obra> supervisa   inverse Obra::es supervisada

en la clase Aparejador y:

relationshipAparejador es supervisada

inverse Aparejador::supervisa

Page 18: Base de Datos Orientada a Objetos

HERENCIA EN BDOO

En teoría, una base de datos orientada a objetos debe soportar dos tipos de herencia: la relación “es un” y la relación “extiende”.

La relación “es un”, también se conoce como generalización–especialización, crea una jerarquía donde las subclases son tipos específicos de las superclases.

  Con la relación “extiende”, sin embargo, una

clase expande su superclase en lugar de estrecharla en un tipo más específico.

Page 19: Base de Datos Orientada a Objetos

El modelo estándar ODMG

Un grupo de representantes de la industria de las bases de datos formaron el ODMG (ObjectDatabase Management Group) con el propósito de definir estándares para los SGBD orientados a objetos. Este grupo propuso un modelo estándar para la semántica de los objetos de una base de datos.

Los principales componentes de la arquitectura ODMG para un SGBD orientado a objetos son los siguientes:

  Modelo de objetos. Lenguaje de definición de objetos (ODL). Lenguaje de consulta de objetos (OQL). Conexión con los lenguajes C++, Smalltalk y Java.

Page 20: Base de Datos Orientada a Objetos

MODELO DE OBJETOS

El modelo de objetos ODMG permite que tanto los diseños, como las implementaciones, sean portables entre los sistemas que lo soportan. Dispone de las siguientes primitivas de modelado:

Los componentes básicos de una base de datos orientada a objetos son los objetos y los literales:

  Un objeto es una instancia auto contenida de una entidad

de interés del mundo real. Los objetos tienen algún tipo de identificador único.

  Un literal es un valor especifico, como “Amparo” o 36. Los

literales no tienen identificadores.

Page 21: Base de Datos Orientada a Objetos

Los objetos pueden ser transitorios o persistentes.

Los objetos transitorios existen mientras vive el programa de aplicación que los ha creado. Estos objetos se usan tanto como almacenamiento temporal como para dar apoyo al programa de aplicación que se está ejecutando.

  Los objetos persistentes son aquellos que se

almacenan en la base de datos. 

Page 22: Base de Datos Orientada a Objetos

Lenguaje de Definición de Objetos (ODL)

ODL es un lenguaje de especificación para definir tipos de objetos para sistemas compatibles con ODMG. ODL es el equivalente del DDL (lenguaje de definición de datos) de los SGBD tradicionales.

Define los atributos y las relaciones entre tipos, y especifica la signatura de las operaciones.

Page 23: Base de Datos Orientada a Objetos
Page 24: Base de Datos Orientada a Objetos
Page 25: Base de Datos Orientada a Objetos
Page 26: Base de Datos Orientada a Objetos

Lenguaje de Consulta de Objetos (OQL)

OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas de modo eficiente sobre bases de datos orientadas a objetos.

OQL no posee primitivas para modificar el estado de los objetos ya que las modificaciones se pueden realizar mediante los métodos que estos poseen.

La sintaxis básica de OQL es una estructura SELECT...FROM...WHERE..., como en SQL.

Por ejemplo, la siguiente expresión obtiene los nombres de los departamentos de la escuela de ‘Ingeniería’:

SELECT D. Nombre

FROM d in departamentos

WHERE D. Escuela = `Ingenieria';

Page 27: Base de Datos Orientada a Objetos
Page 28: Base de Datos Orientada a Objetos
Page 29: Base de Datos Orientada a Objetos

Existen otras maneras de realizar consultas en las bases de datos orientadas a objetos que pueden llegar a resultar más sencillas que por intermedio del lenguaje OQL

Basada en patrones: A la consulta se le da un objeto ‘patrón’, al cual se le dan las mismas características (dar valor a sus atributos) de losobjetos que se están buscando. La consulta devuelve el conjunto de objetos que tienen dichas características.

Page 30: Base de Datos Orientada a Objetos

Basadas en API: A través métodos de clases especiales, se especifican de forma programática las restricciones que deben cumplir los datos a consultar.

Consultas nativas: Se crean nuevas clases en las cuales se programan los condicionales que se usarán durante la consulta.

Page 31: Base de Datos Orientada a Objetos

REGLAS DE ORO PARA QUE UNA BD SEA OO

Page 32: Base de Datos Orientada a Objetos

CARACTERÍSTICAS DE BDOO

Se  intenta definir un sistema de BDOO y describe las principales características   en tres grupos:

MANDATORIAS: son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO

 o Extensibilidad.- Proporciona los tipos de datos como:

Caracter, booleano, String, etc.o Concurrencia.- Permite que varios usuarios tengan

acceso a una BD al mismo tiempo.o Recuperación.- Cuando se hace una transacción pero

no se puede realizar y se regresa al mismo estado.o Facilidad de "Consultas a Modo".- Esto es que se

tienen diferentes estándares.

Page 33: Base de Datos Orientada a Objetos

OPCIONAL: Son las que pueden ser añadidas para hacer el sistema mejor pero que no son mandatorias,

 o Herencia Múltiple: Tienen características de

padres diferentes y proporcionan mecanismos para saber de 2 o más opciones cual conviene.

o Distribución: Que se puede tener parte de una BD en un servidor y otra parte en otro.

o Sistema de Representación: Forma en cómo se presentan los esquemas.

Page 34: Base de Datos Orientada a Objetos

ABIERTAS: Son los puntos donde el diseñador puede hacer un número de opciones y estas son el paradigma de la programación, la representación del sistema ó el tipo de sistema y su uniformidad.

Page 35: Base de Datos Orientada a Objetos

Ventajas de los SGBDOO

Mayor capacidad de modelado:o Un objeto permite encapsular tanto un estado como un

comportamiento.o Un objeto puede almacenar todas las relaciones que tenga

con otros objetos.o Los objetos pueden agruparse para formar objetos

complejos (herencia).

  Aplicabilidad:o Se pueden construir nuevos tipos de datos a partir de los ya

existenteso Agrupar propiedades comunes de diversas clases e

incluirlas en una superclase, lo que reduce la redundancia.o Reusabilidad de clases, lo que repercute en una mayor

facilidad de mantenimiento y un menor tiempo de desarrollo.

Page 36: Base de Datos Orientada a Objetos

Lenguaje de consulta más expresivo:o 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.

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

Adecuación a las aplicaciones avanzadas de base de datos.

o 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.

Mayores prestaciones.o Los SGBDOO proporcionan mejoras significativas de

rendimiento con respecto a los SGBD relacionales.

Page 37: Base de Datos Orientada a Objetos

 DESVENTAJAS DE LOS SGBDOO

Carencia de un modelo de datos universal.o 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.

Carencia de experiencia.o Todavía no se dispone del nivel de experiencia

del que se dispone para los sistemas tradicionales.

Carencia de estándares.o Existe una carencia de estándares general para

los SGBDOO.

Page 38: Base de Datos Orientada a Objetos

Competencia. Con respecto a los SGBDR y los SGBDOR.

o Estos productos tienen una experiencia de uso considerable. SQL es un estándar aprobado y ODBC es un estándar de facto. Además, el modelo relacional tiene una sólida base teórica y los productos relacionales disponen de muchas herramientas de soporte que sirven tanto para desarrolladores como para usuarios finales.

La optimización de consultas compromete la encapsulación.

o La optimización de consultas requiere una compresión de la implementación de los objetos, para poder acceder a la base de datos de manera eficiente. Sin embargo, esto compromete el concepto de encapsulación.

El modelo de objetos aún no tiene una teoría matemática coherente que le sirva de base.

Page 39: Base de Datos Orientada a Objetos

DIFERENCIA ENTRE EL MODELO DE OBJETOS Y EL MODELO RELACIONAL

SGBD Relacionales

Los datos residen en la base de datos y los procesos se encuentran en las aplicaciones desarrolladas mediante el lenguaje de datos asociado al SGBD(SQL) inmerso en un lenguaje de programación.

Desarrollo bajo Sistemas Relacionales:

o Modelo conceptual de datos — modelo lógico

  Eficientes para aplicaciones tradicionales de negocios.

Page 40: Base de Datos Orientada a Objetos

SGBD Orientados a objetos

Gestionan objetos en los cuales están encapsulados los datos y las operaciones que actúan sobre ellos.

Desarrollo bajo SGBDOO: un único modelo subyacente, implementado en el SGBBOO, al que pueden acceder directamente las aplicaciones.

Intentan satisfacer necesidades de aplicaciones más complejas.

Característica clave: poder que dan al diseñador de la base de datos tanto para especificar la estructura de los objetos complejos como las operaciones que se pueden aplicar a estos objetos.