La tecnología de bases de datos vive un momento de lenta transición del modelo relacional a
otros modelos. Entre éstos se encuentra el multidimensional para sistemas OLAP, el
semiestructurado para bases de datos XML de intercambio electrónico de información, el modelo
dimensional para creación de Data Warehouse y el orientado a objetos. En una base de datos
orientada a objetos, los componentes se almacenan como objetos y no como datos, tal y como hace
una base relacional, cuya representación son las tablas.
Algo importante que debemos resaltar es que hoy en día, las empresas siguen utilizando los
manejadores de bases de datos relacionales y no se sabe aún si serán suplantadas por completo,
ni cuándo.
Pilares del modelo orientado a objetos
Los administradores de base de datos (DBMS por sus siglas en inglés) evolucionan con el
afán de satisfacer nuevos requerimientos tecnológicos y de información. Aunque los DBMS
relacionales (RDBMS) son actualmente líderes del mercado y brindan las soluciones
necesarias a las empresas comerciales, existen aplicaciones que necesitan funciones con
las que no cuentan. Las CAD/CAM, los sistemas multimedia, como los geográficos y de
medio ambiente, los de gestión de imágenes y documentos y los de apoyo a las decisiones
necesitan de modelos de datos complejos, difíciles de representar como tuplas de una
tabla.
En general, estas aplicaciones necesitan manipular objetos y los modelos de datos deben
permitirles expresar su comportamiento y las relaciones entre ellos.
Con miras a superar los retos antes mencionados, las bases de datos están tomando varias tendencias. En general, se están auxiliando de los lenguajes de programación orientados a objetos, los lenguajes lógicos y la inteligencia artificial. En este sentido, podemos determinar cuatro tendencias actuales:
Incluyen manejo de objetos y triggers.
Integran el paradigma de la orientación a objetos a la tecnología de bases de datos.
Unen las bases de datos con la programación lógica; cuentan con mecanismos de inferencia, basados en reglas, para generar información adicional a partir de los datos almacenados en la base.
Incorporan técnicas desarrolladas en el campo de la inteligencia artificial.
La orientación a objetos representa el mundo real y resuelve problemas a través de objetos, ya sean tangibles o digitales. Este paradigma tecnológico considera un sistema como una entidad dinámica formada de componentes. Un sistema sólo se define por sus componentes y la manera en que éstos interactúan.
Esquema con las principales características del modelo orientado a objetos
La persistencia es una característica necesaria de
los datos en un sistema de bases de datos.
Recordemos que consiste en la posibilidad de
recuperar datos en el futuro. Esto implica que los
datos se almacenan a pesar del término del programa
de aplicación. En resumen, todo administrador de
base de datos brinda persistencia a sus
datos.
En el caso de los sistemas de gestión de base de
datos orientada a objetos (OODBMS por sus siglas en
inglés), la persistencia implica almacenar los
valores de atributos de un objeto con la
transparencia necesaria para que el desarrollador de
aplicaciones no tenga que implementar ningún
mecanismo distinto al mismo lenguaje de programación
orientado a objetos.
Persistencia en una base de datos orientada a objetos
Actividad 1. Características del modelo orientado a objetos
Identificar las características de la orientación a objetos resulta útil al
momento de realizar tareas con un manejador de bases de datos orientado a
objetos.
Por ello, en la siguiente actividad, deberás completar las características
del modelo orientado a objetos con su función correspondiente.
Los sistemas de bases de datos orientados a objetos parecen ser la tecnología más prometedora para los próximos años, aunque carecen de un modelo de datos común y de fundamentos formales, además de que su comportamiento en seguridad y manejo de transacciones no están a la altura de los programas actuales de administradores de bases de datos.
Almacenamiento de datos en un OODBMS
Hay organismos en pro de la estandarización de este tipo de sistemas manejadores de bases de datos, como el OMG (Object Management Group), la CAD Framework Initiative y el grupo de trabajo de ANSI (American National Standards Institute).
Algo que apoya esta tendencia es que, a pesar de que la ingeniería de software orientada a objetos requiere mucho tiempo de análisis, la mayoría de los proyectos de desarrollo son más cortos y requieren menos personas, además de que la cantidad de código es menor. Veamos su concepto y características más importantes.
En la actualidad, hay mucha atención hacia los OODBMS, tanto en el terreno de desarrollo como en el teórico, no hay una definición estándar de lo que estos sistemas significan. Existen tres problemas principales que impiden una definición generalizada:
Los sistemas de bases de datos relacionales cuentan con especificaciones claras dadas por Codd, pero los orientados a objetos no tienen algo así. Se pueden encontrar muchos textos que describen diferentes modelos, pero no hay uno estándar.
El fundamento teórico de la programación orientada a objetos es escaso en comparación con otras áreas como la programación lógica. Además, se carece de definiciones de diversos conceptos.
Existe mucho trabajo experimental, la mayoría de los desarrollos son sistemas prototipo no comerciales, por eso, no hay trabajo de conceptualización y definición de estándares. El diseño de estos sistemas está orientado por las aplicaciones que los requieren y no por un modelo común.
El problema de estos sistemas es similar al de las bases de datos relacionales a mitad de los setenta. La gente se dedicaba a desarrollar implementaciones en lugar de definir las especificaciones para luego hacer la tecnología que permitiera implementarlas. Se espera que de los prototipos y desarrollos actuales de los OODBMS surja un modelo. Aunque también se corre el riesgo de que alguno de éstos se convierta en el estándar por su demanda en el mercado. A manera de definición podemos decir que un OODBMS debe satisfacer dos criterios:
Debe ser un DBMS |
El primer criterio incluye características de cualquier DBMS, como persistencia, administración de almacenamiento secundario, concurrencia, recuperación y facilidad de consultas personalizadas. |
Debe ser un sistema orientado a objetos, consistente con los lenguajes de programación orientada a objetos |
El segundo criterio corresponde a características que se comparten con la programación orientada a objetos: objetos complejos, identidad de objetos, encapsulación, herencia, sobreescritura y sobrecarga y completa capacidad computacional —computational completeness—. |
Criterios que debe cumplir un OODBMS
Objetos complejos
Los objetos complejos son creados a partir de objetos simples —tipos de datos—.
Éstos son:
• Enteros
• Caracteres
• Cadenas de bytes
• Expresiones del tipo booleano
• Números de punto flotante
Los objetos complejos pueden ser:
• Tuplas
• Conjuntos —sets—
• Listas
• Arreglos
Un OODBMS debe tener como mínimo conjuntos —set—, listas y tuplas.
Los conjuntos —sets— son la manera natural de representar colecciones del mundo real.
Las tuplas permiten representar, de manera natural, las propiedades de una entidad y son importantes por la aceptación ganada con el modelo relacional.
Finalmente, las listas o arreglos resultan importantes porque capturan orden, cosa que ocurre en el mundo real, además de que ayudan a representar matrices y series de datos en el tiempo.
Identidad de objetos
La identidad de objetos ha existido desde hace mucho tiempo en los lenguajes de programación, pero en las bases de datos es más reciente. El objetivo es contar con objetos que tengan una existencia independiente de sus valores. Así, dos objetos pueden ser idénticos si son el mismo objeto o pueden ser iguales si tienen los mismos valores. La identidad cobra relevancia cuando un objeto se comparte con otros y cuando se actualiza. En un modelo basado en identidad, dos objetos pueden compartir un objeto hijo.
Soportar identidad de objetos implica que el OODBMS ofrece:
• Operaciones como asignación de objetos
• Copiado de objetos
• Comprobación de la identidad o igualdad de objetos.
La principal manera de implementar la identidad de objetos es mediante un OID —objeto identificador— independiente de los valores de los atributos del objeto. Éstos son implementados por el sistema, lo que mejora el rendimiento.
Según Date (2001, p. 847), los OID son innecesarios e indeseables en el nivel del modelo. En comparación con las claves primarias, los OID están ocultos al usuario, mientras que aquéllas no. El uso de estos OID no elimina el uso de claves primarias, ya que son necesarias para unir al sistema con la realidad en la que se inserta; pensemos, por ejemplo, en los folios de facturación.
Ejemplo de una factura señalando su folio de facturación
Encapsulación
La idea de encapsulación es tomada de los lenguajes de programación en los que para todo objeto existe:
Partes del encapsulamiento
Traducido a bases de datos, un objeto encapsula programas y datos.
Herencia
La herencia tiene dos ventajas:
Para entender el manejo de la herencia en los sistemas de bases de datos orientados a objetos, asumamos que tenemos empleados y estudiantes.
Clase persona | |
Clase empleado | Clase estudiante |
Cada empleado tiene nombre, edad y salario,
además podemos aumentar su sueldo. Empleado hereda de persona |
Por su parte, cada estudiante tiene edad,
nombre y un conjunto de calificaciones con las cuales podemos
obtener su promedio. Estudiante hereda de persona |
Ejemplo de la herencia en un OODBMS
En un sistema relacional, el diseñador de bases de datos definiría una relación empleado y estudiante y también escribiría el código para la operación de aumentar sueldo. Para la relación estudiante, tendría que escribir el código para la operación de obtener promedio.
En un sistema orientado a objetos, usando adecuadamente la herencia, nos daríamos cuenta de que empleado y estudiante son personas y comparten los atributos nombre y edad. Entonces, declararíamos una clase empleado como un tipo especial de la clase persona, que incluiría una operación especial para aumentar Sueldo() y un atributo de salario. De forma similar, se declararía el estudiante como un tipo especial de la clase persona con el atributo adicional de conjunto de grados y la operación especial para obtener Promedio().
El modelo es más cercano a la realidad y nos permite ahorrar código de programación. Por esto, se dice que la herencia ayuda a reutilizar código, ya que cada programa está disponible para ser compartido.
Sobreescritura y sobrecarga
En la programación orientada a objetos, tenemos la ventaja de poder reescribir métodos con el mismo nombre. Esto significa contar con varios métodos que se llamen igual, pero que realicen distintas operaciones. Para poder programar estos métodos llamados sobrecargados, es necesario que cambie algo en sus parámetros, como el número, orden o tipo de dato. Esto mismo es posible en una base de datos orientada a objetos.
Ejemplo de métodos de sobreescritura y sobrecarga
Completa capacidad computacional —computational completeness—
Los administradores de bases de datos relacionales cuentan con un lenguaje para realizar procesos computacionales sobre los datos: el SQL. Además, adicionan un lenguaje procedimental que permite la definición de variables, manejo de excepciones, ciclos y estructuras condicionales. Algunos de estos lenguajes son:
pl/sql para Oracle |
pl/pgsql para PostgreSQL |
Transact-SQL para SQL Server de Microsoft |
Los administradores de bases de datos orientadas a objetos también deben contar con un lenguaje que puede realizar cualquier procesamiento. En este sentido, lo más común es que los OODBMS integren lenguajes computacionalmente completos dentro de la base de datos. Estos pueden ser los que ya existen en el mercado y que se usan como lenguajes aplicación general (Java, C++, etcétera).
Actividad 2. Características de los administradores de bases de datos orientados a objetos (OODBMS)
Los OODBMS poseen varias características, las cuales resultan indispensables para crear bases de datos con datos complejos. ¿Eres capaz de identificarlas? Te invitamos a averiguarlo; para ello, deberás seleccionar el nombre de cada una de dichas características, a fin de completar sus definiciones.
Autoevaluación. Sistema administrador de bases de datos orientado a objetos
Como revisaste en este tema, un sistema administrador de bases de datos orientado a objetos permite almacenar los datos como objetos, por lo tanto, identificar tanto la utilidad del modelo que lo sustenta como su concepto y características resulta importante, porque una vez que identifiques todo ello, podrás aplicarlo en sistemas informáticos.
Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, D. y Zdonik, S. (1992). The
Object-Oriented Database System Manifesto. En Proceedings of the First International
Conference on Deductive and Object-Oriented Databases (pp. 223-240). Kyoto: Morgan
Kaufmann.
Bertino, E. y Martino, L. (1995). Sistemas de bases de datos orientadas a objetos.
Conceptos y arquitectura. Wilmington, Delaware: Addison-Wesley/Díaz de
Santos.
Date, C. J. (2001). Introducción a los sistemas de bases de datos (7.ª ed.). Ciudad
de México: Pearson Educación.
Hughes, J. G. (1991). Object-oriented databases. Nueva York: Prentice Hall.
Johnson, J. L. (1997). Bases de datos. Modelos, lenguajes, diseño. Ciudad de
México: Oxford University Press.
Silberschatz, A., Korth, H. F. y Sudarshan, S. (2006). Fundamentos de bases de
datos (5.ª ed.). Madrid: McGraw-Hill.
Documentos electrónicos
Méndez, C. F. (2012). Licenciatura en informática. Bases de datos. Ciudad de México: Facultad de Contaduría y Administración-UNAM. Consultado el 11 de septiembre de 2017 de http://fcasua.contad.unam.mx/apuntes/interiores/docs/20172/informatica/4/apunte/LI_1365_17056_A_BaseDatos.pdf
Documentos electrónicos
Marqués, M. (2002). Tema 2. Bases de datos orientadas a objetos. Consultado el 17 de
junio de 2017 de http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf
Alberca, A. y Galvez, J. (2010). Modelos avanzados de bases de datos. Funcionalidad 1:
bases datos orientadas a objetos y bases de datos objeto-relacionales. España:
Universidad de Castilla-La Mancha-Escuela Superior de informática. Consultado el 17 de junio
de 2017 de https://basededatos2010.wikispaces.com/file/view/BD+O-O+ventajas+y+desventajas.pdf
López, D. (2013). Base de datos: enfoque orientado a objetos. CIBERTEC. Consultado
el 17 de junio de 2017 de https://my.laureate.net/Faculty/webinars/Documents/2013Agosto_Base%20de%20Datos%20Enfoque%20Orientado%20Objetos.pdf
Cómo citar
Kanaguisco, E. D. (2017). Modelo orientado a objetos. Unidades de Apoyo para el Aprendizaje. CUAED/Facultad de Contaduría y Administración-UNAM. Consultado el (fecha) de (vínculo).