Início / Banco de Dados / Função de um DBMS: Propiciar a atomicidade de transação

Função de um DBMS: Propiciar a atomicidade de transação



A maioria das transações de negócios muda, de várias maneiras, um banco de dados. Considere o que acontece, por exemplo, quando um cliente bancário transfere R$ 100,00 da conta corrente para a conta poupança. O banco precisa reduzir o saldo da conta corrente do cliente, aumentar seu saldo na conta poupança e registrar a transação. Se o DBMS reduz o saldo da conta corrente ou aumenta o saldo da conta poupança e o computador quebrar antes de mudar o outro saldo, então os saldos ficarão inconsistentes, resultando numa injustificável e não desejada perda para o banco ou para o cliente.

A atomicidade é o conceito de que uma transação não pode ser partida em partes menores. O termo originou-se um tempo em que as pessoas pensavam que o átomo era indivisível. Na prática, um DBMS deve dividir a transação em duas partes como sendo componentes de um todo unificado. Se qualquer parte da transação falha, deve parecer como se a transação nunca tivesse ocorrido. Isto pode exigir que o DBMS desfaça algumas atualizações já efetuadas.

A maioria dos DBMSs fornece ferramentas para identificar e corrigir transações incompletas antes que elas possam causar estrago. Por exemplo, o DBMS pode criar um registro temporário, conhecido como log, no começo de cada transação. Ele registra no log cada atualização bem-sucedida e fecha este registro quando a transação está completa. Depois de uma falha no sistema, o DBMS usa o log para verificar o processamento de transações e desfaz todas as transações parcialmente completadas. Incorporar esta segurança em cada programa que processa transações de múltiplas atualizações, em vez de usar um DBMS, é excessivamente completo e difícil.

Para acessar as outras funções de um DBMS, clique aqui.

Comentários

comments

Leia também

drop database

Qual a linha de comando para excluir um banco de dados no MySQL?

Para excluir um banco de dados no MySQL, digite a seguinte linha de comando abaixo: DROP ...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *