Este artículo es el primero de una serie de tres que tienen como objetivo analizar las ventajas y desventajas del uso de ORMs (Object Relational Mappings) o, Mapeadores de Objetos Relacionales, así como proporcionar argumentos para decidir su inclusión o no en nuestro desarrollo de aplicaciones con especial atención en cómo afecta su uso al rendimiento global de las mismas.
Un ORM es un modelo de programación que permite mapear las estructuras de una base de datos relacional (SQL Server, Oracle, MySQL, etc.), en adelante RDBMS (Relational Database Management System), sobre una estructura lógica de entidades con el objeto de simplificar y acelerar el desarrollo de nuestras aplicaciones.
Las estructuras de la base de datos relacional quedan vinculadas con las entidades lógicas o base de datos virtual definida en el ORM, de tal modo que las acciones CRUD (Create, Read, Update, Delete) a ejecutar sobre la base de datos física se realizan de forma indirecta por medio del ORM.
La consecuencia más directa que se infiere del párrafo anterior es que, además de “mapear”, los ORMs tienden a “liberarnos” de la escritura o generación manual de código SQL (Structured Query Language) necesario para realizar las queries o consultas y gestionar la persistencia de datos en el RDBMS.
Así, los objetos o entidades de la base de datos virtual creada en nuestro ORM podrán ser manipulados por medio de algún lenguaje de nuestro interés según el tipo de ORM utilizado, por ejemplo, LINQ sobre Entity Framework de Microsoft. La interacción con el RDBMS quedará delegada en los métodos de actualización correspondientes proporcionados por el ORM. Los ORMs más completos ofrecen servicios para persistir todos los cambios en los estados de las entidades, previo seguimiento o tracking automático, sin escribir una sola línea de SQL.
Llegados a este punto, parece claro que el hecho de “atacar” directamente a las entidades de la base de datos virtual sin necesidad de generar código SQL nos reportará importantes ventajas a la hora de acelerar el desarrollo o implementación de nuestras aplicaciones, pero me gustaría anticipar dos cuestiones básicas a desarrollar en sendos artículos posteriores:
José Antonio es Ingeniero Superior de Telecomunicación por la Universidad de Zaragoza, con más de 15 años de experiencia profesional en entornos IT. Se unió a la Firma en 2017 como jefe de equipo en la competencia Microsoft dentro del área de DxD de Deloitte. A lo largo de su carrera profesional ha participado en múltiples proyectos, fundamentalmente en entornos basados en tecnologías Microsoft .Net con bases de datos relacionales y multidimensionales. Asimismo, posee varias certificaciones en tecnologías Microsoft desde 2003, como MCAD o MCPD.