Transações (Base de Dados)

Ortiz de Arcanjo Antonio David - Sep 5 '22 - - Dev Community

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

Transações
Image description

Execução de uma transação
Image description

Modelo lógico
Image description

Modelo físico
Image description

Procedimento para Transferir
Image description

Chamada do procedimento
Image description

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .