Transações & ACID

Nessa postagem vamos falar sobre Transações e as propriedades ACID, entender o que são e seus benefícios.

Transações são as unidades de trabalho que lêem e modificam dados em um bando de dados e ajudam a garantir a consistência e durabilidade dos dados em um sistema.

Portanto, a transação pode incluir várias atividades que consultam e modificam dados e que provavelmente alteram a definição destes.

Seus limites podem ser definidos de uma forma explícita ou implícita, para definir o início de uma transação explicitamente é utilizado a instrução BEGIN TRAN, já para definir o final de uma transação é utilizado a instrução COMMIT TRAN, caso tenha o interesse de desfazer as alterações deve ser utilizado a instrução ROLLBACK TRAN.

Vamos para um exemplo do seu uso:

BEGIN TRAN;
INSERT INTO dbo.funcionarios VALUES (1, 'Joao', 2500)
COMMIT TRAN;

As transações possuem quatro características diferentes conhecidas como ACID: Atomicidade, Consistência, Isolamento e Durabilidade.

O conceito ACID. Neste artigo eu decidi ir pra um… | by Breno Peretta |  Medium

Vamos falar melhor sobre cada uma delas:

Atomicidade: A transação é uma unidade atômica de trabalho, todas as alterações nela podem ocorrer de fato ou não, se um sistema falha antes da transação ser concluída o SQL Server desfaz as alterações ocorridas pois elas ainda não haviam sido gravadas no log de transações do seu banco, agora falando de um caso em que ocorra erros durante a transação, normalmente o SQL Server vai reverter automaticamente, porém com algumas exceções.

Portanto a atomicidade garante que cada transação seja executada como uma abordagem “tudo ou nada”, todas as alterações feitas em uma transação são comitadas ou é feito o rollback.

Consistência: A consistência garante que qualquer transação do seu banco de dados traga o seu database de um estado consistente para outro e que nenhuma das regras e restrições definidas sejam violadas. É um termo subjetivo e depende das necessidades da sua aplicação.

Portanto, a consistência se refere ao estado dos dados em que o SQL Server lhe dá acesso enquanto as transações concorrentes os modificam e os consultam.

Isolamento: O isolamento garante que as alterações realizadas na transação sejam isoladas e invisíveis para outras transações até o momento em que ela seja comitada.

É um mecanismo usado para controlar o acesso a dados e garantir que as transações sempre acessem os dados apenas se estiverem no nível de consistência que for esperada por essas transações.

O SQL Server utiliza de bloqueios para isolar dados que sejam modificados ou consultados por uma transação a partir de outras transações.

Durabilidade: A durabilidade garante que depois que uma transação for comitada, todas as alterações feitas pela transação permanecerão e resistem à uma falha no sistema. O SQL Server alcança durabilidade, liberando os registros do log de transações para o disco no estágio do commit.

As alterações de dados sempre são gravadas em disco no log de transações antes de que fossem gravadas em disco de dados, portanto, após a instrução de commit ser executada é feito a gravação no disco de log de transações e a transação pode ser considerada durável mesmo que a alteração ainda não tenha sido gravada em um disco de dados.

Sendo assim, finalizamos a postagem para falar melhor sobre o que é uma transação e as propriedades ACID, o objetivo principal era explicar sobre eles.

Espero que tenham gostado!

Aguardem que vem mais conteúdo pela frente!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s