0% encontró este documento útil (0 votos)
73 vistas7 páginas

TRANSACCIONES

El documento habla sobre transacciones en bases de datos. Explica que una transacción SQL es un conjunto de instrucciones SQL que se ejecutan de forma atómica mediante COMMIT o ROLLBACK. Las propiedades ACID garantizan la seguridad de las transacciones al asegurar atomicidad, consistencia, aislamiento y durabilidad. MySQL requiere el motor InnoDB para admitir transacciones.

Cargado por

sfes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
73 vistas7 páginas

TRANSACCIONES

El documento habla sobre transacciones en bases de datos. Explica que una transacción SQL es un conjunto de instrucciones SQL que se ejecutan de forma atómica mediante COMMIT o ROLLBACK. Las propiedades ACID garantizan la seguridad de las transacciones al asegurar atomicidad, consistencia, aislamiento y durabilidad. MySQL requiere el motor InnoDB para admitir transacciones.

Cargado por

sfes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TRANSACCIONES

Taller de Bases de datos


Definición.

 Una transacción SQL es un conjunto de sentencias SQL que se


ejecutan formando una unidad lógica de trabajo (LUW del inglés Logic
Unit of Work), es decir, en forma indivisible o atómica.
 Una transacción SQL finaliza con un COMMIT, para aceptar todos los
cambios que la transacción ha realizado en la base de datos, o un
ROLLBACK para deshacerlos.
 MySQL nos permite realizar transacciones en sus tablas si hacemos
uso del motor de almacenamiento InnoDB (MyISAM no permite el uso
de transacciones).
 El uso de transacciones nos permite realizar operaciones de forma
segura y recuperar datos si se produce algún fallo en el servidor
durante la transacción, pero por otro lado las transacciones pueden
aumentar el tiempo de ejecución de las instrucciones.
Propiedades ACID.

Las propiedades ACID garantizan que las transacciones se puedan realizar en


una base de datos de forma segura. Decimos que un Sistema Gestor de Bases
de Datos es ACID compliant cuando permite realizar transacciones (ACID es
un acrónimo de Atomicity, Consistency, Isolation y Durability).
 Atomicidad: Esta propiedad quiere decir que una transacción es
indivisible, o se ejecutan todas la sentencias o no se ejecuta ninguna.
 Consistencia: Esta propiedad asegura que después de una transacción la
base de datos estará en un estado válido y consistente.
 Aislamiento: Esta propiedad garantiza que cada transacción está aislada
del resto de transacciones y que el acceso a los datos se hará de forma
exclusiva. Por ejemplo, si una transacción que quiere acceder de forma
concurrente a los datos que están siendo utilizados por otra transacción,
no podrá hacerlo hasta que la primera haya terminado.
 Durabilidad: Esta propiedad quiere decir que los cambios que realiza una
transacción sobre la base de datos son permanentes.
AUTOCOMMIT

Algunos Sistemas Gestores de Bases de Datos, como MySQL (si


trabajamos con el motor InnoDB) tienen activada por defecto la variable
AUTOCOMMIT. Esto quiere decir que automáticamente se aceptan
todos los cambios realizados después de la ejecución de una
sentencia SQL y no es posible deshacerlos.
Aunque la variable AUTOCOMMIT está activada por defecto al inicio de
una sesión SQL, podemos configurarlo para indicar si queremos trabajar
con transacciones implícitas o explíticas.
Podemos consultar el valor actual de AUTOCOMMIT haciendo:
SELECT @@AUTOCOMMIT;

Para desactivar la variable AUTOCOMMIT hacemos:

SET AUTOCOMMIT = 0;
AUTOCOMMIT

Si hacemos esto siempre tendríamos una transacción abierta y los


cambios sólo se aplicarían en la base de datos ejecutando la sentencia
COMMIT de forma explícita.
Para activar la variable AUTOCOMMIT hacemos:

SET AUTOCOMMIT = 1;

Para poder trabajar con transacciones en MySQL es necesario utilizar


InnoDB.
START TRANSACTION,
COMMIT y ROLLBACK

Los pasos para realizar una transacción en MySQL son los siguientes:

1. Indicar que vamos a realizar una transacción con la sentencia START


TRANSACTION, BEGIN o BEGIN WORK.
2. Realizar las operaciones de manipulación de datos sobre la base datos
(insertar, actualizar o borrar filas).
3. Si las operaciones se han realizado correctamente y queremos que los
cambios se apliquen de forma permanente sobre la base de datos
usaremos la sentencia COMMIT. Sin embargo, si durante las
operaciones ocurre algún error y no queremos aplicar los cambios
realizados podemos deshacerlos con la sentencia ROLLBACK.
Sintaxis.

También podría gustarte