ACID nima? 1-qism: Atomicity
Assalamu Alaykum bugun va bundan keyingi bir necha maqolalarda Relational Databazalardagi eng muhim xususiyat bo'lgan ACID bilan tanishib chiqmiz. Bugun faqatgina Atomicity haqida gaplashamiz.
Bu maqolani o'qishni boshlashdan oldin ushbu maqolaga bir ko'z tashlab chiqishingizni tavsiya qilaman. Tranzaksiya nima ?
ACID
Xo'sh ACID nima u o'zi ? ACID bu uning tarkibidagi so'z qisqartmasidan tashkil topgan . Bular :
Atomicity
Isolation
Consistency
Durability
ACID bu shunchaki tariflar emas u databazalarning fundamental bilimlari va hamma databazalar shu bilimlar ustiga qurilgan hattoki NoSQL, Graph databazalar ham.
Unda Atomicity dan boshlaymiz :).
Atomicity
Atomicity relational databazalar systemasini boshqarishning asosiy qismi faqatgina relational emas bu boshqa NoSQL va Vector va boshqalarga ham tegishli.
O'zi Atomicity so'zi atom so'zidan olingan yani bo'linmaydigan degan manoda ammo hozir atom bo'linishini topib shuncha yillik rivoyat rasvo bo'lgan :).
Atomicity qoidalar :
tranzaksiya ichidagi hamma querylar muvafaqqiyatli tugashi kerak
Agarda bir query muvafaqqiyatli tugamasa hamma querylar ortga qaytishi kerak (rollback)
Agarda tranzaksiya commit bo'lishidan oldin databaza qulasa (query xatolik bersa emas) , hammma muvafaqqiyatli querylar ortga qaytariladi (rollback)
Xo'sh endi Atomicityga amal qilmaydigan databazadan misol ko'ramiz
Tassavur qiling sizda foydalanuvchilar va ularni balanslari bor va siz 1-foydlanuvchidan 2-chisiga 100 $ o'tkazmoqchisiz.Va amallar boshlandi ammo 1-foydalanuvchidan pul yechganda databaza nimadir sabab bilan o'chib qoldi.

Xo'sh uni qayta yoqgandan so'ng nima bo'ladi ?
Ko'rib turganingizdek 1-accountdan pul yechilgan ammo 2-chisiga hali o'tkazilmagan biz shunchaki 100 $ yo'q qilib yubordik . Bu yerda ko'rganingizdek atomicity yetishmasligi ma'lumotlari noto'gri databaza (inconsistent)holatiga olib keldi .
Xulosa
Atomicityning eng asosiy vazifa amallar bir butundek ishlashi va agarda biror xato ketgan taqdirda ham hamma ma'lumotni oldingi holatiga qaytarishga yordam berish.
Ba'zi holatlarda siz databaza qayta yoqolmasligingiz mumkin buning sababi oldingi maqolada aytib o'tganimdek ular hali malumotlarni eski holatga qaytarayotgan bo'ladi va bu ularni to'liq ishga tushishini oldini oladi. Shuning uchun uzun va ko'p amallik tranzaksiyalar tavsiya etilmaydi .
Qolgan bo'limlar keyingi qismlarda.
Xato va kamchiliklar uchun uzr !!!
linkedin.com =>Ulug'bek Habibov | LinkedIn
telegram channel =>@habibov_ulugbek