Aula 09: Transações e ACID 🔑
Segurança e Integridade
Ricardo Pires
Bancos de Dados SQL e NoSQL
🎯 O que vamos aprender hoje?
- O que é uma Transação?
- O ciclo: BEGIN, COMMIT, ROLLBACK
- Propriedades ACID (O Coração do SGBD)
- Savepoints
- Exemplos do Mundo Real
🛡️ O que é uma Transação?
- Uma "viagem" de dados que deve chegar ao fim.
- Ou chegamos ao destino, ou voltamos para casa!
- Ex: Pagamento via PIX 💸
🕹️ Comandos de Controle
BEGIN: "Ligar o motor" 🗝️COMMIT: "Confirmar chegada" (Salvar) ✅ROLLBACK: "Voltar para o início" (Desfazer) 🔙
🏧 Exemplo: Transferência
BEGIN;- Subtrai R$ 100 de Ciclano;
- Adiciona R$ 100 a Beltrano;
- Se der erro ->
ROLLBACK; - Se ok ->
COMMIT.
💎 Propriedades ACID
As 4 regras que definem um banco confiável: 1. Atomicidade 2. Consistência 3. Isolamento 4. Durabilidade
⚛️ A - Atomicidade
- A transação é um átomo: indivisível.
- Tudo acontece ou nada acontece.
- Sem meio-termo!
⚖️ C - Consistência
- O banco nunca aceita dados que quebrem as regras.
- Ex: Não deixa criar um pedido para um cliente que não existe.
- O banco é sempre um lugar organizado. 🏛️
🔒 I - Isolamento
- Transações simultâneas não se "atropelam".
- O resultado de duas transações ao mesmo tempo é o mesmo de uma após a outra.
💾 D - Durabilidade
- Uma vez feito o
COMMIT, os dados estão no disco. - Pode acabar a luz, o servidor reiniciar... os dados estarão lá! 🔋
📍 Savepoint: Pontos de Apoio
- Quer desfazer apenas uma parte?
📊 Fluxo de Decisão
graph TD
Start[Começo] --> Work[Múltiplos Comandos]
Work --> Check{Sucesso?}
Check -- Sim --> Save[COMMIT]
Check -- Não --> Undo[ROLLBACK]
🛑 Transações Implícitas
- No PostgreSQL, cada comando
INSERT/UPDATE/DELETEsozinho é uma transação automática. - Para unir vários, você deve usar o
BEGINmanual. 🤝
💻 Prática no pgAdmin
- Vamos simular uma falha de sistema.
- Deletar dados e dar ROLLBACK.
- O alívio de ver os dados voltando! 😮💨
🚀 Dica de Especialista
- Mantenha transações curtas.
- Transações abertas por muito tempo podem travar o banco para outros usuários (Lock). 🔐
🏁 Resumo
- Transações protegem seus dados
- ACID garante a confiabilidade
- COMMIT salva, ROLLBACK desfaz
- Atomicidade é o "Tudo ou Nada"