Requisitos de ACID en lenguaje sencillo

Me gustan los libros de la serie Head First O`Reilly ; solo hablan de lo difĂ­cil. Y trato de hacer lo mismo.





Cuando se trata de bases de datos, pueden surgir las palabras mágicas "Requisitos de ACID". En una entrevista o en una conversación con un desarrollador, no es el punto. En este artículo hablaré sobre qué es, cómo significa ACID y qué significa cada letra.





Los requisitos ACID son un conjunto de requisitos que garantizan la seguridad de sus datos. Esto es especialmente importante para las transacciones financieras. No queremos quedarnos sin dinero debido a una conexiĂłn desconectada o un error de software, Âżverdad?





Ver también:





Qué es una transacción





Repasemos cada letra ACID y veamos ejemplos de cómo un archivo es mejor que 10 archivos diferentes. Y por qué una transacción es mejor que 10 solicitudes independientes.





  1. Atomicidad - Atomicidad





  2. Coherencia - Coherencia





  3. Aislamiento - Aislamiento





  4. Durabilidad - Durabilidad





Atomicidad - Atomicidad

Atomicity asegura que cada transacción se ejecutará completamente o no se ejecutará en absoluto. No se permiten estados intermedios.





Se sabe que un amigo tiene problemas y una base de datos se ocupa de los errores. ¡Oh, si todo fuera siempre bueno y sin errores! Entonces no se necesitarían ACID. Pero tan pronto como ocurre un error, la atomicidad se vuelve muy importante.





Digamos que decides enviarle dinero a tu mamá. Cuando haces una transferencia dentro de un banco, qué sucede:





  1. Tu dinero fue debitado





  2. Mamá fue admitida





Y digamos que tenemos 2 solicitudes separadas. Ahora veamos qué sucede cuando ocurren errores:





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 — 





Bueno, déjame recordarte el enlace al artículo " Qué es una transacción ".





PD: busque más artĂ­culos Ăştiles  en mi blog con la etiqueta "Ăştil" . Y hay videos Ăştiles en  mi canal de youtube.








All Articles