Persyaratan ACID Bahasa Biasa

Saya suka buku-buku dari seri Head First O`Reilly - mereka hanya berbicara tentang yang sulit. Dan saya mencoba melakukan hal yang sama.





Ketika datang ke database, kata ajaib "Persyaratan ACID" bisa muncul. Dalam wawancara atau percakapan pengembang - bukan itu intinya. Pada artikel ini saya akan berbicara tentang apa itu, apa kepanjangan ACID dan apa arti setiap huruf.





Persyaratan ACID adalah serangkaian persyaratan yang memastikan keamanan data Anda. Ini sangat penting untuk transaksi keuangan. Kami tidak ingin kehabisan uang karena koneksi terputus atau bug perangkat lunak, bukan?





Lihat juga:





Apa itu transaksi





Mari kita telusuri setiap surat ACID dan lihat contoh bagaimana arsip lebih baik dari 10 file berbeda. Dan mengapa transaksi lebih baik dari 10 permintaan terpisah.





  1. Atomicity - Atomicity





  2. Konsistensi - Konsistensi





  3. Isolasi - Isolasi





  4. Daya Tahan - Daya Tahan





Atomicity - Atomicity

Atomicity memastikan bahwa setiap transaksi akan dijalankan sepenuhnya atau tidak sama sekali. Status menengah tidak diperbolehkan.





Seorang teman dikenal bermasalah, dan database menangani kesalahan. Oh, andai saja semuanya selalu baik dan tanpa kesalahan! Maka tidak ada ACID yang dibutuhkan. Tetapi begitu kesalahan terjadi, atomisitas menjadi sangat penting.





Katakanlah Anda memutuskan untuk mengirim uang kepada ibu Anda. Saat Anda melakukan transfer di dalam bank, apa yang terjadi:





  1. Uang Anda telah didebit





  2. Ibu diterima





Dan katakanlah kita memiliki 2 permintaan terpisah. Sekarang mari kita lihat apa yang terjadi ketika kesalahan terjadi:





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 — 





Baiklah, izinkan saya mengingatkan Anda tautan ke artikel " Apa itu transaksi ".





PS - Cari artikel bermanfaat lainnya  di blog saya dengan tag "berguna" . Dan video yang berguna ada di  saluran youtube saya








All Articles