Bases de datos orientadas a objetos - una solución de desarrollo viable?

Autor: Othoniel Molina Mora

Tecnología e internet

09-06-2008

En éste documento analizaremos la situación actual de las bases de datos orientadas a objetos (oodb) y veremos porqué un sistema tan tradicional como el relacional sigue siendo una carta fuerte para muchos de los desarrolladores de software y bases de datos.

Introducción

El conocimiento que un desarrollador de sistemas debe tener acerca de los distintos paradigmas de programación, debe ser el necesario de manera tal que le permita a éste optar por cualquiera de ellos, teniendo en cuenta que muchas veces dicha decisión obedece a las distintas necesidades del sistema en cuestión y siendo el paradigma estructurado uno de los más usados hasta el momento.

Actualmente la programación orientada a objetos ha ganado terreno debido que permite resolver el problema desde un enfoque conceptual hasta llevarlo a un modelo en el que los elementos que lo integran son fragmentados y clasificados de acuerdo a ciertas características similares, permitiendo así una mejor administración del sistema. En la gestión y desarrollo de bases de datos ocurre algo distinto, las bases de datos relacionales (db), siguen vigentes hoy en día y acaparan el mayor porcentaje de ventas en el mercado (motores de bases datos relacionales “dbms”).

Desarrollo

“Una base de datos es una recopilación de datos que puede organizarse de forma que sus contenidos puedan accederse, gestionarse y actualizarse fácilmente” [1]. Para cualquier empresa las acciones mencionadas en el texto anterior son de suma trascendencia, ya que en la actualidad todos los sistemas de información empresariales (me atrevo a mencionar un 95%) están basados en este tipo de modelo de datos computacional. “Un modelo de base de datos relacional es un conjunto de relaciones (frecuentemente llamadas tablas). Cada tabla a su vez es un conjunto de registros, filas o tuplas. Y cada una de éstas es un conjunto de campos, columnas o atributos” [2]. “En una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en la programación orientada a objetos” [3] .

Por tanto al hacer uso de cualquier tipo de bd es necesario un gestor de bases de datos que se encargue de realizar todas las operaciones estructurales y de actualización de datos. El número de dbms(sistemas manejadores de bases de datos) en comparación con los oodbms (sistemas manejadores de bases de datos orientadas a objetos) es considerablemente mayor, esto podría ser una de las respuestas al porque se sigue optando por este tipo de arquitectura de bases de datos, algunos de éstos dbms son:

• Microsoft Access
• MySql
• Sql Server
• PostgreSql
• Oracle

En el caso concreto de MySql y PostreSql son herramientas de uso libre y por lo tanto no implican un costo de adquisición de licencia en ninguno de ellos.

Ahora, una oodb, requiere de manejadores de bases de datos que soporten éste tipo de arquitecturas, y como se mencionó anteriormente éstos son menor en número a comparación de los dbms. Algunos de los pocos oodbms que existen son:
• Db4o
• Informix
• Bdoviedo3

Quizá esta sea una de las causas por las cuales las oodb aún no tengan ese crecimiento que en algún momento tantas expectativas generaron.

Un desarrollador que tenga en sus manos la posibilidad de realizar un proyecto para alguna organización y que tenga en consideración que cualquier empresa que deposita gran parte de su estabilidad económica y funcional en un modelo de base de datos busca con esto ahorrar tiempos y costos, optaría en primera instancia por utilizar un modelo relacional, las razones son diversas, ¿Qué pasaría si dicha bdd es desarrollada bajo un paradigma orientado a objetos y no cuente con un respaldo fuerte por parte de la compañía proveedora de cualquier oodbms que haya sido elegido?, ¿Qué beneficios reales tendría un usuario al operar un sistema realizado con oodb?. Las respuestas a éstas preguntas se inclinan en primera instancia a rechazar el uso de oodb, sin embargo, una de las principales ventajas que los sistemas orientados a objetos ofrecen es un menor costo en el desarrollo del proyecto así como “su flexibilidad, y soporte para el manejo de tipos de datos complejos en forma ágil y rápida” [4].

Recordemos que cualquier sistema de cómputo es tan poderoso como el desarrollador mismo, por lo tanto si la persona encargada del proyecto posee un conocimiento amplio sobre oodb, no debería tener problema en llevarlo a cabo bajo éste paradigma, sin embargo, la información aún es “un tanto escaza” y lo son aún más los “expertos del tema”.

Desde el punto de vista informático, un paradigma orientado a objetos obliga a utilizar una lógica diferente al momento de plantear un posible modelo de solución; clases, herencia, encapsulamiento, son solo algunos de los conceptos básicos con los que habremos de familiarizarnos si es que queremos adoptar este paradigma como nuestra herramienta de trabajo, esperando que los resultados al desarrollar, almacenar y recuperar datos, entro otros, sean positivos, al menos así está escrito en teoría.

El modelo relacional supone “quizá” como mayor complejidad, el llegar a una forma de normalización adecuada y establecer las relaciones y cardinalidad correctas que nos permitan tener un funcionamiento eficiente en nuestra bdd.

Cabe hacer mención que actualmente existe un estándar para el manejo de bases relacionales, el estándar SQL. Éste lenguaje de consultas ha venido a darle un impacto aún mayor a éste paradigma relacional y ha hecho de éste modelo el más usado hasta el momento por casi todos los desarrolladores. Cada dbms tiene una versión propia de SQL pero la esencia del lenguaje es la misma, y sigue manteniéndose como una herramienta única en su género y con aún bastante vida por delante.

Los oodb no se han quedado atrás y recientemente se ha dado a conocer una herramienta equivalente a SQL, el OQL que “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” [5] . Con éste lenguaje vienen también ODL y OML que son los lenguajes para definición y manipulación de datos respectivamente, ambos equivalentes a DDL y DML de SQL.

Conclusión

Considero que las bases orientadas a objetos aún no han madurado lo suficiente como para que supongan una primera alternativa de solución, sin embargo las ventajas que ofrecen son amplias, y en algún momento quizá no muy lejano pasen a la cabeza en cuanto al desarrollo de bases de datos se refiere, sin embargo, los modelos de datos relacionales siguen siendo una muy buena opción, incluso se piensa en mejoras a este paradigma que podrían en un futuro reafirmarlo como el modelo de bases de datos más utilizado.

[1]www.linksys.com.mx/linksyswebsitepages/linksyscentroaprendizaje/glosario/
[2] http://es.wikipedia.org/wiki/Base_de_datos_relacional
[3] http://es.wikipedia.org/wiki/Base_de_datos_orientada_a_objetos
[4] http://html.rincondelvago.com/base-de-datos-relacional.html
[5] http://www.monografias.com/trabajos5/tipbases/tipbases.shtml#capIII321.

Othoniel Molina Mora

Licenciado en Informática.

Universidad Don Vasco.

México, Uruapan Michoacán.

Pro Cultura Instituto Morelos.

camilalloronaarrobahotmail.com

 

Comentarios
comments powered by Disqus

Nuevas publicaciones

⇐ Hazte Fan en Facebook
⇐ Síguenos en Twitter
⇐ Agréganos en Google +
⇐ Suscríbete vía Email
"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana. Pero si tú tienes una idea y yo tengo una idea e intercambiamos ideas, entonces ambos tendremos dos ideas"
George Bernard Shaw
Comparte conocimiento
Contenidos publicados con licencia CC BY-NC-SA 3.0 a excepción de los casos en los que se indican derechos de autor específicos. Sugerimos contactar a los autores al usar material públicamente.