Base de Datos Orientada a Objetos
-
Upload
andres-felipe-montoya-rios -
Category
Technology
-
view
25.964 -
download
3
description
Transcript of 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
El Paradigma Orientado 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.
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.
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.
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.
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.
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.
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.
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.
Bases de Datos Orientadas a Objetos
(BDOO)
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
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.
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).
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.
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
Ejemplo de relaciones
relationship set<Obra> supervisa inverse Obra::es supervisada
en la clase Aparejador y:
relationshipAparejador es supervisada
inverse Aparejador::supervisa
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.
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.
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.
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.
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.
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';
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.
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.
REGLAS DE ORO PARA QUE UNA BD SEA OO
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.
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.
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.
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.
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.
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.
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.
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.
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.