terça-feira, 29 de maio de 2007

Transações no PostgreSQL

Transação é cada execução de programa que realiza leitura e/ou escrita em um banco de dados. O PostgreSQL implementa este conceito resguardando as características ACID - atomicidade, consistência, isolamento e durabilidade.

Atomicidade - uma transação é totalmente executada ou totalmente revertida sem deixar efeitos no banco de dados

Consistência - os resultados são coerentes com as operações realizadas

Isolamento - a execução de uma transação não interfere ou sofre interferência em relação às demais transações em execução

Durabilidade - o resultado das transações deve ser persistido fisicamente no banco de dados.

Cada comando executado, seja de leitura ou escrita, gera uma transação implícita no PostgreSql, que gerencia a manutenção das características ACID.

Existem duas ressalvas a serem feitas:

- Em certas situações é interessante se agregar vários comandos como sendo integrantes de uma mesma transação, como por exemplo em uma transferência bancária que envolve a retirada de dinheiro de uma conta e o acréscimo em outra como se fosse apenas uma única operação lógica.
- Em outras situações se faz necessário sacrificar ou flexibilizar as características ACID em virtude da necessidade de maior desempenho.

Para executar estas atividades são disponibilizados comandos de controle de transação:

- BEGIN;
- COMMIT;
- ROLLBACK;
- START TRANSACTION;
- SAVEPOINT;
- SET TRANSACTION;

Nos próximos posts serão detalhados os comandos, suas sintaxes e funções, com exemplos.

Nenhum comentário: