Cuando se desarrolla una aplicación con acceso a base de datos empleando lenguajes tales como C#, Java, Python, PHP, VB, C++…, es necesario definir una estructura de clases que representan los datos que se almacenan en las bases de datos. Estas clases se denominan clases entidad y constituyen el modelo de datos de la aplicación.
En algunas ocasiones el modelo de datos se define a partir de esquema entidad-relación que define las tablas, campos y relaciones de la base de datos. En otras ocasiones el proceso es a la inversa y es el esquema entidad-relación el que se genera a partir del modelo de datos. En ambos casos, el proceso recibe el nombre de mapeo e implica un costo considerable de tiempo y recursos en el desarrollo de las aplicaciones.
Visita nuestros Cursos de Informática en Barcelona para aumentar tus conocimientos de programación, bases de datos, servidores y sistemas
¿Qué es un ORM?
Un ORM (Object Relational Mapping) es una herramienta de software que automatiza el mapeo entre el modelo de datos y el esquema entidad-relación. Esto conlleva dos ventajas básicas:
- Agiliza el desarrollo y reduce la cantidad de código al automatizar el mapeo permitiendo generar las clases entidad a partir de una base de datos existente, o viceversa.
- Independiza la aplicación del tipo de base de datos (SQL Server, Oracle, MySQL… ), permitiendo la obtención de datos usando objetos y métodos sin escribir consultas SQL.
Si estás interesado en conocer más acerca de Programación visita nuestros Cursos de Programación.
¿Cuándo usar un ORM?
El uso del ORM’s tiene como contrapartida una penalización en el rendimiento al trabajarse con objetos en vez de directamente con los datos y usarse SQL generadas no optimizadas.
Es por ello que el uso de ORM’s está especialmente recomendado en aplicaciones con modelos de datos complejos donde el rendimiento no es crítico. El uso del ORM acelera el desarrollo evitando la escritura de código repetitivo para consultas, altas, bajas y modificaciones (CRUD), y dado que el rendimiento no es crítico tampoco es preciso el empleo de SQL’s optimizadas.
En el caso de aplicaciones con modelos de datos simples o donde el rendimiento es crítico no es recomendable el uso de ORM, debido a que la sobrecarga de código que añade el ORM para manejar los datos no compensa frente al acceso directo a los mismos y el empleo de consultas SQL optimizadas para acelerar las operaciones.
Existen diferentes ORM’s en función del lenguaje y plataformas empleadas. Los más populares son los siguientes:
- C# / Visual Basic .NET -> Entity Framework Core / Entity Framework 6
- Java -> Hibernate
- Phyton -> SQLAlchemy
- PHP
Si estás interesado en conocer más acerca de Programación visita nuestros Cursos de Programación.