Quando um item de dados está bloqueado, nenhuma operação SQL pode ser feita nele, nem mesmo leitura. Já quando o item de dados está desbloqueado, qualquer operação SQL pode ser feita.
O bloqueio binário é conferido por meio de um bit de acesso a cada item de dado, de cada campo, de cada tabela. Esse bit pode assumir os valores 0 (desbloqueado) ou 1 (bloqueado). 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).Normalmente, o estado de cada item de dado do banco de dados é 0, ou seja, todos os dados estão acessíveis. Entretanto, quando uma transação é iniciada (start transaction), os itens de dados a serem consultados ou modificados são identificados e há a alteração do bit de acesso para 1, de forma que somente essa transação em execução pode acessar aquele(s) item(ns) de dado. Para as demais transações, o acesso é negado. Após a conclusão da transação (comando commit ou rollback), o bit é resetado, ou seja, volta a ser 0, liberando o acesso ao item de dado.
|
Caso uma transação tente acessar um item de dado bloqueado, ela entra em espera, e um tempo determinado pela configuração do sistema (SGBD) começa a ser contado. Caso o tempo se esgote sem que a transação inicial tenha desbloqueado o item de dados, a segunda transação recebe uma exceção de erro do tipo “time out” (expirado o prazo de espera). Caso a transação inicial se encerre e libere o acesso antes do prazo de time out, a segunda transação então é executada. Saiba+
|
Apesar de, estatisticamente falando, o tempo de espera médio de uma transação ser de poucos milissegundos, os prazos comuns de time out são configurados entre 10 segundos a um minuto. Entretanto, sistemas específicos podem ter qualquer valor configurado para o time out, como 1 segundo ou 1 hora. O subsistema gerenciador de bloqueio do SGBD é quem registra e controla os bloqueios dos itens de dados.
X