Em sistemas gerenciadores de bancos de dados relacionais, o ...

Próximas questões
Com base no mesmo assunto
Q4036232 Banco de Dados
Em sistemas gerenciadores de bancos de dados relacionais, o controle de concorrência busca garantir que transações simultâneas sejam executadas de forma segura, mantendo a consistência dos dados. Em um sistema bancário, a Transação A obteve bloqueio exclusivo sobre o registro da Conta Corrente e aguarda o bloqueio sobre o registro de Transferência, enquanto a Transação B obteve bloqueio exclusivo sobre o registro de Transferência e aguarda o bloqueio sobre o registro da Conta Corrente, formando uma espera mútua indefinida. Com base no conceito de deadlock em bancos de dados relacionais, assinale a alternativa CORRETA.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O enunciado descreve uma espera circular entre duas transações, com bloqueios exclusivos retidos por cada uma e recursos aguardados pela outra, o que caracteriza deadlock. Por isso, a questão é resolvida pela alternativa que indica a forma usual de tratamento desse impasse.

Tema central: Deadlock em SGBD
Análise das alternativas
A
Errada
Está errada porque o cenário narrado é de bloqueios mútuos com espera circular e ausência de progresso, o que caracteriza deadlock. A base afasta expressamente a classificação como livelock.
B
Errada
Está errada porque deadlock não depende de os registros pertencerem à mesma tabela. O fenômeno decorre da dependência circular entre recursos bloqueáveis, inclusive entre registros de tabelas diferentes.
C
Certa
A alternativa C está correta porque descreve o tratamento clássico do deadlock no controle de concorrência: o SGBD identifica uma transação como vítima, faz seu rollback e libera os bloqueios para que a outra transação prossiga.
D
Errada
Está errada porque faz afirmação absoluta indevida: dizer que o bloqueio otimista elimina a possibilidade de deadlock não é sustentado pela base. O fato de verificar conflitos no commit não autoriza concluir eliminação geral do problema em todos os contextos e implementações.
E
Errada
Está errada porque o protocolo 2PL garante serializabilidade por meio de bloqueios, mas não elimina deadlock. Pela base, transações sob 2PL podem, sim, entrar em espera circular.
Pegadinha da questão
Confundir deadlock com livelock e achar que 2PL ou bloqueio otimista eliminam o impasse.
Dica para questões semelhantes
  • Se houver posse de recurso por uma transação e espera pelo recurso retido por outra, formando ciclo, classifique como deadlock.
  • Para deadlock, o ponto decisivo é a espera circular entre recursos incompatíveis, não se os registros estão ou não na mesma tabela.
  • Não confunda garantia de serializabilidade com prevenção de deadlock: 2PL pode serializar e ainda assim permitir espera circular.
  • Desconfie de alternativas com termos absolutos como 'elimina a possibilidade' quando a base técnica não sustenta universalização.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo