Administração de Bancos de Dados
03. Transações: propriedades ACID e controle de concorrência
3º capítulo da apostila Administração de Bancos de Dados: explicação contínua e em linguagem simples sobre Transações: propriedades ACID e controle de concorrência, com exemplos, conexões e mapa mental.
Neste capítulo · 11 seções⌄
- O fio condutor
- Estados e propriedades ACID
- Anomalias e níveis de isolamento
- Serializabilidade e escalonamentos
- Bloqueios, deadlock e alternativas
- Log, WAL e recuperação
- Acompanhando um caso do início ao fim
- Como os conceitos se encaixam
- Roteiro para estudar e resolver problemas
- Resumo para revisão
- Fontes e base de cobertura
Vários usuários podem ler e alterar os mesmos dados ao mesmo tempo. O desafio é obter desempenho sem permitir que operações parciais, leituras instáveis ou falhas destruam as regras do negócio.
Com o modelo e a linguagem estabelecidos, passamos a cuidar do banco em funcionamento. A sequência liga governança, arquitetura interna, transações, desempenho, observabilidade, segurança, recuperação e soluções em memória. Este é o capítulo 3 de 8 da disciplina Administração de Bancos de Dados. A leitura retoma Arquitetura e estruturas internas de SGBDs e usa essa base para avançar. Depois, seguiremos para Otimização e desempenho em larga escala.
O fio condutor
Banco de dados deve ser estudado como um sistema de decisões conectadas. O significado atribuído ao dado orienta o modelo; o modelo condiciona consultas e atualizações; o SGBD executa essas operações sob regras de segurança, concorrência, desempenho e recuperação. Quando uma dessas camadas muda, as demais podem ser afetadas.
Ao longo da leitura, acompanhe sempre quatro perguntas: qual problema está sendo resolvido, qual estrutura representa o problema, que garantia precisa ser preservada e qual custo acompanha a escolha. Esse roteiro ajuda a compreender os conceitos em vez de apenas memorizar nomes.
Estados e propriedades ACID
Começamos por Estados e propriedades ACID, pois essa base permite compreender as decisões apresentadas nas seções seguintes.
A transação começa ativa; ao executar a última instrução, passa a parcialmente efetivada — o trabalho terminou, mas os efeitos podem estar só em buffers. Garantida a persistência, chega a efetivada. Se algo impede a conclusão, vai a em falha e, obrigatoriamente, a abortada, depois de o subsistema de recuperação desfazer o que já havia sido aplicado. Não existe retomar do ponto em que parou aproveitando efeitos parciais.
| Propriedade | O que exige | Quem garante |
|---|---|---|
| Atomicidade | Tudo ou nada: nenhum efeito parcial permanece | Subsistema de recuperação (UNDO pelo log) |
| Consistência | Levar o banco de um estado válido a outro estado válido | Compartilhada: o SGBD impõe as restrições declaradas; a correção semântica é do programador |
| Isolamento | Transações concorrentes não interferem umas nas outras | Controle de concorrência (escalonador, bloqueios, MVCC) |
| Durabilidade | Efeitos de transação confirmada sobrevivem a falhas posteriores | Subsistema de recuperação (REDO pelo log) |
Repare como Ativa a efetivada, Quem garante o quê, Consistência é compartilhada participam da mesma decisão. Ao relacionar esses elementos, fica mais fácil prever o comportamento do banco e reconhecer os efeitos de cada escolha.
Anomalias e níveis de isolamento
A seção anterior apresentou Estados e propriedades ACID. Agora chegamos a Anomalias e níveis de isolamento, que acrescenta a próxima peça do mesmo raciocínio.
| Anomalia | O que acontece |
|---|---|
| Escrita suja (dirty write) | Uma escrita sobrepõe outra ainda não confirmada — impossível saber o que restaurar no rollback. Proibida em todos os níveis, inclusive READ UNCOMMITTED |
| Leitura suja (dirty read) | Lê valor gravado por transação não confirmada, que depois pode ser desfeito |
| Leitura não repetível (fuzzy read) | A mesma linha, relida, traz valor diferente porque outra transação a alterou e confirmou |
| Fantasma (phantom) | A mesma consulta por predicado volta com linhas novas, inseridas por outra transação |
| Atualização perdida (lost update) | Duas transações leem o mesmo valor e ambas gravam com base na leitura antiga: a segunda escrita apaga a primeira |
Continue lendo de graça
O capítulo inteiro está liberado no plano gratuito
Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.
Leu o resumo? Agora pratique.
São 60 questões inéditas de Transações: propriedades ACID e controle de concorrência, todas comentadas alternativa por alternativa.
Você volta para este capítulo depois de criar a conta.
Fontes consultadas
- Elmasri & Navathe, Sistemas de Banco de Dados — introdução a transações, controle de concorrência e técnicas de recuperação (caps. 20 a 22)
- Silberschatz, Korth & Sudarshan, Sistema de Banco de Dados — transações, controle de concorrência e recuperação
- ISO/IEC 9075 (níveis de isolamento do padrão SQL)
- Documentação oficial do PostgreSQL (MVCC, Transaction Isolation, Explicit Locking, WAL)
- Acervo comentado de Banco de Dados — Transações: propriedades ACID e controle de concorrência (60 questões publicadas), conferido em 14/09/2026