Sei sulla pagina 1di 2

EVIDENCIA AA10-3 PARA LA ACTIVIDAD AA10-3 MANEJO DE TRANSACCIONES-BLOQUEOS-CONTROL

DE CONCURRENCIAS
ESPECIALIZACION TECNOLÓGICA EN GESTION Y SEGURIDAD DE BASES DE DATOS
RODRIGO BURITICA PAREDES CC94472151
SERVICIO NACIONAL DE APRENDIZAJE – SENA
NOVIEMBRE DE 2019

INTRODUCCIÓN

De acuerdo con lo propuesto para la presente actividad, en el presente documento encontrará el desarrollo de
las tareas solicitadas en el documento guía de la actividad.

Transacciones y bloqueos

Los motores de bases de datos, incorporan en su funcionalidad procedimientos, acciones y muchas veces
herramientas que permiten coordinar las acciones encaminadas al manejo de transacciones asociadas a una
Base de Datos, facilitando de esa forma el poder dar respuesta a los siguientes interrogantes:

¿Cómo es el manejo transaccional en una base de datos dependiendo del motor utilizado?

Una transacción es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final debe ser que se
ejecuten todas o ninguna de ellas.

Por regla general en un sistema de base de datos todas las operaciones relacionadas entre sí que se ejecuten
dentro un mismo flujo lógico de trabajo, deben ejecutarse en bloque. De esta manera si todas funcionan la
operación conjunta de bloque tiene éxito, pero si falla cualquiera de ellas, deberán retrocederse todas las
anteriores que ya se hayan realizado. De esta forma evitamos que el sistema de datos quede en un estado
incongruente.

SQL Server funciona en los modos de transacción siguientes:

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.

¿Cuándo se genera un bloqueo?

El bloqueo asegura la integridad de los datos almacenados dentro de las bases de datos. La gran finalidad de los
bloqueos es que impiden los conflictos de actualización. Se presentan cuando usuarios requieren la lectura o
modificación de datos que en ese instante están siendo modificados por otros usuarios.
¿Cómo se libera un bloqueo?

Utilizando el protocolo de bloqueo de dos fases con el cual se asegura, además de la unicidad de los bloqueos
para las transacciones incidentes, que aquéllos sean proporcionados solo cuando ninguno ha sido adjudicado de
vuelta, y que la devolución de los bloques se elabore cuando ninguno esté por concederse. En otras palabras,
mientras se concedan bloqueos a transacciones entrantes, no puede ser liberado ninguno por transacciones en
curso. De manera similar, cuando se tenga el proceso de liberación de bloqueos, no existirá ninguna transacción
en curso que pueda acceder a un nuevo bloque de la información que alguna vez liberó.

¿De qué forma se hace seguimiento a las transacciones en un determinado momento?

A través del Registro de Transacciones SQL Server cuyo principal propósito es asegurar que su base de datos
pueda restaurarse a un estado consistente en el caso de una falla del sistema. Adicionalmente, es usado para
realizar otras funciones como retrotraer cuando un comando correspondiente es usado y soporta replicación
transaccional y soluciones de alta disponibilidad. SQL Server registra información acerca de cada transacción
hecha en el registro de transacciones antes de que los cambios sean escritos a la base de datos. La cantidad de
información registrada depende del modelo de recuperación de su base de datos. SQL Server ofrece 3 modelos
de recuperación diferentes: Completo, Por medio de registros de operaciones masivas y Simple.

¿Cuándo múltiples usuarios acceden en un mismo instante de tiempo a un recurso de la Base de Datos,
como gestiona el motor la concurrencia?

A través del control de transacciones concurrentes el cual brinda un eficiente desempeño del Sistema de
Administración de Base de Datos, puesto que permite controlar la ejecución de transacciones que operan en
paralelo, accediendo a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.

El objetivo de este método de control de concurrencia es garantizar la no inferencia o la propiedad de aislamiento


de transacciones que se ejecutan de manera concurrente.

Los distintos objetivos atacan el problema garantizando que las transacciones se ejecuten en un plan que sea
serializarle, es decir, que el resultado sea equivalente a el resultante de ejecutar un plan en serie.