Se um determinado item de dado está bloqueado para gravação (permitindo a leitura) e outras transações só efetuam leituras, então essas transações não constarão na lista de transações pendentes. Nesse caso, esta lista só contém transações que necessitam de gravação.
Veja o resumo a seguir:
- Se a transação principal efetuar um bloqueio de gravação, então a lista de transações pendentes só pode ser de transações de gravação também, visto que transações que apenas leem o item de dado não estão bloqueadas.
- Se a transação principal efetuar um bloqueio de leitura e gravação, então a lista de transações pendentes pode ser de transações de leitura ou de gravação também, visto que nenhuma outra transação tem acesso ao item de dado enquanto este estiver bloqueado pela transação principal.
Vejamos um exemplo prático:
- Uma transação T1 está alterando o nome de um aluno na tabela ALUNO. Essa transação t1 precisa bloquear o item de dado “nome do aluno” até que a alteração do dado seja concluída. Nesse momento, nenhuma outra transação poderá ler o nome do aluno ou mesmo alterá-lo. Neste caso, estamos tratando de um bloqueio de leitura e gravação. Ao terminar de executar a transação T1, o bloqueio será desfeito e outras transações poderão ocorrer.
- Agora, uma transação T2 está lendo o nome de um outro aluno na tabela ALUNO. Enquanto essa transação T2 não for concluída, nenhuma outra transação poderá alterar o nome do aluno, entretanto, outras transações podem também ler o nome do aluno, pois, neste caso, o bloqueio desejado é apenas o de gravação.
Copyright © 2016 AIEC.