Pular para o conteúdo principal

Questão de Banco de Dados — Concorrência em Banco de Dados — FUNDATEC 2026

Banco de DadosConcorrência em Banco de Dados
Código
qg685510
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Computação
O controle de concorrência em sistemas de banco de dados objetiva garantir que transações executadas simultaneamente produzam resultados equivalentes a alguma execução serial. Anomalias clássicas surgem quando a isolação entre transações é insuficiente. Nesse sentido, assinale a alternativa correta.
  1. AO Protocolo de Bloqueio em Duas Fases (2PL) garante a serializabilidade de escalonamentos: na fase crescente, a transação somente adquire bloqueios; na fase decrescente, somente os libera, sem adquirir novos bloqueios.
  2. BUma leitura suja (dirty read) ocorre quando duas transações leem o mesmo item concorrentemente e, a partir dessa leitura, cada uma calcula um novo valor e confirma sua escrita, de modo que a atualização da primeira é silenciosamente sobrescrita pela segunda — que desconhecia a modificação anterior — e definitivamente perdida.
  3. CO Protocolo de Bloqueio em Duas Fases (2PL) garante a propriedade de durabilidade das transações, assegurando que os efeitos de toda transação confirmada persistam mesmo após falhas do sistema.
  4. DUma leitura fantasma (phantom read) ocorre quando uma transação lê o mesmo item de dado duas vezes e obtém valores diferentes, porque outra transação o atualizou e confirmou entre as duas leituras.
  5. EA propriedade de atomicidade do ACID é a responsável por garantir que transações executadas concorrentemente fiquem completamente isoladas umas das outras, como se executassem em série.
Revelar gabarito e comentário

GabaritoA — O Protocolo de Bloqueio em Duas Fases (2PL) garante a serializabilidade de escalonamentos: na fase crescente, a transação somente adquire bloqueios; na fase decrescente, somente os libera, sem adquirir novos bloqueios.

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”.

Concorrência em Banco de Dados

Gabarito: letra A. O Protocolo de Bloqueio em Duas Fases (2PL) é um mecanismo clássico de controle de concorrência que garante a serializabilidade dos escalonamentos. Sua definição correta divide a transação em duas fases: a crescente (apenas aquisição de bloqueios) e a decrescente (apenas liberação de bloqueios, sem adquirir novos). As demais alternativas apresentam erros conceituais comuns, como trocar definições de anomalias ou propriedades ACID.

NÃO CAIA NESSA!

A banca explora confusões clássicas: a dirty read (leitura suja) é leitura de dados não confirmados, não a perda de atualização descrita em B (que é lost update). A phantom read (leitura fantasma) envolve inserção de novas linhas, não a re-leitura do mesmo item com valor diferente (que é non-repeatable read). Além disso, o 2PL não garante durabilidade (C) — esta é obtida por logs e mecanismos de recuperação. A atomicidade (E) não assegura isolamento; isolamento é uma propriedade separada do ACID.

Anomalias de concorrência
  • 1Dirty read (leitura suja)
    • Lê dado não confirmado
  • 2Non-repeatable read
    • Mesmo item, valores diferentes
  • 3Phantom read (leitura fantasma)
    • Novas linhas inseridas
  • 4Lost update (perda de atualização)
    • Escrita sobrescrita
  • 5Protocolo 2PL
    • Fase crescente
      • Só adquire bloqueios
    • Fase decrescente
      • Só libera bloqueios
    • Garante serializabilidade
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Define corretamente o Protocolo 2PL: a transação primeiro adquire todos os bloqueios necessários (fase crescente) e depois os libera (fase decrescente), sem adquirir novos bloqueios após iniciar a liberação. Esse comportamento garante a serializabilidade do escalonamento.

Alternativa B — ❌ Incorreta

Descreve uma perda de atualização (lost update), não uma dirty read. A leitura suja ocorre quando uma transação lê dados não confirmados (ainda não commitados) de outra transação. No cenário descrito, ambas leem o mesmo valor inicial, calculam e escrevem, resultando na sobrescrita da primeira — isso é um conflito de escrita sem isolamento adequado, mas não é dirty read.

Alternativa C — ❌ Incorreta

O Protocolo 2PL é um mecanismo de controle de concorrência para isolamento e serializabilidade, não para durabilidade. A durabilidade é garantida por técnicas de recuperação, como registros em log (write-ahead log) e checkpoints, que asseguram que os efeitos de transações confirmadas persistam mesmo após falhas.

Alternativa D — ❌ Incorreta

A descrição corresponde a uma leitura não repetível (non-repeatable read), onde o mesmo item de dado é lido duas vezes e obtém valores diferentes devido a uma atualização e commit de outra transação. A leitura fantasma (phantom read) ocorre quando uma transação executa a mesma consulta duas vezes e, na segunda, aparecem linhas adicionais (insert) que satisfazem a condição — não se trata de um único item, mas de um conjunto de registros.

Alternativa E — ❌ Incorreta

A propriedade que garante que transações concorrentes sejam isoladas umas das outras, como se executassem em série, é o isolamento (I do ACID), não a atomicidade. A atomicidade (A) garante que uma transação seja executada por completo ou totalmente desfeita (all-or-nothing).

Link permanente: /questoes/qg685510