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
- A)write uncommitted.
Incorreta, porque "write uncommitted" não é o nome do nível padrão de isolamento do PostgreSQL e seria, em qualquer caso, o menos rigoroso, não o mais rigoroso.
- B)write committed.
Incorreta, porque "write committed" também não corresponde ao nível padrão do PostgreSQL e não representa o maior grau de isolamento.
- C)read committed.
Incorreta, porque read committed é um nível intermediário, permitindo que cada comando veja apenas dados já confirmados, mas ainda sem a rigidez máxima.
- D)repeatable read.
Incorreta, porque repeatable read é mais forte que read committed, porém ainda fica abaixo de serializable na escala de isolamento.
- E)serializable.
Correta, porque serializable é o nível mais rigoroso de isolamento, buscando o efeito de execução em série das transações.
Gabarito: E
Em transações, o isolamento é o que evita que uma operação "espie" a outra no meio do caminho. Pense assim: quanto maior o isolamento, menor a chance de bagunça, mas também maior a chance de o sistema ficar mais rígido e com menos concorrência. No PostgreSQL 17, os níveis seguem uma escala de rigor, indo de read committed até serializable. O ponto central da questão é este: o nível mais rigoroso é o serializable, porque ele faz o comportamento das transações se aproximar ao máximo de uma execução em série, uma de cada vez, como se não existisse concorrência. Isso reduz ao extremo os fenômenos de leitura suja, leitura não repetível e anomalias de leitura fantasma. Já o repeatable read é forte, mas ainda fica abaixo do serializable. Ele garante que, ao reler dados já lidos, você veja os mesmos valores, mas não entrega o mesmo nível máximo de garantia lógica de serialização. Por isso, quando a questão pergunta o nível mais rigoroso, a resposta é a alternativa E. Esse raciocínio é compatível com a classificação clássica dos níveis de isolamento adotada pelos SGBDs e descrita na documentação do PostgreSQL: read committed, repeatable read e serializable, sendo este último o mais estrito. A banca gosta muito de trocar o nome do nível ou misturar termos parecidos para ver se você cai na armadilha.