Definição
Atomicidade é a garantia de que uma transação aplica todas as suas alterações ou nenhuma delas. Quando a operação termina com sucesso, o banco mantém o conjunto completo. Quando falha no meio, o banco desfaz o que já havia sido gravado.
Alterações parciais e consistência
Uma gravação pela metade corrompe a operação de negócio. Se um pedido recebe a linha de cabeçalho e os itens são gravados logo depois, uma falha entre os dois passos deixaria um pedido sem conteúdo. A atomicidade impede que esse estado intermediário sobreviva: ele aparece apenas durante a execução e nunca fica visível para outra operação.
BEGIN;
INSERT INTO pedidos (id, cliente_id, total) VALUES (101, 7, 240.00);
INSERT INTO pedido_itens (pedido_id, produto_id, quantidade) VALUES (101, 3, 2);
ROLLBACK;Atomicidade é propriedade transacional
Atomicidade não significa que todas as gravações acontecem fisicamente no mesmo instante. Ela descreve o resultado visível da operação: ou o conjunto completo aparece, ou nada permanece. A implementação concreta, com logs e controles internos, pertence ao banco de dados.
Falha comum e como verificar
A falha mais comum é confirmar a transação antes de todas as gravações terminarem ou esquecer o desfazimento quando uma etapa lança erro. Em uma rotina que grava o cabeçalho do pedido e depois os itens, o código pode capturar a falha e confirmar mesmo assim, deixando o cabeçalho órfão. Para verificar, force um erro na gravação dos itens e consulte a tabela depois do desfazimento: o cabeçalho não deve aparecer em nenhuma consulta, e a contagem no estado anterior deve permanecer igual. Quando a verificação mostra o pedido pela metade, a rotina não está tratando a transação de forma atômica e precisa encerrar a operação com o desfazimento antes de retornar o erro.
Veja como a atomicidade participa de uma transaçãoDúvidas frequentes
Perguntas frequentes sobre Atomicidade
- O que a atomicidade garante?
- Garante que as alterações de uma transação sejam aplicadas por completo ou desfeitas por completo, sem resultado parcial.
- A atomicidade exige que tudo aconteça no mesmo instante?
- Não. Ela é uma propriedade transacional. As gravações podem ocorrer em momentos diferentes, desde que o resultado final seja integral ou nulo.
- O que acontece quando uma etapa da transação falha?
- O banco desfaz as alterações já aplicadas e preserva o estado anterior, como se a operação não tivesse começado.
Para continuar
Recursos relacionados
Documentação
PostgreSQL: transactions
Explica transações e o papel da atomicidade na garantia de consistência.
Abrir recursoDocumentação
SQLite: transactions
Detalha BEGIN, COMMIT e ROLLBACK e as garantias de uma transação.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, atomicidade aparece ao evoluir esquemas e corrigir falhas de gravação sem deixar o banco em estado intermediário.
Conhecer a formaçãoFontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.