quarta-feira, 1 de maio de 2013

Os conceitos da propriedade ACID


De acordo com a Wikipédia, ACID "é um conceito utilizado em ciência da computação para caracterizar uma transação, entre outras coisas."

Em miúdos ACID é a união das iniciais de:

Atomicidade
Consistência
Isolamento
Durabilidade

Todo Sistema Gerenciador de Banco de Dados aplica os conceitos de ACID, pois, caso isto não ocorra ele não pode ser considerado um SGBD. Vejamos então as característica de cada item:

Atomicidade

Significado para: Na transação ou se faz tudo, ou nada, sem meio termo. Pensando que em uma transação podemos ter mais de uma operação, então "em uma transação realizamos a inclusão de um cliente novo, a geração de uma nota fiscal e a baixa no estoque do produto vendido, ao final desta transação, devemos confirmar a transação por inteiro e gravar todas estas operações, se esta transação não se confirmar ao final, nenhuma destas operações pode ser gravada no banco de dados, garantindo assim a atomicidade da transação".

Consistência

Tem por objetivo garantir que o banco de dados antes da transação esteja consistente e, que após a transação o banco permaneça consistente, sem problemas de integridade. Neste ponto, podemos contribuir com o trabalho do banco de dados, criando mecanismos que evitem problemas de integridade no banco, por exemplo: "se realizar uma transação em uma conta bancária, onde o cliente possui um saldo de R$ 50,00 e não tem limite de crédito (não pode ficar negativo) e esta transação for uma retirada de R$ 60,00 , esta transação não pode ser concluída pois a consistência do banco de dados não estaria garantida deixando a conta com um saldo negativo."

Isolamento

Objetiva garantir que nenhuma transação seja interferida por outra até que ela seja ¹completada. No entanto existem transações que podem ocorrer de forma simultânea sob os mesmos dados, como por exemplo ²consultas. Vamos aplicar as duas situações em exemplos práticos:

¹Duas transações são iniciadas, ambas estão ligadas diretamente ao mesmo registro no banco de dados, a primeira atualizando, a segunda consultando, o isolamento nos garantirá que a transação de consulta somente será executada após a transação de atualização ser completada. ²No ato de consultas, podemos imaginar um sistema de vendas, qual o mesmo produto pode ser consultado várias vezes ao mesmo tempo, visando saber o valor deste.

Durabilidade

Como o nome já pode nos remeter, esta propriedade garante que a informação gravada no banco de dados dure de forma imutável até que alguma outra transação de atualização, ou exclusão afete-a. Em termos mais populares, podemos dizer que este conceito garante que os dados não sejam corrompidos, ou seja, desapareçam ou se modifiquem sem motivo aparente.

Como sugestão de aprendizagem, aconselho você a focar nos exemplos citados, por exemplo, quando falar em durabilidade lembre-se de que a informação durará até que alguma ação seja feita sob ela, quando falar em isolamento, lembre-se que duas transações sob um mesmo registro só podem ser realizadas uma de cada vez (salva-se as consultas como explicado), quando consistência lembre-se do exemplo da conta bancária, atomicidade, ou se faz tudo ou nada.

Um grande abraço e até a próxima.

Referências:
http://pt.wikipedia.org/wiki/ACID
http://www.dicionarioinformal.com.br/atomicidade/
http://alessandramclima.wordpress.com/2010/04/17/bd-acid/
Banco de dados II - Roberto Yukio Nishimura

9 comentários:

  1. Parabéns!!! Adorei sua explicação...

    ResponderExcluir
  2. Parabéns ficou bom, acabei utizando de referência para esclarecer algumas dúvidas do curso de e-commerce.

    ResponderExcluir
  3. Respostas
    1. Olá Miller, obrigado pelo feedback.

      Excluir
    2. Rápido e caceteiro! Parabéns!

      Excluir