| Bases de Datos |
Entradas desde el 20/10/2003 :
Indice
Introducción
I.- Conceptos fundamentales
II.- Bases de datos orientadas a objetos (BDOO)
2.1 ¿Qué es O.O.?
2.2 ¿Por qué O.O.?
2.3 ¿Qué es una BDOO?
2.4 Un Modelo Conceptual Unificado
2.5 Arquitectura de Una BDOO
2.6 Desarrollo con Bases de Datos OO
2.7 Tres Enfoques de Construcción de Bases de Datos OO
2.8 Impacto de la Orientación a Objetos en la Ingeniería del Software
2.9 Ventajas en BDOOs
2.10 Posibles Desventajas
2.11 Rendimiento
2.12 Características mandatorias ó reglas de oro2.12.1 Manifiesto de sistema de gestión de BDOO
2.12.2 Características obligatorias
2.12.3 Características opcionales
2.12.4 Características abiertas
2.12.5 Características generales
2.12.6 Los sistemas de BDOO te proporciona el bloqueo
III.- Algunos ejemplos de la tecnología orientada a objetos
3.1 Características de los SGBDOO
3.2 Primer intento de Estandarización: ODMG-933.2.1 Lenguaje ODL
3.2.2 Lenguaje OML
3.2.3 Lenguaje OQL3.3.1 Palabras Clave
3.4 Programación Modular
3.5 Objetivos
3.6 Otros aspectos a destacar
3.7 Trabajos relacionados
3.8 Sistema de gestión de BD en OVIEDO33.8.1 El sistema operativo orientado a objetos
3.8.2 Modelo de objetos de S043.9 BDOviedo3 aplica el estándar
3.10 Situación del SGBDOO en OVIEDO3
3.11 Prototipo I
3.12 Prototipo II
3.13 Prototipo III
3.14 Qué viene después de OO
Conclusiones
Glosario
Bibliografía
Introducción
En esté tema hablaremos de la evolución de los diferentes tipos de Bases de Datos y por consiguiente
del surgimiento de las Bases de Datos Orientadas a Objetos(BDOO).Las BDOO almacenan y manipulan información
que puede ser digitalizada (representada) por objetos, proporcionan una estructura flexible con acceso ágil,
rápido, con gran capacidad de modificación.
Además combina las mejores cualidades de los archivos planos, las bases jerárquicas y relacionales.
Como veremos a continuación las BDOO representan el siguiente paso en la evolución de las Bases de
Datos para soportar el análisis, diseño y programación Orientada a Objetos.
Estás permiten el desarrollo y mantenimiento de aplicaciones complejas ya que se puede utilizar un mismo
modelo conceptual y así aplicarlo al análisis, diseño y programación, esto reduce el
problema entre los diferentes modelos atrávez de todo el ciclo de vida, con un costo significativamente
menor.
Como cualquier base de datos programable, una base de datos orientada a objetos (BDOO) da un ambiente para el desarrollo
de aplicaciones con un depósito persistente listo para su explotación.
Permiten que el mismo modelo conceptual se aplique al análisis, diseño, programación, definición
y acceso a la base de datos. Esto reduce el problema del operador de traducción entre los diferentes modelos
a través de todo el ciclo de vida. El modelo conceptual debe ser la base de las herramientas CASE OO totalmente
integradas, las cuales ayudan a generar la estructura de datos y los métodos.
Además las BDOO ofrecen un mejor rendimiento de la máquina que las bases de datos por relación,
para aplicaciones ó clases con estructuras complejas de datos. Sin embargo, las BDOO coexistirán
con las bases de datos por relación como una forma de estructura de datos dentro de una BDOO.

(Figura No.1)
Breve Historia del Desarrollo de las Bases de Datos
Sistemas de administración OO de bases de datos (por Ejemplo, Versant, Objectivity)
Como se muestra en la (Figura No.1), cuatro generaciones de sistemas han manejado datos de computación.
Al principio, los lenguajes y las instrucciones de máquina eran muy similares, lo que producía un
modelo de programación orientado por procesos. Por ejemplo, los programas para la suma se organizaban en
torno al proceso de suma de la máquina: los números se cargaban en registros, se ejecutaba la instrucción
de suma y se trabajaban los posibles errores de desbordamiento superior ó inferior. Algunos resultados se
almacenaban para su uso posterior. En principio los programas ejecutaban las tareas y nunca las escribían
en un dispositivo de almacenamiento. En está etapa, uno de los pocos elementos que se almacenaban era el
propio programa. Sin embargo, los programadores pronto se dieron cuenta del valor de registrar los resultados.
La grabación de los resultados del programa aumentó con el advenimiento del almacenamiento en discos
magnéticos rotatorios, lo que ofreció la posibilidad del acceso aleatorio a grandes cantidades de
datos almacenados.
I.- Conceptos fundamentales
Objeto: es cualquier cosa real ó abstracta acerca de la cual almacenamos datos y los métodos que
controlan dichos datos. Por ejem. En una empresa EMPLEADO se aplica a los objetos que son personas empleadas por
alguna organización alguna INSTANCIA podría ser Juan Pérez, María Sánchez etc.
Tipo de Objeto: es una categoría de objeto. Ejem: EMPLEADO.
Un objeto es una Instancia de un tipo de objeto. PERSONA (Juan Pérez)
Encapsulado: es el resultado ( o acto) de ocultar los detalles de implantación de un objeto respecto de
su usuario.
Una Solicitud: invoca una operación específica, con uno ó más objetos como parámetros.
Es decir, es para que se lleve acabo la operación indicada y que se produzca el resultado. En consecuencia
las implantaciones se refieren a los objetos como solicitudes.
Clase: es una implantación de un tipo de objetos. Especifica una estructura de datos y los métodos
operativos permisibles que se aplican a cada uno de sus objetos.
Herencia: 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.
En las BDOO los datos están encapsulados y se dice que estos son activos más que pasivos; debido
a que por ejemplo: La clase mayor detecta si tiene un hijo (objeto) más o uno menos, es por esto que se
dice que están activos ya que cuentan los hijos u objetos que tiene.
En el modelo de objetos existen cuatro características fundamentales:
Abstracción: denota las características esenciales de un objeto que lo distinguen de todos los demás
tipos objeto, y proporciona así fronteras conceptuales nítidamente definidas respecto a la perspectiva
del observador". Una abstracción se centra en la visión externa de un objeto, y, por tanto sirve
para separar el comportamiento esencial de un objeto de su implantación.
Modularidad: Se basa en el concepto de fragmentación de los programas en componentes individuales para reducir
su complejidad en algún grado, y para crear además una serie de fronteras bien definidas y documentadas
dentro del programa, dónde estas fronteras o interfaces tienen un incalculable valor cara a la comprensión
del programa.
Jerarquía: una clasificación u ordenación 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 genéricas para otras clases.
Objetos Complejos: Están construidos mediante algunos más simples ó mediante la aplicación
de constructores a ellos. Los Objetos más simples son objetos como: Integer, Carácter, String de
Bytes de cualquier longitud, booleanos ó punto flotante y algunos pueden ser de tipo atómico.
Hay varios constructores de objetos complejos como son:
Listas y arreglos.
Por ejemplo: El juego mínimo de constructores que el sistema debe tener son una lista y un Arreglo.
Las listas y arreglos son importantes porque, pueden capturar ordenes las cuales ocurren en el mundo real y también
se pueden levantar en muchas especificaciones científicas donde las necesidades de la gente son matrices,
series de tiempo de información ó datos. El objeto de constructores debe ser ortogonal cualquier
constructor debe ser aplicado a cualquier objeto.
Identidad de Objetos: Un modelo significa en un modelo una identidad de objeto. El objeto tiene una existencia
la cual es independiente de su valor, esto es dos nociones de equivalencia del objeto. Dos objetos pueden ser idénticos,
que tengan el mismo objeto ó pueden ser iguales, que tengan el mismo valor; este tiene dos implicaciones
una es la compartición del objeto y la otra es la actualización del objeto.
Compartición de Objetos: Es un modelo basado en la identidad de dos objetos contener ó compartir
un componente la representación pictórica de un objeto complejo es una gráfica mientras que
están limitadas en un árbol sin identidad de objeto.
Considere el siguiente ejemplo: Una persona tiene un nombre y una edad y un juego de niños. Asumiendo que
Pedro y Susana ambos tienen un niño de 15 años de edad llamado Juan en la vida real estas dos situaciones
pueden levantarse para presentarse como: Susana y Pedro son padres del mismo niño ó dos niños
están envueltos por:
(Pedro,40,{(Juan,15,{})})Y Susana es representada por:(Susana,41,{(Juan,15,{})})
Es decir, no hay forma de expresar que Pedro y Susana son padres del mismo niño en un modelo basado en la
identidad estas dos estructuras pueden compartir una parte común Juan 15 ó no. Esto es capturando
ambas situaciones.
Asumiendo que Pedro y Susana son obviamente padres de un niño llamado Juan en este caso todas las actualizaciones
al hijo de Juan van a ser aplicadas al objeto de Juan y consecuentemente también aplicadas al hijo de Pedro.
II.- Bases de datos orientadas a objetos (BDOO)
2.1 ¿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 cómo 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 orientación a objetos proporciona una solución que conduce a un Universo de Objetos 'bien
educados' que se piden de manera cortés, concederse mutuamente sus deseos".
2.2 ¿Por qué O.O.?
La meta es dejar la etapa en la que la construcción del software es una labor de artesanos, y pasar
a la etapa en la que se pueda tener fábricas de software, con gran capacidad de reutilización de
código y con metodología eficientes y efectivas que se apliquen al proceso de producción.
2.3 ¿Qué es una BDOO?
A finales de los 80's aparecieron las primeras BDOO, es una base de datos inteligente. Soporta el paradigma
orientado a objetos almacenando datos y métodos, y no sólo datos. Está diseñada para
ser eficaz, desde el punto de vista físico, para almacenar objetos complejos. Evita el acceso a los datos;
esto es mediante los métodos almacenados en ella. Es más segura ya que no permite tener acceso a
los datos (objetos); esto debido a que para poder entrar se tiene que hacer por los métodos que haya utilizado
el programador.
2.4 Un Modelo Conceptual Unificado
Las técnicas OO utilizan los mismos modelos conceptuales para el análisis, diseño y construcción.
La tecnología de las BDOO da un paso más hacia la unificación, el modelo conceptual de la
base de datos OO es igual al del resto del mundo OO, en lugar de utilizar tablas por relación independientes
como SQL.
El uso del mismo modelo conceptual para todos los aspectos del desarrollo simplifica éste, particularmente
con las herramientas CASE OO; mejora la comunicación entre usuarios, analistas y programadores, además
de que reduce las posibilidades de error.
2.5 Arquitectura de Una BDOO
En la siguiente (TablaNo1) se muestran algunos de los principales productos de BDOO y sus vendedores.
Los primeros se diseñaron como una extensión de los lenguajes de programación como Smalltalk
ó C++. El LMD ( lenguaje para el manipulación de datos; también conocido como DML) y el LDD
(lenguaje para la definición de los datos; también conocido como DDL) construían un lenguaje
OO común.
El diseño de las BDOO actuales debe aprovechar al máximo él CASE e incorporar métodos
creados con cualquier técnica poderosa, incluyendo enunciados declarativos, generadores de códigos
e inferencias con base en reglas.
|
Producto |
Proveedor |
|
Gemstone |
Servio Corporation, Alameda,CA |
|
Itasca |
Itasca Systems,Inc.,Minneapolis,MN |
|
Objectivity |
Objectivity,Menlo Park,Ca |
|
Object Store |
Object Design,Inc.,Burlington,MA |
|
Ontos |
Ontos Inc.,Bellerica,MA |
|
Versant |
Versant Object Technology,Menlo Park,CA |



