ACID يحمي بيانات قاعدة البيانات الخاصة بك
نموذج ACID لتصميم قاعدة البيانات هو واحد من أقدم وأهم مفاهيم نظرية قواعد البيانات. وهو يحدد أربعة أهداف يجب على كل نظام لإدارة قواعد البيانات أن يسعى جاهداً لتحقيقها: الذرية والاتساق والعزلة والمتانة. لا يمكن اعتبار قاعدة البيانات العلائقية التي تفشل في تلبية أي من هذه الأهداف الأربعة موثوقًا بها. تعتبر قاعدة البيانات التي تمتلك هذه الخصائص متوافقة مع ACID.
ACID معرف
لنأخذ لحظة لفحص كل من هذه الخصائص بالتفصيل:
- تنص Atomicity على أن تعديلات قاعدة البيانات يجب أن تتبع قاعدة "الكل أو لا شيء". ويقال أن كل معاملة "ذرية". إذا فشل جزء من المعاملة ، فستفشل المعاملة بالكامل. من الأهمية بمكان أن يحافظ نظام إدارة قواعد البيانات على الطبيعة الذرية للمعاملات على الرغم من أي نظام إدارة قواعد البيانات أو نظام التشغيل أو فشل الأجهزة.
- ينص تناسق أنه سيتم كتابة البيانات الصالحة فقط إلى قاعدة البيانات. إذا تم تنفيذ معاملة ، لسبب ما ، تنتهك قواعد تناسق قاعدة البيانات ، فسيتم إرجاع المعاملة بالكامل ، وستتم استعادة قاعدة البيانات إلى حالة تتفق مع هذه القواعد. من ناحية أخرى ، إذا تم تنفيذ معاملة بنجاح ، فسيأخذ قاعدة البيانات من حالة واحدة تتفق مع القواعد إلى حالة أخرى تتفق أيضًا مع القواعد.
- يتطلب العزل أن المعاملات المتعددة التي تحدث في نفس الوقت لا تؤثر على تنفيذ كل منهما للآخر. على سبيل المثال ، إذا قام جو بإصدار معاملة ضد قاعدة بيانات في نفس الوقت الذي تقوم فيه ماري بإصدار معاملة مختلفة ، يجب أن تعمل كلا المعاملات على قاعدة البيانات بطريقة معزولة. يجب أن تقوم قاعدة البيانات بإجراء معاملة Joe بالكامل قبل تنفيذ Mary ، أو العكس. هذا يمنع معاملة جو من قراءة البيانات الوسيطة المنتجة كأثر جانبي لجزء من معاملة ماري التي لن تلتزم في النهاية بقاعدة البيانات. لاحظ أن خاصية العزل لا تضمن المعاملة التي ستنفذ أولاً - فقط أن المعاملات لن تتداخل مع بعضها البعض
- تضمن المتانة أن أي معاملة ملتزمة بقاعدة البيانات لن تضيع. ويتم ضمان المتانة من خلال استخدام النسخ الاحتياطية لقواعد البيانات وسجلات المعاملات التي تسهل استعادة المعاملات المرتكبة على الرغم من أي أعطال لاحقة في البرامج أو الأجهزة.
كيف يعمل ACID في الممارسة
يستخدم مسؤولو قواعد البيانات العديد من الاستراتيجيات لفرض ACID.
واحد يستخدم لفرض الذريّة والمتانة هو التسجيل المسبق للكتابة (WAL) حيث يتم أولاً كتابة أي تفاصيل للمعاملات إلى سجل يتضمن كل من إعادة وتراجع المعلومات. ويضمن ذلك ، في ضوء فشل قاعدة البيانات من أي نوع ، يمكن أن تتحقق قاعدة البيانات السجل ومقارنة محتوياته إلى حالة قاعدة البيانات.
هناك طريقة أخرى تستخدم لمعالجة الذريّة والمتانة هي shadow-paging التي يتم فيها إنشاء صفحة ظل عندما يتم تعديل البيانات. تتم كتابة تحديثات الاستعلام إلى صفحة الظل بدلاً من البيانات الحقيقية في قاعدة البيانات. يتم تعديل قاعدة البيانات نفسها فقط عند اكتمال التحرير.
هناك استراتيجية أخرى تسمى بروتوكول الالتزام ثنائي المرحلة ، مفيدة بشكل خاص في أنظمة قواعد البيانات الموزعة. يفصل هذا البروتوكول طلب تعديل البيانات إلى مرحلتين: مرحلة طلب الالتزام وطور الالتزام. في مرحلة الطلب ، يجب أن تؤكد جميع نظم إدارة قواعد البيانات على الشبكة المتأثرة بالمعاملات أنها قد استلمتها ولديها القدرة على إجراء المعاملة. بمجرد استلام التأكيد من جميع قواعد بيانات DBMS ذات الصلة ، تكتمل مرحلة الالتزام التي يتم فيها تعديل البيانات فعليًا.