Documente Academic
Documente Profesional
Documente Cultură
Contenido
Concepto
Transaccin
Una transaccin es una coleccin de acciones que hacen transformaciones de estados del sistema mientras conservan la consistencia del mismo.
La B.D. en un estado consistente La B.D. puede estar temporalmente Inconsistente La B.D. en un estado consistente
Inicio de transaccin
Ejecucin de transaccin
Fin de transaccin
Concepto
Transaccin
Las transacciones aseguran que varias modificaciones a los datos se procesan juntas
Atomicidad
Atomicidad
Todas o ninguna de las operaciones de la transaccin son ejecutadas. Si la transaccin falla, sus resultados parciales deben ser deshechos. La actividad de preservar la atomicidad de la transaccin en la presencia de abortos de la transaccin debido a errores de entrada, interbloqueos es llamada recuperacin de la transaccin. La actividad de asegurar la atomicidad en la presencia de crash es llamada recuperacin de crash.
Consistencia
Consistencia
Consistencia Interna Una transaccin que se ejecuta sola al terminar deja la base de datos en estado consistente. Las transacciones no violan las restricciones de integridad de las bases de datos. Las transacciones son programas correctos
Aislamiento
Aislamiento
Serializacin Si varias transacciones son ejecutadas concurrentemente, los resultados deben ser los mismos como si ellas fueran ejecutadas serialmente en algn orden. Resultados incompletos Una transaccin incompleta no puede revelar sus resultados a otras transacciones antes de su compromiso. Necesariamente para evitar abortos en cascada.
7
Durabilidad
Durabilidad
Una vez que la transaccin se compromete, el sistema debe garantizar que los resultados de sus operaciones nunca sern perdidos, a pesar de fallas subsecuentes. Recuperacin de la base de datos
Transacciones
Transacciones
Comprometida
Activa
Fallida
Abortada
10
Transacciones
11
Transacciones
12
Transacciones
13
Transacciones
14
Transacciones
Terminacin de Transacciones
Begin-transaction Reservacin begin input (num-vuelo,fecha,nom-cliente); EXEC SQL SELECT ASOCS,CAP. INTO temp1, temp2 FROM VUELO WHERE NUM-VUELO=num-vuelo AND FECHA=fecha; if temp1>= temp2 then output(no asientos libres); Abort else EXEC SQL UPDATE VUELO SET ASOC = ASOC + 1 WHERE NUMVUELO = num-vuelo AND FECHA=fecha; EXEC SQL INSERT INTO VIAJAN(NUMVUELO,FECHA,NOMCLI); VALUES (num-vuelo, fecha, nom-cliente) Commit output(reservacin completa) endif end. {Reservacin}
15
Transacciones
Introduccin a las transacciones y los bloqueos Administracin de las transacciones Bloqueos Administracin de los bloqueos
16
Los bloqueos impiden los conflictos de actualizacin Las transacciones estn serializadas El bloqueo es automtico Los bloqueos permiten usar los datos al mismo tiempo Control de simultaneidad
17
Recuperacin de transacciones y puntos de comprobacin Consideraciones para el uso de transacciones Establecimiento de la opcin de transacciones implcitas Restricciones en las transacciones definidas por el usuario
18
Recuperacin de transacciones
1 2 3 4 5
ck1 ck2 Crash
Accin requerida
Ninguna Confirmar Deshacer Confirmar Deshacer
Puntos de comprobacin
19
Consideraciones para el uso de transacciones Recomendaciones para las transacciones Las transacciones deben ser lo ms cortas posible Preste atencin a ciertas instrucciones Transact-SQL Evite las transacciones que requieran la intervencin del usuario Aspectos del anidamiento de transacciones Se pueden anidar transacciones, pero no se recomienda Utilice @@trancount para determinar el nivel de anidamiento
20
Una transaccin se inicia automticamente cuando se ejecutan determinadas instrucciones No se permiten transacciones anidadas La transaccin debe completarse explcitamente con COMMIT o ROLLBACK TRANSACTION De forma predeterminada, esta opcin est desactivada
21
22
Problemas de simultaneidad impedidos por los bloqueos Recursos que se pueden bloquear Tipos de bloqueos Compatibilidad de los bloqueos
23
Actualizacin perdida Dependencia no confirmada (lectura no confirmada) Anlisis incoherente (lectura no repetible) Lecturas fantasma
24
Descripcin Identificador de fila Bloqueo de fila dentro de un ndice Pgina de datos o pgina de ndice Grupo de pginas Tabla completa Base de datos completa
25
Tipos de bloqueos
Bloqueos bsicos Compartidos Exclusivos Bloqueos para situaciones especiales Intencin Actualizacin Esquema Actualizacin masiva
26
Los bloqueos pueden ser compatibles o incompatibles con otros bloqueos Ejemplos Los bloqueos compartidos son compatibles con todos los bloqueos excepto con los exclusivos Los bloqueos exclusivos no son compatibles con ningn otro bloqueo Los bloqueos de actualizacin son compatibles slo con los bloqueos compartidos
27
Opciones de bloqueo en el nivel de sesin Arquitectura de bloqueos dinmicos Opciones de bloqueo en el nivel de tabla Interbloqueos Presentacin de informacin acerca de los bloqueos
28
Opciones de bloqueo en el nivel de sesin Nivel de aislamiento de las transacciones READ COMMITTED (DEFAULT) READ UNCOMMITTED REPEATABLE READ SERIALIZABLE Tiempo de espera para los bloqueos Limita el tiempo de espera para un recurso bloqueado Use SET LOCK_TIMEOUT
29
Costo
Fila
Pgina Granularidad
Tabla
30
10
10
selas con precaucin Puede especificar una o ms opciones de bloqueo para una tabla Utilice la parte sugerenciasDeOptimizador de la clusula FROM de las instrucciones SELECT o UPDATE Suplanta las opciones de bloqueo en el nivel de sesin
31
Interbloqueos
Cmo SQL Server termina los interbloqueos Cmo minimizar los interbloqueos Cmo personalizar la configuracin de tiempo de espera de bloqueo
32
Ventana Actividad actual Procedimiento almacenado de sistema sp_lock Analizador de SQL Monitor de sistema de Windows 2000 Informacin adicional
33
11
11
Usuario de la Aplicacin Begin_transaction Read, Write, Abort, EOT Administrador de Transacciones (TM) Read, Write Abort, EOT
Usuario de la Aplicacin
Resultados
Administrador de Recuperacin
34
Control de Concurrencia
Control de concurrencia
La ejecucin concurrente de transacciones puede interferir con otras, produciendo resultados incorrectos, incluso si cada transaccin es correcta cuando se ejecuta en forma aislada.
35
S1: R1(X),R2(X),W1(X),R1(Y),W2(X),C2,W1(Y),C1; Problema: El dato X tiene un valor incorrecto por que su valor es actualizado por T1 es perdido debido a la sobreescritura de T2. El sistema operativo usa exclusion mutua. Operaciones cortas sobre datos simples Bajo costo de la sincronizacin es importante En la base de datos se necesita hacerlo mejor. Grandes operaciones en grandes bases de datos La contensin de datos es importante.
36
12
12
Tiempo
Problema: El dato X leido por T2 es sucio (incorrecto) porque Debido al hecho de que T1 aborto antes de terminar (commit), el sistema debe deshacer los efectos actualizados por el cambio de X y regresarlo a su valor original. Es creado por una transaccin que no ha sido terminada y que no ha sido comprometido. Desafortunadamente T ha leido temporalmente el valor de X.
37
13
13