Está en la página 1de 29

Base de Datos II

Ing. Juan Antonio Campos Echeverría

SESIÓN-01
SEMESTRE 01-2021
Tabla de contenidos
❑Definición de transacción.
❑Estados de una transacción.
❑Propiedades de una transacción ACID.
❑Manejo de transacciones dentro de Triggers
❑Puntos de sincronización (begin transaction,
commit, rollback)
❑Transacciones anidadas.
❑Tarea
Definición de transacción:
Es una interacción con una estructura de
datos compleja, compuesta por varios
procesos que se han de aplicar uno
después del otro. La transacción debe
realizarse de una sola vez y sin que la
estructura a medio manipular pueda ser
alcanzada por el resto del sistema hasta
que se hayan finalizado todos sus
procesos.
Ejemplo:
Se puede poner como ejemplo una
transferencia de fondos entre dos cuentas
corrientes de un banco. Si se quiere
transferir, supongamos, Q. 5,000.00 de
la cuenta corriente de A a B y las cuentas
tienen, respectivamente, Q. 20,000.00 y Q.
0.00 de saldo los pasos lógicos serían:
Resolución del Ejemplo:
1.Comprobar si en la cuenta A hay dinero
suficiente.
2.Restar Q. 5,000.00 de la cuenta de A, con
lo que su saldo pasa a ser de Q.
15,000.00.
3.Sumar Q. 5,000.00 a la cuenta de B, con
lo que los saldos quedan A= Q. 15,000.00
y B= Q. 5,000.00.
• Ahora bien, si entre el paso 2 y el 3 el sistema
sufre una parada o error inesperado las cuentas
quedarían como A= 15000 y B= 0, con lo cual se
han volatilizado Q. 5,000.00 y presumiblemente
ni A ni B estarán contentos, y hubiesen preferido
que la transacción nunca hubiese sido iniciada.

• Este ejemplo ilustra por qué las transacciones


tienen un comportamiento deseado de todo o
nada, o se realiza completamente o no debe tener
ningún efecto.
Estados de una transacción:
Una transacción debe estar en uno de los
siguientes estados:

• Activa (estado inicial): la transacción


permanece en este estado durante su
ejecución.
Estados de una transacción:

• Parcialmente Comprometida: la
transacción pasa a este estado cuando
acaba de realizar la última instrucción.
Estados de una transacción:

• Fallida: la transacción pasa a este estado


tras descubrir que no puede continuar la
ejecución normal.
Estados de una transacción:

• Abortada: la transacción pasa a este


estado después de haber restablecido la
base de datos a su estado anterior.
Estados de una transacción:

• Comprometida: la transacción pasa a


este estado tras completarse con éxito.
Estados de una transacción
Propiedades de una transacción
Propiedades de una transacción
Las transacciones deben cumplir cuatro
propiedades, denominadas ACID:

Atomicidad (Atomicity): es la propiedad


que asegura que la operación se ha
realizado o no, y por lo tanto ante un fallo
del sistema no puede quedar a medias.
Propiedades de una transacción
Las transacciones deben cumplir cuatro
propiedades, denominadas ACID:

Consistencia (Consistency): es la
propiedad que asegura que sólo se empieza
aquello que se puede acabar. Por lo tanto,
se ejecutan aquellas operaciones que no
van a romper la reglas y directrices de
integridad de la base de datos.
Propiedades de una transacción
Las transacciones deben cumplir cuatro
propiedades, denominadas ACID:

Aislamiento (Isolation): es la propiedad que


asegura que una operación no puede afectar
a otras. Esto asegura que la realización de
dos transacciones sobre la misma
información nunca generará ningún tipo de
error.
Propiedades de una transacción
Las transacciones deben cumplir cuatro
propiedades, denominadas ACID:

Durabilidad (Durability): es la propiedad que


asegura que una vez realizada la operación,
ésta persistirá y no se podrá deshacer
aunque falle el sistema.
• En cualquier momento, el programa podría
decidir que es necesario hacer fallar la
transacción, con lo que el sistema deberá
revertir todos los cambios hechos por las
operaciones ya hechas.
• En el lenguaje SQL se
denomina COMMIT a aplicar_cambios y RO
LLBACK a cancelar_cambios.
Las transacciones suelen verse
implementadas en sistemas de bases de
datos y, más recientemente, se han visto
incorporadas a cómo gestiona un sistema
operativo la interacción con un sistema de
archivos (como varias características de las
bases de datos, debido a que son muy
similares arquitectónicamente).
Puntos de Sincronización:
• El lenguaje de consulta de
datos SQL (Structured Query Language)
provee los mecanismos para especificar
que un conjunto de acciones deben
constituir una transacción.
Puntos de Sincronización:

• BEGIN TRANSACTION: Especifica que va


a empezar una transacción.
Puntos de Sincronización:

• COMMIT TRANSACTION: Le indica al


motor que puede considerar la transacción
completada con éxito.
Puntos de Sincronización:

• ROLLBACK TRANSACTION: Indica que


se ha alcanzado un fallo y que debe
restablecer la base al punto de integridad.
Transacciones Anidadas
Tarea
Investigar la implementación de las
transacciones anidadas.

Investigar Manejo de transacciones dentro de


Triggers.

Investigar concepto de bitácora de


transacciones.

Prueba corta habilitada durante la semana


finaliza el día viernes 12 de febrero 2021.
Lo maravilloso de aprender
algo es que nadie puede
arrebatárnoslo (B. B. King)

Gracias por su atención, bendiciones.

También podría gustarte