Anda di halaman 1dari 15

ESPECIALIZACIÓN TECNOLÓGICA EN GESTION Y SEGURIDAD DE BASES DE

DATOS (1881772)

FASE DEL PROYECTO 3: EJECUCIÓN

AA10-Ev2-Manejo de transacciones, bloqueos y control de concurrencia


ejecutando la práctica propuesta.

Presentado por: Oscar Javier Lozano Cifuentes.

Instructor: Hugo Andrés Trujillo Montealegre.

SERVICIO NACIONAL DE APRENDIZAJE

SENA

09/09/19

REGIONAL DISTRITO CAPITAL - CENTRO DE SERVICIOS FINANCIERO


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

1. INTRODUCCIÓN.

Los administradores de base de datos tienen varias responsabilidades en los


procesos de control del rendimiento para lo cual uno de los elementos básicos a
detectar es el control de concurrencia de distintos usuarios.

De igual manera el control de concurrencia es uno de los principios


fundamentales a administrar ya que en las bases de datos siempre se debe
garantizar la consistencia y disponibilidad de la información.

La persistencia del almacenamiento de datos, el control de acceso no autorizado


y las actualizaciones correctas de los usuarios son otros aspectos de alta
prioridad que se debe tener en un buen proceso de Gestión de Base de Datos.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 2


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

2. OBEJTIVOS.

Controla los procesos para la gestión de transacciones, bloqueos y el control de


concurrencia en las Bases de Datos.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 3


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

CONTROL DE CONCURRENCIA.

El control de accesos concurrentes y específicamente de transacciones


concurrentes es manejado por un módulo del dbms llamado "scheduler".
Muchos de los datos de la base no se encuentran nada más en disco, sino
también en los buffers de memoria, de ahí que el scheduler interactúa con ellos
y en su defecto solicita la lectura de los datos del disco.

 Mecanismo para asegurar la propiedad de aislamiento.


 Protocolo de Bloqueo: Reglas acerca de cómo se deben.
 acceder los recursos para generar planificaciones secuenciales (vistas o
conflictos).
 Inanición: Cuando una transacción debe esperar por siempre (1).
 Interbloqueos: (dead locks).
 Perder la concurrencia (Todo secuencial).
 Largas esperas.

CONTROL DE CONCURRENCIA OPTIMISTA.

El único enfoque consistente con una alta concurrencia y una alta escalabilidad
es el control de concurrencia optimista con versiona miento. El chequeo de
versión utiliza números de versión, o sellos de fecha (timestamps), para detectar
actualizaciones en conflicto y para prevenir la pérdida de actualizaciones.
Hibernate proporciona tres enfoques posibles de escribir código de aplicación
que utilice concurrencia optimista. Los casos de uso que mostramos se
encuentran en el contexto de conversaciones largas, pero el chequeo de
versiones tiene además el beneficio de prevenir la pérdida de actualizaciones en
transacciones individuales de la base de datos.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 4


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

LIVELOCK.

Espera indefinida de una transacción por un bloqueo que no se llega a conceder


porque se cede a otras transacciones.

Una solución (sistemas operativos): estrategia first-come-first-served (se


atiende al primero que llega).

DEADLOCK.

T1: LOCK A; LOCK B; UNLOCK A; UNLOCK B;


T2: LOCK B; LOCK A; UNLOCK B; UNLOCK A;
T1 y T2 bloquean A y B => Espera indefinida de T1 y T2.

Soluciones (sistemas operativos):

1. Concesión simultánea de todos los bloqueos de una transacción.


2. Asignar un orden lineal arbitrario a los elementos.

BLOQUEO PESIMISTA.

El modelo de bloqueo pesimista impide actualizaciones simultáneas de los


registros. Tan pronto como un usuario empieza a actualizar un registro, se coloca
un bloqueo sobre el mismo. Se informa a otros usuarios que intentan actualizar
este registro de que otro usuario tiene una actualización en curso. Los otros
usuarios deben esperar hasta que el primer usuario haya acabado de confirmar
los cambios, liberando de esta forma el bloqueo del registro. Sólo entonces
puede otro usuario realizar cambios basados en los cambios del usuario anterior.

Una ventaja del modelo de bloqueo pesimista es que impide el problema de la


resolución de conflictos evitando los conflictos. Las actualizaciones se serializan
y cada actualización posterior se inicia con los cambios confirmados del registro
del usuario anterior.

