Está en la página 1de 4

Operaciones

Transacciones
Bases de Datos Ingeniera Tcnica en Informtica de Sistemas Ingenier T Inform

Desde el punto de vista del usuario la interaccin con la base de datos se lleva a cabo mediante operaciones con significado en el modelo semntico (por ejemplo, una transferencia de fondos en un banco) Desde el punto de vista de la base de datos estas operaciones pueden estar formadas por varias operaciones elementales (por ejemplo, quitar fondos de una cuenta y aadrselos a otra) Se llama Transaccin a una coleccin de operaciones que forman una unidad lgica de trabajo
Introduccin Introducci 2

ndice
Concepto de Transaccin Estados de las Transacciones Transacciones en SQL

Concepto de Transaccin
Transacciones Bases de Datos Ingeniera Tcnica en Informtica de Sistemas Ingenier T Inform 3

Introduccin Introducci

Definicin Definici
Una Transaccin es un unidad de la ejecucin de un programa que accede y, posiblemente, actualiza varios elementos de datos Una Transaccin est delimitada por instrucciones de inicio transaccin y fin transaccin (la transaccin consiste en todas las operaciones que se ejecutan entre inicio transaccin y fin transaccin)

Propiedades ACID
Propiedades de las transacciones que debe mantener el sistema de base de datos para garantizar la integridad de los datos Atomicidad: O se realizan adecuadamente, en la base de datos, todas las operaciones de la transaccin o no se realiza ninguna de ellas Consistencia: La ejecucin aislada de la transaccin (es decir, sin otra transaccin que se ejecute concurrentemente) conserva la consistencia de la base de datos

Concepto de Transaccin Transacci

Concepto de Transaccin Transacci

Propiedades ACID
Propiedades de las transacciones que debe mantener el sistema de base de datos para garantizar la integridad de los datos Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza cada transaccin ignora al resto de transacciones (para cada Ti el resto de Tj no ha comenzado o ya ha acabado) Durabilidad: Tras la finalizacin con xito de una transaccin, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema

Ejemplo Propiedades ACID


Sistema Bancario simplificado Constituido por varias cuentas y un conjunto de transacciones que acceden y actualizan dichas cuentas Base de datos residente en disco pero con una porcin de la misma en memoria principal Ti: leer(A); A := A - 50; escribir(A); leer(B); B := B + 50; escribir(B);

Acceso a travs de dos operaciones: leer(X) y escribir(x) (transfiere el dato X desde la Base de Datos/memoria intermedia local de la transaccin a una memoria intermedia local de la transaccin/Base de Datos)
7 Concepto de Transaccin Transacci 8

Concepto de Transaccin Transacci

Ejemplo P-ACID: Atomicidad PAntes de ejecutar Ti: El valor de A es 1000 y el valor de B es 2000
Ti: leer(A); A := A - 50; escribir(A); leer(B); B := B + 50;

Estado Inconsistente
Hay que asegurarse que las inconsistencias no sean visibles en un sistema de base de datos Un sistema puede alcanzar en algn momento un estado inconsistente Incluso si Ti se ejecuta completamente existe un momento en que la base de datos est en estado inconsistente Los estados inconsistentes slo deben aparecen durante la ejecucin de la transacciones La responsabilidad de asegurar la atomicidad es del sistema de base de datos (en concreto del componente de gestin de transacciones)
9 Concepto de Transaccin Transacci 10

Durante la ejecucin de Ti: Se produce un fallo que impide que la transaccin finalice con xito (fallos de alimentacin, fallos de hardware, errores software, etc.) Valores reflejados en la Base de Datos: El valor de A es 950 y el valor de B es 2000

escribir(B);

El estado del sistema deja de reflejar el estado real del mundo que se supone que modela estado inconsistente
Concepto de Transaccin Transacci

Ejemplo P-ACID: Consistencia PEl requisito de consistencia es que la suma de A y B no se vea alterada al ejecutar la transaccin Si una base de datos es consistente antes de ejecutar una transaccin, tiene que seguir sindolo despus de ejecutar dicha transaccin

Ejemplo P-ACID: Aislamiento PIncluso tras asegurar las propiedades de atomicidad y consistencia para cada transaccin pueden ocurrir problemas si varias transacciones concurrentes entrelazaran sus operaciones de modo no deseado (produciendo un estado inconsistente)
Ti: leer(A); A := A - 50; escribir(A); leer(B); B := B + 50;

una segunda transaccin que modifique A y/o B (a porcentaje)

La responsabilidad de asegurar la consistencia es del programador que codifica la transaccin (la comprobacin de las restricciones de integridad puede ayudar)
Concepto de Transaccin Transacci 11

escribir(B);

La Base de Datos puede quedar en un estado inconsistente aunque las dos transacciones terminen
Concepto de Transaccin Transacci 12

Concurrencia
Una solucin al problema de la concurrencia de transacciones es la ejecucin secuencial de estas (pero a costa de rendimiento)

Ejemplo P-ACID: Durabilidad PUna vez que se completa con xito la ejecucin de una transaccin no puede suceder que un fallo del sistema produzca la prdida de datos Las modificaciones realizadas por la transaccin se guardan en disco antes de finalizar la transaccin La informacin guardada en disco de las modificaciones realizadas por transaccin es suficiente para reconstruir dichas modificaciones La responsabilidad de asegurar la durabilidad es del sistema de base de datos (en concreto del componente de gestin de recuperaciones)
13 Concepto de Transaccin Transacci 14

Condi ciones

La responsabilidad de asegurar el aislamiento es del sistema de base de datos (en concreto del componente de control de concurrencias)
Concepto de Transaccin Transacci

Responsabilidades
La responsabilidad de asegurar la atomicidad es del sistema de base de datos (componente de gestin de transacciones) La responsabilidad de asegurar la consistencia es del programador que codifica la transaccin La responsabilidad de asegurar el aislamiento es del sistema de base de datos (componente de control de concurrencias) La responsabilidad de asegurar la durabilidad es del sistema de base de datos (componente de gestin de recuperaciones)
Concepto de Transaccin Transacci 15

Estados de las Transacciones


Transacciones Bases de Datos Ingeniera Tcnica en Informtica de Sistemas Ingenier T Inform

Transaccin Comprometida Transacci


Una transaccin que termina su ejecucin con xito se dice que est comprometida

Transaccin Abortada Transacci


Una transaccin que no termina su ejecucin con xito se dice que est abortada Para asegurar la atomicidad, las transacciones abortadas no deben tener efecto sobre el estado de la base de datos cualquier cambio que haya hecho la transaccin abortada debe deshacerse

Una transaccin comprometida que haya hecho modificaciones transforma la base de datos llevndola a un nueva estado consistente, que permanece incluso si hay fallo en el sistema En ausencia de fallos, todas las transacciones se completan con xito
Estado de las Transacciones 17

Una vez deshechos los cambios de una transaccin abortada se dice que la transaccin se ha retrocedido

Estado de las Transacciones

18

Transaccin Compensadora Transacci


Una vez que una transaccin se ha comprometido no se pueden deshacer sus efectos abortndola slo se pueden invertir sus efectos mediante una transaccin compensadora

Modelo de Transaccin Transacci


Una transaccin debe estar en uno de los siguientes estados: Activa (estado inicial): la transaccin permanece en este estado durante su ejecucin Parcialmente Comprometida: la transaccin pasa a este estado cuando acaba de realizar la ltima instruccin Fallida: la transaccin pasa a este estado tras descubrir que no puede continuar la ejecucin normal Abortada: la transaccin pasa a este estado despus de haber restablecido la base de datos a su estado anterior Comprometida: la transaccin pasa a este estado tras completarse con xito

No siempre se puede crear una transaccin compensadora asociada a cada transaccin a realizar queda a responsabilidad del usuario

Estado de las Transacciones

19

Estado de las Transacciones

20

Diagrama de Estados
Parcialmente Comprometida Comprometida

Escritura Externa Observable


Hay que tener cuidado cuando se trabaja con terminales o impresoras cuando una escritura as tiene lugar no puede borrarse puesto que puede haber sido vista fuera del sistema de base de datos Muchos sistemas slo permiten este tipo de escritura despus de que la transaccin halla llegado al estado comprometida

Activa

transaccin terminada

Fallida

Abortada reiniciar o cancelar

Entonces, si hay una transaccin larga, no se pueden mostrar datos de evolucin? compromete la atomicidad
21 Estado de las Transacciones 22

Estado de las Transacciones

Norma SQL

Transacciones en SQL
Transacciones Bases de Datos Ingeniera Tcnica en Informtica de Sistemas Ingenier T Inform

En la norma SQL el comienzo de una transaccin se especifica explcitamente (usualmente begin/start transaction) Las transacciones terminan con una de las siguientes instrucciones: commit work (compromete la transaccin actual rollback work (provoca que la transaccin aborte la palabra clave work es opcional

Si el programa termina sin ninguna de estas rdenes, los cambios se comprometen o abortan segn indique cada sistema
24

Transacciones en SQL

También podría gustarte