Buscar
Social
Ofertas laborales ES
« ¿Java 5, Java 1.4 o Java 5 y Java 1.4? | Main | GWT 1.5 RC1 soporta Java 5 »
jueves
may292008

¿Sigue teniendo sentido almacenar un modelo de objetos en tablas relacionales? (opinión publicada en Sólo Programadores)

¿Sigue teniendo sentido almacenar un modelo de objetos en tablas relacionales?



Cristian González Losada
Analista-programador en Nevian Sistemas
 

La solución a la persistencia de datos ha estado tradicionalmente ligada a las BBDD relacionales. La transición a la POO, que bien podríamos dar por finalizada, no ha cambiado en absoluto este hecho.

 Las diferencias entre el modelo de objetos y el relacional nos causa más de un problema a los desarrolladores. Estamos obligados a crear y mantener dos modelos (el de objetos y el relacional), así como a desarrollar clases que transformen nuestros datos de un modelo a otro.

 

Con el tiempo muchos desarrolladores han renegado de incrustar sentencias SQL en su código Java, pasando a emplear mapeadores O-R como Hibernate, TopLink, etc. Estos frameworks han permitido delegar el problema de la falta de concordancia objeto-relacional en una librería externa que nos hace casi transparente la traducción de un modelo a otro.

 

Algunos críticos de este tipo de frameworks consideran que no es el enfoque correcto para solucionar el problema. Debería considerarse la posibilidad de almacenar nuestros objetos en BBDD orientada a objetos, librándonos del problema que pretenden resolver los frameworks de mapeo O-R.

 Considero que el que estemos dejando de incrustar SQL en nuestro código en favor de distantas APIs de persistencia, facilitará una futura transición a este tipo de BBDD, cuando estos sistemas maduren y nos hayamos puesto de acuerdo en un lenguaje estándar de consulta para el modelo de objetos (que podría ser algo similar a LINQ o HQL, por ejemplo).

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.