Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Transacciones
Transacciones
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
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
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
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;
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
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
18
No siempre se puede crear una transaccin compensadora asociada a cada transaccin a realizar queda a responsabilidad del usuario
19
20
Diagrama de Estados
Parcialmente Comprometida Comprometida
Activa
transaccin terminada
Fallida
Entonces, si hay una transaccin larga, no se pueden mostrar datos de evolucin? compromete la atomicidad
21 Estado de las Transacciones 22
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