BASE DE DATOS PARA APLICACIONES DOCENTE: M.A.
CAROLINA GORDILLO
ARELLANO
T.S.U en TECNOLOGÍAS DE LA
INFORMACIÓN Y COMUNICACIÓN ÁREA
SISTEMAS INFORMÁTICOS
BASE DE DATOS PARA
APLICACIONES
ACTIVIDAD 2-4
Elaborado por:
202004035 Flores Carmona Emma
Acapulco, Guerrero 24 junio
2021
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
1
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
ACTIVIDAD 2-4
MANEJO DE TRANSACCIONES
Las transacciones en SQL son unidades o secuencias de trabajo realizadas de forma
ordenada y separada en una base de datos. Normalmente representan cualquier cambio en
la base de datos, y tienen dos objetivos principales:
❖ Proporcionar secuencias de trabajo fiables que permitan poder recuperarse
fácilmente ante errores y mantener una base de datos consistente incluso frente a
fallos del sistema.
❖ Proporcionar aislamiento entre programas accediendo a la vez a la base de datos.
Una transacción es una secuencia de operaciones que llevan la base de datos desde un
estado de consistencia a otro estado de consistencia, por esto suele decirse también que la
transacción es una unidad lógica de integridad.
Cuando múltiples transacciones son introducidas en el sistema por varios usuarios, es
necesario evitar que interfieran entre ellas de forma tal que provoquen que la BD quede en
un estado no consistente; desde este punto de vista, podemos ver una transacción como
una unidad lógica de concurrencia.
Cuando ocurre un fallo que provoca la caída del sistema, en el momento en el que había
varias transacciones en curso de ejecución, muy probablemente dejará erróneos los datos
en la BD (estado inconsistente); en estas circunstancias, se debe garantizar que la BD pueda
ser recuperada a un estado en el cual su contenido sea consistente, por esto una transacción
es considerada también una unidad lógica de recuperación
La idea clave es que una transacción debe ser atómica, es decir, las operaciones que la
componen deben ser ejecutadas en su totalidad o no ser ejecutadas en absoluto.
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
2
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
Toda transacción finaliza con una operación de commit (confirmar) o bien con una
operación de rollback (anular, abortar o revertir). Tanto una operación como la otra puede
ser de tipo explícito (si la propia transacción (su código) contiene una sentencia COMMIT o
ROLLBACK) o implícito (si dicha operación es realizada por el sistema de forma automática,
por ejemplo, tras detectar una terminación normal (éxito) o anormal (fallo) de la
transacción). Por defecto, una vez finalizada una transacción, si todas sus operaciones se
han realizado con éxito, se realiza un COMMIT implícito de dicha transacción; y si alguna de
ellas tuvo problemas, se lleva a cabo un ROLLBACK implícito de la transacción (es decir, se
deshacen todas las operaciones que había realizado hasta el momento del fallo).
PROPIEDADES
Las transacciones siguen cuatro propiedades básicas, se suele hacer referencia a estas
como las propiedades ACID (Atomicity, Consistency, Isolation, Durability por sus iniciales en
inglés).
1. Atomicidad todas las operaciones de la transacción son ejecutadas por completo, o no
se ejecuta ninguna de ellas (si se ejecuta la transacción, se hace hasta el final).
2. Coherencia: Asegura que los datos que observamos no cambian (por otros usuarios)
hasta que acabemos la Transacción. Después de terminar una Transacción la Base de
datos no viola ninguna de sus reglas: valores obligatorios, claves únicas, etc.
3. Aislamiento (Isolation) Una transacción está aislada del resto de transacciones. Aunque
existan muchas transacciones ejecutándose a la vez, cualquier modificación de datos
que realice T está oculta para el resto de transacciones hasta que T sea confirmada
(realiza COMMIT).
4. Durabilidad Una vez que se confirma una transacción, sus actualizaciones sobreviven
cualquier fallo del sistema. Las modificaciones ya no se pierden, aunque el sistema falle
justo después de realizar dicha confirmación.
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
3
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
El Subsistema de Recuperación del SGBD es el encargado de conseguir el cumplimiento de
las propiedades de atomicidad y durabilidad de las transacciones.
Es decir:
❖ Atomicidad: aseguran que todas las operaciones dentro de la secuencia de trabajo se
completen satisfactoriamente. Si no es así, la transacción se abandona en el punto del
error y las operaciones previas retroceden a su estado inicial.
❖ Consistencia: aseguran que la base de datos cambie estados en una transacción exitosa.
❖ Aislamiento: permiten que las operaciones sean aisladas y transparentes unas de otras.
❖ Durabilidad: aseguran que el resultado o efecto de una transacción
completada permanezca en caso de error del sistema.
Control de las transacciones
➢ COMMIT. Para guardar los cambios.
➢ ROLLBACK. Para abandonar la transacción y deshacer los cambios que se hubieran
hecho en la transacción.
Ejemplo básico en MySQ
EL precio del dólar con respecto al peso 1995 al 2012.
CREATE TABLE IF NOT EXISTS dolar ( fecha DATE, precio DECIMAL (8,4), PRIMARY KEY
(fecha) ) ENGINE = InnoDB DEFAULT CHARSET=latin1;
Concepto de consistencia
Se refiere a la exigencia que cualquier transacción de bases de datos solo debe cambiar datos
afectados de formas permitidas. Los datos escritos en la base de datos deben ser válidos según todas
las reglas definidas, incluyendo limitaciones, factores desencadenantes y cualquier combinación de
éstos. Esto no garantiza la exactitud de la operación de todas maneras hubiera querido programador
de la aplicación (que es la responsabilidad del código de nivel de aplicación) pero simplemente que
los errores de programación no pueden resultar en la violación de las reglas definidas.
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
4
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
NIVELES DE AISLAMIENTO
El nivel de aislamiento especifica cómo se gestionan las transacciones que modifican la base
de datos. De forma predeterminada, se utiliza la pasarela de objetos predeterminada. No
todos los tipos de bases de datos soportan cada nivel de aislamiento. Algunos proveedores
de base de datos utilizan diferentes nombres para los niveles de aislamiento.
➢ Controla si se realizan bloqueos cuando se leen los datos y qué tipos de
bloqueos se solicitan.
➢ Duración de los bloqueos de lectura.
➢ Si una operación de lectura que hace referencia a filas modificadas por otra
transacción:
Lectura confirmada
La transacción contiene un bloqueo de lectura (si solo lee la fila) o el bloqueo de escritura
(si actualiza o elimina la fila) en la fila actual para evitar que otras transacciones la actualicen
o eliminen. La transacción libera los bloqueos de lectura cuando se desplaza fuera de la fila
actual. Mantiene bloqueos de escritura hasta que se confirma o se revierte.
Lectura no confirmada
Las transacciones no están aisladas entre sí. Si el DBMS admite otros niveles de aislamiento
de transacción, omite cualquier mecanismo que use para implementar esos niveles. Para
que no afecten negativamente a otras transacciones, las transacciones que se ejecutan en
el nivel de lectura sin confirmar suelen ser de solo lectura.
Lectura repetible
La transacción mantiene bloqueos de lectura en todas las filas que devuelve a la aplicación
y escribe bloqueos en todas las filas que inserta, actualiza o elimina. Por ejemplo, si la
transacción incluye la instrucción SQL SELECT * FROM Orders, la transacción de lectura
bloquea las filas a medida que la aplicación las recopila. Si la transacción incluye la
instrucción SQL Delete de los pedidos en los que status = ' Closed ', la transacción bloquea
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
5
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
las filas cuando se eliminan. Dado que otras transacciones no pueden actualizar o eliminar
estas filas, la transacción actual evita las lecturas no repetibles. La transacción libera sus
bloqueos cuando se confirma o se revierte.
Serializable
La transacción contiene un bloqueo de lectura (si solo Lee filas) o el bloqueo de escritura (si
puede actualizar o eliminar filas) en el intervalo de filas al que afecta. Por ejemplo, si la
transacción incluye la instrucción SQL SELECT * FROM Orders, el intervalo es la tabla de
pedidos completa; la transacción de lectura bloquea la tabla y no permite que se inserten
nuevas filas en ella. Si la transacción incluye la instrucción SQL Delete de los pedidos en los
que status = ' Closed ', el intervalo es todas las filas con el estado ' Closed '; la transacción
de escritura bloquea todas las filas de la tabla Orders con el estado "CLOSED" y no permite
que las filas se inserten o actualicen de modo que la fila resultante tenga el estado
"CLOSED". Dado que otras transacciones no pueden actualizar o eliminar las filas del
intervalo, la transacción actual evita las lecturas no repetibles. Dado que otras
transacciones no pueden insertar filas en el intervalo, la transacción actual evita los
fantasmas. La transacción libera su bloqueo cuando se confirma o se revierte.
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN
6
BASE DE DATOS PARA APLICACIONES DOCENTE: M.A. CAROLINA GORDILLO
ARELLANO
Bibliografías
(Taller de base de datos 2019). Conceptos de Bases de datos.
[Link]
Lázaro, D. (2018). Transacciones en SQL. Symfony & Semantic-UI.
[Link]
Bases de datos curso curso 2000/01. (2019). Conceptos de Procesamientos de
Transacciones -1. [Link]
Consistencia (sistemas de base de datos). (2014). [Link].
Engel, D. (2017, 19 enero). Niveles de aislamiento de transacción (ODBC). Microsoft.
[Link]
levels?view=sql-server-ver15
TECNOLOGÍAS DE LA INFORMACIÓN 3° “A”
Y COMUNICACIÓN