| Bases de Datos
Orientadas a Objetos Origen del concepto El concepto actual de las bases de datos surge alrededor de los setenta. El modelo orientado a objetos esta basado en el paradigma de OOP (Object Oriente Programming), como historia se conoce que el lenguaje Simula 67 introdujo pro primera vez este enfoque, a su vez este lenguaje se construyó para el diseño de programación de simulaciones. Luego los lenguajes Smalltalk y C++ siguieron esta orientación y hace algunos años recientemente los lenguajes visuales como Visual C++ y Visual Fox Pro de Microsoft. Conceptos de las bases de Datos Para entender el modelo iniciaremos recordando los conceptos de la definición de OOP El fin de un DBMS es la gestión de grandes cantidades de datos, entre las características comunes de los modelos de bases de datos mas utilizados tenemos: Uniformidad : Existe un gran numero de datos estructurados de manera similar, todos del mismo tamaño. Orientación en registros : Los datos básicos constan de registros de longitud fija Datos pequeños : Todos los registros son cortos aproximadamente de 80 bytes o menos (ahora este limite se rompe) Campos Atómicos :Los campos de un registro son cortos y de longitud fija. No hay una estructura en los campos En otras palabras, se cumple la primera forma normal. Transacciones cortas Procedimientos de consultas y procesos de calculo sencillos Esquemas de concepto estático : El modelo de la base de datos (tablas y otras entidades) varían con muy poca frecuencia. Sin embargo en los últimos tiempos las necesidades han cambiado, nuevas aplicaciones surgieron con requerimientos que son satisfechos por los modelos con las características anteriormente descritas. Estas nuevas aplicaciones requieren nuevos modelos de datos, nuevos lenguajes de consulta y nuevos modelos de transacciones, entre los requisitos de estas nuevas aplicaciones están: Conceptos Básicos Los sistemas de BDOO requieren de la capacidad de almacenar e identificar cantidades considerables de datos cuya unidad básica es el objeto; para ello requiere definir un mecanismo de identificación de los objetos. Este mecanismo de identificación, a diferencia del modelo relacional, no puede depender del estado del objeto o del valor de sus atributos; porque existen diseños de datos donde deben definirse grandes cantidades de objetos con condiciones de estado y valores de atributos iguales. Por ello los sistemas de BDOO definen un esquema simple de Identificación de Objetos (IDO) que permite definir el identificador cuando el objeto es creado; este valor es independiente del estado o valores del objeto y es manejado por el sistema. La ventaja del IDO es su eficiencia pues se maneja a bajo nivel por el sistema; pero, entre las desventajas están: la carencia de significado semántico para el usuario y muy usualmente un IDO consiste en par «identificador de clase, identificador de instancia». Dicho esquema dificulta la migración de los objetos de una clase a otra y se deben definir criterios de visibilidad del IDO hacia los usuarios. Los IDOs son utilizados para identificar los objetos (entidades no primitivas) y no para los enteros o caracteres (entidades primitivas) su definición permite que las propiedades del objeto puedan ser cambiadas y no se produzcan problemas graves como el que se tiene al pasar datos de una base de datos a otra cuando los identificadores de ambas son atributos diferentes. El acceso a los atributos del objeto rompe con el concepto de encapsulamiento y esta capacidad de accesar los atributos directamente es necesaria para poder efectuar las consultas que recuperan la información de la Base de Datos; la desventaja de definir un encapsulamiento real es la gran cantidad de métodos, de asignación y recuperación, necesarios para accesar cada uno de los atributos de un objeto. Esto no elimina el uso de métodos para la manipulación el objeto. Los métodos están constituidos por dos componentes: · Encabezado: especifica el nombre del método, los nombres y clases de sus argumentos (dependiendo del sistema puede no requerirse la clase del argumento solo un nombre porque no existe verificación de tipos en la compilación) y la clase de resultado, en caso de existir; y, · Cuerpo: código de implementación de acuerdo a las características del sistema; por ejemplo ORION utiliza Lisp, GemStone utiliza una extensión de Smalltalk y O2 usa C. Para evitar el acceso a los atributos directamente por el usuario algunos sistemas de BDOO definen operaciones a bajo nivel (implementadas eficientemente) capaces de recuperar y modificar los valores de los atributos del objeto; en sistemas como Vbase/Ontos se permite al usuario redefinir estos métodos de acceso lo cual es muy útil para objetos complejos; en O2 se puede definir métodos y atributos públicos o privados como en C++ y en ORION se puede accesar todos los métodos y atributos tanto para lectura o escritura; pero cuenta con mecanismos de autorización con el fin de evitar el acceso a ciertos atributos o ejecución de algunos métodos . Los sistemas de BDOO permiten definir la estructura de un objeto utilizando los mecanismos de instanciación, la jerarquía de agregación, metaclases o herencia. Los mecanismos de instanciación se refieren a la capacidad de definir nuevos objetos con la misma estructura o comportamiento pero instanciados con un objeto de la jerarquía; es decir, las plantillas (template). En la jerarquía de agregación los atributos del objeto tienen un dominio para los valores que puede tomar, a diferencia de algunos lenguajes de programación orientados a objetos donde las variables de instancia no tienen tipo. Las metaclases son similares a las clases abstractas y definen un conjunto de atributos y métodos comunes para todos los objetos cuyo objetivo es la uniformidad; esta característica solo se presenta en ORION con la clase llamada CLASS. Por último, la herencia "es el concepto de reutilización más poderoso de la programación orientada a objetos". Bertino. Elisa. 1995. La herencia utiliza dos conceptos fundamentales para ubicar la clase en la jerarquía como una sub-clase o superclase. Las sub-clases utilizan como base la definición de las superclases y pueden definir puede definir sus propios métodos y atributos; adicionales a los heredados de la superclase. Esta característica es simulada en el modelo de Bases de Datos relacional utilizando el concepto IsA. Datos de comportamiento Puede que distintos objetos necesiten responder de diferentes formas a la misma orden, por ejemplo, el borrado de registros de una tabla puede requerir del borrado de otros registros de otra tabla. En las aplicaciones CAD y CASE el comportamiento de distintos objetos en respuesta a la orden dada. La información sobre el comportamiento de la orden puede encapsularce en la base de datos asignado directamente a la entidad donde se aplica la orden. Para esto este nuevo modelo introduce el concepto de METODO (similar al utilizado en OOP) Meta conocimiento Muchas veces los datos mas importantes sobre las aplicaciones son un conjunto de reglas generales sobre la aplicación mucho mas que los registros o tuplas de la entidad. Por ejemplo, las reglas de pago de intereses las cuales pueden ser configuradas cuando se desee. (esto se puede lograr fácilmente en BDR Bases de datos Relacionales) Transacciones de larga duración Este punto es de fácil comprensión Estructura de Objetos El modelo orientado a objetos se basa en la posibilidad de encapsular código y datos en una única unidad, llamada OBJETO. La comunicaciones entre el objeto y el resto del sistema se hace mediante un conjunto de mensajes. Esto se puede lograr fácilmente el las BDR utilizando los Stored Procedures (triggers en algunos casos) Por ejemplo Una base de datos de documento en la que los documentos se preparan usando un software formateador de texto. Para imprimir un documento debe ejecutarse el formateador correcto en el documento, pero, en un enfoque OO cada documento responde ejecutando el código de formatear adecuado. Todos los documentos responden al mensaje de imprimir pero lo hacen en formas diferentes. Un objeto tiene asociado: Variables Un conjunto de variables que contienen los datos del objeto Mensajes Un conjunto de mensajes a los que responde el objeto Métodos Un método que es un grupo de código para implementar cada mensaje. Un método devuelve un valor como respuesta al mensaje. Clases Normalmente en una base de datos existen un conjunto de objetos similares, es decir que responden a los mismos mensajes, usan los mismos métodos y tienen variables del mismo nombre y tipo. Como estos objetos comparten mucho en común se agrupan y forman una clase. A cada uno de estos objetos se les llama instancia de la clase. Un modelo BDOO normalmente requiere un gran numero de clases, sin embargo, a menudo se da el caso de que varias clases son similares. Diagrama de un grupo de clases Un objeto que representa a un director contiene todas las variables de las clases Director à Empleado à Persona. Esto se refiere a la herencia de las propiedades de una clase mas general. Las especializaciones de una clase se llama sub clase, asi por ejemplo Empleado es una sub clase de Persona. Diagrama del objeto Diagrama de una tabla de BDOO La tabla contiene todo un conjunto de procedimientos almacenados similar a los triggers, los cuales contienen el comportamiento Mensaje es el paso de solicitudes entre objetos sin tener encuenta detalles específicos de implementación, estos mensajes son la única manera de comunicación entre el sistema y las entidades. Puesto que la única interfaz externa que presenta un objeto es el conjunto de mensajes al que responde, es posible modificar la definición de métodos y variables sin afectar a otros objetos. La capacidad de modificar la definición de un objeto sin afectar al resto del sistema esta considerada como una de las mayores ventajas del modelo de programación orientado a objetos. Organización física de BDOO La estructura de las bases de datos orientadas a objetos no presenta la uniformidad de las Bases Relacionales, para poder hacer una estructura física con facilidad de darle mantenimiento los objetos se representan así: Algunas clases se manipulan como las clases BASE o básicas de otros bloques que se construyen que el propio manejador construye directamente, estas clases BASE corresponden a tipos de datos de lenguajes de programación estándar (integer, double, string). Las instancias de las clases que no son básicas se representan así: ü Las variables se representan por campos de un tipo de registro, cada campo posee el valor del objeto para instancias de las clases BASE o bien de cualquier otra clase. ü Las variables con un conjunto de valores se representan por una lista enlazada de los objetos que son miembros del conjunto. Evolución hacia los modelos de BDOO Los sistemas de Bases de Datos fueron concebidos como un mecanismo de procesamiento, organización y almacenamiento de los datos dentro de los medios electrónicos; los cuales involucran un "conjunto de datos persistentes y un conjunto de programas de aplicación" capaces de accesar, manipular y mantener los datos de una organización. Los primeros pasos de la tecnología de Bases de Datos, como se citó anteriormente, estuvieron marcados por los sistemas basados en la administración de archivos separados para almacenar y representar una colección de datos; posteriormente, se desarrollaron los Sistemas de Gestión de Bases de Datos (DBMS Database Management System) integrando los datos en una unidad o colección (base de datos). Los DBMS ofrecen la capacidad para definir y seleccionar la estructura de los datos requeridas para el almacenamiento y la capacidad de iteractuar con el sistema por medio de un lenguaje de programación; estos sistema fueron evolucionando hasta llegar a la tecnología de las bases de datos relacionales, los cuales, por la simplicidad de los mecanismos de abstracción permitieron el desarrollo de un lenguaje de consulta simple (SQL Structured Querry Language) y accesible para los usuarios no expertos. Esto ha permitido una aceptación considerable de la tecnología de Base de Datos pues ha permitido que los datos sean accesados en forma concurrente utilizando lenguajes de alto nivel, fáciles de usar y eficientes; así mismo, ofrecen funciones para asegurar la integridad, seguridad y confidencialidad de los datos. Bertino, Elisa. 1995. Los Sistemas de Bases de Datos se estructuran en módulos para distribuir las responsabilidades minimizando las funciones requeridas por el Sistema Operativo; los componentes son: · Gestor de Archivos; · Gestor de Base de Datos; · Procesador de Consultas; · Precompilador de DML; · Compilador DDL; · Archivos de Datos; · Diccionario de Datos; e, · Índices. · La estructura básica del SQL · Lenguaje de definición de datos (DDL Data Definition Language); · Lenguaje de manipulación de datos interactivo; · Lenguaje de manipulación de datos inmerso; · Definición de Vistas; · Autorización; · Integridad; y, · Control de Transacciones Este conjunto de característica permitió al modelo relacional lograr una aceptación considerable como sistema administrador de bases de datos; Korth, Henry.1993 pero, sus funciones no han logrado satisfacer todas las necesidades pues presentan un modelo de datos poco expresivo. Bertino, Elisa. 1995 Aplicaciones y Tendencias Los modelos relacionales tienen como unidad básica de representación de datos la tupla donde es capaz de almacenar un registro coherente de un tipo de datos, esta unidad es muy simple para los modelos Orientados a Objetos porque un objeto puede utilizar una considerable cantidad de tuplas para ser representado dentro del Modelo Relacional; por ejemplo, los objetos manipulados por las aplicaciones de ingeniería o sistemas de multimedia (información geográfica; administración del medio ambiente; gestión de imágenes y documentos; información médica, sistemas CAD/CAM y sistemas de apoyo para la toma de decisiones). Es muy usual que los objetos manipulados por dichas aplicaciones sean agregados de otros objetos y requieran representar las relaciones entre otros objetos diferentes, su comportamiento y las restricciones. Los modelos orientados a objetos deben poseer la capacidad de definir sus propios tipos de objetos basados en los existentes o una jerarquía aparte; así como la capacidad de definir las operaciones asociadas a cada tipo de objeto. Esta extensibilidad debe proveer la capacidad de utilizar estos tipos de datos en la definición de otro nuevo, de la misma manera como lo permiten los tipos definidos por el sistema. Esta extensibilidad permite definir la estructura de datos del objeto persistente dentro del sistema de BDOO para almacenarlo y proveer un lenguaje de consulta capaz de recuperar dicha información de la forma más eficientemente posible. Sistemas de Bases de Datos Orientadas a Objetos Esta sección describe las características que debe poseer un sistema de BDOO con relación a la tecnología Orientada a Objetos. Además presenta una comparación entre las características que presentan los Sistemas BDOO y los Relacionales; la intención es presentar las fortalezas y debilidades de cada una de las tecnologías. BDOO vrs BD - Relacionales El siguiente es un ejemplo de la interfaz de manejo de una Base de Datos relacional Enterprise Manager de SQL SERVER Stored Procedures Triggers A continuación se presenta una comparación entre las bases de datos orientadas a objetos y las bases relacionales, enumerando sus características únicas y más sobresalientes de cada uno. Ventajas y Desventajas de ambos modelos Relacional - Ventaja Modificar el esquema de una base de datos Relacional se puede resumir en las siguientes tareas ü Crear o quitar tabla, relación. ü Añadir o eliminar atributos de un esquema de relaciones BDOO Desventaja Modificar el esquema es algo compleja y esta complicación deriva de dos fuentes: ü Cambios complejos ü Cambios frecuentes BDOO Ventaja Las BDOO son adecuadas por seguridad que ofrecen basada en versiones que no poseen las bases de datos relacionales, porque las bases relacionales abortan una operación si se produce un punto muerto. Al tratar de realizar una transacción de forma concurrente, en cambio, las bases de datos orientadas a objetos almacenan una versión temporal del dato y de la transacción para ejecutarla seguidamente. Reducen las diferencias semánticas entre los objetos, el mundo real y su representación en la base de datos, esto gracias a que los objetos poseen una identidad que no se basa en sus atributos o componentes, por lo que cualquiera de ellos puede cambiar, lo que produciría un caos si su identificación se basara en ellos, como se basan los sistemas relacionales. Además, en el modelo relacional, generalmente se necesitan muchas tablas normalizadas para representar un objeto del mundo real Graham, Ian. 1996. Los sistemas de BDOO permiten la extensibilidad, esto gracias al concepto de herencia, el cual es parte importante de estos, es decir, que estos sistemas no limitan la creación de sub tipos basados en los existentes. Por lo tanto, en el momento de añadir un nuevo objeto se hace fácil la modelación de la alteración del sistema. Una base de datos o un modelo orientado a objetos puede expresar los modelos Entidad - Relación, super conjuntos del modelo jerárquico y el modelo de red, y enriquece semánticamente todos ellos Graham, Ian. 1996. BDOO ventaja Los sistemas de BDOO no tienen necesidad de realizar las uniones, que es la operación más lenta de los sistemas relacionales. Esto porque la recuperación de un objeto es un operación única. En estos sistemas de BDOO, la estructura de los objetos se almacena directamente, en cambio, en los sistemas relacionales, una aplicación se desprende de la estructura de la base de datos al darse la ejecución a partir de tablas conectadas. En lugar de realizar uniones, la aplicación orientada a objetos sigue los punteros que van de un objeto a otro. Relacional - Desventaja En un sistema relacional la unidad de trabajo es la tabla, ya que toda consulta SQL retorna una tabla; en los lenguajes de programación esta unidad de trabajo la constituye la variable, por lo tanto, los programadores de bases de datos, cuando realizan una consulta que retorna varios registros, para trabajar con esos registros tienen que utilizar cursores para poder desplazarse entre ellos, estos cursores son un tipo de variable que hay que hacer corresponder con cada registro para hacer el recorrido, esto se denomina desacoplo de impedancia, y en ocasiones puede causar la pérdida de información en la interfaz. En los sistemas de bases de datos orientadas a objetos existe una coincidencia entre los lenguajes de programación y los lenguajes de consulta pues ambos tienen como unidad de trabajo el objeto por lo tanto, es más fácil para el desarrollador trabajar y expresar sus diseños en términos de objetos. BDOO ventaja Las BDOO permiten la comprobación previa de tipos y de consultas ad hoc, a diferencia de las relacionales que no lo permiten. Esto brinda la posibilidad de rechazar tipos de datos incorrectos antes de hacer el acceso real a la base de datos. Como se puede ver las BDOO, poseen muchas ventajas sin embargo, también tiene desventajas, entre las que se puede mencionar el hecho que todavía no exista un modelo formal de representación y que no se tienen estándares que sean utilizados y respetados por los expertos. Lenguajes de Consulta en las BDOO La existencia de un sistema capaz de almacenar información requiere poder efectuar operaciones de recuperación y actualización de los datos con el fin de permitir la manipulación por los procesos encargados de interactuar con el usuario; de igual manera que en el sistema relacional existe el SQL, como medio de comunicación con la Base de Datos, en los Sistema BDOO existe un lenguaje de consulta que presenta características similares e importantes de mencionar. Este lenguaje de recuperación de datos debe ser de alto nivel, declarativo, eficiente e independiente de la aplicación con el propósito de simplificar el desarrollo de las aplicaciones. Los lenguajes de consulta para los sistemas de BDOO, además de las características anteriores, deben poseer completitud computacional (construcciones necesarias para expresar todas las funciones computacionales posibles) y evitar la falta de correspondencia entre los tipos del lenguaje de programación y, los tipos del lenguaje de definición y el de manejo de datos Bertino, Elisa. 1995. Aun no ha sido propuesto un modelo de lenguaje de consultas para los sistemas de BDOO por la complejidad en la estructura del modelo y la ausencia de una definición formal, lo cual impide definir un Lenguaje de Consulta simple y poderoso. Por otra parte la definición de un lenguaje de consulta con el grado de eficiencia y simplicidad requerido contrapone con el encapsulamiento, que impide al usuario observar la estructura de datos del objeto, pues el lenguaje se basa en la estructura del objeto para efectuar la recuperación y actualización de dichos datos (Bertino, Elisa. 1995) cuando se requiera accesarlos. El acceso a los objetos en un sistema de BDOO se efectúa utilizando el lenguaje de consulta o por la navegacional (el acceso a objetos que son referenciados como atributos dentro de la jerarquía de agregación de un objeto) sin descartar el uso en conjunto de estas dos técnicas para accesar los datos. Las consultas deben ser capaces de recuperar datos donde las condiciones implican navegar dentro de la jerarquía de agregación del objeto; lo cual requiere que el lenguaje de consulta sea capaz de distinguir entre las uniones explícitas y las uniones implícitas dentro de una consulta donde se involucra la jerarquía de agregación. Una característica no presente dentro de los Lenguajes de Consulta del modelo relacional pero que viene a tomar importancia en el modelo de BDOO es la capacidad de consultar por las características del objeto involucrando su Jerarquía de Herencia; la capacidad de efectuar consultas donde se involucra la Jerarquía de Herencia conlleva al uso de predicados alternativos para expresar consultas como: if class(x) = C1 then pred1 if class(x) = C2 then pred2 if class(x) = Cn then predn (Bertino, Elisa. 1995) donde x es un objeto y class(x) un retorna la clase. Estas consultas requieren de verificaciones en el dominio de los atributos, las subclases y superclases para identificar ciclos en la definición de la estructura jerárquica. El Lenguaje de Consulta no solo deben involucrar los atributos o las características del objeto sino también los métodos definidos para cada tipo de objeto. Los métodos como parte de la estructura interna y por la capacidad de identificar características y/o condiciones derivadas o intrínsecas al objeto debe tomarse como un recurso importante dentro de los resultados o condiciones de una consulta; estos pueden ser utilizados como atributos derivados (calculo de un valor partiendo de las condiciones o valores de los atributos del objeto) o métodos predicados (comparación entre objetos que retornan un valor lógico) dentro de la consulta. El acceso de atributos y métodos, la capacidad para navegar por la estructura de agregación e involucrar las características del objeto dentro de una consulta, viene a engrosar el resultado al efectuar una consulta dentro de una BDOO. Los resultados de las consultas, en el esquema relacional, presentan la flexibilidad de aceptar como operando una consulta anidada (porque el resultado es una relación o tupla); este principio, de anidación, puede ser muy costoso dentro del esquema de BDOO pues el resultado de una consulta puede ser un objeto o un conjunto de objetos. Para evitar este costo se imponen restricciones en el resultado de las consultas dependiendo de las características del sistema. Para ilustrar mejor el esquema a seguir cuando se desea formular una consulta a la BDOO se utilizará el lenguaje propuesto para ORION (aún no implementado) en los siguientes ejemplos: 1. Encontrar todas las tareas que tienen dos meses hombre de duración, que tengan como jefe a un investigador especializado en «BD» y en las cuales haya, como participante, un grupo cuyo jefe esté especializado en «Sistemas de Información». Select :T From Tarea :T Where :T.meses_hombre = 2 And :T.jefe.especializacion = 'BD' And :T.participantes.jefe.especializacion == 'Sistemas de Información' Se puede formular la consulta eliminando las variables de referencia al objeto (T) de la siguiente manera Select Tarea Where meses_hombre = 2 And jefe.especializacion = 'BD' And participantes.jefe.especializacion == 'Sistemas de Información' 2. Encontrar los proyectos donde el responsable de cada tarea es el mismo jefe del grupo que desarrolla dicha tarea. Select Proyecto Where each plan_de_trabajo.jefe == plan_de_trabajo-participantes.jefe 3. Seleccionar los proyectos donde hay al menos una tarea en la cual el jefe es el mismo investigador que es jefe del grupo de participantes en la tarea Select Proyecto Where exists plan_de_trabajo.jefe == plan_de_trabajo-participantes.jefe 4. Seleccionar todos los proyectos que inician entre «1/3/1999» y «1/4/2002» Select Proyecto Where plan_de_trabajo.fecha_comienzo is_subset {'1/3/1999','1/4/2002'}, ó Select Proyecto Where plan_de_trabajo.fecha_comienzo is_in {'1/3/1999','1/4/2002'} 5. Encontrar todos los documentos que tienen clasificación «C2»; adicionalmente exceptuar los informes técnicos y en otra consulta agrupar lo proyectos y documentos (tomando a Documento como raíz de la jerarquía de herencia): Select Documento* Where clasificacion = 'C2' Select Documento* difference Informe_Tecnico Where clasificacion = 'C2' Select Documento* union Proyecto Where clasificacion = 'C2' * Indica si la consulta tiene como alcance la jerarquía de herencia cuya raíz es la clase sobre la cual se formula la consulta 6. Seleccionar todos los proyectos que llevan dos meses de trabajo Select Proyecto Where Meses_Trabajados() == 2 Situación actual de los sistemas de BDOO Los lenguajes de programación orientados a objetos presentan ventajas con respecto a los lenguajes convencionales como el encapsulamiento, la herencia y la identidad de objetos, pero es importante notar que los lenguajes orientados a objetos no permiten almacenar los objetos de manera que no se pierdan al terminar la ejecución, sino que se mantengan hasta que una aplicación los destruya (objetos persistentes) por esto no son aptos para manejar grandes cantidades de información. Otras limitaciones que presentan estos lenguajes son la carencia de apoyo para la integridad de datos y de transacciones, la concurrencia, la recuperación de los datos y la seguridad. A raíz de esto se crearon las bases de datos orientadas a objetos, las cuales no presentan estas limitaciones de los lenguajes y además provee las características básicas de los objetos(encapsulamiento, herencia e identidad de objetos), además son basadas en procedimientos para manejo de relaciones y estructuras de clasificación de objetos. Estas bases de datos, no solo tienen todas estas capacidades sino que también posee la ventaja de las versiones, la que consiste en guardar la información en una versión temporal si se produce un punto muerto al momento de efectuar una transacción donde intervienen dos o más usuarios al mismo tiempo. Esta característica se dio ya que, las bases de datos orientadas a objetos se introdujeron recientemente y la tecnología que más se utilizaba era la de estaciones de trabajo, las cuales permiten el paso de transacciones largas, es decir, el almacenamiento y consulta de datos como documentos, imágenes y planos que son elementos que generarlos consume tiempo por lo que se hizo necesaria la seguridad de transacciones de los mismos. Tomemos como ejemplo los vagones de un tren: En el modelo relacional con el concepto IsA se definiría tres relaciones: Vagon (NºVagon, NºRuedas, Capacidad), VagonCarga (Id Vagon, Cubierta) y VagonPasajeros (Id Vagon, Clase); no utilizando el concepto de IsA sólo definimos dos relaciones VagonCarga y VagonPasajeros cada una con sus respectivos atributos. Para implementar la operación ProxReparacion() se deben programar tres tipos diferentes de interfaz y el código con la misma estructura pero referencias distintas. Utilizando el modelado de objetos se define una estructura de almacenamiento semejante al concepto de IsA pero con los objetos Vagon, VagonCarga y VagonPasajeros (donde los dos últimos heredan los atributos del primero) y solamente se define una operación (sea virtual o no, dependiendo del lenguaje soportado por la BDOO) para el objeto Vagon; como implicación se define menos código y una estructura que representa mejor los conceptos reales. Un aspecto de suma importancia dentro de los sistemas de BDOO es las condiciones para permitir persistencia de los objetos; es decir, la modalidad para insertar o eliminar los objetos de la base de datos. Existen dos enfoques: 1. La persistencia como característica implícita de cualquier instancia de una clase: cuando un objeto es creado utilizando la operación new automáticamente se efectúa su inserción dentro de la Base de Datos. "La creación del objeto automáticamente implica su persistencia" y utilizando funciones extencionales. Bertino, Elisa. 1995 2. La persistencia como una característica Ortogonal: la capacidad de un objeto para ser persistente depende del valor de un atributo (nombre externo), la invocación de un método o la inserción del objeto dentro de una colección de objetos persistentes; del mismo modo, la persistencia es una característica intrínseca de los atributos de un objeto persistente. La definición de persistencia también conlleva el borrado de los objetos almacenados dentro de la Base de Datos; esto conlleva a tener problemas de integridad con las referencias. Las referencias usualmente son controladas con un contador de referencias dentro del objeto (y sólo puede ser eliminado si el contador es cero), generando excepciones cuando existe una referencia no válida o cancelando el objeto persistente cuando no existen más referencias y el nombre externo es eliminado. Otra característica importante que presentan los Sistemas de BDOO es el concepto de versiones, que consiste en guardar la información en una versión temporal si se produce un punto muerto, al momento de efectuar una transacción donde intervienen dos o más usuarios, al mismo tiempo. Esto se debe a que, las bases de datos orientadas a objetos se introdujeron recientemente y la tecnología de más auge al momento de su desarrollo, era la de estaciones de trabajo, las cuales permiten el paso de transacciones largas, es decir, el almacenamiento y consulta de datos como documentos, imágenes y planos, estos son elementos cuya generación consume tiempo y esfuerzo, por esta razón se hizo necesaria la seguridad de transacciones de los mismos. Como consecuencia de esto, desde los primeros modelos hasta los actuales, los sistemas de BDOO tienen esta capacidad.
>
BDOO |