SlideShare a Scribd company logo
1 of 50
Download to read offline
CLASE 5

ADMINISTRACIÓN DE BASE DE DATOS

MANEJO DE TRANSACCIONES

                          AUTORES:

                          Prof. Roxydel Dulcey

                          Prof. Josué Ramírez

            Marzo, 2011
Sistemas de procesamiento de
         transacciones

Son sistemas con grandes base de datos y
cientos de usuarios concurrentes que están
ejecutando transacciones de base de datos.

Ejemplos: sistemas de reservas, banca,
proceso de tarjetas de crédito, mercado de
valores, cajas de supermercados, entre otros.
Sistemas de procesamiento de
         transacciones

Estos sistemas requieren:
  Alta disponibilidad.

   Tiempo de respuesta adecuado para atender a
  cientos de usuarios concurrentes.
Concurrencia intercalada
Transacción

Es una unidad lógica de procesamiento de la
base de datos que incluye una o más
operaciones de acceso a la base de datos, que
pueden ser de inserción, eliminación,
modificación o recuperación.
Transacción

Las operaciones de la base de datos que
forman una transacción pueden estar
insertadas dentro de un programa de
aplicación o se pueden especificar de forma
interactiva a través de un lenguaje de consulta
de alto nivel como SQL.
Transacción

Las transacciones pueden delimitarse con las
sentencias explícitas:

  Begin transaction
  End transaction.
Transacción

Las operaciones básicas de acceso a la base de
datos que una transacción puede incluir son:

  Read (x).
  Write (x).
Transacción

Read (x): lee un elemento de la base de datos
llamado ‘x’ y lo coloca en una variable de
programa.
Write (x): escribe el valor de la variable de
programa en el elemento de la base de datos
llamado ‘x’.
Bloque

Es la unidad básica de transferencia de datos
del disco a la memoria principal del
computador.
Pasos de las operaciones Read (x) y
             Write (x)
Un bloque del buffer se graba en disco:

  Porque el gestor de buffer necesita espacio
  de memoria para otros propósitos.

  O porque el SGBD desea reflejar el cambio
  hecho a ‘x’ en el disco.
Ejemplos de transacciones
Una transacción deberá incluir funciones read
(x) y write (x) para tener acceso y actualizar la
base de datos:
Concurrencia

Las transacciones de los usuarios se podrían
ejecutar de manera concurrente y podrían
acceder y actualizar los mismos elementos de
la BD.
Concurrencia

Si esta ejecución concurrente no se controla,
puede provocar problemas tales como que la
base de datos no sea consistente.

Por esta razón son necesarios mecanismos
para el control de concurrencia.
Concurrencia

A continuación 3 de los problemas que
pueden presentarse:

 Actualización perdida.
 Actualización temporal (o lectura sucia).
 Resumen incorrecto.
Ejemplo

Sistema de BD de reservas en una línea aérea.
Ejemplo

T1: transfiere N reservas de un vuelo, cuyo
número de asientos reservados está
almacenado en el elemento de la BD llamado
X, a otro vuelo, cuyo número de asientos
reservados está almacenado en el elemento
de la BD llamado Y.
Ejemplo

T2: reserva M asientos en el primer vuelo (X).
Actualización perdida

Esto ocurre cuando las transacciones que
tienen acceso a los mismos elementos de la
BD tienen sus operaciones intercaladas de
modo que hacen incorrecto el valor de algún
elemento.

T1 y T2 se introducen al mismo tiempo y sus
operaciones se intercalan.
Actualización perdida
Actualización perdida

El valor final del elemento X es incorrecto,
porque T2 lee el valor de X ANTES de que T1
lo modifique en la BD, con lo que se pierde el
valor actualizado que resulta de T1.
Actualización perdida

Si X=80 al principio, N=5 (T1 transfiere 5
reservas de asientos del vuelo que
corresponde a X al vuelo que corresponde a Y)
y M=4 (T2 reserva 4 asientos en X), el
resultado final debería ser X=79, pero es X=84,
porque la actualización de T1 que eliminó 5
asientos de X se ha perdido.
Actualización temporal (o lectura
               sucia)

