Exigences ACID en langage clair et simple

J'aime les livres de la série Head First O`Reilly - ils ne parlent que du difficile. Et j'essaye de faire de même.





En ce qui concerne les bases de données, les mots magiques «ACID Requirements» peuvent apparaître. Dans une interview ou dans une conversation de développeur - pas le point. Dans cet article, je vais parler de ce que c'est, comment ACID signifie et ce que chaque lettre signifie.





Les exigences ACID sont un ensemble d'exigences qui garantissent la sécurité de vos données. Ceci est particulièrement important pour les transactions financières. Nous ne voulons pas manquer d'argent en raison d'une connexion déconnectée ou d'un bug logiciel, n'est-ce pas?





Voir également:





Qu'est-ce qu'une transaction





Passons en revue chaque lettre ACID et voyons des exemples de la façon dont une archive est meilleure que 10 fichiers différents. Et pourquoi une transaction vaut mieux que 10 demandes distinctes.





  1. Atomicité - Atomicité





  2. Cohérence - Cohérence





  3. Isolement - Isolement





  4. Durabilité - Durabilité





Atomicité - Atomicité

Atomicity garantit que chaque transaction sera exécutée complètement ou pas du tout. Les états intermédiaires ne sont pas autorisés.





Un ami est connu en difficulté et une base de données traite les erreurs. Oh, si seulement tout était toujours bon et sans erreurs! Aucun ACID ne serait alors nécessaire. Mais dès qu'une erreur survient, l'atomicité devient très importante.





Disons que vous décidez d'envoyer de l'argent à votre mère. Lorsque vous effectuez un virement au sein d'une banque, que se passe-t-il:





  1. Votre argent a été débité





  2. Maman a été admise





Et disons que nous avons 2 demandes distinctes. Voyons maintenant ce qui se passe lorsque des erreurs se produisent:





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 — 





Eh bien, laissez-moi vous rappeler le lien vers l'article " Qu'est-ce qu'une transaction ".





PS - Recherchez des articles plus utiles  dans mon blog sous la balise «utile» . Et des vidéos utiles sont sur  ma chaîne youtube








All Articles