SóProvas


ID
3180457
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

O padrão ANSI/ISO SQL define três níveis de isolamento que permitem a ocorrência de violações do tipo leitura fantasma.


Esses três níveis são 

Alternativas
Comentários
  • Leitura Fantasma: Uma transação “A” pode ler um conjunto de linhas de uma tabela com base em alguma condição Where SQL. Suponhamos que a transação “B” insira uma nova linha que também satisfaz a clausula Where na tabela utilizada pela transação A. Se a transação “A” for repetida ela verá um fantasma, ou seja, uma linha que não existia na primeira leitura utilizando a clausula where.

    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.

    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. Está aberto para leitura fantasma.

    Read Uncommited: Este nível permite que uma transação possa ver e manipular valores não commitados por outras transações. Também podem ocorrer 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 a leitura fantasma.

    Fonte: http://sqlparatodos.com.br/niveis-de-isolamento-mysql/ (texto adaptado)