OPERACIONES
Las transacciones aseguranque varias
modificaciones a los datos se procesan
juntas
Se llama Transacción a una colección
de operaciones que forman una
unidad lógica de trabajo.
3.
DEFINICION
Una Transacción esun unidad de la
ejecución de un programa que accede y,
posiblemente, actualiza varios elementos
de datos
Las transacciones aseguran que varias
modificaciones a los datos se realicen
como una unidad.
4.
CLASES DE TRANSACCIONES
EnSQL Server hay dos clases de transacciones:
En una transacción implícita, cada instrucción
Transact-SQL, como INSERT, UPDATE o
DELETE, se ejecuta como una transacción.
En una transacción explícita o definida por el
usuario, las instrucciones de la transacción se
agrupan entre las cláusulas BEGIN
TRANSACTION y COMMIT
TRANSACTION.
5.
PROPIEDADES ACID
Atomicidad:O se realizan
adecuadamente, en la base de datos, todas
las operaciones de la transacción o no se
realiza ninguna de ellas
Consistencia: La ejecución aislada de la
transacción (es decir, sin otra transacción
que se ejecute concurrentemente)
conserva la consistencia de la base de datos
6.
Aislamiento: Aunquese ejecuten varias
transacciones concurrentemente, el sistema
garantiza cada transacción ignora al resto
de transacciones
Durabilidad: Tras la finalización con éxito
de una transacción, los cambios realizados
en la base de datos permanecen, incluso si
hay fallos en el sistema
7.
RESPONSABILIDADES
La responsabilidad deasegurar la atomicidad es del sistema de
base de datos (componente de gestión de transacciones)
La responsabilidad de asegurar la consistencia es del
programador que codifica la transacción
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 gestión de
recuperaciones)
TRANSACCION COMPROMETIDA
Una transacciónque termina su ejecución
con éxito se dice que está comprometida
Una transacción comprometida que haya hecho
modificaciones transforma la base de datos
llevándola 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
11.
TRANSACCION ABORTADA
Una transacciónque no termina su
ejecución con éxito se dice que está
abortada
Una vez deshechos los cambios de una
transacción abortada se dice que la
transacción se ha retrocedido
12.
TRANSACCION COMPENSADORA
Una vezque una transacción se ha
comprometido no se pueden deshacer sus
efectos abortándola
sólo se pueden invertir sus efectos mediante
una transacción compensadora
No siempre se puede crear una transacción
compensadora asociada a cada transacción a
realizar queda a responsabilidad del usuario
13.
MODELO DE TRANSACCION
Unatransacción debe estar en uno de los siguientes
estados:
Activa (estado inicial): la transacción permanece en este
estado durante su ejecución
Parcialmente Comprometida: la transacción pasa a
este estado cuando acaba de realizar la última instrucción
Fallida: la transacción pasa a este estado tras
descubrir que no puede continuar la ejecución normal
Abortada: la transacción pasa a este estado después
de haber restablecido la base de datos a su estado anterior
Comprometida: la transacción pasa a este estado
tras completarse con éxito
Los bloqueosimpiden los conflictos de actualización.
Los usuarios no pueden leer o modificar los datos que
están en proceso de modificación por parte de otros
usuarios.
Los bloqueos hacen posible la serialización de
transacciones de forma que sólo una persona a la vez
pueda modificar un elemento de datos.
Los bloqueos son necesarios para que las transacciones
simultáneas permitan que los usuarios tengan acceso y
actualicen los datos al mismo tiempo.
17.
PROBLEMAS DE SIMULTANEIDAD
Actualización perdida Ocurre cuando una transacción
sobrescribe los cambios de otra transacción.
Dependencia no confirmada (lectura no confirmada)
ocurre cuando una transacción lee los datos sin confirmar de
otra transacción.
Análisis incoherente(lectura no repetible) Ocurre cuando
una transacción lee la misma fila varias veces y cuando, entre las
dos (o más) lecturas, otra transacción modifica esa fila.
Lecturas fantasma pueden ocurrir cuando las transacciones
no están aisladas unas de otras.
TIPOS DE BLOQUEOS
Bloqueosbásicos.
Compartidos
Exclusivos
Las operaciones de lectura adquieren
bloqueos compartidos y las operaciones
de escritura adquieren bloqueos
exclusivos.
20.
Bloqueos para situacionesespeciales:
Intención Los bloqueos de intención establecen una jerarquía
de bloqueo para que otras transacciones no puedan adquirir
bloqueos en niveles más incluyentes que otros existentes.
Actualización se utiliza los bloqueos de actualización cuando
va a modificar una página.
Esquema aseguran que no se elimine una tabla o un índice, o
que no se modifique su esquema, cuando se les hace referencia
en otra sesión.
Actualización masiva permiten procesos de copia masiva
simultáneos en la misma tabla, a la vez que impiden que otros
procesos que no hacen copias masivas tengan acceso a la tabla.