Propriedades ACID de uma transação em banco de dados.
- #Banco de dados relacional
Talvez você já tenha escutado sobre propriedades ACID de transações em banco de dados em algum lugar mas não entenda completamente sobre o que se trata, então esse artigo veio para esclarecer suas dúvidas.
O que são: As transações ACID são um conjunto de propriedades de um banco de dados relacionais que garante que as operações sejam executadas de forma segura e confiável.
Bem vamos ao significado das letras:
A = Atomicidade
C = Consistência
I = Isolamento
D = Durabilidade
Antes de seguimos para a explicação de cada propriedade acho importante dar um passo trás e explicar o que são transações e operações.
Operações
Ação específica realizada em um banco de dados, como SELECT, INSERT, UPDADE, DELETE
Transações
São unidades lógicas de trabalho que são composta por uma ou mais operações.
Atomicidade
Garante uma transação seja tratada como uma unidade indivisível todas as operações de uma transação sejam concluídas com sucesso, para que ela seja aplicada ao banco de dados.
Se durante a transação alguma operação falhar toda a transação será desfeita (rollback).
Se todas as operações derem certo então a transação é salva no banco de dados (commit).
Caso: Transação Bancária
Digamos que temos a conta A e a conta B.
A conta A faz um depósito na conta B, ou seja uma operação de DELETE na conta A e de INSERT na conta B, se uma dessas operações falharem, ambas devem ser desconsideradas.
Consistência
Garante que cada transação siga todas as regras e restrições definidas durante a criação do banco de dados sejam obedecidas. Como tipo de dado, relacionamentos por chave estrangeira entre outras devem ser seguidos para que a transação seja executada com sucesso
Isolamento
Garante que cada transação seja executada isoladamente, nenhuma transação pode interferir no funcionamento de outra.
Durabilidade
Garante que uma vez que a alteração é salva, ela permanece no banco de dados e só pode ser alterada por outra transação.
Referências
https://www.oracle.com/database/what-is-database/
https://pt.wikipedia.org/wiki/Transa%C3%A7%C3%A3o_(banco_de_dados)




JD
o que seriam as unidades logicas de trabalho?
As unidades lógicas de trabalho são sequências de operações que são tratados como uma única entidade.
Por exemplo:
inicio da transação
INSERT INTO items VALUES item
SELECT item FROM items
DELETE FROM items WHERE item = x
fim da transação
essas operações são tratadas pelo gerenciador de banco de dados como uma unidade, e ao fim ou elas serão persistidas ou em caso de erro ela será toda desfeita.