Banco de Dados II — 2026.2

Aula 7
Transações

👨‍🏫 Prof. Gustavo Pinto 🏛️ UFPA 📅 3 de novembro de 2026 🕐 7h30 – 9h

Agenda de hoje

O problema

Transferência entre duas contas: debita uma, credita a outra. A máquina cai no meio. E agora?

ACID

Atomicidade

Tudo ou nada. É o módulo M6.

log e desfazer

Consistência

As restrições continuam válidas depois.

restrições e aplicação

Isolamento

Transações simultâneas não se atrapalham.

não implementamos, vira seminário

Durabilidade

O que foi confirmado sobrevive à queda.

é o módulo M7

O log

Antes de alterar qualquer dado, o minidb escreve no log um registro dizendo o que vai mudar, com o valor antes e o valor depois.

<T1, INICIO>
<T1, aluno, pagina 3, slot 7, antes=100, depois=250>
<T1, aluno, pagina 9, slot 2, antes=500, depois=350>
<T1, COMMIT>

O valor antes serve para desfazer. O valor depois serve para refazer, no módulo M7.

ROLLBACK

COMMIT

Este é o ponto exato em que o commit passa a valer. Antes do fsync, não aconteceu.

Dúvidas?

Próxima: laboratório do M6, o log e o rollback

📧 gpinto@ufpa.br