Transação é uma sequência de operações num sistema de gerência de banco de dados que são tratadas como um bloco único e atômico durante uma recuperação de falhas e também prover isolamento entre acessos concorrentes na mesma massa de dados.
Conceitos importantes
Transação: Sequência operações de uma sessão.
Sessão: Diálogo, comunicação ou conexão de uma aplicação com uma base de dados relacional.
A maioria dos SGBDs estão preparados para lidar com concorrência sobre uma BD. Eles permitem várias sessões simultâneas e independentes sobre uma BD. Nesses SGBDs várias sessões podem executar muitas operações sobre a BD.
As transações são usadas para as operações que alteram a base de dados, nomeadamente a inserção, actualização e exclusão de dados.
Propriedades desejáveis para uma transação (ACID)
- Atomicidade: Tem efeito atómico. As suas operações ou completam todas num único momento logicamente “instantâneo” ou não têm qualquer efeito;
- Consistência: Deixa o estado da BD num estado consistente, respeitando as restrições de integridade;
- Isolamento: Não é afectada por transações concorrentes;
- Durabilidde: O estado da BD resultante da transação é persistente após esta ter terminado. Alguns Exemplos de transações
- Transferências Bancárias;
- Movimentação de dados de um lugar para outro (inserir dados de uma tabela para outra);
- Alteração de grandes quantidades de dados.
Factores que Afectam as transações
A realização de uma operação pode ser afectada por vários factores:
- As ligações de Rede;
- As falhas de Energia Eléctrica;
- Problemas na máquina ou ambiente computacional (Memória, Disco e Processador).
Vantagens das Transações
- Permitem lidar com processamentos pesados e críticos de maneira segura;
- Recuperam as alterações se ocorrer uma exceção ou a lógica de negócios precisar desfazer mudanças de estado;
- Para aplicar várias alterações como uma unidade atômica no momento commit;
- Mantêm e liberam bloqueios em dados para aplicar múltiplas alterações como uma unidade atômica no momento da consolidação;
- Protegem um encadeamento de alterações concorrentes;
- Implementam um ciclo de vida para bloqueios em mudanças;
- Produzem uma unidade atômica de replicação.
Exemplo
Criação de um procedimento para transferência entre 2 contas bancárias.
Cada conta é associada a um Cliente e um cliente pode possuir várias contas.
Linguagem: SQL
SGBD: MySQL