Transações: A importância do ACID para um SGBD
Há alguns anos (uns 3 +/-) tenho contato com Banco de Dados SQL, mais precisamente o MySQL, que é um banco de dados livre (software livre), tinha consciência dos tipos de dados, configurações e outras coisas relacionadas, mas ainda não é o suficiente, ainda é necessário aprender muito e sempre. No curso de graduação que faço, Sistemas de Informação – Unesulbahia – estamos estudando conceitos muito importantes sobre os SGBDs, e achei muito interessante a parte das Transações, onde temos as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Então irei compartilhar o que foi entendido por mim sobre o tema.
Transações
A maioria dos programas desenvolvidos atualmente, são para uso multiusuário, um sistema de controle de estoque por exemplo. Imagine 10 terminais buscando e inserindo informações a cada segundo em um servidor. Todos eles executam um conjunto de comandos que são solicitados de uma só vez. Uma Transação é basicamente isso, um conjunto de comandos SQL em sequência ou não, sendo que, todos os comandos deste conjunto devem ser executados e por completo. Para um bom funcionamento de um SGBD, é necessário que ele tenha um conjunto de propriedades, conhecido como ACID(Atomicidade, Consistência, Isolamento e Durabilidade), onde estas propriedades vão definir como serão executadas as transações. O ACID pode ser descrito com poucas palavras:
Atomicidade: Qualquer operação deve ser executada por completo, caso contrário a ação é desfeita, comando conhecido como “rollback”.
Consistência: Os dados de um Banco de Dados, devem permanecer íntegros após qualquer transação, transação esta que deve respeitar restrições e pré-requisitos impostos pelo SGBD.
Isolamento: As transações devem ocorrer sem que outras interfiram em sua execução, ou seja, uma por vez.
Durabilidade: Qualquer mudança no BD – operação concluída com sucesso – deve permanecer, mesmo que haja qualquer falha no sistema.
A importância do ACID para um SGBD
O ACID é muito importante para um BD, pois é este conjunto de características que garante a qualidade e segurança(contra falhas do sistema) das transações, obtendo assim bons resultados no armazenamento correto das informações. Cada propriedade tem sua importância. Com a Atomicidade, as transações são executadas com sucesso até o final, comando por comando, no caso de erro em qualquer um deles o SGBD deve desfazer o que foi alterado, então temos a garantia de que os cálculos, atualizações, ou outras operações não foram executadas incompletas, e sim até o fim com sucesso. Já a Consistência é importante porque uma operação não pode violar a integridade dos dados, ou seja, após executar uma transação, o banco de dados deve manter a consistência dos dados, mesmo ocorrendo alterações(Update, Insert...). O Isolamento vai evitar que a transação que está sendo executada, seja interferida ou interrompida por outra solicitação, evitando que erros aconteçam. A Durabilidade vai garantir que os dados que foram gravados pelas transações, não sejam perdidos ou danificados, mesmo que ocorra alguma falha no sistema, como travamento e queda de energia (desde que não haja perda de hardware).
Espero que tenha entendido, qualquer dúvida, sugestão ou crítica, deixe um comentário. Até o próximo post.
Transações
A maioria dos programas desenvolvidos atualmente, são para uso multiusuário, um sistema de controle de estoque por exemplo. Imagine 10 terminais buscando e inserindo informações a cada segundo em um servidor. Todos eles executam um conjunto de comandos que são solicitados de uma só vez. Uma Transação é basicamente isso, um conjunto de comandos SQL em sequência ou não, sendo que, todos os comandos deste conjunto devem ser executados e por completo. Para um bom funcionamento de um SGBD, é necessário que ele tenha um conjunto de propriedades, conhecido como ACID(Atomicidade, Consistência, Isolamento e Durabilidade), onde estas propriedades vão definir como serão executadas as transações. O ACID pode ser descrito com poucas palavras:
Atomicidade: Qualquer operação deve ser executada por completo, caso contrário a ação é desfeita, comando conhecido como “rollback”.
Consistência: Os dados de um Banco de Dados, devem permanecer íntegros após qualquer transação, transação esta que deve respeitar restrições e pré-requisitos impostos pelo SGBD.
Isolamento: As transações devem ocorrer sem que outras interfiram em sua execução, ou seja, uma por vez.
Durabilidade: Qualquer mudança no BD – operação concluída com sucesso – deve permanecer, mesmo que haja qualquer falha no sistema.
A importância do ACID para um SGBD
O ACID é muito importante para um BD, pois é este conjunto de características que garante a qualidade e segurança(contra falhas do sistema) das transações, obtendo assim bons resultados no armazenamento correto das informações. Cada propriedade tem sua importância. Com a Atomicidade, as transações são executadas com sucesso até o final, comando por comando, no caso de erro em qualquer um deles o SGBD deve desfazer o que foi alterado, então temos a garantia de que os cálculos, atualizações, ou outras operações não foram executadas incompletas, e sim até o fim com sucesso. Já a Consistência é importante porque uma operação não pode violar a integridade dos dados, ou seja, após executar uma transação, o banco de dados deve manter a consistência dos dados, mesmo ocorrendo alterações(Update, Insert...). O Isolamento vai evitar que a transação que está sendo executada, seja interferida ou interrompida por outra solicitação, evitando que erros aconteçam. A Durabilidade vai garantir que os dados que foram gravados pelas transações, não sejam perdidos ou danificados, mesmo que ocorra alguma falha no sistema, como travamento e queda de energia (desde que não haja perda de hardware).
Espero que tenha entendido, qualquer dúvida, sugestão ou crítica, deixe um comentário. Até o próximo post.
Excelente Post Rosemar! para se entender a importância que a metodologia ACID tem, basta saber que está regulamentada na normativa ISO/IEC 10026-1:1992
ResponderExcluirSeção 4, sendo assim um padrão internacional no que refere a SGBD
Nobre colega parabéns, ficou muito bom. Vou repassar para os colegas como leitura obrigatória!!
ResponderExcluirgrande abraço!