O que é a Conformidade com ACID?
A presença de quatro componentes – atomicidade, consistência, isolamento e durabilidade – pode assegurar que uma transacção de base de dados seja concluída atempadamente. Quando as bases de dados possuem estes componentes, diz-se que estão em conformidade com o ACID. Mas o que é a conformidade com ACID, e porque se deve importar? Vamos dar uma vista de olhos:
Atomicidade: As transacções das bases de dados, como os átomos, podem ser decompostas em partes mais pequenas. Quando se trata da sua base de dados, a atomicidade refere-se à integridade de toda a transacção da base de dados, e não apenas a um componente da mesma. Por outras palavras, se uma parte de uma transacção não funcionar como é suposto, a outra falhará como resultado – e vice-versa. Por exemplo, se estiver a fazer compras num site de comércio electrónico, deve ter um artigo no seu carrinho de compras para poder pagar por ele. O que não pode fazer é pagar por algo que não está no seu carrinho de compras. (Pode adicionar algo no seu carrinho e não pagar por ele, mas essa transacção da base de dados não estará completa, e portanto não ‘atómica’, até que pague por ele).
Consistência: Para que qualquer base de dados funcione como se destina a funcionar, deve seguir as regras de validação de dados apropriadas. Assim, a coerência significa que apenas os dados que seguem essas regras podem ser escritos na base de dados. Se uma transacção ocorrer e resultar em dados que não sigam as regras da base de dados, será “rolada” para uma iteração anterior de si mesma (ou “estado”) que cumpra as regras. Por outro lado, após uma transacção bem sucedida, novos dados serão adicionados à base de dados e o estado resultante será consistente com as regras existentes.
Isolamento: É seguro dizer que em qualquer momento na Amazónia, há muito mais do que uma transacção a ocorrer na plataforma. De facto, uma quantidade incrivelmente enorme de transacções na base de dados está a ocorrer em simultâneo. Para uma base de dados, o isolamento refere-se à capacidade de processar simultaneamente múltiplas transacções de uma forma que não afecta a outra. Portanto, imaginem que tanto o senhor como o seu vizinho estão a tentar comprar algo da mesma plataforma de comércio electrónico ao mesmo tempo. Há 10 artigos à venda: o seu vizinho quer cinco e o senhor quer seis. Isolamento significa que uma dessas transacções seria concluída antes da outra. Por outras palavras, se o seu vizinho clicar primeiro, ele receberá cinco artigos, e apenas cinco artigos permanecerão em stock. Assim, só poderá comprar cinco artigos. Se clicar primeiro, receberá os seis artigos que deseja, e eles receberão apenas quatro. Assim, o isolamento assegura que onze artigos não são vendidos quando existem apenas dez.
Durabilidade: Toda a tecnologia falha de vez em quando… o objectivo é tornar essas falhas invisíveis para o utilizador final. Nas bases de dados que possuem durabilidade, os dados são guardados assim que uma transacção é concluída, mesmo que ocorra uma falha de energia ou falha do sistema. Imagine que está a comprar bilhetes de concertos a pedido num site semelhante ao Ticketmaster.com. Logo quando os bilhetes vão à venda, está pronto para fazer uma compra. Depois de ficar preso na sala de espera digital durante algum tempo, poderá finalmente adicionar esses bilhetes ao seu carrinho. Depois faz a compra e recebe a sua confirmação. Contudo, se essa base de dados não tiver durabilidade, mesmo após a confirmação da sua compra de bilhetes, se a base de dados sofrer um incidente de falha, a sua transacção continuará a perder-se! Como seria de esperar, isto é uma coisa muito má para um site de comércio electrónico em linha, por isso a durabilidade da transacção é um imperativo.
ClustrixDB, uma base de dados em nuvem NewSQL, agora uma parte de MariaDB vem com o benefício adicional da conformidade com ACID, essencial para o sucesso!