Requisitos de linguagem simples do ACID

Eu gosto dos livros da série Head First O`Reilly - eles apenas falam sobre o difícil. E tento fazer o mesmo.





Quando se trata de bancos de dados, as palavras mágicas "Requisitos de ACID" podem surgir. Em uma entrevista ou em uma conversa de desenvolvedor - não é o ponto. Neste artigo, vou falar sobre o que é, como significa ACID e o que cada letra significa.





Requisitos ACID são um conjunto de requisitos que garantem a segurança de seus dados. Isso é especialmente importante para transações financeiras. Não queremos ficar sem dinheiro devido a uma conexão desconectada ou a um bug de software, queremos?





Veja também:





O que é uma transação





Vamos examinar cada carta ACID e ver exemplos de como um arquivo é melhor do que 10 arquivos diferentes. E por que uma transação é melhor do que 10 solicitações separadas.





  1. Atomicidade - Atomicidade





  2. ConsistĂŞncia - ConsistĂŞncia





  3. Isolamento - Isolamento





  4. Durabilidade - Durabilidade





Atomicidade - Atomicidade

A atomicidade garante que todas as transações sejam executadas completamente ou que não sejam executadas. Estados intermediários não são permitidos.





Sabe-se que um amigo está em apuros e um banco de dados está lidando com erros. Ah, se tudo fosse sempre bom e sem erros! Então, nenhum ACID seria necessário. Mas assim que ocorre um erro, a atomicidade se torna muito importante.





Digamos que vocĂŞ decida enviar dinheiro para sua mĂŁe. Quando vocĂŞ faz uma transferĂŞncia dentro de um banco, o que acontece:





  1. Seu dinheiro foi debitado





  2. MamĂŁe foi internada





E digamos que temos 2 solicitações distintas. Agora vamos ver o que acontece quando ocorrem erros:





1.  —  , , .





2.      , — . . ... !





. ... , .





, . ? . , , « » « »!





, . ! =)





, . « ». 10 , —  , .





 





Consistency —

, (EOT — end of transaction, ) , , , . , © wikipedia





. , , . : « , ». ( — ).





, :

















  • —  ,





  • —





:





  • client





  • phone





  • address





«», 3 :





insert into client… --     - 

insert into phone…

insert into address…
      
      



3 , , 3 .





, , , — . , , « », . , , .





. -, . , « » —  , :





  • phone





  • client





, . « », , foreign key.





constraint. , « ». :





1.  100, 10





2.   — « , X – 100».





3.  , ! constraint, , .





4.  .





, , . forein , - — . , — . -.





, , - , . , - :





— , , ?





— -, ?





, .





Isolation —

.





, . ? — . , - : « , 100 , ». ? !





. ?





1 : " "





, 500 ..





1 (1 ) 300 .. . 300, 200 = 500 - 300.





2 (2) , 300 .., 1 . , 500, 500 + 300 = 800.





— " " , = 800, 500. " - ". .





2 : " "





, 500 ..





1 300 .. . 300. - 500 ..





2 (2) , 1 .





— , / ..





3 : " "





.





1 . . , (, ).





, - .





2 .





1 . .





- .





4 : ""





.





1 . . , (, ).





, - .





2 / .





1 . .





— .





3- 4- , , — /. .





? . , — .





—  . , . , .





:





  • () — 





  • — ,





  • Transaction Isolation Levels in DBMS — ,





— . , . , , , .





 





 





Durability —

, , , - - . , ? .





:





ACID





, ACID, CAP — geekbrains





ACID NoSQL — 





Bem, deixe-me lembrar o link para o artigo " O que é uma transação ".





PS - Procure artigos mais Ăşteis  no meu blog sob a tag “útil” . E vĂ­deos Ăşteis estĂŁo no  meu canal do youtube








All Articles