|
September 21, 2015
|

Usando Transações

Introdução

Quando se faz uma operação de transferência bancária, a quantia que sai de uma conta deve chegar em outra. Não pode acontecer de uma conta ser subtraída e a outra não ser creditada. Se algum erro ocorrer durante essa sequência de operações, ambas são canceladas e o estado do banco de dados da instituição financeira fica como se nenhuma dessas operações tivessem sido realizadas. Ambas podem ser tentadas novamente e uma outra falha cancela as duas. As duas operações citadas fazem parte de uma transação.

Uma transação em um banco de dados torna uma sequência de operações atômica, como se fosse uma única operação. O resultado final é: ou todas as operações são executadas com sucesso ou o estado do banco de dados fica como se nenhuma operação tivesse sido realizada.

Programando Transações

Portanto, toda a vez que temos uma situação em um programa em que uma sequência de operações em um banco de dados precisa ser realizada por completo ou nenhuma deve ser realizada, transações devem ser utilizadas. A maioria dos sistemas de gerenciamento de bancos de dados fornecem mecanismos para lidar com transações. E, quando necessário, devem ser usadas tanto em aplicações em um desktop quanto em aplicações móveis.

Transações em Aplicações Móveis

Além de manter a consistência entre as informações das tabelas armazenadas no dispositivo móvel, transações também devem ser usadas ao sincronizar dados com um banco de dados no servidor. Afinal, o processo de sincronização sempre pode sofrer uma interrupção por várias causas.

No TotalCross, o SQLite fornece suporte a transações. Porém o Litebase ainda não possui essa funcionalidade, exigindo do programador habilidade para que não ocorram inconsistências caso algo dê errado. E, infelizmente, em dispositivos móveis o risco de isso acontecer é maior, com possíveis quedas de conexão, perda de bateria, etc.

Usando Transações na Prática

Em geral, uma transação é começada usando um comando SQL como “Begin Transaction” e é terminada com um “Commit Transaction”. Já uma transação pode ser abortada com algo como “Abort Transaction” ou “Rollback Transaction”. Algumas APIs para acesso a bancos podem fornecer chamadas de função ou métodos para as operações com transações. Ou seja, ao invés de se mandar um comando SQL “Begin Transaction”, haveria uma chamada como beginTransaction().

Também pode haver comandos para efetivar parte da transação ou transações aninhadas e alguns bancos podem considerar um comando SQL fora de transação como sendo ele mesmo uma transação.

Comments

More articles

5 motivos para que seus próximos Apps Android e IOS devem ser em Java

September 14, 2018

Como escolher o melhor banco de dados para o desenvolvimento do meu aplicativo?

August 7, 2018

Como Fazer o CRUD com SQLite no Totalcross – Parte 3.

April 19, 2018

Como Fazer um CRUD com SQLite no Totalcross – Parte 2.

April 16, 2018

LEAVE A COMMENT