Definição – o que significa transação?
Uma transação, no contexto de um banco de dados, é uma unidade lógica executada de forma independente para recuperação ou atualização de dados. Os especialistas falam sobre uma transação de banco de dados como uma “unidade de trabalho” que é alcançada dentro de um ambiente de design de banco de dados.
Em bancos de dados relacionais, as transações de banco de dados devem ser atômicas, consistentes, isoladas e duráveis - resumidas como a sigla ACID. Os engenheiros precisam examinar a construção e o uso de um sistema de banco de dados para descobrir se ele suporta ou não o modelo ACID. Então, à medida que novos tipos de sistemas de banco de dados surgiram, a questão de como lidar com as transações se tornou mais complexa.
Definirtec explica a transação
No design de banco de dados relacional tradicional, as transações são concluídas por instruções COMMIT ou ROLLBACK SQL, que indicam o início ou o fim de uma transação. O acrônimo ACID define as propriedades de uma transação de banco de dados, da seguinte maneira:
-
Atomicidade: Uma transação deve ser totalmente concluída, salva (confirmada) ou totalmente desfeita (revertida). Uma venda no banco de dados de uma loja de varejo ilustra um cenário que explica a atomicidade, por exemplo, a venda consiste em uma redução de estoque e um registro da entrada de dinheiro. Ambos acontecem juntos ou não acontecem – é tudo ou nada.
-
Consistência: A transação deve ser totalmente compatível com o estado do banco de dados anterior à transação. Em outras palavras, a transação não pode quebrar as restrições do banco de dados. Por exemplo, se a coluna Número de telefone de uma tabela de banco de dados pode conter apenas numerais, a consistência determina que qualquer transação que tente inserir uma letra alfabética não pode ser confirmada.
-
Isolamento: Os dados da transação não devem estar disponíveis para outras transações até que a transação original seja confirmada ou revertida.
-
Durabilidade: As alterações dos dados de transação devem estar disponíveis, mesmo no caso de falha do banco de dados.
Transações e Terminologia
Para referência, uma das maneiras mais fáceis de descrever uma transação de banco de dados é qualquer mudança em um banco de dados, qualquer “transação” entre os componentes do banco de dados e os campos de dados que eles contêm.
No entanto, a terminologia torna-se confusa, porque na empresa como um todo, as pessoas estão acostumadas a se referir às transações financeiras simplesmente como “transações”. Isso configura um conflito central na linguagem tecnológica contra a terminologia da pessoa média.
Uma “transação” de banco de dados é qualquer mudança que aconteça. Para falar sobre como lidar com transações financeiras em ambientes de banco de dados, a palavra “financeiro” deve ser usada explicitamente. Caso contrário, a confusão pode surgir facilmente. Os sistemas de banco de dados precisarão de recursos específicos, como recursos de conformidade com PCI, para lidar especificamente com as transações financeiras.
Conforme os bancos de dados evoluíram, os sistemas de tratamento de transações também evoluíram. Um novo tipo de banco de dados chamado NoSQL é aquele que não depende dos relacionamentos de dados do banco de dados relacional tradicional para operar.
Embora muitos sistemas NoSQL ofereçam conformidade com ACID, outros utilizam processos como o isolamento de instantâneo ou podem sacrificar alguma consistência para outros objetivos. Os especialistas às vezes falam sobre uma compensação entre consistência e disponibilidade, ou cenários semelhantes onde consistentemente podem ser tratados de forma diferente por ambientes de banco de dados modernos. Esse tipo de pergunta está mudando a forma como os stakeholders veem os sistemas de banco de dados, além dos paradigmas tradicionais de banco de dados relacional.
Esta definição foi escrita no contexto de bancos de dados