(Fig.No.7).Representación gráfica de un esquema de una base de datos.
El ODL intenta definir tipos que puedan implementarse en diversos lenguajes de programación; no está
por tanto ligado a la sintaxis concreta de un lenguaje de programación particular. De esta forma un esquema
especificado en ODL puede ser soportado por cualquier SGBDOO que sea compatible con ODMG-93.
La sintaxis de ODL es una extensión de la del IDL (Interface Definition Language) desarrollado por OMG como
parte de CORBA (Common Object Request Broker Architecture).
A continuación se va a exponer un breve ejemplo [CAT94] de definición de un interfaz mediante el
lenguaje de definición (ODL). El interfaz representado corresponde al tipo Sección de la Fig.No.7.
Sección de interface( secciones de lave extensas (es_seccion_de, numero){attribute String numero; relationship
Profesor Es asesorada por inverse Profesor:: Enseña;
relationship PA Tiene PA inverse PA::Asiste;relationship Curso Es sección de inverse Curso::Tiene_secciones;};
La traducción ODL-C++, por ejemplo, se expresará como una librería de clases y una extensión
a la gramática estándar de C++. La librería de clases proporcionará clases y funciones
para implementar los conceptos definidos en el modelo de objetos, y la extensión consistirá en un
conjunto de palabras reservadas y su sintaxis asociada, que se añadirán a la declaración de
clases de C++ para proporcionar un soporte declarativo para las interrelaciones.
3.2.2 Lenguaje OML
El lenguaje de manipulación es empleado para la elaboración de programas que permitan
crear, modificar y borrar datos que constituyen la base de datos.
ODMG-93 sugiere que este lenguaje sea la extensión de un lenguaje de programación, de forma que se
pueden realizar entre otras las siguientes operaciones sobre la base de datos: Creación, Borrado, Modificación
e Identificación de un objeto
3.2.3 Lenguaje OQL
El lenguaje de consulta propuesto por ODMG-93, presenta las siguientes características
¨ No es computacionalmente completo. Sin embargo, las consultas pueden invocar métodos, e inversamente
los métodos escritos en cualquier lenguaje de programación pueden incluir consultas.
¨ Tiene una sintaxis abstracta.
¨ Su semántica formal puede definirse fácilmente.
¨ 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 fácilmente.
¨ No proporciona operadores explícitos para la modificación, 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 utilización
con otros constructores de colecciones.
Existen dos posibilidades para asociar un sublenguaje de consulta a un lenguaje de programación: fuerte
y débilmente.
- El primer caso consiste en una extensión de la gramática del lenguaje asociado.
- En el segundo caso, las funciones query tienen unos argumentos String que contienen las preguntas.
3.3 ¿Qué es BDOviedo3?
BDOviedo3 es el Sistema de Gestión de Bases de Datos Orientadas a Objetos para Oviedo3.
El objetivo final es la construcción de un sistema de gestión de bases de datos orientadas a objetos
que estará integrado con una máquina abstracta persistente y un sistema operativo, ambos totalmente
orientados a objetos. Se describen en este artículo las hipótesis de trabajo así como los
módulos principales en los que se ha estructurado este sistema de gestión de bases de datos, llamado
BDOviedo3, para su desarrollo, tratando más detalladamente aquellos en los que se está trabajando
actualmente.
3.3.1 Palabras Clave
Orientación a objetos, máquina abstracta, SGBDOO, persistencia, consulta, transacción,
índice.
Los sistemas de gestión de bases de datos orientadas a objetos (SGBDOO) deben su aparición principalmente
al surgimiento de nuevos tipos de aplicaciones para las que la representación tabular del modelo relacional
se hacía insuficiente. El modelo de objetos representa mejor la semántica y el contenido de la nueva
información a almacenar.
3.4 Programación Modular
En la programación modular, los procedimientos con una funcionalidad común son agrupados
en módulos separados. Un programa por consiguiente, ya no consiste solamente de una sección. Ahora
está dividido en varias secciones más pequeñas que interactúan a través de llamadas
a procedimientos y que integran el programa en su totalidad. (Fig. No.8).

(Figura No.8): Programación Modular.
El programa principal coordina las llamadas a procedimientos en módulos separados y pasa los datos apropiados
en forma de parámetros.
Cada módulo puede contener sus propios datos. Esto permite que cada módulo maneje un estado interno
que es modificado por las llamadas a procedimientos de ese módulo. Sin embargo, solamente hay un estado
por módulo y cada módulo existe cuando más una vez en todo el programa.
3.5 Objetivos
El desarrollo del SGBDOO BDOviedo3 tiene como finalidad principal la verificación de las hipótesis
que se plantean a continuación:
Ø Desarrollo más sencillo del propio SGBDOO. Esto parece lógico ya que algunas de las funciones
que debería implementar el SGBD (ej. Persistencia) ya están disponibles dentro del propio sistema
operativo. Al tratarse de un sistema integral orientado a objetos, se obtienen las ventajas de la orientación
a objetos: así por ejemplo, es posible reutilizar el código de persistencia ya existente, o extenderlo
añadiendo únicamente la funcionalidad adicional necesaria para el SGBDOO. Esta funcionalidad puede
proporcionarse mediante un motor de base de datos adecuado que complemente las características proporcionadas
por el sistema operativo.
Ø Mayor integración en el sistema. Es decir, los objetos de la base de datos son simplemente unos
objetos más dentro de los objetos del sistema operativo que proporcionan servicios. Es más, puede
pensarse en el SGBDOO como el elemento que cumpla el papel de los sistemas de ficheros en los sistemas operativos
tradicionales. El SGBDOO no sería utilizado como un sistema independiente del sistema operativo, si no que
el usuario podría utilizarlo como sistema de gestión de los objetos del sistema operativo, haciendo
consulta sobre los mismos.
Ø Mayor rendimiento. Dado que el propio sistema integral ya es orientado a objetos, no existe la necesidad
de desarrollar capas superpuestas a un sistema operativo tradicional para salvar el espacio existente entre el
paradigma del sistema operativo y el de la base de datos.
Ø Mayor productividad. La programación de aplicaciones de bases de datos es más productiva
ya que no es necesario que el programador cambie constantemente de filosofías: una para trabajar con la
base de datos y otra para manejar el sistema operativo. Ambos elementos utilizan ahora el mismo paradigma de orientación
a objetos.
3.6 Otros aspectos a destacar
Es un SGBDOO que se construye sobre una máquina abstracta persistente totalmente orientada a
objetos. El hecho de basarse en una máquina abstracta permite que cualquier aplicación sobre este
SGBDOO sea portable a cualquier plataforma, sin necesidad obviamente de sibreescribir el código.
El SGBDOO ha de ser configurable y modular, de forma que permita la elección del mecanismo de indexación,
de la estrategia de estimación de costos, etc. Aunque inicialmente el primer prototipo se implemente con
una técnica de indexación o con una estrategia de estimación de costos concreta, eso no impide
que se puedan ir incorporando a dicho sistema nuevas técnicas ya existentes o algunas innovadoras, de forma
que se puedan realizar comparativas para ver cual de ellas se comporta mejor y en que situaciones.
3.7 Trabajos relacionados
En la actualidad existen sistemas de gestión de bases de datos orientadas a objetos así
como simples gestores de almacenamiento persistente, tanto a nivel comercial como a nivel de investigación
en proyectos realizados por diferentes universidades. Lo que no se han encontrado son SGBDOO integrados con máquinas
abstractas persistentes y sistemas operativos orientados a objetos. A continuación se exponen brevemente
las características de algunos de los sistemas encontrados.
Shore [Shore 97] es un sistema persistente de objetos, sucesor de Exodus, que está siendo desarrollado en
la Universidad de Wisconsin en USA. Representa una mezcla entre las tecnologías de bases de datos orientadas
a objetos y los sistemas de ficheros En Shore todo dato persistente es un objeto, y todo objeto tiene una identidad
especificada por un identificador de objeto único. Todos los datos persistentes son descritos mediante el
lenguaje SDL (Shore Data Language) parecido al ODL propuesto por ODMG. Shore permite el control de la concurrencia,
la recuperación de caídas, el manejo de transacciones y las consultas optimizadas sobre ciertos tipos.
Además, implementa un espacio de nombres, un modelo de control de acceso similar a los de Unix, y los servicios
tradicionales de toda base de datos como el acceso asociativo a los datos, la indexación y el agrupamiento.
Texas [Singhal 92] es un sistema de almacenamiento persistente orientado a objetos desarrollado en la Universidad
de Texas en Austin. Ha sido implementado como una librería de C++, de tal manera que cualquier aplicación
enlazada con dicha librería podrá crear y manipular tanto objetos persistentes como transitorios.
Al igual que la base de datos orientada a objetos comercial ObjectStore emplea un mecanismo de traducción
de punteros (pointer swizzling) cuando se produce el fallo de página. Los objetos almacenan las referencias
a otros objetos como identificadores de objetos persistentes sobre disco, pero cuando se trae una página
a memoria todas las referencias sobre esa página son traducidas a punteros en memoria virtual. Todo esto
es realizado de una forma transparente al programa cliente, y una vez que las referencias a los objetos han sido
traducidas, los programas clientes pueden acceder rápidamente a los objetos en memoria.
Thor [Thor 97] es un sistema de base de datos distribuido orientado a objetos desarrollado en el Instituto Tecnológico
de Massachusetts. Proporciona un sistema de almacenamiento persistente de objetos, permitiendo el acceso a los
mismos mediante transacciones. En Thor un objeto se convierte en persistente cuando es alcanzado por el objeto
raíz. La arquitectura de Thor se organiza en torno a un repositorio de objetos residente en el servidor
y a unos pares front-end/cliente almacenados en los clientes. Los procesos front-end son los que hacen las veces
de intermediarios entre el programa cliente y el repositorio de objetos. Además, en el cliente para cada
lenguaje soportado se proporciona una librería de código que implementa la interfaz entre el cliente
y el front-end. Los objetos dentro de Thor se especifican e implementan usando un nuevo lenguaje procedural de
programación llamado Theta. Este lenguaje es orientado a objetos, extensible y fuertemente tipado, permitiendo
tanto la especificación de la interfaz de un tipo como la implementación del mismo
3.8 Sistema de gestión de BD en OVIEDO3
Oviedo3 es un Sistema Orientado a Objetos Integral que incluye máquina abstracta, sistema
operativo, compiladores, bases de datos, interfaces de usuario, subsistema gráfico, subsistema multimedia,
subsistema de comunicaciones, herramientas de análisis, diseño y desarrollo visual.
Las características fundamentales en las que se basa el modelo de objetos que impregna a Oviedo3 son las
siguientes: Abstracción e Identidad de los objetos, Encapsulación, Herencia, Polimorfismo, Concurrencia
y Persistencia. Este modelo de objetos está soportado por la máquina abstracta CARBAYONIA que es
nuestro "microprocesador" y su lenguaje máquina se denomina CARBAYÓN. La característica
principal de esta máquina es que tan sólo tiene objetos y todas las operaciones son sobre objetos.
El sistema Oviedo3 tiene su propio sistema operativo orientado a objetos que realiza toda la gestión del
sistema y da soporte al resto de las aplicaciones.
3.8.1 El sistema operativo orientado a objetos
¿Qué es S04?
S04 es la denominación dada al sistema operativo que sirve de base al sistema Oviedo3, y por tanto, que
se ejecuta sobre la máquina abstracta Carbayonia. Sus siglas son Sistema Operativo para Oviedo3 (Oviedo
Orientado a Objetos).
La característica fundamental que se busca en este sistema operativo es que ofrezca al exterior un entorno
formado única y exclusivamente por objetos situados en un espacio de objetos potencialmente infinito en
el que sólo existe un concepto, el concepto de objeto que existe indefinidamente y que sirve operaciones
cuando otros se lo pidan utilizando los mensajes como medio de comunicación.
Desaparecen por completo en este sistema operativo conceptos como el de espacio de direcciones y el de proceso.
En cuanto al primero, dado que el único concepto soportado es el de objeto, podría decirse que éstos
integran el espacio de direcciones necesario para almacenar su información. En cuanto al segundo, desaparece
como tal porque el flujo de ejecución va asociado a cada objeto. En este" sentido se consideran los
objetos "activos", cuando se invoca un método de un objeto es éste el que se activa y se
procede a ejecutar la parte del código correspondiente, teniendo en cuenta que esta ejecución depende
exclusivamente del propio objeto.
El sistema operativo trabaja a nivel de objetos y realiza funciones en base a este concepto. Por esta razón,
las tareas que realiza son claramente diferentes a las efectuadas por un sistema operativo clásico (gestión
de procesos, memoria, e/s, ficheros, etc.). Por otra parte, hay que tener en cuenta que éste se ejecuta
sobre la máquina abstracta orientada a objetos. Las tareas que tiene asignadas S04 son básicamente,
la gestión de la seguridad, la persistencia, la concurrencia y la distribución, que se verán
posteriormente con algo más de detalle.
3.8.2 Modelo de objetos de S04
Las líneas maestras que guían el diseño del sistema operativo son:
ü Modelo de objetos intencionadamente estándar, con las características más comunes de
los lenguajes de programación más extendidos: encapsulación, herencia y polimorfismo.
- Modo de trabajo exclusivamente 00: la única entidad que se soporta es el objeto, que puede crear clases
que hereden de otras, crear objetos de una clase y enviar mensajes a otros objetos.
- Simplicidad: Mantenerse lo más fieles posible a las líneas anteriores, buscando la máxima
sencillez. Algunas características importantes que se desean los objetos en consonancia con las líneas
anteriores son:
- Abstracción única. La única entidad existente en el sistema es el objeto, sea cual sea su
granularidad.
- Objetos homogéneos. Todos los objetos tienen la misma consideración, no hay objetos especiales
que reciban un trato distinto. Los objetos propios del SO no son diferentes del resto de objetos de usuario.
- Transparencia. Los objetos deben ser ajenos a la existencia de mecanismos del SO que permiten conseguir características
como persistencia, envío de mensajes, distribución, etc.
- Objetos autocontenidos. Los objetos deben tener un alto grado de autonomía, y su comportamiento no debe
depender de otros objetos. Toda la información acerca del objeto está encapsulada en el mismo. Esto
facilita la consecución con transparencia de objetivos como la persistencia, la distribución, etc.
Esto decanta el modelo de objetos a un modelo de objetos activo, en el que el objeto encapsula su computación.
- La información acerca del objeto está encapsulada en el mismo. Esto facilita la consecución
con transparencia de objetivos como la persistencia, la distribución, etc. Esto decanta el modelo de objetos
a un modelo de objetos activo, en el que el objeto encapsula su computación
- Finalidad ha de soportar y facilitar la definición de operadores de comparación definidos por el
usuario
- El sistema ha de permitir la selección del esquema en función del tipo de dato cuyo acceso pretende
acelerarse.
3.9 BDOviedo3 aplica el estándar
El SGBDOO BDOviedo3 evidentemente necesitará lenguajes de bases de datos. Inicialmente los lenguajes
adoptados para el sistema seguirán, al menos en lo posible, el estándar propuesto por ODMG 2.0. Una
vez fijado el estándar a seguir hay que tener en cuenta las siguientes consideraciones:
Ø Es necesario seleccionar el lenguaje de programación (orientado a objetos) que se tomará
como base para los lenguajes de bases de datos (ODL, OML y OQL) anteriormente mencionados. Este lenguaje puede
ser C++, Java, etc., pero también puede aprovecharse un lenguaje (C++ Oviedo3) que ya ha sido diseñado
dentro de Oviedo3 y cuyo código objeto una vez compilado es el lenguaje de la máquina abstracta (Carbayón).
Ø El lenguaje de manipulación para BDOviedo3 se conseguirá ampliando el lenguaje C++ Oviedo3
para que proporcione las funcionalidades para la definición de transacciones, consultas, etc. Cualquier
programa de manipulación implementado con este lenguaje debe generar al ser compilado como código
objeto Carbayón.
Ø Será necesario traducir las especificaciones realizadas en ODL y OQL, bien al lenguaje intermedio
C++ de Oviedo3 (que después se compilará y generará Carbayón), o bien directamente
al lenguaje de la máquina abstracta. En el primer prototipo que se está construyendo se genera directamente
Carbayón.
Ø El código objeto será enlazado con el motor de base de datos de Oviedo3 para obtener todas
las funcionalidades del SGBD.
Ø Cuando se analiza el esquema propuesto por ODMG se observa que mientras que ODL y OQL parece que pueden
ser fácilmente comprendidos y/o empleados por cualquier programador de la base de datos no ocurre lo mismo
con el lenguaje de manipulación. Aunque se parte del hecho de que el
programador del SGBD tiene que conocer el lenguaje de programación seleccionado como base, se considera
que el nivel de conocimiento exigido puede resultar excesivo. Es por eso que aunque en principio en BDOviedo3 se
parte de los lenguajes propuestos por ODMG en una fase más avanzada se puede considerar el diseño
de un nuevo lenguaje que integre las capacidades de los lenguajes de programación con los de bases de datos,
estableciendo entre ambos una conexión natural, de forma que el manejo de la base de datos no suponga un
esfuerzo excesivamente grande para el usuario.
En resumen, el sistema BDOviedo3 es un SGBDOO que se enmarca dentro del sistema integral orientado a objetos Oviedo3.
Su construcción se ha modularizado en prototipos. El primer prototipo, sobre el que se está trabajando
actualmente, incluye un motor de base de datos, organizado a modo de jerarquía de clases que permite la
manipulación de la base de datos y el procesamiento de las consultas ayudándose para ello de un mecanismo
de indexación configurable. Dicho prototipo permitirá la gestión de un repositorio de objetos,
así como de un catálogo dónde se registren todas las clases definidas en el esquema. Los lenguajes
de base de datos seguirán básicamente el estándar ODMG 2.0.
El campo para futuras líneas de investigación (nuevos prototipos) es muy variado: transacciones,
versionado, evolución de esquemas, mejoras en la gestión del almacenamiento mediante técnicas
de agrupamiento de datos, etc.
3.10 Situación del SGBDOO en OVIEDO3
La ideal inicial de este subproyecto dentro del Proyecto Oviedo3 es la construcción de un SGBDOO
(Fig.No.9) que esté totalmente integrado con las características de la máquina abstracta y
del sistema operativo de la misma, aprovechando al máximo las posibilidades que ofrecen.

(Fig.No.9)
Idea Inicial del Proyecto Oviedoo3
3.11 Prototipo I
El primer paso en el desarrollo de este prototipo (FigNo.10), y del sistema en general, consistirá
en el diseño del lenguaje de definición de datos (ODL), el lenguaje de manipulación de datos
(OML) y el lenguaje de consulta (OQL). Este diseño intentará seguir, en la medida de lo posible,
las pautas impuestas por el estándar ODMG-93.
El paso siguiente se basa en conocer el lenguaje de programación que se va a emplear como base para los
lenguajes de bases de datos anteriormente mencionados. Se intentará que estos lenguajes sean lo menos dependientes
posible del lenguaje de programación. En este primer prototipo (FigNo.10) el lenguaje de programación
seleccionado será un C++ comercial.
A continuación, el siguiente módulo consistirá en la traducción de estos lenguajes
de bases de datos (ODL y OML), al lenguaje de programación seleccionado, en este caso C++, de manera que
el programa objeto así obtenido se pueda compilar con un compilador comercial, para posteriormente disponer
de todas las capacidades de los sistemas de gestión de bases de datos mediante el "linkado" (enlazado)
con un motor de base de datos. En este caso, el motor de base de datos empleado es el de Borland (BDE). En el caso
del lenguaje de consulta (OQL), en vez de un traductor se puede emplear un intérprete avanzado de OQL (Fig.No.10)
que permita obtener las respuestas a las consultas de forma interactiva. El "linkado"(enlazado) con el
motor de base de datos se realizaría durante la construcción del intérprete.
Prototipo I

(Fig.No.10) Prototipo I del SGBDOO de Oviedo3
En esta primera fase se realiza una traducción de los objetos a tablas, ya que el motor de base de datos
sigue trabajando sobre un sistema operativo tradicional orientado a ficheros. Es decir, los datos al final estarán
almacenados en tablas del estilo Dbase, Paradox, Quattro Pro, etc. Como se puede apreciar, en esta fase se emplearán
una serie de herramientas comerciales (compilador de C++, BDE,.. ) que serán sustituidas en etapas posteriores
por herramientas que tendrá el propio sistema Oviedo3, pero que todavía no están implementadas.
Se acude a estas herramientas comerciales en este prototipo, porque el objetivo del mismo es avanzar en el diseño
y prueba de los lenguajes de bases de datos mientras se construyen el sistema operativo y la máquina abstracta
de Oviedo3.
3.12 Prototipo II
Los contenidos de este prototipo (FigNo.11) son mucho más ambiciosos, ya que aprovecharán
plenamente las características ofrecidas por la máquina abstracta y por el sistema operativo de Oviedo3.
A pesar de esto, los módulos a desarrollar seguirán siendo los mismos, pero con algunas notables
diferencias:
Ø En vez de utilizar como lenguaje de programación C++, se empleará otro lenguaje muy similar,
pero dónde el código objeto que se genera al compilar un programa con este lenguaje, es el lenguaje
(CARBAYON) de la máquina abstracta.
Ø Los traductores y el intérprete para los lenguajes de definición, de manipulación
y de consulta, tendrán que generar un código objeto en este nuevo lenguaje, en vez de en el C++ comercial
empleado en el prototipo anterior.
Ø El motor de base de datos, ya no será el BDE si no que será propio y desarrollado en función
de las características que nos proporcione el sistema operativo. Aquí habrá que prestar especial
atención a temas como la persistencia, seguridad, distribución, concurrencia, generación y
mantenimiento de índices,…
Ø La información, es decir, los objetos se almacenarán ya como tales al proporcionar el sistema
operativo la persistencia de los mismos, a diferencia del prototipo anterior en el que se almacenaban en tablas.

Prototipo II
(Fig.No.11)
3.13 Prototipo III
Este prototipo (FigNo.12) constituye una ampliación del anterior, cara a facilitar al usuario
su trabajo con este sistema de gestión de bases de datos. Con esta finalidad se ha incorporado un nuevo
componente (Herramientas Visuales) a los ya existentes en el prototipo anterior. Este nuevo elemento puede descomponerse
en dos módulos principales.
El primer módulo consiste en un conjunto de herramientas visuales para el desarrollo, que permitirán
tanto definir el esquema de la base de datos, como manipular o consultar los datos en ella almacenados de forma
totalmente visual. El objetivo de estas herramientas en este sistema es que la cantidad de código que tenga
que escribir el usuario sea la mínima posible.
El segundo módulo consiste en un conjunto de herramientas también visuales, que faciliten las tareas
de administración de la base de datos, del servidor y de los usuarios. Este módulo va a exigir la
existencia de un lenguaje de control que permita la protección de la base de datos, la restricción
de los accesos tanto a objetos como a métodos, etc.

Prototipo III
(Fig. No. 12)
3.14 Qué viene después de OO
La orientación del objeto es uno de los queridos de la tecnología hoy. La IBM está
integrando agresivamente tecnología de OO en cada aspecto de su estrategia. Un ejemplo de esto es iniciativa
de IBM's San Francisco. Como sabemos, tecnologías du jour es los fenómenos efímeros. Tan qué
viene después de OO. Esta sesión presentará la vista de la tecnología futura de un
departamento principal del R&D de las herramientas de desarrollo de la aplicación de OO. Discute el
potencial y las limitaciones prácticos de la tecnología actual de OO. Presenta una vista del potencial
futuro de OO y de las tecnologías posibles que crezcan fuera de OO de hoy.
Conclusiones
En Conclusión sabemos que las BDOO representan el siguiente paso en la evolución de las
bases de datos, para soportar el Análisis, Diseño y Programación OO. Las BDOO permiten el
desarrollo y mantenimiento de aplicaciones complejas con un costo Significativamente menor. Permiten que el mismo
modelo conceptual se aplique al Análisis, diseño, programación, definición y acceso
a la base de datos. Esto reduce el problema del operador de traducción entre los diferentes modelos a través
de todo el ciclo de vida. El modelo conceptual debe ser la base de las herramientas CASE OO totalmente integradas,
las cuales ayudan a generar la estructura de datos y los métodos.
Las BDOO ofrecen un mucho mejor rendimiento de la máquina que las bases de datos por relación, para
aplicaciones o clases con estructuras complejas de datos. Sin embargo, Las BDOO coexistirán con las bases
de datos por relación durante los próximos años, puesto que a menudo se utilizará un
modelo por relación como una forma de estructura de datos dentro de una BDOO.
Podemos decir que en conclusión con el caso de Oracle ha aumentado la demanda de una representación
de objetos complejos en las actuales aplicaciones convencionales.
GLOSARIO
BDOO: Bases de Datos Orientadas a Objetos
BDR: Bases de Datos por Relación
BLOB: Objetos Binarios de Gran Tamaño
BDOO94: Bases de Datos orientados a Objetos 94
CAD: Diseño Asistido por Computadora
CAE: Ingeniería Apoyada por computadora
CORBA: (Common Object Request Broker Arquitecture)
EDT: Estación de Trabajo
A-TREE: Unico árbol para todas las clases de Jerarquía
H-TREE: Un árbol para cada clase en la Jerarquía
LDD ó DDL: Lenguaje de definición de Datos
LMD ó DML: Lenguaje de Manejo de Datos
LOB'S: Tales como Vídeo, Programas Ejecutables etc.
OO: Orientación a Objetos
ODL: Estándar de Definición de Lenguaje de Datos
OMG: Grupo Manejador de Objetos
OML: Lenguaje de Manipulación de Datos
ODMG: Gestión Manejadora de datos Objeto
OQL: Equivalente al SQL(Lenguaje de Consulta)
SQL: Lenguaje de Consulta
SGBD: Sistema de Gestión de Bases de Datos
SGBDOO: Sistema de Gestión de Bases de Datos Orientada a Objeto
SO: Sistema Operativo
B I B L I O G R A F I A
Martín,James. Año. Análisis y Diseño Orientado a Objetos.2da.Edición
Prentice Hall Interamericana.México
Pags.51-59.
Consultas por Internet :
Universidad de Oviedo. Desarrollo de SGBDOO en Oviedo3
www.Uniovi.es/~oviedo3/belen/jindbd96.html.6/Nov/1999
Boletín Informático. Panorama de las DBOO
http://www.uaemex.mx/publica/informatia/boletin/panorama.html 3/Nov/99
Infoseek. "Trabajos relacionados"
http://www.infoseek.com 26/Dic/99
Manifesto de Atkinson . "Sistemas manejadores de bases de datos OO"
http://www.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/Manifesto.html10/Dic/99
· WWW.lifia.info.unlp.edu.ar/~luciod/obicour/3.htm
· WWW.uniovi.es/~oviedo3/pruebas/a-frames.htm
· WWW.uniovi.es/~oviedo3/belen/jingsoft96.html
· WWW.tienda.net/tech/visualfoxp.htm
· WWW.lml.ls.fi.upm.es/~jjamor/pfc/node22.html
· WWW.atenea.lasalle.edu.co/~crojasm/oot101.html
Martha Esthela Ruiz Tijerina
MRuiz@capufe.gob.mx