?Qué es una transacción?
Una transacción es una secuencia de operaciones relacionadas con una base de datos que un sistema de gestión de bases de datos (DBMS) trata como una sola unidad de trabajo. Las transacciones garantizan que grupos designados de operaciones se ejecuten juntos. Esto es importante en escenarios donde múltiples pasos dependen unos de otros.
Las transacciones de bases de datos deben cumplir con cuatro propiedades importantes: atomicidad, consistencia, aislamiento y durabilidad (ACID). El objetivo es asegurarse de que la base de datos nunca se quede en un estado inconsistente.
- La atomicidad garantiza que cada transacción se realice o falle por completo.
- La consistencia asegura que las transacciones sigan tanto las reglas integradas del DBMS como cualquier regla de negocio implementada por los desarrolladores.
- El aislamiento evita que las transacciones en curso interactúen entre sí.
- La durabilidad asegura que las transacciones comprometidas se guarden de forma permanente.
- Ver más
?Qué es una base de datos transaccional?
El término ?base de datos transaccional? puede utilizarse para describir cualquier base de datos que cumpla plenamente los principios ACID.
Las bases de datos transaccionales garantizan que, cuando se realizan varias operaciones a la vez, se tratan como una sola unidad de trabajo, y todas tienen éxito o ninguna lo tiene. Esto evita actualizaciones parciales o incoherencias que podrían corromper los datos.
La mayoría de las bases de datos relacionales cumplen con el estándar ACID porque las filas y columnas proporcionan un marco sólido para definir y hacer cumplir las reglas (consistencia), realizar un seguimiento de los cambios (atomicidad y durabilidad) y gestionar el acceso simultáneo (aislamiento).
Otros tipos de bases de datos no son tan adecuados. Por ejemplo, Redis es un almacén de valores clave en memoria dise?ado para ofrecer velocidad y alta disponibilidad. Redis admite operaciones atómicas, pero no garantiza la durabilidad. Si el servidor Redis se bloquea o se reinicia inesperadamente, existe la posibilidad de pérdida de datos, especialmente en el caso de escrituras recientes de las que no se haya hecho copia de seguridad.
?Cómo funcionan las transacciones de bases de datos?
Los desarrolladores de aplicaciones de software programan qué secuencias de operaciones deben agruparse como una transacción en el código fuente y, a continuación, el DBMS se encarga de la ejecución de los comandos.
Si todas las operaciones de una transacción se ejecutan según lo previsto, el DBMS confirma la transacción y los cambios se confirman (se registran en la base de datos). Sin embargo, si falla una sola operación, se revierte toda la transacción para evitar incoherencias y no se realizan cambios en la base de datos.
Las transacciones utilizan bloqueos de acceso, marcas de tiempo y otros mecanismos para gestionar el acceso a los datos y garantizar que las operaciones simultáneas no interfieran entre sí.
Cabe se?alar que algunos SGBD permiten a los desarrolladores habilitar el autoconsignación dentro del código de su aplicación, lo que permite tratar cada operación como si fuera una transacción. Si un desarrollador utiliza un SGBD con autoconsignación habilitada por defecto, tendrá que deshabilitarla en el código antes de definir los límites de la transacción.
?Cómo definen las transacciones los desarrolladores?
Los desarrolladores de software definen las transacciones de bases de datos agrupando varias operaciones de bases de datos. Para transferir 100 $ entre dos cuentas bancarias vinculadas, por ejemplo, las instrucciones de la transacción podrían ser como estas:
INICIAR TRANSACCIóN;
ACTUALIZAR cuentas ESTABLECER saldo = saldo – 100 DONDE id = 1;
ACTUALIZAR cuentas ESTABLECER saldo = saldo + 100 DONDE id = 2;
COMMIT;
Ciclo de vida de una transacción
Las transacciones tienen un ciclo de vida que se define por cuatro estados: inicio, ejecución, confirmación y reversión.
- El inicio marca el comienzo de la transacción.
- La ejecución realiza las operaciones de la base de datos (comandos DML).
- La confirmación finaliza la transacción y hace que todos los cambios sean permanentes.
- La reversión deshace todas las operaciones si se produce un error y restaura la base de datos a su estado inicial.
4 tipos de transacciones
Los diferentes tipos de transacciones de bases de datos pueden clasificarse en función de su finalidad, alcance y forma de ejecución.
A continuación se presentan cuatro tipos diferentes de transacciones que se utilizan habitualmente:
Casos de uso de transacciones
Cuando incluso las inconsistencias o errores menores en los datos pueden tener consecuencias significativas, las transacciones que cumplen con ACID proporcionan un mecanismo fiable para garantizar la integridad de los datos, la coherencia y la fiabilidad.
Los casos de uso más comunes incluyen:
- Sistemas financieros
- Comercio electrónico
- Atención sanitaria
- Sistemas gubernamentales y jurídicos
- Fabricación y logística
- Telecomunicaciones
- Venta al por menor
- Educación
- Transporte
- Servicios públicos
- Cadena de suministro
- Juegos
- Detección de fraudes
Ventajas y desventajas de las transacciones
La ejecución de operaciones relacionadas con bases de datos como una sola transacción tiene sus ventajas, pero también conlleva compensaciones:
Pros
- Se pueden utilizar para simplificar la lógica de las aplicaciones.
- Ayudan a garantizar que la base de datos se mantenga siempre en un estado coherente.
- Si algo sale mal, una transacción puede revertirse a su estado inicial y evitar cambios parciales.
- Los mecanismos de aislamiento de transacciones permiten a los usuarios concurrentes utilizar la base de datos sin conflictos.
- Una vez que se confirma una transacción, los cambios son permanentes.
Cons
- La sobrecarga de las transacciones puede ralentizar los problemas de rendimiento cuando se ejecutan muchas transacciones al mismo tiempo.
- Las transacciones distribuidas en múltiples sistemas necesitan protocolos de coordinación complejos, lo que es difícil de gestionar.
- Los altos niveles de aislamiento pueden bloquear temporalmente otras operaciones y reducir el rendimiento.
- Los niveles de aislamiento mal dise?ados pueden comprometer la integridad de los datos al crear problemas como lecturas fantasma.
Conclusión
Una transacción, por definición, es una acción única. Las transacciones de bases de datos son grupos de tareas relacionadas que se tratan como una acción única.
Las transacciones de bases de datos utilizan un enfoque de todo o nada: o bien todas las operaciones dentro de la transacción se confirman en la base de datos, o bien no se aplica ninguno de los cambios.
Preguntas frecuentes
?Qué es una transacción?
?Qué hace una transacción de BD?
?Cuál es un ejemplo de base de datos transaccional?
?Qué es una transacción de base de datos frente a una operación?
Referencias
- What is a Relational Database??(IBM)
- SQL Server Phantom Reads | All About Tech?(Blobeater)