segunda-feira, 8 de setembro de 2008

Transação - BD

1) Conceito de Transação

Sendo o propósito de um SGBD servir de intermediário entre o nível da aplicação e o banco de dados, torna-se esta responsável por manipular diretamente os dados e garantir a sua validade.

As operações sobre o banco de dados só fazem sentido se forem executadas como um todo, pois só assim é possível validar o resultado.

Surge assim o conceito de transação pois todas as tarefas de gestão de banco de dados vivem à custa deste conceito.

2) Propriedades ACID

Tranasação é um conjunto bem definido de operações sobre o Banco de Dados, com as seguintes características:

  • Atomicidade
    • Trata o trabalho como parte indivisível (atômico). A transação deve ter todas as suas operações executadas em caso de sucesso ou nenhum resultado de alguma operação refletido sobre a base de dados em caso de falha. Ou seja, após o término de uma transação (commit ou abort), a base de dados não deve refletir resultados parciais da transação. Ex: Ou todo o trabalho é feito, ou nada é feito. As operações que constituem uma transação formam um conjunto indivisível (atómico):

      • Ou terminam com sucesso - COMMIT

      • Ou são todas desfeitas - ROLLBACK

  • Consistência - caso envolva atualização de dados, uma transação deverá levar o Banco de Dados de um estado consistente para outro estado consistente. Regras de integridade dos dados são asseguradas, ou seja, as transações não podem quebrar as regras do Banco de Dados.
  • Isolamento - se várias transações ocorrerem em simultâneo, não devem as mesmas interferir entre si, tendo cada uma a ilusão de ser a única a ser executada. Tudo se parece como se o trabalho estivesse isolado. O resultado de uma transação executada concorrentemente a outra deve ser o mesmo que o de sua execução de forma isolada. Operações exteriores a uma dada transação jamais verão esta transação em estados intermediários.
  • Durabilidade (Persistência) - todos os efeitos de uma transação bem sucedida tornam-se persistentes e visíveis para as outras transacções. Os efeitos de uma transação em caso de sucesso (commit) são permanentes mesmo em presença de falhas.

image

Nenhum comentário: