Pular para o conteúdo principal

Questão de Banco de Dados — Transações (Locks, ACID, etc.) — VUNESP 2025

Banco de DadosTransações (Locks, ACID, etc.)
Código
vu222882
Banca
VUNESP
Órgão
TJM SP
Ano
2025
Cargo
Ana BDJ ( )
Segundo o protocolo do bloqueio em duas fases, utilizado em bancos de dados relacionais, há uma dessas fases em que uma transação pode obter, mas não liberar bloqueios.   Tal fase recebe, especificamente, a denominação de fase de
  1. Acomposição.
  2. Bimposição.
  3. Cencolhimento.
  4. Dtransformação.
  5. Ecrescimento.
Revelar gabarito e comentário

GabaritoE — crescimento.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Protocolo de bloqueio em duas fases (2PL): fases de crescimento e encolhimento

Gabarito: letra E. No protocolo 2PL, a fase em que a transação pode obter bloqueios, mas não pode liberar nenhum, é a fase de crescimento (growing phase). A fase oposta, em que a transação pode liberar bloqueios mas não adquirir novos, é a fase de encolhimento (shrinking phase). Essa é a definição clássica do 2PL, presente em qualquer material de banco de dados.

O protocolo de bloqueio em duas fases (2PL – Two Phase Locking) é um mecanismo de controle de concorrência que garante a serializabilidade das transações, ou seja, que o resultado da execução concorrente seja equivalente a alguma execução serial. Ele opera em duas fases bem definidas:

  • Fase de crescimento (growing phase): a transação pode adquirir bloqueios (de leitura ou escrita) sobre os recursos de que precisa, mas não pode liberar nenhum bloqueio. Essa fase continua até que a transação tenha obtido todos os bloqueios necessários.

  • Fase de encolhimento (shrinking phase): inicia quando a transação libera seu primeiro bloqueio. A partir daí, ela pode liberar bloqueios que não são mais necessários, mas não pode adquirir novos bloqueios.

A lógica por trás dessa divisão é simples: enquanto a transação está "crescendo", ela está coletando os recursos de que precisa para executar; quando começa a "encolher", ela já tem tudo e só vai liberando o que não usa mais. Isso impede que uma transação libere um recurso e depois tente obtê-lo novamente, o que poderia quebrar a serializabilidade.

Um exemplo prático: imagine uma transação T1 que precisa atualizar duas contas bancárias, A e B. Na fase de crescimento, T1 solicita e obtém o bloqueio exclusivo sobre A e depois sobre B. Somente após obter todos os bloqueios é que T1 executa as operações e, ao final, entra na fase de encolhimento, liberando primeiro o bloqueio de B e depois o de A. Se T1 tentasse liberar o bloqueio de A antes de obter o de B, estaria violando o protocolo.

A pegadinha da banca aqui é justamente inverter os nomes das fases ou usar termos que não existem no protocolo. As alternativas A, B e D (composição, imposição, transformação) são termos inventados, sem relação com o 2PL. A alternativa C (encolhimento) é a fase oposta — nela a transação pode liberar, mas não obter bloqueios. A única que corresponde à descrição do enunciado é a crescimento.

NÃO CAIA NESSA!

A banca troca as fases do 2PL: o candidato que memorizou apenas os nomes pode confundir "crescimento" com "encolhimento". Lembre-se: na fase de crescimento a transação só obtém bloqueios; na fase de encolhimento ela só libera. O enunciado diz "pode obter, mas não liberar" — isso é crescimento, não encolhimento.

  1. 1Fase de crescimentoobtém bloqueios, não libera
  2. 2Fase de encolhimentolibera bloqueios, não obtém
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Composição não é uma fase do protocolo 2PL. O termo não existe na literatura de controle de concorrência. A banca o incluiu apenas como distrator, sem relação com o funcionamento do protocolo.

Alternativa B — ❌ Incorreta

Imposição também não é uma fase do 2PL. Não há qualquer referência a esse termo no contexto do protocolo de bloqueio em duas fases. É um distrator puro.

Alternativa C — ❌ Incorreta

Encolhimento é a fase oposta à descrita no enunciado. Na fase de encolhimento (shrinking phase), a transação pode liberar bloqueios, mas não pode obter novos. O enunciado pede exatamente o contrário: "pode obter, mas não liberar". Portanto, está incorreta.

Alternativa D — ❌ Incorreta

Transformação não é uma fase do protocolo 2PL. Assim como as alternativas A e B, é um termo inventado pela banca, sem fundamento técnico.

Alternativa E — ✅ Correta ⟵ GABARITO

Crescimento é exatamente a fase descrita no enunciado. Na fase de crescimento (growing phase), a transação pode adquirir bloqueios sobre os recursos, mas não pode liberar nenhum. Essa fase se estende até que a transação tenha obtido todos os bloqueios de que necessita. É a definição literal do protocolo 2PL.

Gabarito: letra E

Link permanente: /questoes/vu222882