El bloqueo pesimista es un enfoque útil cuando se pueden retardar


actualizaciones posteriores hasta que finalice una actualización anterior. Esto
normalmente implica que las actualizaciones se producen en un intervalo corto
de tiempo.

SERIALIZACIÓN DE TRANSACCIONES.

Permite el proceso de transacciones asignándoles tiempos de procesamiento el


cual permite incrementar el rendimiento del sistema ya que se ejecuta un
máximo de procesos en forma concurrente y no a través de una serie. La ventaja

SERVICIO NACIONAL DE APRENDIZAJE - SENA 5


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

es que a un mismo tiempo de reloj se pueden hacer dos operaciones, aunque el


proceso de sincronización es más complicado.

Un aspecto muy importante en el manejo de transacciones es el de mantener y


aplicar algoritmos de control sobre los datos o recursos; para ese control
también se utilizan protocolos que proporcionen confiabilidad como lo siguientes:

 Atomicidad.
 Protocolos de recuperación total.
 Protocolos de compromiso global.

BLOQUEOS.

Un bloqueo es una información del tipo de acceso que se permite a un elemento.


El SGBD impone los bloqueos necesarios en cada momento. El gestor de acceso
a los datos implementa las restricciones de acceso. En algunos sistemas se
permite que el usuario pueda indicar el bloqueo más adecuado (locking hints).

Tipos de bloqueo con respecto a la operación:

 read-locks: sólo permite lectura


 write-locks: permite lectura y escritura

El gestor de bloqueos almacena los bloqueos en una tabla de bloqueos:

(<elemento>, <tipo de bloqueo>, <transacción>)=(E,B,T)

La transacción T tiene un tipo de bloqueo B sobre el elemento E. Normalmente,


E es clave, aunque no siempre, porque varias transacciones pueden bloquear el
mismo elemento de forma diferente.

NIVELES DE BLOQUEO.

Especifica la granularidad del bloqueo

 Fila: Fila individual (Clave: Fila de un índice).


 Página: Páginas (8KB).
 Extent: Extensión (grupo de 8 páginas contiguas de datos o índices).

MODOS DE BLOQUEO.

Especifica el modo en que se bloquea un elemento:

SERVICIO NACIONAL DE APRENDIZAJE - SENA 6


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

 Compartido: para operaciones sólo de lectura. Se permiten lecturas


concurrentes, pero ninguna actualización.

 Actualización: para operaciones que pueden escribir. Sólo se permite que


una transacción adquiera este bloqueo. Si la transacción modifica datos,
se convierte en exclusivo, en caso contrario en compartido.

 Exclusivo. para operaciones que escriben datos. Sólo se permite que una
transacción adquiera este bloqueo.

 Intención: se usan para establecer una jerarquía de bloqueo. Por ejemplo,


si una transacción necesita bloqueo exclusivo y varias transacciones tienen
bloqueo de intención, no se concede el exclusivo.

 Intención compartido. Bloqueo compartido.

 Intención exclusivo. Bloqueo exclusivo.

 Compartido con intención exclusivo. Algunos bloqueos compartidos y otros


exclusivos.

 Esquema. para operaciones del DDL.

 Actualización masiva. En operaciones de actualización masiva.

 Table: Tabla completa.

 Database: Base de datos completa.

BLOQUEO DE DOS FASES ESTRICTO.

Se usa para solucionar el problema anterior.

1. Una transacción no puede escribir en la base de datos hasta que se haya


alcanzado su punto de compromiso. (Evita los retrocesos en cascada)
2. Una transacción no puede liberar ningún bloqueo hasta que haya finalizado
de escribir en la base de datos, i.e., los bloqueos no se liberan hasta
después del punto de compromiso

PROTOCOLOS BASADOS EN GRAFOS.

A menudo es útil observar el conjunto de elementos de datos de la base de datos


como una estructura de grafo. Por ejemplo:

1. Organización lógica o física de los elementos.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 7


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

2. Definición de elementos de varios tamaños, donde los grandes engloban a


los pequeños. Ej:

Relacional: tupla ⊆ bloque ⊆ relación ⊆ base de datos.

3. Control de concurrencia efectivo.

Se pueden diseñar protocolos que no sean de dos fases pero que aseguren
la secuencialidad. En general, sea { , , , } 1 2 n D = d d K d el conjunto
de todos los elementos de datos de la base de datos dotado de un orden
parcial →. Si en el grafo existe un arco i j d →d, entonces la transacción
que acceda tanto a i d como a j d debe acceder primero a i d y después a
j d.

