Sobre gerenciamento de transações em bancos de dados, assina...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: B
Para solucionar esta questão, é necessário compreender o conceito de deadlock e as estratégias de bloqueio em transações de bancos de dados. Transações são sequências de operações que devem ser tratadas como uma única unidade lógica de trabalho, e seguindo o princípio ACID (Atomicidade, Consistência, Isolamento e Durabilidade), as operações dentro de uma transação devem ser atômicas, mantendo a consistência dos dados, e devem ser isoladas de outras transações, resultando em uma persistência durável dos dados após a conclusão da transação.
Um deadlock ocorre quando duas ou mais transações esperam indefinidamente por recursos que a outra está bloqueando. Em termos técnicos, é uma situação de impasse na qual cada transação aguarda que a outra libere seus bloqueios de recursos antes de poder prosseguir.
Uma técnica para evitar deadlocks é o bloqueio de dois tempos (two-phase locking), que exige que a transação bloqueie todos os recursos necessários antes de começar a executar as operações e depois libere todos os bloqueios de uma vez após a conclusão das suas operações. A alternativa B está correta porque descreve essa técnica, afirmando que uma transação que adquire todos os bloqueios necessários antes de realizar qualquer operação reduz o risco de entrar em uma situação de deadlock, já que ela não precisará esperar por recursos adicionais que podem estar bloqueados por outras transações.
Essa estratégia de bloqueio é importante porque assegura a propriedade de isolamento entre as transações, garantindo que os recursos estejam disponíveis para a transação que os bloqueou, e, ao mesmo tempo, minimiza o risco de deadlock, uma vez que todos os bloqueios são adquiridos antes da execução da transação. No entanto, é importante notar que, embora a técnica de bloqueio de dois tempos minimize o risco, ela não garante totalmente a ausência de deadlocks, pois depende também de outros fatores como a ordem de obtenção dos bloqueios pelas transações concorrentes.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
a) Uma transação deve atender a todas as propriedades ACID
b) Se apenas parte dos dados fossem bloqueados inicialmente, poderia causar deadlock. Mas como todos os dados desejados foram bloqueados, então não há risco
c) Atualizações são primeiro persistidas em log e depois no banco
d) Arquivos de LOG são usado em UNDO e REDO
e) Bloqueio de leitura é compartilhado, ou seja, outras transições podem realizar a leitura. Porém, não é possível que outra transação faça atualização (bloqueio exclusivo)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo