->El modelo de datos orientado a objetos dio origen a principios de la década de los 90 con el fin de evitar problemas que surgieron al tratar de representar cierta información en un
->modelo clásico como el relacional; éste modelo (relacional) permite el almacenamiento de gran ->cantidad de datos, en la realidad se ha venido presentando la necesidad de modelar datos un poco más abstractos.
Algunos de los sistemas que a continuación se presentan han tenido limitantes para representarse en un modelo relacional porque requieren de información compleja:
? El diseño y manufactura asistidos por computadora (CAD/CAM). ? Ingeniería de software asistida por computadora (CASE). ? Manufactura integrada por computadora (CIM). ? Sistemas de información geográfica (GIS). Para los sistemas de información geográficos o para toda aplicación en la cual hay una dimensión espacial o geográfica (la cartografía de una región, la topología de una zona o el plano de un edificio), los desarrolladores de estas
61
aplicaciones necesitan la tecnología de objetos; ella ofrece un mayor desarrollo y mejores desempeños. ? Ciencia y medicina. ? Aplicaciones multimedia. Para toda aplicación que manipula gráficos, imágenes, animación y voz.
Este tipo de aplicaciones necesita trabajar con datos de forma diferente a lo que conocemos porque necesitan:
? Estructuras más complejas para los objetos. ? Transacciones de mayor duración. ? Nuevos tipos de datos para almacenar imágenes o grandes bloques de texto. ? Necesidad de definir operaciones no estándar, específicas para cada aplicación. ? Controlar versiones y configuraciones.
*características
de este modelo, se basan en los lenguajes de programación orientados a objetos, y ofrecen una gran ventaja, es decir, utilizan el mismo modelo tanto para el análisis, diseño y programación
esta problemática se utilizaron ->lenguajes de programación orientados a objetos como el C++ o Simula 67, sin embargo, esto no quiere decir que se puedan aplicar completamente a tratamiento de las
->bases de datos tablas para modelar entidades a través de renglones y columnas, pero en la actualidad se han presentado casos en los que los datos requieren que se les incluya gráficos, vídeo, audio, diagramas, huellas digitales y sonido, así como números y texto.
->El modelo de datos orientado a objetos es una extensión del paradigma de programación orientado a objetos. Los objetos entidad que se utilizan en los programas orientados a objetos son equivalentes a las entidades que se utilizan en las bases de datos orientadas a objetos puras, pero con una gran diferencia
Características de los SGBDOO. Un Sistema Gestor de Bases de Datos Orientadas a Objetos (SGBDOO) es un software que gestiona bases de datos, y estos datos están almacenados en forma de objetos, por lo tanto posee todas las ventajas de la orientación a objetos. Sus características son la que se analizan a continuación.
se clasifican en dos partes 1.-bases de orientación a objetos Características obligatorias de orientación a objetos:
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. 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
2.-sistema gestor de bases de datos (SGBD Características obligatorias de SGBD:
9. Debe proporcionarse persistencia a los datos. 10. El SGBD debe ser capaz de gestionar bases de datos de gran tamaño.
11. El SGBD debe soportar a s concurrentes. 12. El SGBD debe ser capaz de recuperarse de fallos de hardware y software. 13. El SGBD debe proporcionar una forma simple para consultar los datos.
Pero además menciona que para modelos avanzados de bases de datos, deberán cumplir con las siguientes características subrayando que éstas son opcionales:
1. Herencia múltiple. 2. Comprobación de tipos e inferencia de tipos. 3. Sistema de base de datos distribuido. 4. Soporte de versiones.
Tipos de SGBDOO. existen varios tipos. Estos se han ido transformando a través del tiempo con el fin de atender las necesidades de representar datos cada vez más complejos. Por ejemplo los primeros que existieron, dejaban fuera del SMBD el procesamiento de los objetos,
Objetos grandes y software externo Este tipo de arquitectura consiste en que los SMBDOO pueden incluir en su base de datos objetos grandes, por ejemplo: objetos grandes binarios (BLOB) u objetos grandes carácter o texto (CLOB), y en otra parte distinta los objetos simples. Para manipular a los objetos grandes se harán uso de software externo como ActiveX, applets de Java y plug-ins del navegador web.
Servidores especializados en medios. Esta arquitectura consiste en tener dos servidores de bases de datos, en uno se almacenarán los datos simples, y en el otro (servidor de medios) los objetos grandes, de tal manera que un que intente acceder a ambos en una aplicación tendrá que hacer solicitudes con SQL para los datos simples y combinar el resultado con la respuesta a la solicitud a través de un programa de aplicación para objetos grandes.
Middleware de bases de datos de objetos Este tipo de arquitectura elimina el directo al servidor de medios, con el fin de hacer transparente el a los datos complejos. Esto se logra a través de un Middleware (software que integra datos complejos con datos relacionales). Si comparamos esta arquitectura con la anterior, solo veremos un cambio, es decir se conservan los dos servidores (de bases de datos y de medios), pero para poder acceder un cliente a ellos lo tendrá que hacer a través del middleware el cual proporcionará una interface en la que se harán solicitudes en SQL, sin embargo dentro de él habrá llamadas a las aplicaciones para objetos grandes las cuales se dirigirán al servidor de medios. Cabe mencionar que esto será transparente para el .
SMBD relacionales de objetos para tipos definidos por el . Las arquitecturas anteriores utilizan el SMBD sin ninguna alteración a su arquitectura, ya que para manipular datos complejos emplean programas de aplicación externos al manejador, sin embargo esta arquitectura, realiza unamodificación en el SMBD para proveer el soporte de datos complejos. Esta modificación se refiere a un módulo que se encarga de soportar tipos de datos definidos por el , tal es el caso de los datos tipo video, imágenes, series de tiempo, espaciales, geodésicos, texto, XML, web, entre otros.
El proceso que se sigue para manipular datos complejos es el siguiente: ? Se genera código en SQL para manipular datos complejos. ? Se realiza un análisis gramatical para identificar expresiones que involucren tipos y funciones definidos por el . ? Después interviene el Kernel relacional, el cual procesa la transacción y gestiona almacenamiento en disco.
Sistemas de istración de bases de datos orientadas a objetos.
La arquitectura de objetos definidos por el estableció un cambio en el SMBD para poder cumplir con sus objetivos, en realidad esto es lo que realmente se requiere para soportar el manejo de datos complejos en el SMBD. También es el caso de la arquitectura de sistemas de istración de bases de datos orientadas a objetos. Este tipo de software hace cambios radicales en el SMBD para poder dar soporte a la manipulación de datos complejos, a las propiedades que éstos deben conservar como es la herencia, el polimorfismo, etc. Además hacen que se modifique el modelo de bases de datos y el kernel.
Productos El tratamiento de las bases de datos orientadas a objetos ha evolucionado a través del tiempo dando lugar a nuevo software para manipular datos complejos. Como ya se ha mencionado anteriormente, las diferentes arquitecturas de los SMBDOO requieren de diferente software. A continuación se mencionan algunos de estos productos.
FastObjects
Un SMBDOO comercial que permite almacenar los objetos que han sido creados usando tecnología de C++ o de Java directamente en una BDOO. La BD de FastObjects reconoce las relaciones entre los objetos y reproduce estas relaciones cuando los objetos se recuperan de la BD. Un servidor de BD multi para aplicaciones de múltiples capas escritas en Java o en C++. Los componentes principales son: SDK FastObjects, Archivo de configuración (Ptj.opt), la cache activa, Enhancer FastObjects, Bases de Datos FastObjects (objects.dat y objects.idx) y el diccionario.
Arquitectura: Consiste en un sistema servidor de BD el cual proporciona la funcionalidad esencial para poner a la disposición una biblioteca de archivos. El servidor de FastObjects recibe y mantiene conexiones del cliente sobre una colección de sockets de T/IP. El servidor maneja todas las transacciones que funcionan con la BD proporcionando control de concurrencia del objeto. Los
objetos de Java o de C++ se almacenan en el sistema de archivo local del servidor de FastObjects.
VERSANT
De Versant Object Technology, con soporte a C++, Smalltalk y Eiffel. Se ajusta al estándar ODMG.
? Especial control al bloqueo y a las transacciones. ? Mecanismo de notificación de eventos. ? Mecanismo de versiones de objetos. ? Soporte Cliente-Servidor. ? Rico conjunto de tipos de datos. ? Gestión de datos de alto rendimiento Complex . ? Persistencia de objetos nativos. ? Apoya la distribución de bases de datos y la partición.
? Integral, 24/7 herramientas.
Ventajas
? Resultados analíticos en tiempo real. ? Gestión de datos grande. ? Reduce el tiempo de desarrollo hasta en un 40%. ? Costo total de propiedad significativamente menor. ? Alta disponibilidad.
POET
Es una base de datos orientada a objetos que soporta la semántica de C++ y Java. Es potente y fácil de usar. POET, utiliza clases y objetos para proporcionar las siguientes características: • Encapsulación • Herencia • Polimorfismo • Tipos de datos definidos por el • Identidad • Modelos naturales para las relaciones entre objetos
MATISSE
De ADB Inc., posee soporte para C, C++, Smalltalk, Java y Eiffel. Está orientado al desarrollo de bases de datos con una rica estructura semántica, además puede almacenar y manejar objetos como: imágenes, películas y sonidos. Aunque ite los conceptos básicos de la orientación a objetos, tales como la herencia múltiple, Matisse se abstiene de imponer demasiadas restricciones como lo referente al modelo de datos y sirve en su lugar como un potente motor de base de datos orientadas a objetos.
Otras características son: • Ubicación optimizada de los objetos en dispositivos de almacenamiento. • Se duplican los objetos en varios dispositivos para recuperación en caso de fallo. • Mecanismo de versiones de objetos incorporado. • Soporte para transacciones.
DB4Objects
Db4Objects (Db4o) es un nombre que proviene de la expresión Database for objects, que significa BD para objetos, se trata de un framework de persistencia que permite almacenar objetos Java o .NET de forma directa y transparente. Los principales componentes son: El motor db4(archivo.jar), el API, ObjectContainer y Object Manager.
Arquitectura: Está bajo el modo cliente/servidor. El API de Db4o incluye la funcionalidad necesaria para que Db4o pueda ejecutarse como un servidor y permitir la definición de clientes que interactúen con el servidor. En un ambiente distribuido se puede implementar esta modalidad para aceptar conexiones desde otros computadores o desde PDAs, dispositivos o teléfonos celulares.
Manejo de memoria: La responsabilidad de limpiar la memoria es cedida a la máquina virtual. En Java se utilizan referencias débiles para las instancias de objetos. Si un objeto no es referenciado por la aplicación durante un largo tiempo, el Garbage Colletor de la Máquina Virtual limpiará éstas referencias débiles. Con respecto a los objetos persistentes que no han sido referenciados, el Garbage Collection no tiene influencia sobre ellos, éstos continuarán siendo almacenados en la BD, incluso si no son referenciados por un largo tiempo.
Oracle
Aunque Oracle se conoce como un manejador de base de datos relacional, éste ha implementado un modelo orientado a objetos en su sistema de gestión de bases de datos. Es por ello que a este tipo de software se le conoce como sistema manejador de bases de datos híbrido llamados SGBDOR (manejador de base de datos objeto relacional).