Curtas sobre a DP-900: Conceitos básicos de dados | Parte 2
Tags: certification, azure, braziliandevs, dp900
Published: 2022-05-26 00:44:14

Fala moçada, beleza?!

No artigo passado falamos um pouco sobre os dados, seus tipos e seus armazenamentos. No artigo de hoje, a ideia é explorar um pouco sobre processamento transacional. Então se prepara, pega um café, ou suco, ou água, se tiver um biscoitinho aí também, é bem legal para acompanhar 🤣. Vamos nessa!

Quando falamos de transação, você pode ter algumas lembranças; eu mesmo quando ouço essa palavra me bate logo na mente transações financeiras (quem quer dinheiro??? procura o Silvio Santos 🤣).


![Image description](https://i.pinimg.com/474x/00/ff/09/00ff09e146038d4916059b29c6ddcf4f--true-tv-a-tv.jpg)

É interessante a natureza de uma transação financeira, supondo que você queira transferir um valor de sua conta para a conta de uma outra pessoa, você não vai querer que o valor saia de sua conta e se perca por exemplo, sendo feito somente o débito do valor e nada mais. Você também acharia estranho que um valor fosse enviado para a outra pessoa, porém, sem ser debitado de sua conta. Isso é um exemplo onde falei de passos muito simplistas por sinal, mas podemos perceber que para que tudo dê certo, tem pelo menos dois passos mencionados: 

1. O primeiro é o débito em sua conta.
2. O segundo o crédito na conta da outra pessoa.


![Exemplo de transações no dia a dia](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gi3tvqgkkc5siwi2lpck.png)

Essas operações descritas acima, não serão passos isolados, eles vão representar uma unidade de trabalho; o que quero dizer é que, o ato de transferir só é válido se ocorrer, minimamente (e desconsiderando qualquer outro processo que seja feito), com sucesso esses dois passos. Uma transação de dados é algo similar. Na [documentação da Microsoft](https://docs.microsoft.com/pt-br/learn/modules/explore-core-data-concepts/5-transactional-data-processing) fala justamente esse termo, uma unidade de trabalho. Uma outra forma de pensar, é que uma transação seria um conjunto de passos que devem ser executados sobre os dados, onde essa operação será enxergada como um único processo. Caso dê erro em um dos passos, todos os outros passos devem ser desfeitos.

Esse modelo transacional faz parte dos bancos relacionais, apesar de vermos atualmente muitas pessoas falando sobre bancos NoSQL, acredito que o modelo relacional ainda domina o cenário em aplicações empresariais, que de certa forma, são beneficiadas por essa forma de trabalho. Talvez você tenha visto nas regras de negócio de sua empresa, se você não trabalha ainda na área continue conosco que você vai ser beneficiado também, operações que devem ocorrer em conjunto no banco, talvez atualizar tabelas diferentes, e que nesse cenário tem que ser “tudo ou nada”. 

Então, um modelo transacional vai suportar isso aí; além disso, um sistema transacional foi feito também para suportar um alto volume de operações e velocidade de acesso dos dados, a ideia  é que os dados sejam otimizados para operações de gravação e consulta. O trabalho realizado pelo sistema transacional é conhecido também como OLTP, que na prática significa “Processamento de Transações Online”. Em soluções OLTP existem operações que são muito conhecidas pelos desenvolvedores, os famosos CRUD’s (Create, Read, Update e Delete), para quem ainda não está familiarizado com a área, de forma bem rápida, os CRUD’s são operações de criação, leitura, atualização e exclusão dos dados em um banco de dados. Essas operações geralmente são realizadas de forma transacional para poder manter a integridade dos dados.

## ACID

Outro assunto importante dentro dessa parte de sistema transacional, e que é pedido na DP-900, é o entendimento sobre ACID. Você quis dizer ácido Mateus? Não, ACID mesmo, ele é um acrônimo para Atomicidade, Consistência, Isolamento e Durabilidade (isso trazendo para nosso pt-br! Hahaha). Essa sigla representa características de uma transação em um banco de dados. Vamos falar um pouco mais sobre eles:

### Atomicidade
Entenda esse conceito como algo único, ou é tudo ou nada como falei mais acima, no caso, se você tiver um conjunto de operações em uma transação, ele será enxergado como algo atômico, ou seja, se uma parte do processo falhar, vai falhar a operação inteira.

### Consistência
Os dados antes e após passarem por uma transação devem estar consistentes, não devem possuir anomalias causadas por erros em transações, é uma propriedade que se refere ao estado dos dados.

### Isolamento
Uma transação é isolada da outra, ou seja, uma não vai interferir na outra, é tipo uma criança egoísta, se ela tá brincando com um brinquedo, outra não deve interferir.

### Durabilidade
A ideia dessa propriedade é que, uma vez persistido as operações sobre os dados, caso o banco fique fora (ah Mateus, ele gosta de passear né?! 🤣) por algum motivo, ao voltar o serviço, os dados continuam lá sem problemas.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ur8m8rxynpt49pc0zrxz.png) 

## Considerações finais

E assim encerramos o assunto sobre soluções transacionais da certificação da DP-900, no próximo artigo vamos falar sobre soluções analíticas. Se você chegou até aqui, parabéns e obrigado, caso pulou para a última parte ou se está lendo só esse trecho, tem um segredo em alguma parte do texto, quando ler e descobrir me conta! Bom, até a próxima moçada! 😃

## Agradecimentos

Não posso encerrar esse texto sem agradecer aos revisores que abrilhantaram e colaboraram ativamente com esse artigo. Agradeço a revisão do [Renan](https://www.linkedin.com/in/barbosarenan/) e também a revisão e imagens do [Ono](https://www.linkedin.com/in/sergio-hideki-ono-947b066a/). Muito obrigado, vocês são demais! 😃