Bloqueio (banco de dados)

Origem: Wikipédia, a enciclopédia livre.

Um bloqueio, como um bloqueio de leitura ou bloqueio de escrita, é usado quando vários usuários necessitam acessar simultaneamente um banco de dados. Isto previne que os dados sejam corrompidos ou invalidados quando vários usuários tentam ler enquanto outros escrevem no banco de dados. Qualquer usuário único pode apenas modificar aqueles registros de banco de dados (isto é, itens no banco de dados) para os quais eles aplicaram um bloqueio que os forneçam acesso exclusivo ao registro até que o bloqueio seja liberado. Bloqueio não apenas fornece exclusividade a escritas mas também previne (ou controla) leitura de modificações não finalizadas (também conhecidas como dados não comitados).[1]

Um bloqueio de leitura pode ser usado para prevenir que outros usuários leiam um registro (ou página) que está sendo atualizada, de forma que os outros não ajam sob informações que em breve estarão desatualizadas.

Mecanismos para bloqueio[editar | editar código-fonte]

Há dois mecanismos para bloquear dados em um banco de dados: bloqueio pessimístico e bloqueio otimístico. No bloqueio pessimístico um registro ou página é bloqueado imediatamente quando o bloqueio é solicitado, enquanto que em um bloqueio otimístico o registro ou página é bloqueado somente quando as alterações feitas naquele registro são atualizadas. Esta última situação apenas é apropriada quando houver menos chance de alguém precisar acessar o registro enquanto ele estiver bloqueado. Caso contrário, não podemos ter certeza que a atualização será bem sucedida pois a tentativa de atualização do registro falhará se outro usuário atualizar o registro primeiro. Com o bloqueio pessimístico é garantido que o registro será atualizado.

O grau de bloqueio pode ser controlado pelo nível de isolamento. A alteração de um bloqueio é chamada de conversão de bloqueio e o bloqueio pode ser atualizado (atualização de bloqueio) ou rebaixado (rebaixamento de bloqueio).

Referências


Ícone de esboço Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.