Esto ocurre cuando una transacción actualiza
un elemento de la BD y luego la transacción
falla por alguna razón. Otra transacción tiene
acceso al elemento actualizado antes de que
se restaure a su valor original.

T1 actualiza el elemento X y después falla
antes de completarse, así que el sistema debe
cambiar X otra vez a su valor original.
Actualización temporal (o lectura
               sucia)

Antes de que pueda hacerlo, la transacción T2
lee el valor “temporal” de X, que no se
grabará permanentemente en la BD debido al
fallo de T1.

El valor que T2 lee de X se llama dato sucio,
porque fue creado por una transacción que no
se ha completado ni confirmado todavía.
Actualización temporal (o lectura sucia)
Resumen incorrecto

Si una transacción está calculando una
función agregada de resumen sobre varios
registros mientras otras transacciones están
actualizando algunos de ellos, puede ser que
la función agregada calcule algunos valores
antes de que se actualicen y otros después de
actualizarse.
Resumen incorrecto

Por ejemplo, una transacción T3 está
calculando el número total de reservas de
todos los vuelos; mientras se está ejecutando
T1.
Resumen incorrecto
Por qué es necesaria la recuperación


Siempre que se introduce una transacción a
un SGBD para ejecutarla, el sistema tiene que
asegurarse de que:

  Todas las operaciones de la transacción se
  realicen con éxito y su efecto quede
  registrado permanentemente en la BD.
Por qué es necesaria la recuperación


  Que la transacción no tenga efecto alguno
  sobre la BD ni sobre otra transacción, si es
  que no se completa o falla.
Tipos de fallos

Caída del Sistema: durante la ejecución de la
transacción se produce un error de hardware,
software o red.

Error de transacción o del sistema: alguna
operación de la transacción puede hacer que
ésta falle (overflow) o errores de lógica.
Tipos de fallos

Errores locales o condiciones de excepción:
puede que no se encuentren los datos para la
transacción, por ejemplo: saldo insuficiente.
Ésta podría programarse y no ser un tipo de
fallo.
Tipos de fallos

Imposición de control de concurrencia: el
método de control de concurrencia puede
decidir que se aborte la transacción, porque
viola la seriabilidad o porque varias
transacciones de encuentran en un abrazo
mortal o deadlock (varias transacciones
“pelean” por el mismo recurso).
Tipos de fallos

Fallo del disco: algunos bloques de disco
pueden perder sus datos por un mal
funcionamiento de lectura o de escritura o
por un fallo de un cabezal de
lectura/escritura.
Tipos de fallos

Problemas físicos y Catástrofes: algunos de
éstos pueden ser interrupción de la energía
eléctrica,   incendio,   robo,      sabotaje,
sobreescritura de discos por error,
terremotos, entre otros.
Estados de Transacciones
Una transacción es una unidad atómica de
trabajo que se realiza por completo o bien no
se efectúa en absoluto.
Estados de Transacciones

El componente del sistema encargado de
lograr la atomicidad se conoce como
administrador de transacciones y las
operaciones COMMIT (comprometer) y
ROLLBACK (retroceder) son la clave de su
funcionamiento.
Estados de Transacciones

La operación COMMIT señala el término
exitoso de la transacción: le dice al
administrador de transacciones que se ha
finalizado con éxito una unidad lógica de
trabajo, que la base de datos está o debería
estar de nuevo en un estado consistente y que
se     pueden    comprometer,      o    hacer
permanentes todas las modificaciones
efectuadas por esa unidad de trabajo.
Estados de Transacciones

La operación ROLLBACK, en cambio, señala el
término no exitoso de la transacción: le dice al
administrador de transacciones que algo salió
mal, que la base de datos podría estar en un
estado inconsistente y que todas las
modificaciones efectuadas hasta el momento
por la unidad lógica de trabajo deben
retroceder o anularse.
Propiedades deseables en las
       Transacciones (ACID)

Atomicidad: una transacción es una unidad
atómica de procesamiento; o bien se realiza
por completo o no se realiza en absoluto.
Propiedades deseables en las
       Transacciones (ACID)

