Object Relational Mapping (ORM)

Un poco de historia de los ORM

Hace ya unos cuantos años que surgieron los ORMs (del inglés Object Relational Mapping o Mapeo objeto-relacional). Cuando surgieron, se debatió si eran la solución más adecuada al problema de la persistencia:

  • Por un lado, estaban los que decían que era una solución subóptima, puesto que se formaban consultas SQL pesadas y patrones de acceso no recomendables.
  • Por otro, estaban los que decían que era perder tiempo en problemas que ya están resueltos y no centrarse en los problemas importantes.

Al final, los ORMs se han impuesto a la escritura de consultas SQL a mano. Y también con el tiempo se han ido mejorando el rendimiento de los mismos, desarrollando alternativas más ligeras o MicroORMs, dando la posibilidad de un acceso más rápido y controlado a bases de datos.

¿Qué es un ORM?

Para los que no sepan qué es un ORM, vamos a proceder a explicarlo. Un ORM es una técnica de programación para lograr convertir datos procedentes de una fuente de datos (o base de datos) en un lenguaje orientado a objetos, es decir, en la práctica, consiste en la creación de una base de datos virtual sobre la base de datos relacional.

¿Qué aporta un ORM?

Las ventajas que nos aporta un ORM son claras:

  • Nos evita la escritura de consultas SQL a mano.
  • Nos garantiza que siempre que cargamos una entidad en sesión, aún obteniéndose con distintas consultas siempre conseguiremos la misma instancia.
  • Detecta automáticamente cambios, es decir, si hay algún cambio en alguna entidad, el sistema lo detecta y actualiza la base de datos automáticamente.
  • Centralización en el ORM de la definición del esquema de base de datos.

¿Problemas de los ORM?

Como todo, tiene sus desventajas:

  • La pérdida clara de rendimiento, sobre todo en la carga de información. Aunque la mayoría de las veces es debido a un mal uso del ORM, puesto que la mayoría tienen varios métodos de lectura.
  • Complejidad adicional que introducen, que en muchos casos es innecesaria, dependiendo de lo que se busque, puesto que añadir un ORM para hacer selects o inserts no merece la pena.

Ya, la elección de cada uno, depende de lo que más le conviene según sus proyectos.

Daniel González es desarrollador en Yunbit desde 2015. Ingeniero Informático por la Universidad Autónoma de Madrid, Máster en Ingeniería Web por la Universidad Politécnica de Madrid y especialista en implementación en grandes plataformas. Daniel ha aportado multitud de mejoras a la plataforma BusinessCloud de Yunbit, y especialmente a la funcionalidad de Yunbit SGA.
Entrada Relacionada