Conceitos de Bancos de Dados – O que é uma Transação

O que é uma Transação em Bancos de Dados

Em sistemas de bancos de dados damos o nome de Transação a um conjunto de uma ou mais operações que compõem uma única tarefa ou unidade lógica de trabalho a ser executada.

As operações de dados podem ser classificadas em uma entre quatro categorias: Criação, Leitura, Atualização ou Exclusão (em inglês, Create, Read, Update, Delete – daí a sigla CRUD).

O sistema de banco de dados precisa garantir a execução correta das transações, independente de ocorrerem falhas; a transação é executada por completo (todas as operações) ou nenhuma de suas operações é executada (transação é abortada).

Em termos de SQL, geralmente as transações são definidas por declarações no formato:

BEGIN TRANSACTION
.
.
.
END TRANSACTION

E a transação corresponde ao conjunto de operações contidas entre essas duas declarações (que variam entre sistemas diferentes), sendo executadas como se fossem uma única instrução, do ponto de vista do usuário.

Par garantir a integridade dos dados, o sistema de BD deve manter as propriedades que chamamos de ACID.

Commit e Rollback

Caso a transação tenha sucesso, o BD é alterado de forma permanente, tendo os dados alterados gravados em disco; chamamos a essa operação de Commit.

Caso haja falha em qualquer operação, o banco de dados será retornado ao estado anterior ao início da transação; essa operação é chamada de Rollback.

Exemplo de Transação

Um exemplo clássico é uma transferência de fundos entre duas contas correntes. Suponha uma transação T que consiste na transferência de R$ 100,00 de uma conta corrente X para um conta corrente Y. Podemos defini-la da seguinte forma:

Iniciar Transação T
  ler(X);
  X = X - 100.00;
  gravar(X);
  ler(Y);
  Y = Y + 100.00;
  gravar(Y);
Fim Transação

A operação ler() transfere os dados do banco de dados físico para uma área de memória (buffer de dados) onde o processo é realizado, e a operação gravar() transfere os dados do buffer alocado na memória para o banco de dados armazenado em disco.

Caso algum problema ocorra com qualquer uma das operações que compõem essa transação, toda a transação é cancelada (processo de rollback). Por exemplo, se a conta corrente X não tiver os fundos necessários (R$ 100,00), não é possível executar a operação de incremento de Y, e, portanto, a transação deve ser abortada.

Referências

Silberschatz, A.; Korth, H. F.; Sudarshan, S. Sistema de Banco de Dados. Editora Pearson. Terceira Edição, 2010

Lake, P.; Crowther, P. Concise Guide to Databases. Ed. Springer. 2013

 

Sobre Fábio dos Reis (1273 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Trackbacks & Pingbacks

  1. Conceitos de Bancos de Dados - O que significa ACID - Bóson Treinamentos em Tecnologia

Escreva um comentário

Seu e-mail não será divulgado


*