Conservación de la consistencia: una
transacción conserva la consistencia si su
ejecución completa lleva la base de datos de
un estado consistente a otro.
Propiedades deseables en las
       Transacciones (ACID)

Aislamiento (en inglés Isolation): una
transacción debería parecer que se está
ejecutando de forma aislada de las demás
transacciones. Es decir, la ejecución de una
transacción no debería interferir con otras
transacciones      que       se      ejecuten
concurrentemente.
Propiedades deseables en las
       Transacciones (ACID)

Durabilidad o permanencia: los cambios
aplicados a la base de datos por una
transacción confirmada deben perdurar en la
base de datos.
Registros del Diario (log)
Ejemplo de transacción en
        Postgres
Abd clase 5 y 6
Abd clase 5 y 6

More Related Content

What's hot

Inv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasInv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasJuan Anaya
 
Consistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridadConsistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridadAngel Sanchez Virgen
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigaciónJhoel Dgez Garcia
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Mayito Pdg
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datosJose Musett
 
Transacciones
TransaccionesTransacciones
Transaccionesemnero
 
Transacciones de base de datos en ORACLE
Transacciones de base de datos en ORACLETransacciones de base de datos en ORACLE
Transacciones de base de datos en ORACLE90040112
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datosJose O- Vera
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"UNIVERSIDAD VERACRUZANA
 
Modelos de estados
Modelos de estadosModelos de estados
Modelos de estadosFaubricio
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPkacho
 

What's hot (20)

TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
Inv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasInv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrencias
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Consistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridadConsistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridad
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigación
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
 
Transaccion
TransaccionTransaccion
Transaccion
 
Capitulo 6
Capitulo 6Capitulo 6
Capitulo 6
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones de base de datos en ORACLE
Transacciones de base de datos en ORACLETransacciones de base de datos en ORACLE
Transacciones de base de datos en ORACLE
 
RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datos
 
Gestion de transacciones
Gestion de transaccionesGestion de transacciones
Gestion de transacciones
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"
 
Consistencia
ConsistenciaConsistencia
Consistencia
 
Modelos de estados
Modelos de estadosModelos de estados
Modelos de estados
 
Dfd
DfdDfd
Dfd
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y Procesadores
 
Estados de un proceso sistemas operativos-
Estados de un proceso  sistemas operativos-Estados de un proceso  sistemas operativos-
Estados de un proceso sistemas operativos-
 

Viewers also liked

Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Luis Kyo
 
Cuestiones de Repaso Capitulo 20
Cuestiones de Repaso Capitulo 20Cuestiones de Repaso Capitulo 20
Cuestiones de Repaso Capitulo 20eeencalada
 
GESTION DE TRANSACCIONES
GESTION DE TRANSACCIONESGESTION DE TRANSACCIONES
GESTION DE TRANSACCIONESIsrael Cueva
 
Concurrencia y-secuencialidad
Concurrencia y-secuencialidadConcurrencia y-secuencialidad
Concurrencia y-secuencialidadmarioadair1298
 
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.Cristina Chandoha
 
Didáctica específica
Didáctica específicaDidáctica específica
Didáctica específicaPablo Delgado
 
Base de datos itfip ortegon y triana
Base de datos itfip ortegon y trianaBase de datos itfip ortegon y triana
Base de datos itfip ortegon y trianasecangry
 
Sistemas gestores de bases de datos.
Sistemas gestores de bases de datos.Sistemas gestores de bases de datos.
Sistemas gestores de bases de datos.Juan Anaya
 
Profesorado para Educación Secundaria en concurrencia con el titulo de base
Profesorado para Educación Secundaria en concurrencia con el titulo de baseProfesorado para Educación Secundaria en concurrencia con el titulo de base
Profesorado para Educación Secundaria en concurrencia con el titulo de baserolfo
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Liz Ocampo
 
Diseño Físico de Base de Datos - Cuestiones de Repaso
Diseño Físico de Base de Datos - Cuestiones de RepasoDiseño Físico de Base de Datos - Cuestiones de Repaso
Diseño Físico de Base de Datos - Cuestiones de RepasoArgenis Riofrío
 
