Vamos falar sobre os tipos de bloqueio que podem acontecer sobre os recursos de um banco de dados. Primeiro, bloqueio de leitura ou readlock. Esse tipo de bloqueio é aplicado quando uma transação precisa ler dados de um determinado recurso. Permite também que várias transações leiam os mesmos dados simultaneamente e pode bloquear as transações de escrita, resultando justamente em demora ou atraso para transações de atualização, de update. Bloqueio de escrita. Quando uma transação precisa modificar ou escrever dados em um recurso Impede que as demais transações façam leituras, atualizações ou exclusões Sobre estes dados que estão com este bloqueio vigente Aqui nós temos a exclusividade durante operações de escrita. Pode ser que aconteçam alguns bloqueios e demoras ou atrasos durante muitas transações concorrentes. Então aqui nós temos dois tipos fundamentais, dois tipos básicos. Vamos ver este conceito se desdobrando daqui para frente entre o conceito de compartilhado e de exclusivo para os bloqueios. Vamos avançar um pouquinho mais. Nós temos o bloqueio compartilhado ou Shared Lock ou frequentemente representado apenas pela letra S, permite que várias transações leiam os mesmos dados simultaneamente, exatamente como a gente viu no Read Lock, no bloqueio de leitura, impede que outras transações modifiquem os dados durante a vigência do bloqueio e pode causar bloqueios de escrita, justamente porque o dado está sendo lido naquele instante e, consequentemente, também demoras nos processos de atualização. Bloqueio exclusivo ou Exclusive Lock, também frequentemente descrito, denominado pela letra X. frequentemente descrito, denominado pela letra X. Então este bloqueio é aplicado quando uma transação precisa de acesso exclusivo a um recurso para justamente fazer a escrita ou modificação dos dados, impede que outras transações realizem acesso ao recurso, àquela linha, aquele registro que está sendo modificado, enquanto este bloqueio estiver ativado. E vai evitar conflitos de escrita. Temos também o bloqueio de atualização, o Update Lock, ou também sinalizado com uma letra U. É uma combinação do bloqueio de leitura e de escrita. Vai permitir que uma transação leia e atualize os dados de maneira exclusiva. Então, vai evitar as leituras sujas e é similar ao bloqueio compartilhado, porém, com um nível um pouco maior de flexibilidade. E este bloqueio de update, ele também pode evoluir para o bloqueio compartilhado. Então, se algum recurso que está sendo atualizado já tiver o bloqueio Shared, o Update vai aplicar um outro Lock Shared no objeto de destino, na tabela de destino. Então, este é o bloqueio de atualização. Então, este é o bloqueio de atualização. Nós temos também o bloqueio de intenção compartilhado, ou Intent Shared Lock, ou pela sigla IS. Então, indica a intenção que uma determinada transação tem de colocar bloqueios de leitura em níveis mais baixos. Então, é usado para a gente ter uma coordenação de bloqueios em diferentes níveis de granularidade. Bloqueio de intenção exclusivo, Intent Exclusive Lock, ou IX, existe a intenção de uma transação de colocar bloqueios de escrita em níveis mais baixos. Também é utilizado para coordenar bloqueios em diferentes níveis de granularidade. E temos também o bloqueio de intenção compartilhado exclusivo, Shared Intent Exclusive Lock ou SIX. É a intenção que uma transação tem de adquirir bloqueios de leitura e escrita em níveis mais baixos. Indica que outros processos podem adquirir bloqueios de leitura em níveis inferiores. Logo em seguida, nós vamos ver que estes níveis podem ser banco de dados como nível mais superior, podem ser banco de dados como nível mais superior, tabela como nível após o banco de dados, a página como nível após a tabela, objeto como nível após a página e a linha como nível mais baixo que um bloqueio pode ser aplicado.