Sesión No. 8
Nombre: Bases de Datos Orientadas a Objetos
Objetivo:
Al término de la sesión, el alumno describirá las características de las bases de
datos orientadas a objetos.
Contextualización
Si bien es cierto que el término Bases de Datos es muy común y que
actualmente se utiliza indiscriminadamente para hacer referencia a un conjunto
de datos almacenados posiblemente una hoja de
Excel dentro de nuestra
computadora, sabemos que en la realidad ese archivo no es una base de datos.
Existen diversos tipos de bases de datos, el modelo más socorrido, eficiente y
utilizado, es el modelo relacional, pero existen otros tipos de modelos que han
ido surgiendo conforme las necesidades de almacenamiento y manipulación de
datos, además de los paradigmas de programación, han ido evolucionando
también.
En esta sesión nos enfocaremos al estudio del modelo de bases de datos
orientados a objetos, que se encuentra íntimamente ligado con el paradigma de
programación del mismo nombre: Paradigma Orientado a Objetos (POO).
Introducción al Tema
En años recientes la manipulación de los datos y el desarrollo de aplicaciones han ido evolucionando a la par que los paradigmas de programación, hacia modelos más complejos que el jerárquico, el de red o el relacional. Estos ambientes nuevos fueron atendidos a través de un sistema de administración de bases de datos específico (DMBS), como es el orientado a objetos, denominado OODBMS por sus siglas en inglés. Este es un sistema que conjunta las virtudes de un DBMS con las características propias de un paradigma de programación orientado a objetos.
Algunos elementos del modelo orientado a objetos
Es por eso que con la llegada de la tercera generación de los DBMS se fusionan las técnicas de programación y modelado, aunada a la capacidad de la manipulación de datos.
Bases de datos Orientadas a Objetos
Manipulación de datos Definición de datos Paradigma OODBMS
Características de orientación a objetos
Explicación
El paradigma orientado a objetos
El paradigma orientado a objetos enfocado a los sistemas de administración de bases de datos tiene diferentes definiciones, entre ellas, Kim (1991) considera algunos de sus elementos como:
Modelo de datos orientado a objetos: un modelo de datos (lógico) que captura la semántica de los objetos soportados en la programación orientada a objetos.
Base de datos orientada a objetos: una colección persistente y compatible de objetos definida por un modelo de datos orientados a objetos.
OODBMS: sistema que administra una base de datos orientada a objetos. Cabe mencionar que varios de los OODBMS con la finalidad de tener una ejecución exitosa, recurren al rescate de las fortalezas y combinación de características de orientación a objetos y de un DBMS convencional, es decir, se retoman aquellas fortalezas de los modelos ya existentes y del paradigma orientado a objetos.
En 1989, el Manifiesto de los sistemas de bases de datos orientados a objetos propuso trece características que debe cumplir cualquier OODBMS basándose en dos criterios:
1. Debía tratarse de un sistema orientado a objetos y 2. Debía ser un DBMS (Atkinson et al., 1989)
Las reglas son las siguientes:
1. Deben soportarse objetos complejos: debe haber la posibilidad de crear objetos complejos aplicando constructores a una serie de objetos básicos ya existentes. Ejemplos, conjuntos, listas y tuplas.
2. Deben soportarse mecanismos de identidad de los objetos: todos los objetos deben poseer una identidad unívoca que sea independiente de los valores de sus atributos.
3. Debe soportarse la encapsulación: los objetos tienen una interfaz pública, pero una ejecución privada de sus datos y métodos. La característica del encapsulado garantiza que se va a conocer sólo el aspecto público del objeto mientras que los detalles de su ejecución permanecen ocultos.
4. Deben soportar los tipos o clases: se requiere que se soporte uno sólo de estos dos conceptos. Los tipos se utilizan principalmente en tiempo de compilación. Las clases se usan para guardar y manipular objetos similares en tiempo de ejecución.
5. Los tipos o clases deben ser capaces de heredar de sus ancestros: un objeto debe heredar las propiedades de sus superclases en la jerarquía de clases. Esta propiedad garantiza la reutilización del código.
6. Debe soportar el enlace dinámico: los métodos deben poder aplicarse a objetos de diferentes tipos (sobrecarga). La implementación de un método dependerá del tipo del objeto al que se aplique (anulación). Para proporcionar esta funcionalidad, el sistema no puede enlazar los nombres del método hasta el momento de la ejecución (enlace dinámico).
7. El Lenguaje de manipulación de datos (DML) debe ser computacionalmente completo: El DML del OODBMS debe ser un lenguaje de programación de propósito general, con el lanzamiento de SLQ: 1999 el lenguaje se ha convertido computacionalmente completo.
8. El conjunto de todos los tipos de datos debe ser ampliable: el usuario debe ser capaz de construir nuevos tipos a partir del conjunto de tipos predefinidos por el sistema.
9. Debe proporcionarse persistencia a los datos: los datos deben permanecer (persistir) después de que termine la aplicación que los ha creado. El usuario no debe tener que mover o copiar explícitamente los datos para hacerlos persistentes.
10. El DBMS debe ser capaz de gestionar bases de datos de muy gran tamaño:
existen mecanismos para gestionar de manera eficiente el almacenamiento secundario, como índices y búferes. Un OODBMS debe tener mecanismos similares que sean invisibles al usuario y proporcionar así una clara independencia entre los niveles lógico y físico del sistema.
11. El DBMS de soportar a usuarios concurrentes: el OODBMS debe proporcionar mecanismos de control de concurrencia similares a los de los sistemas convencionales
12. El DBMS debe ser capaz de recuperarse de fallos de hardware y software:
un OODBMS debe proporcionar mecanismos de recuperación similares a los de los sistemas convencionales.
13. El DBMS debe proporcionar una forma simple de consultar los datos: el OODBMS debe proporcionar un mecanismo indicado que sea de alto nivel, eficiente e independiente de la aplicación.
Con base en lo anterior podemos decir que entre las ventajas de los OODBMS destaca el hecho de que cuentan con mejores capacidades de modelado así como soporte para las transacciones de larga duración, adecuación a las aplicaciones avanzadas y un mejor rendimiento.
Lenguajes para la definición de datos orientados
a objetos
El lenguaje de definición de objetos (ODL, Object Definition Languaje) es un lenguaje para definir todas las especificaciones de los diferentes tipos de objetos en los OODBMS es un lenguaje equivalente al lenguaje de definición de datos (DDL, Data Definition Language) de los DBMS tradicionales.
Al igual que en los DBMS, el ODL en los OODBMS tiene como finalidad facilitar la portabilidad de los esquemas entre sistemas compatibles al mismo tiempo que brinda la interoperabilidad entre distintos sistemas. Así mismo el ODL tiene como principal función el definir atributos y relaciones de los tipos.
Lenguajes para la consulta de datos orientados a objetos
El lenguaje de consulta de objetos (OQL, Object Query Language) proporciona un acceso a la base de datos de objetos haciendo uso de una sintaxis muy similar a la del SQL. Cabe mencionar que para las operaciones explícitas de actualización se realizan a través de las operaciones definidas sobre los tipos de objetos. De la misma manera en que en el SQL, en OQL puede utilizarse como un lenguaje autónomo. Los lenguajes
soportados para este tipo de consultas dentro de un OODBMS son Smalltalk, C++ y Java por lo que el OQL puede invocar operaciones programadas en estos lenguajes de programación, que cabe mencionar, son lenguajes ideales para la programación orientada a objetos.
Una consulta en OQL es una función que retorna un objeto que puede ser inferido del operador que contribuye a la expresión que define a la consulta.
Expresiones
Dentro de las diversas expresiones tenemos:
Expresiones
Consultas
Una consulta está compuesta de un conjunto (que puede ser vacío) de expresiones de definición de consultas, seguido de una expresión. El resultado de una consulta es un objeto con o sin identidad.
Expresiones de definición de una consulta elementales de construcción de tipo atómico de objetos de colecciones de conversión de colecciones indexadas de conjuntos binarios
Lenguajes para la manipulación de datos orientados a objetos
El lenguaje de manipulación de objetos (OML, Object Manipulation Language), se utiliza para realizar la especificación de cómo se extraen y manipulan los objetos de la base de datos dentro del programa de aplicación.A continuación se muestra la compilación y montaje de una aplicación en C++ con el uso de ODL/OML.