Bases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola VaronBases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola VaronMARCEMEJIA11
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Liz Ocampo
 

Viewers also liked (20)

Diagrama er
Diagrama erDiagrama er
Diagrama er
 
Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010
 
Cuestiones de Repaso Capitulo 20
Cuestiones de Repaso Capitulo 20Cuestiones de Repaso Capitulo 20
Cuestiones de Repaso Capitulo 20
 
GESTION DE TRANSACCIONES
GESTION DE TRANSACCIONESGESTION DE TRANSACCIONES
GESTION DE TRANSACCIONES
 
Practica controlconcurrencia
Practica controlconcurrenciaPractica controlconcurrencia
Practica controlconcurrencia
 
Concurrencia y-secuencialidad
Concurrencia y-secuencialidadConcurrencia y-secuencialidad
Concurrencia y-secuencialidad
 
Abd clase 7
Abd clase 7Abd clase 7
Abd clase 7
 
Abd clase 9 y 10
Abd clase 9 y 10Abd clase 9 y 10
Abd clase 9 y 10
 
Abd clase 8
Abd clase 8Abd clase 8
Abd clase 8
 
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.
Profesorado Técnico Profesional - Ext. Áulica San Cristóbal.
 
Didáctica específica
Didáctica específicaDidáctica específica
Didáctica específica
 
Base de datos itfip ortegon y triana
Base de datos itfip ortegon y trianaBase de datos itfip ortegon y triana
Base de datos itfip ortegon y triana
 
Abd tema3
Abd tema3Abd tema3
Abd tema3
 
Sistemas gestores de bases de datos.
Sistemas gestores de bases de datos.Sistemas gestores de bases de datos.
Sistemas gestores de bases de datos.
 
Profesorado para Educación Secundaria en concurrencia con el titulo de base
Profesorado para Educación Secundaria en concurrencia con el titulo de baseProfesorado para Educación Secundaria en concurrencia con el titulo de base
Profesorado para Educación Secundaria en concurrencia con el titulo de base
 
Base de datos de los hoteles actualizado 24 junio 2016
Base de datos de los hoteles actualizado 24 junio 2016Base de datos de los hoteles actualizado 24 junio 2016
Base de datos de los hoteles actualizado 24 junio 2016
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
 
Diseño Físico de Base de Datos - Cuestiones de Repaso
Diseño Físico de Base de Datos - Cuestiones de RepasoDiseño Físico de Base de Datos - Cuestiones de Repaso
Diseño Físico de Base de Datos - Cuestiones de Repaso
 
Bases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola VaronBases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola Varon
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)
 

Similar to Abd clase 5 y 6 (20)

Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Transaciones en mysql
Transaciones en mysqlTransaciones en mysql
Transaciones en mysql
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
trabajo 5
trabajo 5trabajo 5
trabajo 5
 
Gestion de transacciones
Gestion de transaccionesGestion de transacciones
Gestion de transacciones
 
BD: Cuestiones de Repaso del Capitulo 20.
BD: Cuestiones de Repaso del Capitulo 20.BD: Cuestiones de Repaso del Capitulo 20.
BD: Cuestiones de Repaso del Capitulo 20.
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Base datos
Base datosBase datos
Base datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Gestion de transacciones
Gestion de transaccionesGestion de transacciones
Gestion de transacciones
 
Diseño de aplicaciones
Diseño de aplicacionesDiseño de aplicaciones
Diseño de aplicaciones
 
ARQSQL.docx
ARQSQL.docxARQSQL.docx
ARQSQL.docx
 
procedimientos almacenados
procedimientos almacenadosprocedimientos almacenados
procedimientos almacenados
 

