Transacciones en SQL
Diapositivas del conjunto (8)
-
- Una transacción es una unidad única de trabajo.
- Si
- una transacción tiene éxito, todas las modificaciones de los datos
- realizadas durante la transacción se confirman y se convierten en una
- parte permanente de la base de datos. Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.
-
SQL Server funciona en los siguientes tres modos de transacción.
- Transacciones de confirmación automática
- Cada instrucción individual es una transacción.
- Transacciones explícitas
- Cada
- transacción se inicia explícitamente con la instrucción BEGIN
- TRANSACTION y se termina explícitamente con una instrucción COMMIT o
- ROLLBACK.
- Transacciones implícitas
- Se
- inicia implícitamente una nueva transacción cuando se ha completado la
- anterior, pero cada transacción se completa explícitamente con una
- instrucción COMMIT o ROLLBACK.
- Transacciones de ámbito de lote
- Una
- transacción implícita o explícita de Transact-SQL que se inicia en una
- sesión de MARS (conjuntos de resultados activos múltiples), que solo es
- aplicable a MARS, se convierte en una transacción de ámbito de lote.
- Si
- no se confirma o revierte una transacción de ámbito de lote cuando se
- completa el lote, SQL Server la revierte automáticamente.
-
- SQL Server proporciona las siguientes instrucciones de transacción.
- BEGIN DISTRIBUTED TRANSACTION
- ROLLBACK TRANSACTION
- BEGIN TRANSACTION
- ROLLBACK WORK
- COMMIT TRANSACTION
- SAVE TRANSACTION
- COMMIT WORK
-
- Una transacción debe ser una unidad atómica de
- trabajo, tanto si se realizan todas sus modificaciones en los datos,
- como si no se realiza ninguna de ellas.
-
- Cuando finaliza, una transacción debe dejar
- todos los datos en un estado coherente. En una base de datos relacional,
- se deben aplicar todas las reglas a las modificaciones de la
- transacción para mantener la integridad de todos los datos. Todas las
- estructuras internas de datos, como índices de árbol b o listas
- doblemente vinculadas, deben estar correctas al final de la transacción.
-
- Las modificaciones realizadas por
- transacciones simultáneas se deben aislar de las modificaciones llevadas
- a cabo por otras transacciones simultáneas. Una transacción reconoce
- los datos en el estado en que estaban antes de que otra transacción
- simultánea los modificara o después de que la segunda transacción haya
- concluido, pero no reconoce un estado intermedio. Esto se conoce como
- seriabilidad, ya que deriva en la capacidad de volver a cargar los datos
- iniciales y reproducir una serie de transacciones para finalizar con
- los datos en el mismo estado en que estaban después de realizar las
- transacciones originales.
-
- Una vez concluida una transacción, sus
- efectos son permanentes en el sistema. Las modificaciones persisten aún
- en el caso de producirse un error del sistema.
-
Especificar y exigir transacciones
- Los programadores de SQL son los responsables de iniciar y finalizar
- las transacciones en puntos que exijan la coherencia lógica de los
- datos. El programador debe definir la secuencia de modificaciones de
- datos que los dejan en un estado coherente en relación con las reglas de
- negocios de la organización. El programador incluye estas instrucciones
- de modificación en una sola transacción de forma que SQL Server
- Database Engine (Motor de base de datos de SQL Server) puede hacer
- cumplir la integridad física de la misma.
- Es responsabilidad de un
- sistema de base de datos corporativo, como una instancia de Motor de
- base de datos, proporcionar los mecanismos que aseguren la integridad
- física de cada transacción. Motor de base de datos proporciona:
- Servicios de bloqueo que preservan el aislamiento de la transacción.
- Servicios
- de registro que aseguran la durabilidad de la transacción. Aunque se
- produzca un error en el hardware del servidor, el sistema operativo o la
- instancia de Motor de base de datos, la instancia utiliza registros de
- transacciones, al reiniciar, para revertir automáticamente las
- transacciones incompletas al punto en que se produjo el error del
- sistema.
- Características de administración de
- transacciones que exigen la atomicidad y coherencia de la transacción.
- Una vez iniciada una transacción, debe concluirse correctamente; en caso
- contrario, la instancia de Motor de base de datos deshará todas las
- modificaciones de datos realizadas desde que se inició la transacción.
Información
- Descripción
- Transacciones en SQL
- Creado por
- chicowar76 · feb 2016
- Actualizado
- 17 ene 2017
- Visitas
- 175
- Etiquetas
- Valoración