Uma transação SQL executa operações que modificam o banco de...

Próximas questões
Com base no mesmo assunto
Q2172659 Banco de Dados
Uma transação SQL executa operações que modificam o banco de dados. O comportamento da transação é determinado por princípios de correção da aplicação e do banco de dados, além de configurações que determinam o modo de acesso, área de diagnóstico e nível de isolamento. No SQL, o nível de isolamento é definido no comando SET TRANSACTION e pode ser: serializable, repeatable read, read committed e read uncommitted. Analise as assertivas abaixo:
I. A opção default do SET TRANSACTION, para o nível de isolamento, é READ COMMITED, que garante que a transação não lerá dados de transações que não foram finalizadas. II. Ao definir o nível de isolamento como REPEATABLE READ, a transação será executada em completo isolamento, portanto não lerá dados de transações que não foram finalizadas com sucesso e, somente depois que ela terminar com sucesso, os dados que está alterando poderão ser acessados por outras transações. III. A opção READ UNCOMMITED permite que a transação leia dados de transações ativas que ainda não foram efetivados.
Quais estão corretas?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - Apenas III.

Para resolver esta questão, é necessário conhecer os diferentes níveis de isolamento em SQL e o que cada um deles significa em termos de visibilidade das transações e do tratamento de concorrência. Estes níveis são importantes para controlar como e quando as alterações feitas por uma transação tornam-se visíveis para outras transações e para prevenir fenômenos indesejados como "dirty reads", "non-repeatable reads", e "phantom reads".

A opção READ UNCOMMITTED permite que uma transação leia dados que foram inseridos, atualizados ou excluídos por outra transação mas que ainda não foram confirmados (commit). Isso pode levar a fenômenos conhecidos como "dirty reads", onde uma transação lê dados que podem ser descartados se a outra transação for revertida (rollback).

A assertiva III está correta porque descreve exatamente o comportamento do nível de isolamento READ UNCOMMITTED: a permissão para ler dados que ainda não foram confirmados por transações que estão em andamento. Essa é uma opção que pode ser útil em situações onde o desempenho é mais crítico do que a precisão dos dados lidos, mas deve ser utilizada com cautela devido aos riscos associados.

A assertiva I está incorreta porque embora READ COMMITTED seja frequentemente a configuração padrão, isso não é uma regra do SQL e pode variar dependendo do sistema de gerenciamento de banco de dados.

A assertiva II está incorreta porque o nível REPEATABLE READ garante que se uma transação lê uma linha, nenhuma outra transação pode modificar essa linha até que a primeira transação seja concluída. No entanto, isso não resulta em um "completo isolamento"; por exemplo, ainda podem ocorrer "phantom reads", onde novas linhas adicionadas por outras transações tornam-se visíveis. O isolamento completo é garantido pelo nível SERIALIZABLE.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito C

I) Read Commited, lê dados que ja foram commitados

II) Completo isolamento = Serializable

III) Correto

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo