Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq890096
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas - Administração de Banco de Dados
Suponha que um programador tenha especificado a seguinte sequência de comandos SQL:set transaction isolation level repeatable read; Select max(salario) from funcionarios; Update funcionarios set salario = salario*10 where salario < (select avg(salario) from funcionarios); commit; Ao definir esse nível de isolamento para sua transação, o programador está sujeito à ocorrência de problemas de acesso concorrente com outras transações. Analise cada assertiva abaixo, assinalando V, se verdadeira, ou F, se falsa. ( ) Leitura suja. ( ) Leitura não repetitiva. ( ) Registro fantasma. A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
  1. AV – V – F.
  2. BV – V – V.
  3. CF – F – V.
  4. DF – V – V.
  5. EF – F – F.
Revelar gabarito e comentário

GabaritoC — F – F – V.

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 em SQL

Gabarito: letra C. A sequência correta é F – F – V. No nível de isolamento REPEATABLE READ, as leituras sujas (dirty read) e as leituras não repetitivas (nonrepeatable read) são prevenidas, mas os registros fantasmas (phantom read) podem ocorrer, conforme o padrão SQL.

A banca testa o conhecimento dos níveis de isolamento e quais problemas de concorrência cada um permite. A tabela abaixo resume:

Problema

REPEATABLE READ

Leitura suja

Não permite

Leitura não repetitiva

Não permite

Fantasma

Permite

1ª afirmação — ❌ Falsa (Leitura suja)

O REPEATABLE READ impede leitura suja, pois nenhuma transação pode ler dados não commitados de outra transação. Portanto, a afirmação de que o programador está sujeito a esse problema é falsa.

2ª afirmação — ❌ Falsa (Leitura não repetitiva)

O REPEATABLE READ garante que, se uma transação lê um dado duas vezes, o valor será o mesmo (a menos que a própria transação o modifique). Portanto, leitura não repetitiva é prevenida.

3ª afirmação — ✅ Verdadeira (Registro fantasma)

O REPEATABLE READ não impede o surgimento de registros fantasmas, pois novas linhas que satisfazem a condição de busca podem ser inseridas por outra transação entre leituras da mesma consulta. Apenas o nível SERIALIZABLE previne fantasmas.

Conclusão: A sequência correta é F – F – V, correspondente à letra C.

PEGA ESSA DICA!

Decore a tabela dos níveis de isolamento do SQL. Lembre-se: READ UNCOMMITTED permite os três; READ COMMITTED só evita leitura suja; REPEATABLE READ evita leitura suja e não repetitiva; SERIALIZABLE evita todos. Os fantasmas são o último a ser eliminado.

Link permanente: /questoes/qq890096