PROTOCOLO DE ÁRBOL.

Caso particular de protocolo basado en grafos, grafos que sean árboles con raíz.

REGLAS:

1. Cada transacción i T bloquea al menos un elemento.


2. El primer bloqueo de i T puede ser sobre cualquier elemento.
3. Sucesivos bloqueos de i T sólo pueden ser sobre elementos cuyo padre
haya bloqueado i T.
4. Los elementos se pueden desbloquear en cualquier momento.
5. i T no puede bloquear de nuevo un elemento que haya bloqueado y
desbloqueado anteriormente.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 8


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

T1: LOCK B; LOCK E; LOCK D; UNLOCK B; UNLOCK E; LOCK G; UNLOCK D;


UNLOCK G;
T2: LOCK D; LOCK H; UNLOCK D; UNLOCK H;
T3: LOCK B; LOCK E; UNLOCK E; UNLOCK B;
T4: LOCK D; LOCK H; UNLOCK D; UNLOCK H;

TRANSACCIONES:

Cada i T lleva asociada una marca temporal fijada ( ) i MT T.

Si Ti se selecciona antes que Tj , entonces ( ) ( ) i j MT T < MT T.

El valor de ( ) i MT T puede extraerse del reloj del sistema o con contadores


lógicos de transacciones.

ELEMENTOS:

Cada elemento de datos D lleva asociado dos marcas temporales:

MTR(D): mayor marca temporal de todas las transacciones que ejecutan con
éxito READ D;
MTW(D ): mayor marca temporal de todas las transacciones que ejecutan con
éxito WRITE D;

PROTOCOLO DE ORDENACIÓN POR MARCAS TEMPORALES.

Asegura que todas las operaciones leer y escribir conflictivas se ejecutan en el


orden de las marcas temporales.

1. Supóngase que la transacción Ti ejecuta READ(D).

a) Si MT(Ti) < MTW(D) entonces Ti necesita leer un valor de D que ya se ha


sobrescrito. Por tanto se rechaza la operación READ y Ti se retrocede.
b) Si MT(Ti) ≥ MTW(D) entonces se ejecuta la operación READ y MTR(D) se
asigna al máximo de MTR(D) y de MT(Ti).

2. Supóngase que la transacción Ti ejecuta WRITE(D).

a) Si MT(Ti) < MTR(D) entonces el valor de D que produce Ti se necesita


previamente y el sistema asume que dicho valor no se puede producir
nunca. Por tanto, se rechaza la operación WRITE y Ti se retrocede.
b) Si MT(Ti) < MTW(D) entonces Ti está intentando escribir un valor de D
obsoleto. Por tanto, se rechaza la operación WRITE y Ti se retrocede.
c) En otro caso se ejecuta la operación WRITE y MT(Ti) se asigna a MTW(D).

SERVICIO NACIONAL DE APRENDIZAJE - SENA 9


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

GESTIÓN DE FALLOS DE TRANSACCIONES.

Causas de aborto:

1. Fallo de la transacción: interrupción por el usuario, fallo aritmético,


privilegios de acceso...
2. Deadlock->aborto de una transacción
3. Algoritmos de secuencialidad.
4. Error software o hardware

Fácil: 1, 2 y 3. Difícil: 4. Puntos de recuperación por copias de seguridad.

COMPROMISO DE TRANSACCIONES.

Transacciones activas. En ejecución.

Transacciones completadas. Sólo pueden abortar por causa grave: 4.

Punto de compromiso: COMMIT. Momento a partir del cual se entienden


completadas.

Las transacciones comprometidas ni se retroceden ni se rehacen.

RECUPERACIÓN DE CAÍDAS.

Tipos de caídas:

 Error de memoria volátil.


 Error de memoria permanente.

Problema: asegurar la atomicidad de las escrituras de las transacciones. Puede


haber una caída del sistema antes de que se hayan escrito todos los datos
modificados por una transacción.

HERRAMIENTAS PARA EL MONITOREO Y MANEJO DE TRANSACCIONES.

CÓMO MONITOREAR INSTANCIAS Y BASES DE DATOS SQL SERVER.

MONITOR DE ACTIVIDAD.

Activity Monitor rastrea solo las métricas de SQL Server más importantes. Para
obtenerlas, ejecuta consultas contra su instancia SQL Server anfitrión cada 10
segundos. EL desempeño es monitoreado sólo mientras Activity Monitor está
abierto, lo que lo hace una solución ligera con casi ningún costo extra.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 10


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

Las métricas son mostradas en 5 paneles colapsables: Overview, Processes,


Resource Waits, Data File I/O, y Recent Expensive Queries.

El panel Overview muestra el porcentaje de tiempo del procesador, número de


tareas en espera, operaciones I/O en la base de datos en MB/seg, y el número
de requerimientos batch.

El panel Procesos muestra procesos de SQL Server actualmente funcionando


en la instancia. La información mostrada es: Login, aplicación y anfitrión usados,
estado de tarea y comando, tiempo de espera, etc. La información en la tabla
puede ser filtrada por el valor de la columna específico.

El menú contextual del panel Procesos provee una característica útil para un
análisis más profundo y resolución de problemas. Es el rastreo de procesos
seleccionado en SQL Server Profiler.

EL panel Esperas de recursos muestra esperas para diferentes recursos:


memoria, compilación, red, etc.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 11


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

Muestra el tiempo de espera (el tiempo que las tareas de SQL Server están
esperando en recursos del sistema), el tiempo de espera reciente, el tiempo
acumulativo de espera y el contador de espera promedio.

El panel E/S de archivo de datos muestra una lista de todos los archivos de
base de datos: MDF, NDF y LDF, sus nombres y rutas, actividad reciente de
lectura y escritura y tiempo de respuesta.

EL panel Consultas costosas recientes muestra las consultas en los últimos


30 segundos que usaron más recursos: procesador, memoria, disco y red. El
menú contextual permite abrir la consulta en una pestaña de consultas de SQL
Server Management Studio y abrir su plan de ejecución.

RECOLECTOR DE DATOS.

Recolector de datos es otra característica de monitoreo y optimización integrada


en SQL Server Management Studio. Colecta métricas de desempeño de
instancias SQL Server, lasguarda en un repositorio local de tal manera que
puedan ser usadas para un análisis posterior. Usa Data Warehousing, SQL Server
Agent e Integration Services.

A diferencia de Monitor de actividad, Recolección de datos le permite especificar


las métricas que monitoreará. Ofrece tres conjuntos integrados de métricas
(colectores de datos) con las métricas de monitoreo de desempeño más
importantes y comunes. Para monitorear métricas de desempeño adicionales,
colectores de datos personalizados pueden ser creados vía código T-SQL o API.
SERVICIO NACIONAL DE APRENDIZAJE - SENA 12
GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

El reporte integrado Uso del disco está disponible en el menú contextual


Recopilación de datos. Muestra el espacio usado por los archivos de la base de
datos, las tendencias de crecimiento y el crecimiento promedio diario.

El conjunto de recolectores de datos Estadísticas de consulta recolecta código


de consultas, estadísticas, actividad y planes de ejecución de consultas para las
10 consultas más costosas.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 13


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

EL conjunto de recolectores de datos Actividad del servidor recolecta datos


acerca del procesador, la memoria, el disco E/S y el uso de red. El reporte
muestra la CPU, la memoria, el disco E/S y el uso de la red, las esperas de SQL
Server, la instancia de SQL Server y la actividad del sistema operativo.

SERVICIO NACIONAL DE APRENDIZAJE - SENA 14


GSBD - ESPECIALIZACIÓN EN GESTIÓN Y SEGURIDAD DE BASES DE DATOS - SENA 2019

BIBLIOGRAFÍA.

ULLMAN, J.D. "Principles of Databases and Knowledge Base Systems", Vol. I,


Computer Science Press, 1998

SILBERSCHATZ, A., KORTH, H.F., SUDARSHAN, S. "Fundamentos de bases de


datos", 3ª edición, McGraw-Hill, 1998.

https://senaintro.blackboard.com/bbcswebdav/pid-113668215-dt-content-rid-
127063878_4/institution/semillas/217219_1_VIRTUAL/OAAPs/OAAP5/aa10/oa
_bloqueosconcurrencia/index.html

https://senaintro.blackboard.com/bbcswebdav/pid-113668215-dt-content-rid-
127063878_4/institution/semillas/217219_1_VIRTUAL/OAAPs/OAAP5/aa10/oa
_bloqueosconcurrencia/oc.pdf

SERVICIO NACIONAL DE APRENDIZAJE - SENA 15