AzLearn

ما معنى ACID؟

What is ACID?

مفهوم ~18 دقيقة

ما معنى ACID؟

ACID أربع خصائص تجعل المعاملات موثوقة. Atomicity تعني أن العملية تنجح كاملة أو تفشل كاملة. Consistency تعني أن القيود تبقى صحيحة. Isolation تعني أن العمليات المتزامنة لا ترى فوضى غير مقبولة. Durability تعني أن البيانات تبقى بعد commit حتى لو حدث عطل.

في تطبيق متجر، إنشاء طلب وتخفيض المخزون وتسجيل الدفع يجب أن تكون عملية متماسكة. لا تريد طلباً بلا تخفيض مخزون، ولا تخفيض مخزون بلا طلب. هنا تأتي المعاملات.

مثال ذهني

query.sql

الجملة تلخص atomicity: كل شيء أو لا شيء.

صدق قاعدة البيانات — Dialect Honesty

ACID مفهوم موحد، لكن تطبيقه يختلف بين أنظمة قواعد البيانات:

الخاصيةSQLite (WAL)PostgreSQL (افتراضي)MySQL InnoDB (افتراضي)
IsolationSerializable — كاتب واحد في الوقت ذاته، قراء متعددونRead Committed — يرى التغييرات عند حدود الجملةRepeatable Read — يرى snapshot ثابت داخل المعاملة
Concurrencyقارئون غير محدودون + كاتب واحدWriters لا يحجبون القراء (MVCC)MVCC مع قفل على المستوى الصفي
Deadlockمستحيل — SQLITE_BUSY بدلاً منهممكن — PG يكتشفه ويرفع خطأممكن — InnoDB يكتشفه ويتراجع

SQLite في وضع WAL هو الأبسط للتطبيقات الصغيرة والمتوسطة: isolation كامل بدون تعقيد MVCC، وبدون deadlocks.

ليست تفاصيل أكاديمية

ACID تظهر في المال والمخزون والحجوزات. أي مكان يحمل قيمة حقيقية يحتاج هذه العقلية.

تحدي — Challenge