¿Qué son las transacciones ACID?
Las transacciones ACID son un conjunto de propiedades que garantizan la fiabilidad y consistencia de las operaciones en una base de datos.
Entendiendo las propiedades ACID en el contexto de las transacciones de bases de datos

En el contexto de las operaciones de bases de datos, una transacción se refiere a una operación que se considera una única unidad lógica de trabajo y tiene como objetivo dejar el sistema subyacente en un estado consistente.
La consistencia se mantiene asegurando que todas las operaciones se ejecuten correctamente y se realicen todas, o ninguna, cuando cualquiera de las operaciones falle por alguna razón.
Las propiedades ACID
Las transacciones de bases de datos deben cumplir con las llamadas propiedades ACID. Estos sistemas se llaman transaccionales y aseguran que todas las operaciones, incluyendo lectura, escritura o actualización, cumplan con las propiedades ACID. El acrónimo ACID significa A tomicidad, C onsistencia, I solación y D urabilidad.
Atomicidad: Esta propiedad se refiere a una transacción que se trata como una única unidad de trabajo. Si alguna operación definida dentro de la transacción falla, entonces no se realizará ninguna operación y las operaciones previamente ejecutadas se desharán (si las hubiera) y el sistema subyacente volverá a su estado anterior. La atomicidad evita la pérdida o corrupción de datos, ya que las transacciones solo se realizarán si cada declaración se aplica correctamente.
Consistencia: Esta propiedad asegura que todas las transacciones cumplan con reglas predefinidas de manera que cada transacción se ejecute de forma previsible y siempre deje el sistema subyacente en un estado consistente una vez que se haya confirmado.
- 2 Ejemplos Importantes de SQL CASE WHEN Que Necesitas Conocer en 2023
- Estimación de coeficientes variables en el tiempo con regresión en ...
- Entendiendo las pruebas A/B Comprende mejor con preguntas difíciles
Aislamiento: Un sistema de bases de datos transaccional permite a múltiples usuarios interactuar con él al mismo tiempo. Esta propiedad asegura que las transacciones concurrentes iniciadas por múltiples usuarios no interfieran entre sí y se mantenga la integridad de los datos. Cualquier operación dentro de una transacción no será visible fuera de ese contexto hasta que se confirme la transacción.
Durabilidad: Esta última propiedad asegura que cuando una transacción se confirme, se guardará y sus efectos serán permanentes incluso en caso de fallo del sistema.
Cómo escribir transacciones en SQL
Ahora que tenemos una comprensión básica de las cuatro propiedades ACID, escribamos una transacción SQL para verlas en acción. Ten en cuenta que utilizaré la sintaxis de BigQuery, que también puede funcionar en muchas otras variantes de SQL, pero esto no está garantizado.
En el ejemplo que se comparte a continuación, creamos una transacción que consta de dos declaraciones. La primera declaración insertará un nuevo registro en la tabla mydataset.mytable
, mientras que la segunda declaración (intencionadamente) generará un error al intentar realizar una división por cero.
En la segunda parte de nuestro fragmento de código, definimos la lógica de deshacer que revertirá todos los cambios realizados antes del fallo. Dado que la declaración SELECT 1/0
generará una excepción, la declaración INSERT INTO
se deshará y el nuevo registro no se agregará a la tabla de destino.
BEGIN BEGIN TRANSACTION; INSERT INTO mydataset.mytable VALUES (1, 100, 'pending'); -- Generar una excepción al intentar una división por cero SELECT 1/0; COMMIT TRANSACTION; EXCEPTION WHEN ERROR THEN -- Deshacer la transacción si se genera una excepción SELECT @@error.message; ROLLBACK TRANSACTION;END;
Pensamientos finales
Las propiedades ACID son conceptos fundamentales que los sistemas de bases de datos transaccionales deben cumplir para garantizar y mantener la integridad, consistencia y confiabilidad de los datos. Además, estos conceptos permiten a múltiples usuarios interactuar con los sistemas subyacentes de forma concurrente sin arriesgar estas características.
Si tu trabajo diario requiere la interacción con sistemas de bases de datos transaccionales, es extremadamente importante familiarizarse con estos conceptos. Las propiedades ACID ofrecidas por las transacciones de bases de datos garantizarán la integridad de los datos y te permitirán manejar fallos y errores de manera adecuada sin afectar otras operaciones y usuarios.
👉 Hazte miembro y lee todas las historias en VoAGI. Tu cuota de membresía apoya directamente a mí y a otros escritores que lees. También tendrás acceso completo a todas las historias en VoAGI.
Únete a VoAGI con mi enlace de referencia — Giorgos Myrianthous
Como miembro de VoAGI, una parte de tu cuota de membresía va a los escritores que lees, y tienes acceso completo a cada historia…
gmyrianthous.medium.com
👇 Artículos relacionados que también pueden interesarte 👇
ETL vs ELT: ¿Cuál es la diferencia?
Una comparación entre ETL y ELT en el contexto de Ingeniería de Datos
towardsdatascience.com
¿Qué es dbt (herramienta de construcción de datos)
Una introducción suave a dbt que está tomando protagonismo en el mundo de los datos
towardsdatascience.com
Diagramas como código en Python
Creando diagramas de arquitectura de sistemas en la nube con Python
towardsdatascience.com