Questão de Banco de Dados — SQL — FUNDATEC 2023
- Código
- qq890096
- Banca
- FUNDATEC
- Órgão
- BRDE
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Sistemas - Administração de Banco de Dados
- AV – V – F.
- BV – V – V.
- CF – F – V.
- DF – V – V.
- EF – F – F.
GabaritoC — F – F – V.
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 |
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.
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.
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.
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