https://arctype.com/blog/mysql-transaction/ |
En este módulo se abordan los conceptos de transacción y atomicidad. Son conceptos importantes dentro del ámbito del procesamiento de datos en una base de datos. Ambos conceptos tienen una relación directa entre sí, y se abordará en este módulo esa relación. |
Qué es una transacción?
En el ámbito de bases de datos, una transacción se define como un conjunto de instrucciones que hacen una tarea específica sobre los datos de la base de datos. Pero este conjunto de instrucciones tiene una característica muy importante: todas las instrucciones se comportan como una única unidad lógica de procesamiento.
Si consideramos la definición inicial dada (conjunto de instrucciones que hacen una tarea), la transacción sería lo mismo que un programa. Y es cierto, una transacción es un programa, pero este programa tiene la particularidad antes mencionada.
Esta particularidad que tienen las transacciones, de considerarse una única unidad lógica de procesamiento, se la da el concepto de atomicidad.
Qué es la atomicidad?
Es la capacidad que tienen las bases de datos relacionales de revertir lo hecho por una transacción fallida. Es decir, cuando se está ejecutando una transacción, si ésta falla, el motor de base de datos debe asegurar que los datos queden como estaban antes de la ejecución, y esto se logra revirtiendo lo hecho por la transacción que falló.
El otro escenario es cuando la ejecución de una transacción es exitosa. En este caso, el motor debe asegurar que los cambios hechos por dicha transacción queden reflejados en los datos de la base de datos.
A continuación, a través de dos ejemplos, se abordarán los dos conceptos.
Vamos a suponer que dentro de una base de datos bancaria existe una tabla con los datos de las cuentas. La estructura de dicha tabla es la siguiente:
Los datos que hay grabados en dicha tabla se muestran en la siguiente imagen. Como se puede observar, existen 4 cuentas grabadas con la fecha de apertura y su saldo actual.
Videos: