Análise da Questão sobre Propriedades ACID em Bancos de Dados
Introdução
Esta questão aborda as propriedades ACID, fundamentais para garantir integridade e confiabilidade em sistemas de banco de dados relacionais. As siglas representam:
| Letra | Propriedade | Significado |
|---|
| A | Atomicidade | Tudo ou nada |
| C | Consistência | Estado válido |
| I | Isolamento | Transações independentes |
| D | Durabilidade | Alterações permanentes |
Desenvolvimento
O enunciado descreve especificamente a situação onde "dados que ainda estão sendo alterados por uma transação" devem permanecer inacessíveis ou protegidos para "outras transações", garantindo que a execução não seja afetada por transações concorrentes.
Vamos analisar cada alternativa:
- Atomicidade: Garante que todas as operações de uma transação sejam concluídas com sucesso ou nenhuma seja aplicada (princípio "tudo ou nada")
- Escalonamento: Refere-se à ordem de execução das transações, não é uma propriedade ACID
- Durabilidade: Assegura que, após o commit de uma transação, suas alterações persistem mesmo em caso de falhas do sistema
- Isolamento: Garante que transações concorrentes não interfiram umas nas outras durante sua execução
- Consistência: Assegura que a transição entre estados do banco de dados mantenha todas as regras de integridade
Análise
Alternativa d (Isolamento) é a correta porque:
- O isolamento protege contra problemas como:
- Leitura suja: Ler dados não confirmados de outra transação
- Leitura não repetível: Dados mudam entre leituras consecutivas
- Leitura fantasma: Novas linhas aparecem entre consultas
- Exemplo prático: Se dois usuários tentam atualizar o mesmo saldo bancário simultaneamente, o isolamento garante que um não veja nem sobrescreva os dados do outro antes da conclusão
- Níveis de isolamento variam em intensidade (Read Committed, Repeatable Read, Serializable), mas todos visam este propósito fundamental
Conclusão
Alternativa D
Isolamento é a propriedade ACID que garante que transações concorrentes executem sem interferir mutuamente, preservando a independência e consistência dos dados durante processos paralelos no sistema de banco de dados.