Capítulos: 9 Español Manuel Rubio

Acerca del Libro

Si ya programas en Elixir, o usas Ecto desde Phoenix y quieres entender qué ocurre detrás de cada consulta, este libro es para ti. Aprende a tomar decisiones sobre tus datos, desde su validación hasta su persistencia.

Un proyecto para conectar las piezas

BookLoop acompaña el recorrido: configura el repositorio, crea migraciones y esquemas, incorpora cambios y relaciona tus entidades. Cada paso da contexto a las herramientas de Ecto.

Valida antes de guardar

Trabaja con changesets, restricciones y asociaciones. Comprende qué validaciones pertenecen a tu aplicación y cómo apoyarte en la base de datos para mantener la coherencia.

Pregunta mejor a tus datos

Compón consultas, carga asociaciones y utiliza subconsultas, agregaciones y operaciones de conjuntos. Avanza hacia CTE y funciones de ventana para resolver consultas analíticas.

Prueba y protege tus operaciones

Organiza pruebas con SQL Sandbox, define tipos de datos personalizados y coordina cambios con transacciones y Ecto.Multi. Explora bloqueos optimistas y pesimistas.

¿Qué necesitas saber?

Conviene conocer los fundamentos de Elixir. No necesitas haber trabajado con Ecto: el recorrido comienza por su configuración y sus conceptos básicos. Ecto también se utiliza fuera de Phoenix.

¿Quieres recorrer todo el camino? Ecto también forma parte del pack Elixires, junto con Elixir, Elixir/OTP y Phoenix Framework. Puedes consultar sus libros incluidos y su precio antes de elegir.

Capítulos

Qué hay dentro del libro

Explorar el índice

Capítulos · 9

01La Base de Ecto

Los primeros pasos con Ecto se basan en instalar la dependencia, saber qué tienes que instalar, cómo configurarlo, qué es un Repo, qué son las Migraciones, cómo hacer Esquemas y comenzamos a definir datos para trabajar con ellos. Pero espera. Este capítulo se basa en definiciones, el contenido vendrá en el siguiente.

02Los Conjuntos de Cambios

Comenzamos a introducir datos. En este capítulo nos centramos en revisar en profundidad los conjuntos de cambios desde Ecto.Changeset y muchas de sus funciones. El objetivo del capítulo se centra en que seas capaz de insertar, modificar y eliminar información. Obviamente vemos también esas mismas funciones desde el Repo, pero aún no nos sumergimos en las consultas, únicamente todo lo que tienes que saber sobre la definición de la función changeset/2 y las validaciones.

03Relaciones, Asociaciones y Uniones

Con este nombre tan extraño comenzamos a definir datos con claves foráneas, comenzamos a ver la sintaxis para crear consultas aunque no profundizaremos mucho en ellas eso será en el siguiente capítulo, no obstante, en este capítulo ya definimos nuestro proyecto al completo y hacemos fácil el fraccionamiento de datos en varias tablas para que las acciones sobre ellas parezcan simples cambios en un mapa en la memoria de Elixir. ¿Que no se puede cambiar un mapa en la memoria de Elixir? Bueno, detalles, lo importante es la facilidad que conseguiremos para este tema siempre tan complejo.

04Consultas

Consultas, consultas por todos lados. En este capítulo veremos todo tipo de consultas, subconsultas, composición y navegaremos la composición para simplificar lo que en SQL y otros sistemas solo puede verse como complejo. Este sí, este es un capítulo importante, ponle un marcador.

05Conjuntos

Los lenguajes relacionales trabajan con conjuntos de datos a modo de tablas. En este capítulo repasaremos esa particularidad y aprovecharemos comandos como `union/2`, `except/2`, `intersect/2` y otros para realizar consultas del cojunto de los datos.

06Consultas analíticas

Las expresiones de tabla comunes (CTE) y las funciones de ventana son las dos herramientas del SQL analítico para resolver consultas complejas sin sacrificar legibilidad. Las CTEs permiten nombrar subconsultas intermedias y reutilizarlas dentro de una misma consulta, mientras que las funciones de ventana calculan valores sobre un conjunto de filas relacionadas sin agruparlas ni reducirlas, a diferencia de los agregados habituales. En este capítulo veremos cómo utilizar ambas desde Ecto a través de with_cte/3, windows/3 y over/2.

07Pruebas, pruebas y más pruebas

En Elixir uno de los detalles más importantes es disponer de código de calidad y la calidad necesita ser demostrada. Las pruebas no solo constituyen la comprobación del correcto funcionamiento del código sino también un ejemplo que muestra cómo se usa el código que hemos desarrollado. Cada prueba tiene sus datos de entrada y sus datos de salida y esta información termina siendo de gran utilidad para comprobar cómo se comporta el sistema con esos datos y como ejemplo para el uso del sistema. Por lo tanto e intentando no repetirme más, las pruebas son muy importantes y veremos cómo podemos realizar pruebas con Ecto.

08Tipos de datos

Una de las premisas cuando hablamos en el primer capítulo sobre los tipos de datos es que estos son extensibles. En este capítulo revisaremos algunas dependencias útiles que nos permitirán extender el uso de los tipos de datos y también implementaremos nuestro propio tipo de dato para mostrar lo fácil que resulta.

09Transacciones

Una de las particularidades más deseadas de la base de datos es su atomicidad llevada, no solo al nivel de consulta, sino también al nivel de transacción. Las transacciones nos facilitan realizar acciones en modo todo o nada sin afectar a otras consultas concurrentes y garantizando la integridad de los datos, ¿pero sabías que podemos anidar estas transacciones y crear puntos de guardado?

Manuel Rubio

Autor

Manuel Rubio

Desarrollador Políglota, Escritor, Gerente y Mentor

Saber Más Sobre el Autor/a

Comenzó a programar a los 12 años con lenguajes como GW-BASIC, QBasic, MODULA-2, Pascal y C. Cuando comenzó el mundo laboral ya dominaba Java, JavaScript, PHP, Perl, Ruby, Python entre otros y más tarde comenzaría con Rust, Golang, Erlang, Elixir y Gleam. Pero lo que más le atrae es poder enseñar a programar en esos lenguajes a otros. Comenzó su formación como profesor asistiendo a un cruso en Londres y más tarde como mentor de Erlang, Elixir, OTP, Ecto y otras tecnologías dentro de Erlang Solutions Ltd. Escribir libros es para Manuel otra forma no solo de enseñar sino también de aprender, tal y como decía Feynman.

Preguntas de Uso Frecuente

¿Necesito saber Elixir antes de leerlo?

Conviene conocer los fundamentos de Elixir. El libro introduce Ecto desde la configuración del repositorio y los primeros esquemas, antes de avanzar hacia consultas y transacciones.

¿Es un libro de Phoenix?

No. Ecto se usa a menudo con Phoenix, pero puede utilizarse de forma independiente. El libro se centra en modelar, validar, consultar y persistir datos con Ecto.

¿Qué voy a construir?

El proyecto BookLoop conecta los ejemplos del libro: repositorio, esquemas, cambios, asociaciones, consultas, pruebas y transacciones.

¿Puedo conseguirlo dentro de un pack?

Sí. Ecto forma parte del pack Elixires. En su página puedes ver los libros incluidos y el precio actual del conjunto.

Da el siguiente paso con tus datos en Elixir.

Ecto: Bases de Datos en Elixir

Suscríbete

Suscríbete para mantenerte informado de las novedades.