Resumo

Neste módulo, aprendemos que:

  1. O controle de concorrência de acesso aos itens de dados é feito por meio de técnicas de bloqueio de acesso.
  2. As técnicas mais comuns de bloqueio são bloqueio binário e bloqueio compartilhado.
  3. 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.
  4. 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).
  5. 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.
  6. 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).
  7. Uma tabela especial de sistema controla os itens de dados bloqueados e as transações pendentes.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. O SGBD utiliza o gerenciamento do schedule para serializar corretamente as transações a fim de não gerar dependências.
  13. 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.