¿Qué son los ORM?

En el desarrollo de una aplicación vemos involucradas dos partes fundamentales para el funcionamiento de la misma como son: La parte del código que se genera para poder hacerla funcionar y por otro lado el acceso a los datos que son los que harán funcional la aplicación, que debido a los cambios que puedan llegar a surgir el manejo de estos se puede llegar a complicar con la evolución.

En la actualidad contamos con un sistema de base de datos relacionales que nos permite mantener entidades con sus respectivas relaciones y atributos.

 

Ejemplo: En un sistema que lleva la información de una escuela.

 

Entidades: Alumno, profesor, salones, boleta, etc.

Relaciones: Una boleta corresponde a un estudiante, etc.

Atributos: Una boleta contiene nombre, materia, calificación, etc.

 

Este sistema posee una interfaz para acceder a los datos llamada Query que es un Lenguaje Estructurado de Consultas y con este realizamos las peticiones a la Base de Datos, ejemplo:

Select * from Boleta where IdAlumno = 1

Antes de la aparición de los ORM las consultas tenían que realizarse en código duro dentro de las aplicaciones, con lo cual se perdía la ventaja de los lenguajes orientados a objetos, ya que se realizaba una petición a la base de datos de manera manual, por lo que era necesario contar con una adaptación de los datos a la aplicación.

Con los ORM nosotros podemos reducir la cantidad de código necesario y lograr una integración de tal manera que las entidades sean ocupadas como objetos, siendo el propio sistema el que se encargue de convertir esta información a SQL y a realizar el procesamiento.

Ejemplo:

Public Class Boleta

{

Int IdBoleta { get; set; } ;

Int IdAlumno { get; set; } ;

List<String> Materias { get; set; };

}

 

El desarrollo de capas de acceso a datos con ORM es una técnica de programación que mapea una base de datos relacional a una serie de objetos que pueden ser manipulados mediante código.

Lo que se persigue con los ORM es facilitar y automatizar el proceso para acceder a la información que va a ser manipulada por nuestro sistema.

 

Un sistema ORM nos proporciona las siguientes ventajas:

 

  • Autonomía completa del desarrollador: Podemos desarrollar una aplicación de acceso a datos sin escribir ninguna línea en lenguaje SQL, únicamente interviniendo directamente con las entidades.

     

  • Reducción en tiempo de desarrollo: Para desarrollar los métodos de acceso a datos solo se requieren una serie de líneas de código, lo que reduce los tiempos, permitiendo centrarnos más en la capa de presentación y en la de lógica de negocio.

     

     

  • Errores en tiempo de ejecución: Cuando se ejecuta cualquier operación de acceso a datos se obtienen errores de codificación en tiempo de compilación lo cual permite saber exactamente donde se encuentra el error.

     

Desventajas:

 

El principal inconveniente de los ORM es la poca escalabilidad que tienen, ya que realiza la traducción a lenguaje SQL de todas las operaciones que programemos a través del lenguaje ORM a emplear, siendo el problema las malas traducciones y la mala calidad del código traducido, por lo que para cierto tipo de sistemas es mejor utilizar procedimientos almacenados con buena estructura y optimización de código que las traducciones que realizan los ORM.

En conclusión los modelos ORM proporcionan muchas ventajas ya que nos permiten tener acceso a los datos de forma rápida y sencilla.

Al no ser la única manera de acceder a los datos, se debe ser preciso en saber cuál va a ser el mecanismo por el cual nuestro sistema tenga acceso a la información ya que para algunos sistemas tendrá un mejor rendimiento el no utilizar un ORM por las desventajas antes mencionadas.

Share: