Modelo Orientado a Objetos

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


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.



Partenón representando las características del Modelo Orientado a Objetos

Pilares del modelo orientado a objetos

Identificar el modelo de base de datos orientado a objetos, partiendo de su utilidad, después con el concepto y las características de los OODBMS, para su correcta aplicación en sistemas informáticos.

Utilidad del modelo de base de datos 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.


Tabla comparativa entre el modelo relacional y el modelo orientado a objetos

Modelo relacional vs. modelo orientado a objetos

Los manejadores de bases de datos orientados a objetos deben tomar en cuenta las siguientes operaciones:

• Ser capaces de definir sus propios tipos de datos.
• El tamaño de los datos puede ser muy grande.
• La duración de las transacciones puede ser muy larga.
• Recuperar rápidamente objetos complejos.
• Lenguajes de consulta de objetos, un ejemplo es OQL (Object Query Language).
• Mecanismos de seguridad basados en la noción de objeto.
• Funciones para definir reglas deductivas.

Tendencias actuales en la tecnología de bases de datos

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.

Definición

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 de las características del modelo orientado a objetos

Esquema con las principales características del modelo orientado a objetos

Persistencia en el 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.

Lo anterior traería como ventaja que no sería necesario el uso de dos lenguajes de programación para construir una aplicación; es decir, actualmente, el desarrollo de aplicaciones se hace con lenguajes de programación orientada a objetos almacenando datos en bases relacionales, por lo que el desarrollador debe utilizar un lenguaje para la aplicación (Java, PHP, C++) y otro para la base de datos (SQL).
Esquema explicando la función de la persistencia en un OODBMS

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.

Sistemas administradores de bases de datos orientados a objetos


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.

Ejemplo representando el almacenamiento de los datos de dos objetos.

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.

Definición

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:


La falta de un modelo de datos común entre los diferentes sistemas

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.

La carencia de fundamentos formales

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.

Una actividad experimental muy fuerte

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

Características

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.


Conjuntos

Los conjuntos —sets— son la manera natural de representar colecciones del mundo real.

Tuplas

Las tuplas permiten representar, de manera natural, las propiedades de una entidad y son importantes por la aceptación ganada con el modelo relacional.

Listas o arreglos

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.

Por ejemplo, pensemos en dos personas: Arturo y Valeria; cada uno tiene un hijo llamado Jaime. En la vida real, hay dos posibles situaciones:

a) Arturo y Valeria son padres de Jaime, por lo que existe identidad del objeto Jaime; es decir, se trata en realidad del mismo objeto.

Familia de tres miembros: padre, madre y un niño

Identidad de los objetos

b) Hay dos niños del mismo nombre. Esto implica igualdad de dos objetos Jaime, porque tienen el mismo nombre, pero no son el mismo objeto.
Dos niños

Igualdad de valores en los objetos


Asumiendo que Arturo y Valeria son en realidad padres de un mismo niño Jaime, todas las actualizaciones al hijo de Arturo, también son aplicadas al hijo de Valeria, ya que se trata del mismo objeto: Jaime. Si el sistema no tuviera identidad, sino que se basara en igualdad de objetos, serían necesarias dos actualizaciones a los dos objetos Jaime.


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.

Factura electrónica

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:

Tabla describiendo la parte visible e invisible de un objeto.

Partes del encapsulamiento


Traducido a bases de datos, un objeto encapsula programas y datos.

Hombre representando un empleado en una empresa

Empleado Juan Rodríguez

Por ejemplo, en un sistema relacional, un empleado es representado por una tupla. Para ser consultado desde una aplicación, es necesario usar un lenguaje para programar procedimientos que serán almacenados fuera de la base datos; es más, ese lenguaje puede ser, en realidad, la combinación de un lenguaje de alto nivel con el estándar relacional SQL. En un sistema de bases de datos orientado a objetos, definimos al empleado como un objeto que tiene una parte de datos —probablemente muy similar al registro que definiríamos en el sistema relacional— y una parte de operaciones, la cual consiste, por ejemplo, en operaciones de aumentodeSalario() y bajaDefinitiva() que accederían a los datos del empleado. Cuando se almacene un nuevo empleado, datos y operaciones serían guardados en la base y no fuera de ella.

Herencia

La herencia tiene dos ventajas:

  1. Es una herramienta poderosa de modelado, ya que brinda una descripción precisa del mundo.
  2. Ayuda a simplificar la implementación de las aplicaciones.

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.

Grupo de tres personas representando a unos empleados

Empleado hereda de persona

Por su parte, cada estudiante tiene edad, nombre y un conjunto de calificaciones con las cuales podemos obtener su promedio.
Grupo de estudiantes tomando clase.

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.

Fuentes de información

Básicas

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

Complementarias

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).