Com relação à teoria de concorrência em banco de dados, assi...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a D - SERIALIZABLE. Este é o nível mais alto de isolamento em uma transação SQL, garantindo que a execução das transações seja completamente isolada uma da outra.
Vamos entender por que SERIALIZABLE é o nível mais alto de isolamento e analisar as outras alternativas:
Conceito de Isolamento: O isolamento é um dos princípios fundamentais dos ACID properties em transações de banco de dados. Ele garante que transações concorrentes sejam executadas de tal maneira que não interfiram entre si.
D - SERIALIZABLE: Este nível de isolamento simula a execução serial das transações, ou seja, como se fossem executadas uma após a outra. Isso elimina problemas de concorrência como dirty reads, non-repeatable reads, e phantom reads. É o mais seguro, mas também pode ser o mais lento, já que tem menor grau de paralelismo.
Alternativas incorretas:
A - READ COMMITTED: Este nível permite que uma transação leia apenas dados que foram confirmados por outras transações. Prevém dirty reads, mas não non-repeatable reads ou phantom reads. É menos isolado que SERIALIZABLE.
B - READ UNCOMMITTED: Este é o nível mais baixo de isolamento, onde uma transação pode ler dados que ainda não foram confirmados (possibilitando dirty reads). Oferece o maior grau de paralelismo, mas o menor nível de isolamento.
C - REPEATABLE UNREAD: Esta alternativa parece ser um erro de digitação ou uma distração, pois o nível correto é REPEATABLE READ. Este nível previne dirty reads e non-repeatable reads, mas não phantom reads. É mais isolado que READ COMMITTED, mas menos que SERIALIZABLE.
E - HIGH READING: Esta opção não é um nível de isolamento padrão em SQL. Portanto, é uma alternativa incorreta criada intencionalmente para confundir.
Compreender esses níveis de isolamento é crucial para garantir a integridade dos dados em sistemas que utilizam transações SQL. Cada nível tem suas próprias características e é importante escolher o mais adequado com base nos requisitos de concorrência e consistência do sistema.
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
GABARITO: D
O padrão SQL define quatro níveis de isolamento de transação, com o intuito de evitar três fenomenos indesejados em transações simultaneas.
Repeatable Read: Este nível garante que a mesma leitura de um dado através do SELECT se repita, tendo o mesmo resultado para diferentes execuções na mesma transação. Se neste nível a leitura não fosse repetida, ela estaria aberta a leitura fantasma, que acontece entre um select e outro caso ocorra uma atualização nos dados neste espaço de tempo, conforme vimos acima.
Read Commited: Permite que a transação leia manipule os dados já commitados por outras transações. Caso alguma transação tenha alterado algum dado porém sem efetuar um commit, estes não serão vistos.
Com este nível de isolamento, você evita as leituras sujas, porém esta aberto para as leituras fantasmas e a Leitura não repetitiva.
Read Uncommited: Este nível permite que uma transação possa ver e manipular valores não commitados por outras transações, ficando aberto para leituras sujas e Leitura não repetitiva, facilitando também casos de Leituras fantasmas.
Serializable: Semelhante ao Repeatable Read, porém com a restrição adicional de que as linhas selecionadas por uma transação não podem ser alteradas ou lidas por outra transação, até que a primeira transação seja concluida.
Logo este nível isola completamente uma transação da outra, onde a segunda transação aguarda a finalização da primeira, e assim por diante “uma de cada vez”, evitando os fenomenos indesejados.
Fonte: http://sqlparatodos.com.br/niveis-de-isolamento-mysql/
Foco na missão, eu vou ser QCO !
Serializable é o o nível de isolamento em que é totalmente isolada das outras. por outro lado, a leitura Uncometed é a pior de todas pois permite todos os tipos de leitura (Atualização Perdida, Leitura suja ,fantasma e leitura não repetida).
Gabarito D
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo