base de datos orientada a objetos vs base obje to relacion

27
Base de datos orientada a objetos VS base de datos objeto relacional

Upload: alfonso-triana

Post on 25-Jan-2015

11.307 views

Category:

Business


1 download

DESCRIPTION

 

TRANSCRIPT

  • 1. Base de datos orientada a objetos VS base de datos objeto relacional

2. Conceptos fundamentales
Objeto: Es cualquier cosa real abstracta acerca de la cual almacenamos datos y los mtodos que controlan dichos datos.
Tipo de Objeto: Es una categora de objeto.
Un objeto es una Instancia de un tipo de objeto. PERSONA (Juan Prez)
Encapsulamiento: Es el resultado (o acto) de ocultar los detalles de implantacin de un objeto respecto de su usuario.
Una Solicitud: Invoca una operacin especfica, con uno ms objetos como parmetros. Es decir, es para que se lleve acabo la operacin indicada y que se produzca el resultado. En consecuencia las implantaciones se refieren a los objetos como solicitudes.
Clase: Es una implantacin de un tipo de objetos. Especifica una estructura de datos y los mtodos operativos permisibles que se aplican a cada uno de sus objetos.
Tipos de mtodos: Hay varios tipos de mtodos que son comunes a la mayora de las clases:
Constructores: Un constructor es un mtodo 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 mtodo que se utiliza para destruir un objeto. No todos los lenguajes orientados a objetos poseen destructores.
Accesores: Un accesor es un mtodo 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 mtodo que almacena un nuevo valor en un atributo. De este modo es como objetos externos pueden modificar los datos encapsulados.
3. Herencia: Una clase implanta el tipo de objeto. Una Subclase hereda propiedades de su clase padre, una subclase puede heredar la estructura y los mtodos algunos de los mtodos.
Herencia mltiple: Cuando una clase hereda de ms de una superclase se tiene herencia mltiple.
Polimorfismo: Este concepto permite enlazar el mismo nombre o smbolo de operador a dos o ms implementaciones diferentes del operador, dependiendo del tipo de objetos a los que ste se aplique.
En las BDOO los datos estn encapsulados y se dice que estos son activos ms que pasivos; debido a que por ejemplo: La clase mayor detecta si tiene un hijo (objeto) ms o uno menos, es por esto que se dice que estn activos ya que cuentan los hijos u objetos que tiene.
En el modelo de objetos existen cuatro caractersticas fundamentales:
Abstraccin: Denota las caractersticas esenciales de un objeto que lo distinguen de todos los dems tipos objeto, y proporciona as fronteras conceptuales ntidamente definidas respecto a la perspectiva del observador. Una abstraccin se centra en la visin externa de un objeto, y, por tanto sirve para separar el comportamiento esencial de un objeto de su implantacin.
Modularidad: Se basa en el concepto de fragmentacin de los programas en componentes individuales para reducir su complejidad en algn grado, y para crear adems una serie de fronteras bien definidas y documentadas dentro del programa, dnde estas fronteras o interfaces tienen un incalculable valor cara a la comprensin del programa.
Jerarqua: Una clasificacin u ordenacin de abstracciones.
Tipos: Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma funcionalidad) que se puede observar desde afuera.
Genericidad: Permite construir clases genricas para otras clases.
Objetos Complejos: Estn construidos mediante algunos ms simples mediante la aplicacin de constructores a ellos. Los Objetos ms simples son objetos como: Integer, Carcter, String de Bytes de cualquier longitud, booleanos punto flotante y algunos pueden ser de tipo atmico.
4. Qu es O.O.?
En esos mundos OO, el conocimiento se descentraliza en todos los objetos que lo componen, cada objeto sabe hacer lo suyo y no le interesa saber cmo el vecino hace su trabajo, pero sabe que lo hace y qu es lo que puede hacer. Como bien lo defini Dan Ingalls de Smalltalk con las siguientes palabras:
La orientacin a objetos proporciona una solucin que conduce a un Universo de Objetos bien educados que se piden de manera corts, concederse mutuamente sus deseos.
5. Por qu O.O.?
La meta es dejar la etapa en la que la construccin del software es una labor de artesanos, y pasar a la etapa en la que se pueda tener fbricas de software, con gran capacidad de reutilizacin de cdigo y con metodologa eficientes y efectivas que se apliquen al proceso de produccin.
6. Base de Datos Orientada a Objetos
A finales de los 80s aparecieron las primeras BDOO, es una base de datos inteligente. Soporta el paradigma orientado a objetos almacenando datos y mtodos, y no slo datos. Est diseada para ser eficaz, desde el punto de vista fsico, para almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los mtodos almacenados en ella. Es ms segura ya que no permite tener acceso a los datos (objetos); esto debido a que para poder entrar se tiene que hacer por los mtodos que haya utilizado el programador.
7. Caractersticas de BDOO
Se intenta definir un sistema de BDOO y describe las principales caractersticas en tres grupos:
Mandatorias: son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO y estos son: Objetos complejos, Identidad de Objetos, Encapsulacin, Tipos o clases, Sobre paso con unin retardada, Extensibilidad, Completacin Computacional, Persistencia y Manejador de almacenamiento secundario, concurrencia, Recuperacin y Facilidad de Query.
Opcional: Son las que pueden ser aadidas para hacer el sistema mejor pero que no son Mandatorias, estas son de: herencia mltiple, chequeo de tipos e inferencia de distribucin y diseo de transacciones y versiones.
Abiertas: Son los puntos donde el diseador puede hacer un nmero de opciones y estas son el paradigma de la programacin, la representacin del sistema el tipo de sistema y su uniformidad. Hemos tomado una posicin no muy a la expectativa para tener una palabra final ms bien para proveer un punto de orientacin para un debate futuro.
Caractersticas Mandatorias o Reglas de Oro
Un sistema de BDOO debe satisfacer dos criterios:
Debe tener un BDMS
Debe ser un sistema OO
Por ejemplo: para la extensin posible este debe ser consistente en los actuales cortes de lenguajes de programacin OO
El primer criterio se traduce en 5 caractersticas como son: Persistencia, Manejador de almacenamiento secundario, Concurrencia, Recuperacin, y Facilidad de Query.
La Segunda se traduce en 8 caractersticas: Objetos Complejos, Identidad del objeto, Encapsulacin, Tipos Clases, Sobre paso con combinacin retrasada, Extensibilidad y Completacin Computacional.
8. Caractersticas ObligatoriasEste es un punto que no debe faltar en una BD.
Predominancia combinada con enlace retardado: Se puede definir que sea Excel, Autocad, etc. desde la programacin.
Extensibilidad: Proporciona los tipos de datos como: Caracter, booleano, String, etc.
Concurrencia: Permite que varios usuarios tengan acceso a una BD al mismo tiempo.
Recuperacin: Cuando se hace una transaccin pero no se puede realizar y se regresa al mismo estado.
Facilidad de Consultas a Modo: Esto es que se tienen diferentes estndares.
Caractersticas Opcionales
Esta depende del producto que se vaya a realizar.
Herencia Mltiple: Tienen caractersticas de padres diferentes y proporcionan mecanismos para saber de 2 o ms opciones cual conviene.
Verificacin de tipos de inferencia
Distribucin: Que se puede tener parte de una BD en un servidor y otra parte en otro.
Sistema de Representacin.- Forma en como se presentan los esquemas.
Uniformidad: Todo debe ser igual. Diseo de ventanas, etc.
Asociaciones y Cardinalidad de Asociaciones: Cardinalidad: 1:1 (Uno a Uno),1:M (Uno a Muchos),M:1(Muchos a Uno),M:M (Muchos a Muchos).
9. Estructura de una BDOO
El paradigma orientado a objetos se basa en el encapsulamiento de datos y del cdigo relacionado con cada objeto en una sola unidad. Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos.
En general, cada objeto est asociado con:
Un conjunto de variables que contiene los datos del objeto; las variables corresponden con los atributos del modelo E-R.
Un conjunto de mensajes a los que responde; cada mensaje puede o no tener parmetros o tener uno o varios.
Un conjunto de mtodos, cada uno de los cuales es el cdigo que implementa un mensaje; el mtodo devuelve un valor como respuesta al mensaje.
El Mensaje en entorno OO no implica uso de mensajes fsicos en redes informticas. Por el contrario, hace referencia al intercambio de solicitudes entre los objetos, independientemente de los detalles correctos de su implementacin. Se utiliza a veces la expresin invocar un mtodo para detonar al hecho de enviar un mensaje a un objeto y la ejecucin del mtodo correspondiente.
10. Ejemplo: Clases de objetos
class empleado {
/ / Variables
string nombre;
strin direccin;
date fecha de alta;
int sueldo;
/ / Mensajes
int sueldo-anual ();
stringobtenerNombre ();
stringobtenerDireccion ();
intdefinirDireccion (string nueva-dir);
int antigedad();
};
11. Generalmente en una base de datos hay muchos objetos similares (se entiende que responden a los mismos mensajes, utilizan los mismos mtodos y tienen variables del mismo nombre y tipo). Por tanto sera un derroche definir por separado cada uno de estos objetos. Por tanto, los objetos se agrupan para formar clases. Todos los objetos de una clase comparten una definicin comn, pese a que se diferencien en los valores asignados a las variables.
El concepto de clase del modelo orientado a objetos se corresponde con el concepto de entidad del modelo E-R.
El ejemplo Empleado muestra las variables y los mensajes que responden a los objetos de la clase; no se muestran aqu los mtodos para el tratamiento de los mensajes.
12. Ventajas de una BDOO
La clave que posee la BDOO es el poder que confieren al diseador para especificar tanto la estructura de objetos complejos como las operaciones que se pueden aplicar a esos objetos.
Est su flexibilidad, y soporte para el manejo de tipos de datos complejos.Esto presenta la ventaja adicional que una BDOO puede ajustarse a usar siempre el espacio de los campos que son necesarios, eliminando espacio desperdiciado en registros con campos que nunca usan.
Por ejemplo: En una base de datos convencional, si una empresa adquiere varios clientes por referencia de clientes servicio, pero la base de datos existente, que mantiene la informacin de clientes y sus compras, no tiene un campo para registrar quin proporcion la referencia, de qu manera fue dicho contacto, o si debe compensarse con una comisin, sera necesario reestructurar la base de datos para aadir este tipo de modificaciones. Por el contrario, en una BDOO, el usuario puede aadir una subclase de la clase de clientes para manejar las modificaciones que representan los clientes por referencia. La subclase heredar todos los atributos, caractersticas de la definicin original, adems se especializar en especificar los nuevos campos que se requieren as como los mtodos para manipular solamente estos campos Naturalmente se generan los espacios para almacenar la informacin adicional de los nuevos campos.
La segunda ventaja de una BDOO, es que manipula datos complejos en forma rpida y gilmente. La estructura de la base de datos est dada por referencias (o apuntadores lgicos) entre objetos.
13. Posibles desventajas de una BDOO
Al considerar la adopcin de la tecnologa orientada a objetos, la inmadurez del mercado de BDOO constituye una posible fuente de problemas por lo que debe analizarse con detalle la presencia en el mercado del proveedor para adoptar su producto en la lnea de produccin sustantiva. Por eso en este artculo se propone que se explore esta tecnologa en un proyecto piloto.
El segundo problema es la falta de estndares en la industria orientadas a objetos. Sin embargo, el Grupo Manejador de Objetos (OMG), es una Organizacin Internacional de Proveedores de Sistemas de Informacin y usuarios dedicada a promover estndares para el desarrollo de aplicaciones y sistemas orientados a objetos en ambiente de cmputos de red. La implantacin de una nueva tecnologa requiere que los usuarios iniciales acepten cierto riesgo. Aquellos que esperan resultados a corto plazo y con un costo reducido quedarn desilusionados. Sin embargo, para aquellos que planean a un futuro intermedio con una visin tecnolgica avanzada, el uso de tecnologa avanzada, el uso de tecnologa orientada a objetos, paulatinamente compensar todos los riesgos.
14. Aspectos de la tecnologa
Los objetos pueden estar compuestos o consistir de cualquier tipo de informacin que, eventualmente, puede almacenarse en forma digital; por ejemplo imgenes barridas (Scaned), voz y sonido, dibujos y planos arquitectnicos complejos, esquemas electrnicos y diagramas desarrollados por ingenieros, as como los tradicionales tipos de datos alfanumricos.
Las Bases de Datos Orientadas a Objetos permiten que mltiples usuarios compartan objetos complejos y los manipulen en un ambiente seguro y estructurado. Las bases de datos convencionales fueron diseadas para manejar tipos de datos alfanumricos y por esto difcilmente pueden manipular objetos y mtodos (los mtodos son los comportamientos definidos de los objetos).
Una Base de datos en red o jerarqua puede almacenar objetos complejos, pero esta arquitectura no es flexible, lo cual motiva, por ejemplo, el uso del modelo relacional. Estos sistemas casi no permiten flexibilidad para modificaciones, y el sistema debe desactivarse cuando se requiere modificar estructuras de objetos y mtodos.
Los niveles en los cuales las bases de datos incorporan los conceptos alrededor de la metodologa de objetos. La primera clase, puede denominarse BDOO pasiva o estructuralmente orientadas a objetos que permiten manejar objetos compuestos. Una base de datos pasiva puede almacenar objetos complejos pero no puede definir comportamientos.
Una BDOO es activa u orientada a objetos por comportamiento si permite definir y ejecutar comportamiento de los objetos dentro de la base de datos, incorpora conceptos como herencia y permite el manejo de tipos definidos por el usuario.
15. 16. Bases de Datos Objeto-Relacionales
El trmino base de datos objeto-relacional se usa para describir una base de datos que ha evolucionado desde la modelo relacional hasta una base de datos hbrida, que contiene ambas tecnologas: relacional y de objetos.
El modelo objeto relacional tambin se conoce como el modelo relacional extendido ya que incluye nuevas funciones y extensiones soportadas por los objetos, actualmente las opinin sobre la definicin del modelo objeto relaciona estn muy dividas, una definicin sencilla podra ser:
El modelo objeto-relacional (ORDBMS) es similar a un front-end dentro de una base de datos relacional que permite que los datos sean grabados como objetos, sin embargo todos los metadatos y la informacin siguen utilizando el sistema de filas y columnas para este propsito de tal forma que la base de datos pueda ser accedida tambin como una base de datos relacional. Y as mismo cuando los datos son recuperados la base de datos tiene la capacidad de reconstruir nuevamente los datos simples a objetos complejos.
17. Tipos de objetos
El modelo relacional est diseado para representar los datos como una serie de tablas con columnas y atributos. Oracle8 es una base de datos objeto-relacional; es decir, incorpora tecnologas orientadas a objetos. En este sentido, permite construir tipos de objetos complejos, entendidos como:
Capacidad para definir objetos dentro de objetos.
Cierta capacidad para encapsular o asociar mtodos con dichos objetos.
18. Estructura de un tipo de objeto
Un tipo de objeto consta de dos partes: especificacin y cuerpo. La especificacin constituye la interface a las aplicaciones; aqu se declaran las estructuras de datos (conjunto de atributos) y las operaciones (mtodos) necesarios para manipular los datos. El cuerpo define los mtodos, es decir, implementa la especificacin. En la figura 1 se representa grficamente la estructura de un tipo de objeto.
19. 20. Descripcin del modelo
Modelo de datos:
Actualmente todo modelo de datos que se categorize como modelo objeto-relacional cumple con SQL3, pero conservando toda la informacin persistente como tablas cumpliendo tambin esta forma con SQL2, sin embargo el modelo ORDBMS trae como alternativa la creacin de ADTs (Abstract Data Types).
Un ADT es un tipo de datos construido a partir de los datos bsicos, este nuevo soporte es atractivo porque por medio de funciones, operaciones de este nuevo tipo de datos pueden ser usados como ndices, consultas, vistas permitido integrar un nuevo tipo de datos de objetos como el multimedia.
Gracias a todas estas facilidades del ORDBMS permite que el desarrollador pueda escoger si desea seguir desarrollando por medio de RDBMS y opcionalmente con ORDBMS. Adems es posible abordar el diseo de nuestra base de datos pudiendo aprovechar todo las relaciones y la composicin del paradigma de objetos as como soporte a lenguajes orientados a objetos.
Lenguaje de consultas:
Una base de datos objeto-relacional soporta una forma de SQL de forma extendida, a veces conocida como ObjectSQL.
Esta nueva extensin soporta el modelo objeto, dichas consultas puede ser muy poderosas porque pueden trabajar con las relaciones entre objetos, mtodos, funciones de bsqueda de predicados y bsquedas a ADTs. Sin embargo la sintxis es muy similar a la relacional debido a que el ORDBMS est basado en datos tipo RDBMS por medio de filas, columnas y SQL tradicional. Se espera que para un futuro prximo la implementacin del estndar SQL4 permita incorporar OQL el cual es un lenguaje netamente de objetos.
21. Sobre el diseo del modelo
La novedad ms importante del modelo objeto relacional es la implementacin de los UDTs (user-definedtypes) y de los UDFs (user-definedfunctions), los datos tipo coleccin y las infraestructuras (Mejoras en la indexacin, nuevos tipos y funciones). El soporte del manejo de las abstracciones por medio de objetos permite que el modelo conceptual sea desarrollado usando UML que finalmente facilita un buen diseo lgico. Pero primero pasemos a definir que es un objeto segn el modelo ORDBMS para empezar a describir el diseo conceptual:
Qu es un objeto?
Los tipos de datos orientados a objetos son abstracciones de las entidades del mundo real que se guardan en la base de datos, un objeto es un esquema compuesto por un OID (Y que puede manejarse como llave primaria), un nombre, y un conjunto de mtodos.
Qu son los UDTs y UDFs?
Corresponden a los nuevos tipos de datos y nuevas funciones personalizadas por el usuario. Los UDTs se pueden clasificar en 3 tipos: de tipo distintivo, tipo opaco o de base y tipo fila o compuesto.
Los datos de carcter opaco o de base son datos no derivados de otro tipo de datos, sus estructuras puede deben ser definidas dentro del DBMS con sus respectivas operaciones y funciones. Despus de ser definidos pueden usarse como base para la creacin de datos tipo distintivos y de tipo fila para ser usando en objetos. Los datos tipo fila pueden incluir ms datos de tipo fila de forma anidada. Los datos de tipo distintivo son derivados de otro tipo de datos, manejan sus propios dominios, operaciones (Sobrecarga) y funciones. De ah que su definicin como objeto pueda ser fuertemente tipeada lo que ayuda a mejorar la integridad de los datos.
Dentro del modelo OR existen tres tipos de mtodos cada uno con un respectivo constructor, ellos son:
Mtodos tipo miembro: Permite modelar el comportamiento de los objetos
Mtodos tipos esttico: Permite modelar el objeto en su totalidad
Mtodo tipo comparacin: Permite realizar comparaciones entre el objeto original e instancias de este.
Tipo de coleccin:
Tipo Arreglo
Tipo tabla
22. Ambos tipos de colecciones son del mismo tipo de datos, sin embargo su diferencia radica en que el tipo arreglo es un conjunto ordenado, y limitado mientras que un tipo de tabla es un conjunto desordenado y sin lmite alguno. Las tablas pueden anidarse siendo manejadas por medio del objeto tipo fila.
Tambin el modelo ORDBMS soporta dos tipos de vistas, el viejo tipo de vista clsica en una tabla y la nueva vista de tipo objeto. Por medio de las vistas tipo objeto es posible crear tablas virtuales de objetos que manejen UDTs y UDFs, las vistas de objeto tambin tienen la ventaja de producir vistas con datos de tipo relacional adjuntos a una vista objeto previa.
La infraestructura se denomina aquellos mdulos acompaantes comprendido entre Cartdridges (Oracle 8i), datablades (Informix) y extendedores (DB2). Este tipo de mdulos contenan nuevos tipo de datos, estructuras y funciones e interfaces nuevas para los desarrolladores.
23. Primer intento de Estandarizacin: ODMG-93
La mayor limitacin de las bases de datos orientadas a objetos es la carencia de un estndar. ODMG-93 (Object-OrientedDatabase Management Group) intenta definir un SGBDOO que integre las capacidades de las bases de datos con las capacidades de los lenguajes de programacin, de forma que los objetos de la base de datos aparezcan como objetos del lenguaje de programacin, intentando de esta manera eliminar la falta de correspondencia existente entre los sistemas de tipos de ambos lenguajes .El SGBDOO extiende el lenguaje con persistencia, concurrencia, recuperacin de datos, consultas asociativas, etc. El lenguaje de bases de datos es especificado mediante un lenguaje de definicin de datos (ODL), un lenguaje de manipulacin de datos (OML), y un lenguaje de consulta (OQL), siendo todos ellos portables a otros sistemas con el fin de conseguir la portabilidad de la aplicacin completa.
24. Lenguaje ODL
El lenguaje de definicin de datos (ODL) en un SGBDOO es empleado para facilitar la portabilidad de los esquemas de las bases de datos. El ODL define las propiedades y los prototipos de las operaciones de los tipos, pero no los mtodos que implementan esas operaciones. El ODL intenta definir tipos que puedan implementarse en diversos lenguajes de programacin; no est por tanto ligado a la sintaxis concreta de un lenguaje de programacin particular. De esta forma un esquema especificado en ODL puede ser soportado por cualquier SGBDOO que sea compatible con ODMG-93.
Lenguaje OML
El lenguaje de manipulacin es empleado para la elaboracin de programas que permitan crear, modificar y borrar datos que constituyen la base de datos. ODMG-93 sugiere que este lenguaje sea la extensin de un lenguaje de programacin, de forma que se pueden realizar entre otras las siguientes operaciones sobre la base de datos: Creacin, Borrado, Modificacin e Identificacin de un objeto.
25. Lenguaje OQL
El lenguaje de consulta propuesto por ODMG-93, presenta las siguientes caractersticas:
No es computacionalmente completo. Sin embargo, las consultas pueden invocar mtodos, e inversamente los mtodos escritos en cualquier lenguaje de programacin pueden incluir consultas.
Tiene una sintaxis abstracta.
Su semntica formal puede definirse fcilmente.
Proporciona un acceso declarativo a los objetos.
Se basa en el modelo de objetos de ODMG-93.
Tiene una sintaxis concreta al estilo SQL, pero puede cambiarse con facilidad.
Puede optimizarse fcilmente.
No proporciona operadores explcitos para la modificacin, se basa en las operaciones definidas sobre los objetos para ese fin.
Proporciona primitivas de alto nivel para tratar con conjuntos de objetos, pero no restringe su utilizacin con otros constructores de colecciones.
Existen dos posibilidades para asociar un sublenguaje de consulta a un lenguaje de programacin: fuerte y dbilmente: El primer caso consiste en una extensin de la gramtica del lenguaje asociado. En el segundo caso, las funciones query tienen unos argumentos String que contienen las preguntas.
26. GlosarioBDOO: Bases de Datos Orientadas a Objetos
BDR: Bases de Datos por Relacin
BLOB: Objetos Binarios de Gran Tamao
BDOO94: Bases de Datos orientados a Objetos 94
CAD: Diseo Asistido por Computadora
CAE: Ingeniera Apoyada por computadora
CORBA: (CommonObjectRequestBrokerArquitecture)
EDT: Estacin de Trabajo
A-TREE: Unico rbol para todas las clases de Jerarqua
H-TREE: Un rbol para cada clase en la Jerarqua
LDD DDL: Lenguaje de definicin de Datos
LMD DML: Lenguaje de Manejo de Datos
27. LOBS: Tales como Vdeo, Programas Ejecutables etc.
OO: Orientacin a Objetos
ODL: Estndar de Definicin de Lenguaje de Datos
OMG: Grupo Manejador de Objetos
OML: Lenguaje de Manipulacin de Datos
ODMG: Gestin Manejadora de datos Objeto
OQL: Equivalente al SQL(Lenguaje de Consulta)
SQL: Lenguaje de Consulta
SGBD: Sistema de Gestin de Bases de Datos
SGBDOO: Sistema de Gestin de Bases de Datos Orientada a Objeto
SO: Sistema Operativo