TRANSACCIONES
Bases De Datos
OPERACIONES
Las transacciones aseguran que 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.
DEFINICION
Una Transacción es un 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.
CLASES DE TRANSACCIONES
En SQL 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.
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
 Aislamiento: Aunque se 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
RESPONSABILIDADES
La responsabilidad de asegurar 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)
RECUPERACION DE
TRANSACCIONES
ESTADO DE LAS
TRANSACCIONES
TRANSACCION COMPROMETIDA
Una transacción que 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
TRANSACCION ABORTADA
Una transacción que 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
TRANSACCION COMPENSADORA
Una vez que 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
MODELO DE TRANSACCION
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
 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
DIAGRAMA DE ESTADOS
BLOQUEOS
 Los bloqueos impiden 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.
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.
RECURSOS QUE SE PUEDEN
BLOQUEAR
TIPOS DE BLOQUEOS
Bloqueos básicos.
 Compartidos
 Exclusivos
Las operaciones de lectura adquieren
bloqueos compartidos y las operaciones
de escritura adquieren bloqueos
exclusivos.
Bloqueos para situaciones especiales:
 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.

Transacciones y bloqueos usando base de datos mysql

  • 1.
  • 2.
    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)
  • 8.
  • 9.
  • 10.
    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
  • 14.
  • 15.
  • 16.
     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.
  • 18.
    RECURSOS QUE SEPUEDEN BLOQUEAR
  • 19.
    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.