DEV Community

Ortiz de Arcanjo António David
Ortiz de Arcanjo António David

Posted on

Transações (Base de Dados)

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

Top comments (0)