Resumo
Neste módulo, aprendemos que:
- O controle de concorrência de acesso aos itens de dados é feito por meio de técnicas de bloqueio de acesso.
- As técnicas mais comuns de bloqueio são bloqueio binário e bloqueio compartilhado.
- Um bloqueio de dados é gerenciado no SGBD por meio de tabelas de sistema onde cada registro representa o item de dado bloqueado e o tipo de bloqueio.
- A técnica de bloqueio binário possui apenas dois estados: 1 - item bloqueado (onde qualquer acesso é impedido) e 0 - item desbloqueado (onde qualquer tipo de acesso é permitido). O gerenciamento dessa técnica de bloqueio é feito por um bit de controle em cada item de dado do banco de dados (cada campo, de cada registro de cada tabela).
- A técnica de bloqueio compartilhado, também denominada bloqueio exclusivo, traz consigo a vantagem de bloquear apenas os itens de dados que sofrerão alteração, mantendo os demais itens de dados que são usados apenas para leitura disponíveis para as demais transações.
- Há três comandos básicos para o bloqueio compartilhado: read lock (bloqueia o item para leitura), write lock (bloqueia o item para gravação, mas permite a leitura), unlock (desbloqueia o item).
- Uma tabela especial de sistema controla os itens de dados bloqueados e as transações pendentes.
- Para efetivar um bloqueio, uma transação precisa: a) verificar se o item de dados está bloqueado; b) aguardar o desbloqueio ou bloquear o item; c) desbloquear o item ao término da transação.
- Por meio da conversão de bloqueio, podemos mudar o tipo de bloqueio compartilhado de um item de dado, seja de apenas leitura para leitura/gravação, como o oposto.
- A serialização é a capacidade de o SGBD organizar todas as transações pendentes de forma que uma transação de maior prioridade não dependa de uma transação de menor prioridade.
- Durante uma transação, o processo do bloqueio ocorre em duas fases, uma de expansão, onde os bloqueios são criados e uma de encolhimento, onde os bloqueios são liberados.
- O SGBD utiliza o gerenciamento do schedule para serializar corretamente as transações a fim de não gerar dependências.
- Quando duas transações criam dependências entre si, ocorre o que chamamos de deadlock. Quando isso ocorre, o SGBD possui mecanismos de cancelar uma das transações, no intuído de resolver o deadlock. Um dos mecanismos é baseado em controle de tempo de processamento (timeout).
Copyright © 2016 AIEC.