Abd clase 5 y 6

  • 1. CLASE 5 ADMINISTRACIÓN DE BASE DE DATOS MANEJO DE TRANSACCIONES AUTORES: Prof. Roxydel Dulcey Prof. Josué Ramírez Marzo, 2011
  • 2. Sistemas de procesamiento de transacciones Son sistemas con grandes base de datos y cientos de usuarios concurrentes que están ejecutando transacciones de base de datos. Ejemplos: sistemas de reservas, banca, proceso de tarjetas de crédito, mercado de valores, cajas de supermercados, entre otros.
  • 3. Sistemas de procesamiento de transacciones Estos sistemas requieren: Alta disponibilidad. Tiempo de respuesta adecuado para atender a cientos de usuarios concurrentes.
  • 5. Transacción Es una unidad lógica de procesamiento de la base de datos que incluye una o más operaciones de acceso a la base de datos, que pueden ser de inserción, eliminación, modificación o recuperación.
  • 6. Transacción Las operaciones de la base de datos que forman una transacción pueden estar insertadas dentro de un programa de aplicación o se pueden especificar de forma interactiva a través de un lenguaje de consulta de alto nivel como SQL.
  • 7. Transacción Las transacciones pueden delimitarse con las sentencias explícitas: Begin transaction End transaction.
  • 8. Transacción Las operaciones básicas de acceso a la base de datos que una transacción puede incluir son: Read (x). Write (x).
  • 9. Transacción Read (x): lee un elemento de la base de datos llamado ‘x’ y lo coloca en una variable de programa. Write (x): escribe el valor de la variable de programa en el elemento de la base de datos llamado ‘x’.
  • 10. Bloque Es la unidad básica de transferencia de datos del disco a la memoria principal del computador.
  • 11. Pasos de las operaciones Read (x) y Write (x)
  • 12.
  • 13.
  • 14. Un bloque del buffer se graba en disco: Porque el gestor de buffer necesita espacio de memoria para otros propósitos. O porque el SGBD desea reflejar el cambio hecho a ‘x’ en el disco.
  • 15. Ejemplos de transacciones Una transacción deberá incluir funciones read (x) y write (x) para tener acceso y actualizar la base de datos:
  • 16. Concurrencia Las transacciones de los usuarios se podrían ejecutar de manera concurrente y podrían acceder y actualizar los mismos elementos de la BD.
  • 17. Concurrencia Si esta ejecución concurrente no se controla, puede provocar problemas tales como que la base de datos no sea consistente. Por esta razón son necesarios mecanismos para el control de concurrencia.
  • 18. Concurrencia A continuación 3 de los problemas que pueden presentarse: Actualización perdida. Actualización temporal (o lectura sucia). Resumen incorrecto.
  • 19. Ejemplo Sistema de BD de reservas en una línea aérea.
  • 20. Ejemplo T1: transfiere N reservas de un vuelo, cuyo número de asientos reservados está almacenado en el elemento de la BD llamado X, a otro vuelo, cuyo número de asientos reservados está almacenado en el elemento de la BD llamado Y.
  • 21. Ejemplo T2: reserva M asientos en el primer vuelo (X).
  • 22. Actualización perdida Esto ocurre cuando las transacciones que tienen acceso a los mismos elementos de la BD tienen sus operaciones intercaladas de modo que hacen incorrecto el valor de algún elemento. T1 y T2 se introducen al mismo tiempo y sus operaciones se intercalan.
  • 24. Actualización perdida El valor final del elemento X es incorrecto, porque T2 lee el valor de X ANTES de que T1 lo modifique en la BD, con lo que se pierde el valor actualizado que resulta de T1.
  • 25. Actualización perdida Si X=80 al principio, N=5 (T1 transfiere 5 reservas de asientos del vuelo que corresponde a X al vuelo que corresponde a Y) y M=4 (T2 reserva 4 asientos en X), el resultado final debería ser X=79, pero es X=84, porque la actualización de T1 que eliminó 5 asientos de X se ha perdido.
  • 26. Actualización temporal (o lectura sucia) Esto ocurre cuando una transacción actualiza un elemento de la BD y luego la transacción falla por alguna razón. Otra transacción tiene acceso al elemento actualizado antes de que se restaure a su valor original. T1 actualiza el elemento X y después falla antes de completarse, así que el sistema debe cambiar X otra vez a su valor original.
  • 27. Actualización temporal (o lectura sucia) Antes de que pueda hacerlo, la transacción T2 lee el valor “temporal” de X, que no se grabará permanentemente en la BD debido al fallo de T1. El valor que T2 lee de X se llama dato sucio, porque fue creado por una transacción que no se ha completado ni confirmado todavía.
  • 28. Actualización temporal (o lectura sucia)
  • 29. Resumen incorrecto Si una transacción está calculando una función agregada de resumen sobre varios registros mientras otras transacciones están actualizando algunos de ellos, puede ser que la función agregada calcule algunos valores antes de que se actualicen y otros después de actualizarse.
  • 30. Resumen incorrecto Por ejemplo, una transacción T3 está calculando el número total de reservas de todos los vuelos; mientras se está ejecutando T1.
  • 32. Por qué es necesaria la recuperación Siempre que se introduce una transacción a un SGBD para ejecutarla, el sistema tiene que asegurarse de que: Todas las operaciones de la transacción se realicen con éxito y su efecto quede registrado permanentemente en la BD.
  • 33. Por qué es necesaria la recuperación Que la transacción no tenga efecto alguno sobre la BD ni sobre otra transacción, si es que no se completa o falla.
  • 34. Tipos de fallos Caída del Sistema: durante la ejecución de la transacción se produce un error de hardware, software o red. Error de transacción o del sistema: alguna operación de la transacción puede hacer que ésta falle (overflow) o errores de lógica.
  • 35. Tipos de fallos Errores locales o condiciones de excepción: puede que no se encuentren los datos para la transacción, por ejemplo: saldo insuficiente. Ésta podría programarse y no ser un tipo de fallo.
  • 36. Tipos de fallos Imposición de control de concurrencia: el método de control de concurrencia puede decidir que se aborte la transacción, porque viola la seriabilidad o porque varias transacciones de encuentran en un abrazo mortal o deadlock (varias transacciones “pelean” por el mismo recurso).
  • 37. Tipos de fallos Fallo del disco: algunos bloques de disco pueden perder sus datos por un mal funcionamiento de lectura o de escritura o por un fallo de un cabezal de lectura/escritura.
  • 38. Tipos de fallos Problemas físicos y Catástrofes: algunos de éstos pueden ser interrupción de la energía eléctrica, incendio, robo, sabotaje, sobreescritura de discos por error, terremotos, entre otros.
  • 39. Estados de Transacciones Una transacción es una unidad atómica de trabajo que se realiza por completo o bien no se efectúa en absoluto.
  • 40. Estados de Transacciones El componente del sistema encargado de lograr la atomicidad se conoce como administrador de transacciones y las operaciones COMMIT (comprometer) y ROLLBACK (retroceder) son la clave de su funcionamiento.
  • 41. Estados de Transacciones La operación COMMIT señala el término exitoso de la transacción: le dice al administrador de transacciones que se ha finalizado con éxito una unidad lógica de trabajo, que la base de datos está o debería estar de nuevo en un estado consistente y que se pueden comprometer, o hacer permanentes todas las modificaciones efectuadas por esa unidad de trabajo.
  • 42. Estados de Transacciones La operación ROLLBACK, en cambio, señala el término no exitoso de la transacción: le dice al administrador de transacciones que algo salió mal, que la base de datos podría estar en un estado inconsistente y que todas las modificaciones efectuadas hasta el momento por la unidad lógica de trabajo deben retroceder o anularse.
  • 43. Propiedades deseables en las Transacciones (ACID) Atomicidad: una transacción es una unidad atómica de procesamiento; o bien se realiza por completo o no se realiza en absoluto.
  • 44. Propiedades deseables en las Transacciones (ACID) Conservación de la consistencia: una transacción conserva la consistencia si su ejecución completa lleva la base de datos de un estado consistente a otro.
  • 45. Propiedades deseables en las Transacciones (ACID) Aislamiento (en inglés Isolation): una transacción debería parecer que se está ejecutando de forma aislada de las demás transacciones. Es decir, la ejecución de una transacción no debería interferir con otras transacciones que se ejecuten concurrentemente.
  • 46. Propiedades deseables en las Transacciones (ACID) Durabilidad o permanencia: los cambios aplicados a la base de datos por una transacción confirmada deben perdurar en la base de datos.
  • 48. Ejemplo de transacción en Postgres