Transacciones SQL

Páginas: 43 (10515 palabras) Publicado: 15 de mayo de 2013
15 TRANSACCIONES
15.1 CONCEPTO DE TRANSACCIÓN
Una transacción es una unidad de la ejecución de un programa que
accede y posiblemente actualiza varios elementos de datos. Una transacción se
inicia por la ejecución de un programa de usuario escrito en un lenguaje de
manipulación de datos de alto nivel o en un lenguaje de programación, y está
delimitado por instrucciones de la forma iniciotransacción y fin transacción.
Para asegurar la integridad de los datos se necesita que el sistema de base
de datos mantenga las siguientes propiedades de las transacciones:






ATOMICIDAD: O todas las operaciones de la transacción se realizan
adecuadamente en la base de dato o ninguna de ellas.
CONSISTENCIA: La ejecución aislada de la transacción conserva la
consistencia de la basede datos.
AISLAMIENTO:
Aunque
se
ejecuten
varias
transacciones
concurrentemente, el sistema garantiza que para cada par de transacciones
Ti y Tj, se cumple que para los efectos de T i, o bien Tj ha terminado su
ejecución antes de que comience T i, o bien que Tj ha comenzado su
ejecución después de Ti termine.
DURABILIDAD: Tras la finalización con éxito de una transacción, los
cambiosrealizados en la base de datos permanecen, incluso si hay fallos
en el sistema.

Estas propiedades a menudo reciben el nombre de propiedades ACID, el
acrónimo se obtiene de la primera letra de cada una de las cuatro propiedades.

15.2 ESTADOS DE UNA TRANSACCIÓN
En ausencia de fallos, todas las transacciones se completan con éxito. Sin
embargo, como se ha visto antes, una transacción puedeque no siempre termine
su ejecución con éxito. Una transacción de este tipo se denomina abortada. Si se
pretende asegurar la propiedad de atomicidad, una transacción abortada no debe
tener efecto sobre el estado de la base de datos. Una vez que se han deshecho
los cambios efectuados por la transacción abortada, se dice que la transacción se
ha retrocedido.
Una transacción que termina conéxito se dice que está comprometida.
Una transacción comprometida que haya hecho modificaciones transforma la base
de datos llevándola a un nuevo estado consistente, que permanece incluso si hay
un fallo en el sistema.

La única forma de deshacer los cambios de una transacción comprometida
es ejecutando una transacción compensadora. Sin embargo no siempre se
puede crear dicha transaccióncompensadora.
Es necesario precisar qué se entiende por terminación con éxito de una
transacción. Se establece por tanto un modelo simple abstracto de transacción.
Una transacción debe estar en uno de los estados siguientes:






ACTIVA: El estado inicial; la transacción permanece en este estado durante
su ejecución.
PARCIALMENTE COMPROMETIDA: Después de ejecutarse la últimainstrucción.
FALLIDA: Tras descubrir que no puede continuar la ejecución normal.
ABORTADA: Después de haber retrocedido la transacción y restablecido la
base de datos a su estado anterior al comienzo de la transacción.
COMPROMETIDA: Tras completarse con éxito.

Parcialmente
comprometida

Comprometida

Activa

Fallida

Abortada

15.3 IMPLEMENTACION DE LA ATOMICIDAD Y LA DURABILIDAD
Elcomponente de gestión de recuperaciones de un sistema de base de datos
implementa el soporte para la atomicidad y la durabilidad.
Una copia en la sombra es una esquema simple pero extremadamente ineficiente,
este esquema que se basa en hacer copias de la base de datos, denominadas
copias de sombra, asumen que solo una transacción esta activa en cada
momento.

Este esquema asume que la base dedatos es simplemente un archivo en disco
por que se mantiene un puntero llamado puntero_bd que apunta a la copia actual
de la base de datos.
En el esquema de copia en la sombra, una transacción que quiera actualizar una
base de datos crea primero una copia completa de dicha base de datos.
Todos los cambios que se hacen en la nueva copia de la base de datos dejando la
copia original, la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Transacciones En Sql
  • Transacciones distribuidas SQL
  • Manejo de transacciones y concurrencia en sql
  • asegurar transacciones en sql
  • Transacciones SQL
  • transacciones sql
  • Transacciones Sql
  • Transacciones en sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS