Neste capítulo



☝🏻Introdução

Em um ambiente de banco de dados moderno, a integridade e a consistência dos dados são de suma importância, especialmente quando múltiplos usuários ou aplicações acessam e modificam as informações simultaneamente. Sem mecanismos robustos para gerenciar essas interações, o banco de dados se tornaria caótico, com dados inconsistentes e operações perdidas.

Este capítulo abordará os conceitos fundamentais de transações e controle de concorrência, que são a espinha dorsal da confiabilidade de qualquer sistema de banco de dados. Compreender esses mecanismos é crucial para garantir que suas operações sejam seguras e que seus dados permaneçam válidos, mesmo em cenários de alta demanda.


Conceitos de Transação (BEGIN, COMMIT, ROLLBACK)

Uma transação é uma sequência de uma ou mais operações de banco de dados que são tratadas como uma única unidade de trabalho lógica e atômica. A ideia central é que o conjunto de operações deve ser concluído com sucesso ou, em caso de falha, completamente desfeito.

O PostgreSQL (e o padrão SQL) fornece comandos claros para gerenciar o ciclo de vida de uma transação:

Exemplo Prático: Transferência Bancária

Considere a transferência de R$ 100,00 da conta de João para a conta de Maria. Esta operação é crítica e deve ser executada como uma única unidade:

  1. Subtrair R$ 100,00 da conta de João.
  2. Adicionar R$ 100,00 à conta de Maria.

Se a primeira operação for concluída, mas a segunda falhar por algum motivo, a transação deve ser desfeita para evitar que o dinheiro de João desapareça.

BEGIN;

-- Passo 1: Retira o valor da conta de João
UPDATE contas SET saldo = saldo - 100.00 WHERE nome = 'João';

-- Passo 2: Adiciona o valor na conta de Maria
UPDATE contas SET saldo = saldo + 100.00 WHERE nome = 'Maria';

-- Se ambos os passos foram executados sem erros
COMMIT;

-- Se algo falhou em qualquer ponto
-- ROLLBACK;

O uso de BEGIN e COMMIT garante que as duas operações sejam realizadas como uma só. Se houver um erro, o ROLLBACK assegura a consistência dos dados.


Propriedades ACID

O acrônimo ACID é a sigla para as quatro propriedades que definem a confiabilidade de um sistema de gerenciamento de banco de dados. Um SGBD compatível com ACID garante que cada transação seja processada de maneira segura, independentemente de falhas no sistema ou de operações concorrentes.