ما معنى ACID؟
What is ACID?
مفهوم
~18 دقيقة
ما معنى ACID؟
ACID أربع خصائص تجعل المعاملات موثوقة. Atomicity تعني أن العملية تنجح كاملة أو تفشل كاملة. Consistency تعني أن القيود تبقى صحيحة. Isolation تعني أن العمليات المتزامنة لا ترى فوضى غير مقبولة. Durability تعني أن البيانات تبقى بعد commit حتى لو حدث عطل.
في تطبيق متجر، إنشاء طلب وتخفيض المخزون وتسجيل الدفع يجب أن تكون عملية متماسكة. لا تريد طلباً بلا تخفيض مخزون، ولا تخفيض مخزون بلا طلب. هنا تأتي المعاملات.
مثال ذهني
query.sql
Output:
الجملة تلخص atomicity: كل شيء أو لا شيء.
صدق قاعدة البيانات — Dialect Honesty
ACID مفهوم موحد، لكن تطبيقه يختلف بين أنظمة قواعد البيانات:
| الخاصية | SQLite (WAL) | PostgreSQL (افتراضي) | MySQL InnoDB (افتراضي) |
|---|---|---|---|
| Isolation | Serializable — كاتب واحد في الوقت ذاته، قراء متعددون | Read Committed — يرى التغييرات عند حدود الجملة | Repeatable Read — يرى snapshot ثابت داخل المعاملة |
| Concurrency | قارئون غير محدودون + كاتب واحد | Writers لا يحجبون القراء (MVCC) | MVCC مع قفل على المستوى الصفي |
| Deadlock | مستحيل — SQLITE_BUSY بدلاً منه | ممكن — PG يكتشفه ويرفع خطأ | ممكن — InnoDB يكتشفه ويتراجع |
SQLite في وضع WAL هو الأبسط للتطبيقات الصغيرة والمتوسطة: isolation كامل بدون تعقيد MVCC، وبدون deadlocks.
ليست تفاصيل أكاديمية
ACID تظهر في المال والمخزون والحجوزات. أي مكان يحمل قيمة حقيقية يحتاج هذه العقلية.
تحدي — Challenge
أرجع النص المطلوب