Está en la página 1de 4

ORM

PROGRAMACION ORIENTADA A OBJETOS

UNIVERSIDAD POLITECNICA DE PUEBLA

MIGUEL ANGEL CUAPA


6B
¿Qué es un ORM?

ORM son las siglas de O (Object) R (Relational) M (Mapping) que es una técnica de
programación que nos permite trabajar con bases de datos relacionales también conocidos
como RDMS (Relational Database Management System).

Lo que hace un ORM es mapear las bases de datos a objetos (por eso su nombre) y estos
objetos tendrán métodos para interactuar con ellos y hacer el CRUD sin comunicarte
directamente a la base de datos.

Ventajas de un ORM
● El ORM funciona como una capa intermedia totalmente separada de la base de
datos. Esto permite que puedas centrarte únicamente en el desarrollo de la
aplicación.
● Hace que una migración sea más sencilla. Si en algún momento se quiere cambiar
la aplicación, no habría que reconstruir todas las consultas: podríamos migrar esa
aplicación a otra base de datos sin problema.
● El programador no necesita saber un lenguaje para cada base de datos: el ORM
unifica el lenguaje.
● Nos permite tener una mayor velocidad a la hora de hacer tareas básicas en cuanto
al acceso a los datos.
● Es un código más legible y con menos líneas.
● Otra ventaja importante es la seguridad. Al ser una capa independiente a los datos,
nos permite protegerlos de ciberataques al no estar en el mismo nivel.
● Nos evita escribir a mano las consultas de SQL necesarias.
● Facilita el trabajo con acciones simples y básicas de acceso a los datos. Como
funciones básicas de bases de datos consideramos lo que se conoce como CRUD:
Create, Read, Update y Delete.
● Un ORM guarda y carga toda la información de una base de datos relacional
automáticamente.

Desventajas de un ORM
● Se sacrifica la eficiencia de ejecución del programa y el modo de pensamiento fijo, lo
que reduce la flexibilidad de desarrollo.
● Desde el punto de vista de la estructura del sistema, los sistemas que usan ORM
son generalmente sistemas de múltiples capas, y cuantas más capas del sistema,
menor será la eficiencia. ORM es un enfoque completamente orientado a objetos, y
el enfoque orientado a objetos también tendrá un cierto impacto en el rendimiento.
● Al hacer que los objetos sean persistentes, ORM generalmente conserva todas las
propiedades, lo que a veces es indeseable.
Aplicaciones

Los ORM se pueden usar cuando hay necesidad de un desarrollo rápido cuando ya hay una
base de datos preexistente; así mismo los ORM se usan para facilitar el desarrollo de una
aplicación cuando no se quiere escribir y ejecutar la sentencia SQL directamente en la base
de datos.

Algunos desarrolladores usan los ORM como reglas de negocio para crear una relación
fuerte entre los objetos que programe y la base de datos.

Las soluciones de ORM son útiles para facilitar el desarrollo de APIs basadas en datos. Los
usuarios tienen necesidades concretas que impulsan el modelo de datos de una aplicación.
En el desarrollo, esta arquitectura de datos se implementa típicamente y se controla la
versión utilizando scripts de base de datos como los scripts SQL. A continuación, se utiliza
una biblioteca independiente para que la aplicación del servidor ejecute acciones CRUD en
la base de datos.

Los ORM funcionan como una API de alto nivel para ejecutar CRUD, y hoy en día los ORM
de calidad también nos permiten inicializar los datos a través del código. La manipulación de
datos complejos, la limpieza y demás, es a menudo más fácil en el código. Mientras que
existen herramientas dedicadas de extracción, transformación y carga (ETL), las mismas
tareas ETL pueden ser fácilmente implementadas en ORM.

Ejemplos de ORM´s

Actualmente en el mercado existen diferentes ORMs tanto para lenguajes de programación


como para frameworks, algunos de los ORM más usados son:

Active Record (Ruby)

Eloquent (PHP)

Peewee (Python)

SQLAlchemy (Python)

Entity Framework (C#)

Hibernate (Java)
SQLALchemy

SQLAlchemy es una librería para Python que facilita el acceso a una base de datos
relacional, así como las operaciones a realizar sobre la misma.

Es independiente del motor de base de datos a utilizar, es decir, en principio, es compatible


con la mayoría de bases de datos relacionales conocidas: PostgreSQL, MySQL, Oracle,
Microsoft SQL Server o Sqlite.

Aunque se puede usar SQLAlchemy utilizando consultas en lenguaje SQL nativo, la


principal ventaja de trabajar con esta librería se consigue haciendo uso de su ORM. El ORM
de SQLAlchemy mapea tablas a clases Python y convierte automáticamente llamadas a
funciones dentro de estas clases a sentencias SQL.

Además, SQLAlchemy implementa múltiples patrones de diseño que te permiten desarrollar


aplicaciones rápidamente y te abstrae de ciertas tareas, como manejar el pool de
conexiones a la base de datos.

¿Cómo funciona SQLALchemy?


SQLAlchemy proporciona una interfaz única para comunicarte con los diferentes drivers de
bases de datos Python que implementan el estándar Python DBAPI.

Este estándar, especifica cómo las librerías Python que se integran con las bases de datos
deben exponer sus interfaces. Por tanto, al usar SQLAlchemy no interactúas directamente
con dicho API, sino con la interfaz que precisamente proporciona SQLAlchemy. Esto es lo
que permite cambiar el motor de base de datos de una aplicación sin modificar apenas el
código que interactúa con los datos.

También podría gustarte