Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso del ActiveRecord con Ruby on Rails!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso del ActiveRecord con Ruby on Rails

Video ¿Qué es un ORM?

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

Un ORM, por sus siglas al inglés: Object Relational Mappper, no es más que una pieza de software que nos permite interactuar con nuestra base de datos sin la necesidad de conocer SQL (El lenguaje de consultas). Todo esto utilizando el paradigma de programación orientada a objetos. 🥳

Para todos aquellos desarrolladores Backend, el reto no es solo procesar y aplicar reglas de negocio a la información obtenida, sino también obtener la información misma.

Esto puede llegar a ser algo complicado en equipos de desarrollo pequeños, donde, muy probablemente, no exista algún administrador de base de datos que nos facilite la creación de nuestra base de datos o la creación de sentencias SQL para nuestras consultas. Por lo tanto queda del desarrollador mismo a prender, no sólo el lenguaje utilizado Backend, si no además, SQL. 😮

Aprender SQL no está para nada mal, y de hecho lo recomiendo ampliamente, pero para todas aquellas personas que están comenzando en el mundo de la programación, o simplemente quieren agilizar el proceso de desarrollo y no quieren complicarse tanto aprendiendo una nueva tecnología, les tengo una muy buena noticia. Nos podemos apoyar de los ORMs.

Tal y como mencionamos anteriormente, un ORM nos permitirá interactuar con nuestra base de datos sin la necesidad de conocer SQL. Todo mediante programación orientada a objetos.

Actualmente en el mercado existen diferentes ORMs tanto para lenguajes de programación como para frameworks mismos, Los más populares, desde mi experiencia, son:

  • Active Record (Ruby)
  • Eloquent (PHP)
  • Peewee (Python)
  • SQLAlchemy (Python)
  • Entity Framework (C#)
  • Hibernate (Java)

Los ORMs se encarga de traducir nuestra instrucción en el lenguaje de programación que estemos utilizando a una sentencia SQL que el gestor de base de datos pueda entender.

Veamos un ejemplo.

Que pasa si deseamos obtener el id, username, email para nuestro usuarios con id número 110.

Utilizando una base de datos relacional, MySQL por ejemplo. Nuestra consulta quedaría de la siguiente manera:

SELECT id, username, email FROM id = 101:

Una sentencia bastante sencilla, Ahora, Utilizando el active record de ruby on rails, la consulta pudierá quedar de la siguiente manera.

User.where(id:101).select(:id, :username, :email)

Cómo puedes observar, ahora estamos utilizando programación orientada a objetos. Nos apoyamos en una clase, métodos y atributos.

Si utilizamos otro ORM, por ejemplo peewee de Python, la consulta sería diferente, pero obtendremos el mismo resultado.

User.select(User.id, User.username, User.email).where(User.id == 101)

Por supuesto, los ORM no solo están diseñados para obtener información, también podemos crear, actualizar, eliminar y procesar registros, tablas o base de datos.

Aquí un ejemplo de como crear un registro con el Active record.

User.create(username:'eduardogpg', email:'eduardocodigofacilito.com')

Esto se traduce a:

 INSERT INTO "users" ("username", "email", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["username", "eduardogpg"], ["email", "eduardocodigofacilito.com"], ["created_at", "2021-01-19 19:13:13.622475"], ["updated_at", "2021-01-19 19:13:13.622475"]]

Cada ORM es bastante legible para el lenguaje para el que fue diseñado. Y esto nos lleva a que hablemos de las ventajas de utilizar un ORM.

Ventajas 👍

Hablemos ahora de las ventajas que nos puede ofrece el uso de un ORM.

  • La primera ventaja en esta lista, y quizás la más importante, es que al utilizar un ORM, como estos se encuentran diseñados para un lenguaje en particular, no debemos preocuparnos tanto por conocer y dominar SQL. Lo cual nos permite enfocarnos al cien por ciento en el lenguaje que estemos utilizando del lado del backend. Java, PHP, Python, etc …
  • Otra ventaja es que, la mayoría de los ORMs nos permiten interactuar con diferentes gestores de base de datos, pudiendo así, en dado caso lo llegáramos a necesitar, cambiar de un gestor a otro sin muchos problemas.

    por ejemplo, imaginemos que nos encontramos en un proyecto donde actualmente estamos utilizando Oracle como gestor de base de datos, pero por temas administrativos debemos migrar a MySQL. Si utilizamos un ORM el cambio no debería ser gran problema, sería cuestión de modificar la configuración, quizás instalar Drives y listo. Nuevo gestor, y la aplicación sigue funcionando.

  • Otra ventaja es que, dependiendo del ORM, podemos llegar a utilizar transacciones, migraciones, triggers e inclusive la posibilidad de trabajar con vistas o store procedures, conceptos un poco más avanzados en el mundo de base de datos. Todo esto, reitero, sin la necesidad de conocer el lenguaje de consultas.

Desventajas 👎

Ya hablamos de las ventajas, toca el turno de hablar sobre las desventajas de utilizar ORMs, por que sí, también las hay.

  • Para consultas complejas, que involucran múltiples tablas, condiciones e inclusive operaciones, es posible que el ORM no llegue a generar las sentencias más óptimas para el gestor, o inclusive se torne aún más complejo crear la consulta utilizando objetos que utilizando el mismo SQL. En esos casos deberíamos optar por obtener la información directamente de la base de datos y posteriormente generar los objetos a partir de ella. Vaya, un doble trabajo.
  • Dependiendo del ORM, es posible que las configuraciones sean un poco tediosas. Teniendo que importar, instalar, actualizar, generar nuevos archivos etc…
  • Y ahora, quizás la mayor desventaja de todas. Si no tenemos ningún tipo de conocimientos con SQL y dependemos completamente de un ORM, muy probablemente no lleguemos a comprender al cien por ciento las sentencias que estamos creando y ejecutando. Que si bien esto a corto plazo nos permitirá agilizar el proceso de desarrollo, a la larga puede no sonar a una muy buena idea; ya que carecemos de los conocimientos necesarios en el área de base de datos, y al tratar de crear nuestras propias consultas directamente en algún gestor, puede que se nos sea complicado o, inclusive, imposible.

Por lo tanto les recomiendo no abusar de los ORMs. Intentemos utilizarlos a la par que aprendemos SQL.

Conclusión

En conclusión, los ORMS nos serán de mucha utilidad para el proceso de desarrollo, pudiendo así interactuar fácilmente con nuestra base de datos, esto sin tener grandes conocimientos de SQL.

Que si bien es cierto, conocer SQL es una excelente idea, y lo recomiendo ampliamente, no debemos dejar a un lado la facilidad y flexibilidad que los ORMs nos ofrece. Vaya son una excelente herramienta para el desarrollo.

Creo que la forma más equilibrada de utilizar un ORM es siempre intentar conocer como funcionan las sentencias que estamos creando y ejecutando, de esta manera agilizaremos nuestro desarrollo y estaremos en constante aprendizaje en el área de base de datos. Un ganar ganar. 🤠

  • check_circle_outline
    Módulo 1 | 7 clases

    Introducción

    expand_more
    • done_all

      Clase 1

      Introducción al curso

    • done_all

      Clase 2

      ¿Qué es un ORM?

    • done_all

      Clase 3

      Crear proyecto

    • done_all

      Clase 4

      Configuración de base de datos

    • done_all

      Clase 5

      Generar primera migración

    • done_all

      Clase 6

      Anotaciones

    • done_all

      Clase 7

      Rollbacks

  • check_circle_outline
    Módulo 2 | 30 clases

    Modelos

    expand_more
  • check_circle_outline
    Módulo 3 | 15 clases

    Relaciones

    expand_more
  • check_circle_outline
    Módulo 4 | 9 clases

    Extras

    expand_more

¿Qué es un ORM?

arrow_back Siguiente arrow_forward
Curso del ActiveRecord con Ruby on Rails