Pesquisar no blog

quarta-feira, 7 de julho de 2010

ACID

Do ponto de vista de gerenciadores de bancos de dados, ACID são propriedades fundamentais nos processos transacionais, onde cada letra representa uma dessas 4 propriedades que definem o termo ACID:
·                    A - Atomicidade
·                    C - Consistência
·                    I - Isolamento
·                    D - Durabilidade

Atomicidade

Trata a transação como parte indivisível (atômica). A transação deve ter todas as suas operações executadas em caso de sucesso ou nenhuma em caso de falha. Ou seja, após o término de uma transação deve ser dado um commit (sucesso) ou um abort (falha), a base de dados não deve refletir resultados parciais de uma transação, mas sim os resultados totais. O subsistema de restauração de transações do SGBD é o subsistema responsável por garantir a atomicidade: Recovery.

Exemplo:
Em uma transferência de valores entre contas bancárias, é necessário que, da conta origem seja retirada um valor X e na conta destino seja somado o mesmo valor X. As duas operações devem ser completadas sem que qualquer erro aconteça, caso contrário todas as alterações feitas nessa operação de transferência devem ser desfeitas. Ou seja, quando ocorrer um erro ocorrer após a retirada do valor X da conta origem e antes da soma desse valor X na conta destino. Os valores das contas origem e destino deverão ser mantidos aos valores que eram antes da operação.

Resumindo:
·        É um “ou vai, ou racha”.
·        É um tudo ou nada”.

Consistência

Indica que a base de dados está consistente no início da transação e ao seu final deverá permanecer consistente, porém durante a transação certas regras podem ser quebradas, o que comprometerá essa propriedade. A responsabilidade por garantir essa propriedade é dupla, sendo tanto do programador quanto do módulo do SGBD que garante as restrições de integridade.

Exemplo:
Imagine que seja tirada uma fotografia dos dados de um banco de dados. Este é o estado do BD. Após a fotografia, é feita uma transação neste BD e retira-se uma nova foto. Se na primeira o BD estava consistente, então na segunda ele tem que estar também.

Resumindo:
·        "antes de mamãe sair e depois que ele chegar as coisas têm que estar arrumadas, durante seja lá o que Deus quiser".  

Isolamento

Capacidade das operações de uma transação não ser vista pelas outras transações até que esta esteja encerrada. 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. Uma transação só pode ser simultânea se elas não alterarem os mesmos dados. Essa propriedade é imposta pelo subsistema de controle de concorrência do SGBD.

Exemplo:
Duas transações executadas juntas: Transação Y altera o nome do cliente e transação X altera o nome do mesmo cliente. Ao fazer insert, update ou delete enquanto a transação estiver em andamento, todos os dados da tabela serão alocados para aquela transação, portanto a transação X só poderá ser executada após a conclusão da transação Y. Esta escolha é feita pelo banco de dados e ele executa primeiro uma transação depois a outra.

Resumindo:
·        “não mete o dedo no que estou fazendo”.
·        é um cada um por si”.

Durabilidade

Indica que depois de uma transação ser executada com sucesso, as alterações efetuadas persistam e não sejam desfeitas. Os efeitos de uma transação em caso de sucesso (commit) são permanentes mesmo em presença de falhas. A responsabilidade fica por conta do subsistema de restauração do SGBD.

Resumindo:
·        “ajoelhou tem que rezar”
·        “fez, está feito”

Nenhum comentário:

Postar um comentário