ما المشكلة؟#
افترض أنك تحوّل 100 دولار من بطاقتك إلى صديقك. يجب تنفيذ أمرين: الخصم من حسابك والإضافة إلى حسابه. فإذا انقطعت الكهرباء في المنتصف ونُفّذ الأول فقط، يضيع المال. وACID قواعد تجعل مثل هذا الأمر مستحيلًا.
الأعمدة الأربعة#
- Atomicity (الذرية): إما أن تُنفَّذ المعاملة كاملة أو لا يكون لها أي أثر.
- Consistency (الاتساق): بعد المعاملة تظل البيانات ملتزمة بالقواعد؛ مثلًا لا يصبح الرصيد سالبًا.
- Isolation (العزل): لا تتدخل المعاملات المتزامنة في عمل بعضها، وكأنها تُنفَّذ الواحدة بعد الأخرى.
- Durability (الاستدامة): بعد التأكيد لا تضيع النتيجة حتى لو انطفأ الخادم.
أين تهم؟#
- الأعمال المصرفية والدفع
- تسجيل الطلبات ومخزون المستودع
- حجز التذاكر والفنادق
العلاقة بأنواع القواعد#
تدعم معظم القواعد العلائقية مثل PostgreSQL وMySQL (بمحرك InnoDB) خصائص ACID. وبعض قواعد NoSQL تخفّف جزءًا من هذه الضمانات طلبًا لسرعة ومقياس أكبر. لذا إذا كانت الدقة المالية مهمة فتحقق من دعم ACID.