Aunque podríamos desarrollar una aplicación web completa usando instrucciones SQL, estas pueden convertir nuestro código en uno muy verboso, complejo de entender y difícil de modificar.
Alternativamente, los desarrolladores backend usamos lo que se conocen como Object Relational Mapping, u ORM por sus siglas. Estas librerías se encargan de ofrecer clases y métodos para que podamos manipular la base de datos usando programación orientada a objetos.
Internamente, estos métodos se traducen a SQL para que las operaciones puedan ejecutarse sobre la base de datos. Además de eso, las instrucciones generadas por un ORM son usualmente seguras y optimizadas, esto porque los mejores ORM’s tienen años en desarrollo y son de código abierto, permitiendo que los mismos usuarios del ORM reporten y solucionen bugs, de modo que los resultados del ORM están en constante mejora.
Si aún no te imaginas cómo podrían verse las consultas SQL con objetos, considera este ejemplo con Sequelizejs, un ORM para NodeJS.
La inserción a nuestra tabla tasks pasaría de verse así:
db.run(`INSERT INTO tasks (description) VALUES (?)`,req.body.description);
A verse así:
Task.create({
description: req.body.description
});
Como puedes ver, el ejemplo con objetos y métodos es más legible y claro que la instrucción SQL, por otro lado, aprender SQL es mucho más complejo que aprender a usar un ORM, como podrás ver del ejemplo mismo.
Sin embargo, es importante mencionar que para sacar el mayor provecho de un ORM, y poder optimizar las sentencias que se generan, sí debes saber SQL y fundamentos de bases de datos relacionales, recuerda que para eso puedes ver el Curso Profesional de Bases de Datos aquí mismo en CódigoFacilito.
Por otro lado, uno de los grandes beneficios de usar un ORM, es que nos permite intercambiar el motor de base de datos, sin tener que modificar el código que utilizamos, simplemente le decimos, ahora usa sqlite, y ahora usa Postgres, y la librería se encargará de generar el código SQL para el motor indicado.
Este es un beneficio muy valioso considerando que ciertos motores están mejor diseñados para tareas específicas, sqlite para el desarrollo del sitio, Postgres para el entorno en producción, etc.
En general, te recomiendo que, a menos que tengas una razón especial para no usar un ORM, siempre los utilices, protegerán tu aplicación de posibles ataques por una base de datos mal configurada, harán del motor de base de datos prescindible, de manera que no casarás tu aplicación con uno de ellos, y además las operaciones serán más fáciles de comprender y razonar cuando ves tu código, que si usas SQL.
-
check_circle_outlineMódulo 1 | 8 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 19 clases
Http
expand_more -
check_circle_outlineMódulo 3 | 11 clases
Bases de Datos
expand_more-
done_all
Clase 1
El lenguaje SQL
-
done_all
Clase 2
Configurando SQLite
-
done_all
Clase 3
Qué son las bases de datos y por qué las usamos
-
done_all
Clase 4
Drivers de conexión
-
done_all
Clase 5
Crear una tabla (Primer consulta)
-
done_all
Clase 6
Qué es un CRUD
-
done_all
Clase 7
Insertar registros en la Base de Datos
-
done_all
Clase 8
Limpiar parámetros (sanitize)
-
done_all
Clase 9
Qué es un ORM
-
done_all
Clase 10
Configurar SequelizeJS
-
done_all
Clase 11
Bases de datos relacionales y no relacionales
-
-
check_circle_outlineMódulo 4 | 24 clases
Buenas prácticas de desarrollo.
expand_more -
check_circle_outlineMódulo 5 | 14 clases
Autenticación
expand_more -
check_circle_outlineMódulo 6 | 14 clases
Relaciones en la base de datos.
expand_more -
check_circle_outlineMódulo 7 | 5 clases
Websockets (realtime)
expand_more -
check_circle_outlineMódulo 8 | 4 clases
Entorno de producción
expand_more -
check_circle_outlineMódulo 9.-
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-