Pular para o conteúdo principal

Questão de Banco de Dados — Concorrência em Banco de Dados — FGV 2025

Banco de DadosConcorrência em Banco de Dados
Código
fg108614
Banca
FGV
Órgão
DPE-RO
Ano
2025
Nível
Superior
Cargo
Analista de Redes e Comunicação de Dados - Classe B
Nos SGBDs, o isolamento das transações garante que as alterações de uma transação T1 não afetem outras transações Tn até que a T1 seja concluída. Considerando que o PostgreSQL 17 define quatro níveis distintos de isolamento de transações e que cada nível possui um grau de rigor próprio.O nível de isolamento mais rigoroso é o
  1. Awrite uncommitted.
  2. Bwrite committed.
  3. Cread committed.
  4. Drepeatable read.
  5. Eserializable.
Revelar gabarito e comentário

GabaritoE — serializable.

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

Níveis de isolamento de transações: qual o mais rigoroso?

Gabarito: letra E — Serializable. O nível serializable é o mais rigoroso porque garante o isolamento completo, prevenindo todos os fenômenos de concorrência: leitura suja, leitura não repetível e leitura fantasma (phantom read). Os níveis de isolamento são padronizados pelo SQL e adotados pelo PostgreSQL 17, sendo que o serializable é o topo da hierarquia de rigor.

A banca testa o conhecimento dos quatro níveis definidos pelo padrão SQL (read uncommitted, read committed, repeatable read e serializable) e a capacidade de identificar o mais forte. A tabela abaixo resume os fenômenos que cada nível permite ou evita:

Nível de isolamento

Leitura suja

Leitura não repetível

Leitura fantasma

Read uncommitted

Pode ocorrer

Pode ocorrer

Pode ocorrer

Read committed

Evita

Pode ocorrer

Pode ocorrer

Repeatable read

Evita

Evita

Pode ocorrer

Serializable

Evita

Evita

Evita

NÃO CAIA NESSA!

A banca alterou os nomes de dois níveis: em vez de read uncommitted e read committed, aparecem write uncommitted e write committed. Esses nomes não existem no padrão SQL. O candidato deve reconhecer que são distratores e lembrar que o nível correto mais brando é read uncommitted, e o mais rigoroso é serializable. Fique atento: a FGV costuma trocar termos para testar a literalidade.

  1. 1Read uncommitted
  2. 2Read committed
  3. 3Repeatable read
  4. 4Serializable
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Write uncommitted não existe como nível de isolamento. O nome correto é read uncommitted, que é o nível menos rigoroso (permite leitura suja). Portanto, não pode ser o mais rigoroso.

Alternativa B — ❌ Incorreta

Write committed também não é um nível real. O padrão é read committed, que evita leitura suja, mas permite leitura não repetível e fantasma. É mais rigoroso que read uncommitted, mas ainda está longe do serializable.

Alternativa C — ❌ Incorreta

Read committed é um nível válido, mas não é o mais rigoroso. Ele previne apenas leitura suja, permitindo leituras não repetíveis e fantasmas. Está em segundo lugar na escala de rigor.

Alternativa D — ❌ Incorreta

Repeatable read é mais rigoroso que read committed, pois evita leitura suja e não repetível. No entanto, ainda permite leituras fantasmas, o que o torna menos rigoroso que o serializable.

Alternativa E — ✅ Correta ⟵ GABARITO

Serializable é o nível máximo de isolamento. Ele garante que as transações executem como se fossem seriais (uma após a outra), evitando todos os fenômenos de concorrência. É a resposta correta segundo o padrão SQL e a documentação do PostgreSQL.

Gabarito: letra E.

Link permanente: /questoes/fg108614