Transações ACID em bancos de dados relacionais garantem pro...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - Nenhuma transação concorrente pode causar leituras fantasmas (phantom reads).
Tema central da questão: O foco está no nível de isolamento SERIALIZABLE, uma das propriedades ACID dos bancos de dados relacionais, responsável por controlar como as transações interagem em ambientes concorrentes. Essa configuração é fundamental para evitar problemas como leituras sujas, leituras não repetíveis e leituras fantasmas. É um tema recorrente em concursos, pois envolve a segurança e integridade dos dados em sistemas críticos.
Resumo teórico: Isolamento é uma das propriedades ACID (Atomicidade, Consistência, Isolamento, Durabilidade) e define o grau em que as operações de uma transação são isoladas de outras. O nível SERIALIZABLE é o mais rigoroso, garantindo que o resultado da execução concorrente de transações seja equivalente a alguma ordem serial, como se as transações ocorressem uma de cada vez, sem interferência mútua. Referência: Silberschatz, Korth, Sudarshan – Sistemas de Banco de Dados.
Justificativa da alternativa correta: A opção D se destaca pois o nível SERIALIZABLE previne até mesmo as leituras fantasmas (phantom reads). Isso significa que, durante uma transação, nenhuma outra transação concorrente pode inserir, modificar ou deletar linhas que possam afetar o resultado de queries repetidas dentro da mesma transação.
Análise das alternativas incorretas:
A - Errada. Dirty reads (leituras sujas) são impossíveis em SERIALIZABLE, pois bloqueios impedem que uma transação veja dados não confirmados de outra.
B - Errada. O nível SERIALIZABLE utiliza sim mecanismos de bloqueio (locks) ou controle de versão para garantir o isolamento completo.
C - Errada. O nível SERIALIZABLE assegura tanto atomicidade quanto consistência, de acordo com o modelo ACID.
E - Errada. SERIALIZABLE prioriza consistência e isolamento, mesmo que isso reduza o desempenho devido ao alto grau de controle concorrente.
Dicas de interpretação: Leia atentamente os conceitos-chave como "dirty reads", "bloqueios", "consistência", "phantom reads" e "desempenho". Palavras absolutas como "nenhuma" e "não" podem indicar o rigor da propriedade, ajudando a identificar a alternativa correta.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
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
Revisando os níveis de isolamento:
Read Uncommitted: permite leitura de dados não confirmados (dirty read). Muito frágil → não resolve.
Read Committed: garante que só lê dados já confirmados, mas ainda permite que os mesmos dados sejam modificados depois → não resolve o problema.
Repeatable Read: evita que os registros já lidos sejam modificados por outras transações, mas não impede inserções novas que mudem o resultado de consultas (phantom read).
Serializable: nível mais restritivo → garante que a transação seja executada como se fosse única, bloqueando alterações e inserções que afetariam o conjunto de resultados. É o único que evita tanto leituras sujas quanto não repetíveis e também leituras fantasmas.
Snapshot Read: depende do mecanismo de MVCC (multiversion concurrency control), mas a questão não está abordando esse cenário, e geralmente não é a resposta esperada em provas teóricas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo