SERIALIZABLE: uma transação é totalmente isolada das outras. Caso a transação tenha comandos DML que tentem atualizar dados não gravados de outra transação, essa transação não será efetuada.
REPEATABLE READ: os dados podem ser lidos mais de uma vez, e se outra transação tiver incluído ou atualizado linhas e estas forem gravadas no banco de dados entre uma e outra leitura dos dados, então os dados retornados da última busca serão diferentes dos dados da busca anterior. Esse efeito é conhecido como leitura fantasma.
READ COMMITED: caso a transação utilize comando DML que precise do bloqueio de linhas que outras transações estão utilizando, a operação somente será concluída após a liberação da linha da outra transação.
READ UNCOMMITED: serão lidos conteúdos não gravados ainda pelo banco de dados (transações passíveis de ROLLBACK). Há um enorme risco nessas operações, visto que o usuário que está bloqueando a informação pode descartá-la. Esse efeito é conhecido como leitura suja.
SERIALIZABLE
- O nível mais alto de isolamento;
- Mais restritivo.
- Bloqueia todas as modificações nos dados.
REPEATABLE READ
- Garante que um registro que está sendo lido por uma transação não sofra alteração até que a leitura termine.
READ COMMITED
- É o nível de isolamento padrão do SQL.
- Garante que as leituras sejam realizadas somente de informações que já foram confirmadas (COMMIT),
- Elimina o problema de leituras sujas.
READ UNCOMMITED
- É o nível mais baixo de isolamento do SQL.
- As transações conseguem ler registros que estão sendo alterado por outra transação, mesmo que um COMMIT\ROLLBACK ainda não tenha sido executado.
- Permite leitura suja dos dados, isso porque a transação de leitura lê dados ainda não confirmados.
Alternativa: E