O Que É ACID?
Deslize para mostrar o menu
Iniciaremos nossa exploração de tópicos avançados de SQL com o conceito dos princípios ACID.
ACID é um acrônimo para Atomicity, Consistency, Isolation e Durability. Essas quatro propriedades são princípios fundamentais na gestão de bancos de dados e foram desenvolvidas para garantir a confiabilidade das transações em bancos de dados.
Você pode ter notado que usamos a palavra transação na definição de ACID. Talvez você pense em uma transação bancária ao ouvir essa palavra, mas no contexto de bancos de dados, uma transação é definida de forma um pouco diferente.
Uma transação refere-se a uma sequência de uma ou mais operações de banco de dados que são tratadas como uma única unidade lógica de trabalho.
Imagine que você está usando um site de compras online.
Você adiciona itens ao carrinho, segue para o checkout e realiza o pagamento. Todo esse processo pode ser considerado uma transação de banco de dados. Veja como funciona:
- Início da Transação: você inicia o processo de checkout;
- Operações:
- O sistema verifica se os itens no seu carrinho ainda estão em estoque;
- Suas informações de pagamento são processadas;
- O inventário é atualizado para refletir os itens que você comprou;
- Um registro de pedido é criado no banco de dados.
- Commit da Transação: quando todas essas etapas são concluídas com sucesso, a transação é confirmada, ou seja, todas as alterações são salvas no banco de dados;
- Rollback (se necessário): se alguma etapa falhar (por exemplo, o pagamento não for aprovado), a transação é revertida, ou seja, nenhuma das alterações é salva. Isso garante que o banco de dados permaneça em um estado consistente, como se a transação nunca tivesse ocorrido.
Este exemplo mostra como uma transação agrupa várias operações em um único processo confiável.
Por que precisamos do ACID?
As propriedades ACID são importantes em bancos de dados por três razões principais:
- Primeiramente, garantem a confiabilidade das transações ao tratá-las como unidades únicas e indivisíveis, evitando atualizações parciais e mantendo a consistência;
- Em segundo lugar, possibilitam o controle de concorrência ao assegurar que as transações sejam executadas de forma independente, prevenindo interferências e preservando a consistência dos dados em ambientes multiusuário;
- Por fim, garantem a durabilidade dos dados ao registrar permanentemente as transações confirmadas, sobrevivendo a falhas do sistema e assegurando a recuperabilidade dos dados.
Vamos considerar uma situação envolvendo uma conta bancária:
- Transação 1 (T1): Você transfere $100 da sua conta poupança para sua conta corrente.
- Ao mesmo tempo, Transação 2 (T2): Você consulta o saldo da sua conta poupança online.
- Mas então, T1 encontra um erro—talvez devido a um problema de rede—e não conclui a transferência.
- Enquanto isso, T2 é concluída e mostra o saldo da sua conta poupança, incluindo a transferência de $100 que ainda não aconteceu de fato.
Isso viola a propriedade de Isolamento do ACID. Mesmo que a transferência não tenha sido concluída (devido à falha de T1), você já visualizou o efeito dela no saldo da sua conta. Essa inconsistência pode confundir os usuários e levar a decisões financeiras incorretas.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
O Que É ACID?
Iniciaremos nossa exploração de tópicos avançados de SQL com o conceito dos princípios ACID.
ACID é um acrônimo para Atomicity, Consistency, Isolation e Durability. Essas quatro propriedades são princípios fundamentais na gestão de bancos de dados e foram desenvolvidas para garantir a confiabilidade das transações em bancos de dados.
Você pode ter notado que usamos a palavra transação na definição de ACID. Talvez você pense em uma transação bancária ao ouvir essa palavra, mas no contexto de bancos de dados, uma transação é definida de forma um pouco diferente.
Uma transação refere-se a uma sequência de uma ou mais operações de banco de dados que são tratadas como uma única unidade lógica de trabalho.
Imagine que você está usando um site de compras online.
Você adiciona itens ao carrinho, segue para o checkout e realiza o pagamento. Todo esse processo pode ser considerado uma transação de banco de dados. Veja como funciona:
- Início da Transação: você inicia o processo de checkout;
- Operações:
- O sistema verifica se os itens no seu carrinho ainda estão em estoque;
- Suas informações de pagamento são processadas;
- O inventário é atualizado para refletir os itens que você comprou;
- Um registro de pedido é criado no banco de dados.
- Commit da Transação: quando todas essas etapas são concluídas com sucesso, a transação é confirmada, ou seja, todas as alterações são salvas no banco de dados;
- Rollback (se necessário): se alguma etapa falhar (por exemplo, o pagamento não for aprovado), a transação é revertida, ou seja, nenhuma das alterações é salva. Isso garante que o banco de dados permaneça em um estado consistente, como se a transação nunca tivesse ocorrido.
Este exemplo mostra como uma transação agrupa várias operações em um único processo confiável.
Por que precisamos do ACID?
As propriedades ACID são importantes em bancos de dados por três razões principais:
- Primeiramente, garantem a confiabilidade das transações ao tratá-las como unidades únicas e indivisíveis, evitando atualizações parciais e mantendo a consistência;
- Em segundo lugar, possibilitam o controle de concorrência ao assegurar que as transações sejam executadas de forma independente, prevenindo interferências e preservando a consistência dos dados em ambientes multiusuário;
- Por fim, garantem a durabilidade dos dados ao registrar permanentemente as transações confirmadas, sobrevivendo a falhas do sistema e assegurando a recuperabilidade dos dados.
Vamos considerar uma situação envolvendo uma conta bancária:
- Transação 1 (T1): Você transfere $100 da sua conta poupança para sua conta corrente.
- Ao mesmo tempo, Transação 2 (T2): Você consulta o saldo da sua conta poupança online.
- Mas então, T1 encontra um erro—talvez devido a um problema de rede—e não conclui a transferência.
- Enquanto isso, T2 é concluída e mostra o saldo da sua conta poupança, incluindo a transferência de $100 que ainda não aconteceu de fato.
Isso viola a propriedade de Isolamento do ACID. Mesmo que a transferência não tenha sido concluída (devido à falha de T1), você já visualizou o efeito dela no saldo da sua conta. Essa inconsistência pode confundir os usuários e levar a decisões financeiras incorretas.
Obrigado pelo seu feedback!