إدارة المعاملات في أنظمة إدارة قواعد البيانات: الحالات والأنواع وخصائص ACID

⚡ ملخص ذكي

تُعامل إدارة معاملات قواعد البيانات عمليةً واحدةً أو أكثر من عمليات قاعدة البيانات كوحدة منطقية واحدة تنقل قاعدة البيانات من حالة متسقة إلى أخرى. وتعتمد على خصائص ACID، وحالات المعاملات المُحددة، والجداول الزمنية للحفاظ على صحة الوصول المتزامن.

  • 🔁 الوحدة الأساسية: تجمع المعاملة عمليات القراءة والكتابة ذات الصلة بحيث تنجح أو تفشل معًا، وليس في منتصف الطريق أبدًا.
  • 🧪 خصائص الحمض: Atomتضمن الكفاءة والاتساق والعزل والمتانة نتائج صحيحة حتى في حالة الفشل أو التزامن.
  • 🚦 حالات المعاملة: تصف المصطلحات "نشط" و"ملتزم جزئياً" و"ملتزم" و"فاشل" و"منتهٍ" دورة حياة المعاملة.
  • 👥 لماذا التزامن؟ يتم مشاركة قاعدة البيانات، لذا يتم تشغيل العديد من المعاملات في وقت واحد ويجب ألا تتلف بيانات بعضها البعض.
  • 📋 جداول: يقوم الجدول الزمني بترتيب عمليات المعاملات المتوازية مع الحفاظ على التسلسل الداخلي لكل معاملة.
  • 🔗 إمكانية التسلسل: يكون الجدول الزمني المتزامن صحيحًا عندما تكون نتيجته مساوية لبعض التنفيذ التسلسلي، ويتم الحكم عليه من خلال التعارض أو تكافؤ العرض.
  • ↩️ التعافي: يتم التراجع عن المعاملة الفاشلة بحيث لا تصل كتاباتها الجزئية إلى قاعدة البيانات الملتزمة.

إدارة المعاملات في أنظمة إدارة قواعد البيانات

ما هي معاملة قاعدة البيانات؟

A معاملة قاعدة البيانات تُعدّ المعاملة وحدة معالجة منطقية في نظام إدارة قواعد البيانات، وتتضمن عملية وصول واحدة أو أكثر إلى قاعدة البيانات. باختصار، تمثل معاملات قواعد البيانات أحداثًا واقعية في أي مؤسسة.

تُعتبر جميع عمليات الوصول إلى قاعدة البيانات التي تتم بين بداية ونهاية المعاملة معاملة منطقية واحدة في نظام إدارة قواعد البيانات. وخلال المعاملة، تكون قاعدة البيانات غير متسقة. ولا يتغير وضعها من حالة متسقة إلى أخرى إلا بعد إتمام المعاملة.

عملية نقل البيانات بين حالات متسقة
معاملة قاعدة البيانات

حقائق حول معاملات قواعد البيانات

  • المعاملة هي وحدة برنامج قد يؤدي تنفيذها إلى تغيير محتويات قاعدة البيانات أو عدم تغييرها.
  • يتم تنفيذ مفهوم المعاملة في نظام إدارة قواعد البيانات (DBMS) كوحدة واحدة.
  • إذا كانت عمليات قاعدة البيانات لا تقوم بتحديث قاعدة البيانات بل استرداد البيانات فقط، فإن هذا النوع من المعاملات يسمى معاملة للقراءة فقط.
  • يمكن للمعاملة الناجحة أن تغير قاعدة البيانات من حالة متسقة إلى أخرى.
  • يجب أن تكون معاملات نظام إدارة قواعد البيانات ذرية ومتسقة ومعزولة ودائمة.
  • إذا كانت قاعدة البيانات في حالة غير متناسقة قبل المعاملة، فستظل في حالة غير متناسقة بعد المعاملة.

لماذا تحتاج إلى التزامن في المعاملات؟

قاعدة البيانات هي مورد مشترك. يستخدمها العديد من المستخدمين وتُجري عليها عمليات متزامنة. ومن الأمثلة على ذلك الأنظمة المصرفية، وأنظمة حجز القطارات والطائرات، ومراقبة سوق الأسهم، وجرد البضائع في المتاجر الكبرى وعمليات الدفع.

قد يؤدي عدم إدارة الوصول المتزامن إلى حدوث مشكلات مثل:

  • أعطال في الأجهزة وانهيار النظام.
  • التنفيذ المتزامن لنفس المعاملة، مأزق، أو الأداء البطيء.

تتولى مسؤولية التحكم في هذا الوصول المشترك التحكم التزامنييستخدم هذا النظام آليات القفل والطوابع الزمنية لدمج المعاملات بأمان. وقبل ذلك، من المفيد معرفة المراحل التي تمر بها المعاملة.

حالات المعاملات

الحالات المختلفة لمفهوم المعاملة في نظام إدارة قواعد البيانات مذكورة أدناه:

الولايه او المحافظه الوصف
الدولة النشطة تدخل المعاملة في حالة النشاط عند بدء عملية التنفيذ. وخلال هذه الحالة، يمكن إجراء عمليات القراءة أو الكتابة.
ملتزم جزئيا تنتقل المعاملة إلى حالة الالتزام الجزئي بعد انتهاء المعاملة.
الدولة الملتزمة عندما تصل المعاملة إلى حالة الالتزام، تكون قد أكملت تنفيذها بنجاح، ويتم تسجيل جميع تغييراتها في قاعدة البيانات بشكل دائم.
حكومه فاشله تعتبر المعاملة فاشلة عندما يفشل أي من عمليات التحقق، أو إذا تم إجهاض المعاملة أثناء كونها في الحالة النشطة.
الدولة المنتهية تصل حالة المعاملة إلى حالة الإنهاء عندما تغادر المعاملة النظام ولا يمكن إعادة تشغيلها.

مخطط انتقال الحالة لمعاملة قاعدة البيانات

دعونا ندرس مخطط انتقال الحالة الذي يسلط الضوء على كيفية تحرك المعاملة بين هذه الحالات المختلفة.

  1. بمجرد بدء تنفيذ المعاملة، تصبح نشطة. ويمكنها إصدار عملية قراءة أو كتابة.
  2. بمجرد اكتمال عمليات القراءة والكتابة، تصل المعاملة إلى حالة الالتزام الجزئي.
  3. بعد ذلك، يجب أن تضمن بعض بروتوكولات الاسترداد أن عطل النظام لن يؤدي إلى عدم القدرة على تسجيل تغييرات المعاملة بشكل دائم. إذا نجح هذا الفحص، تُحفظ المعاملة وتدخل حالة الحفظ.
  4. إذا فشل الفحص، تنتقل المعاملة إلى حالة الفشل.
  5. إذا تم إجهاض العملية أثناء كونها في حالة نشطة، فإنها تنتقل إلى حالة فاشلة. يجب التراجع عن العملية لإلغاء تأثير عمليات الكتابة التي أجرتها على قاعدة البيانات.
  6. تشير الحالة المنتهية إلى المعاملة التي تترك النظام.

ما هي خصائص الأحماض؟

خصائص حمض تُستخدم هذه الخصائص للحفاظ على سلامة قاعدة البيانات أثناء معالجة المعاملات. يشير مصطلح ACID في أنظمة إدارة قواعد البيانات إلى: Aطوميه Cثبات Iالعزلة و Dقابلية التحمل.

  • Atomالجليد: المعاملة هي وحدة تشغيل واحدة. إما أن تنفذها بالكامل أو لا تنفذها على الإطلاق. ولا يمكن أن يكون هناك تنفيذ جزئي.
  • الاتساق: بمجرد تنفيذ المعاملة، يجب أن تنتقل من حالة ثابتة إلى أخرى.
  • عزل: ينبغي تنفيذ كل معاملة بمعزل عن المعاملات الأخرى. أثناء التنفيذ المتزامن، لا ينبغي إتاحة النتائج الوسيطة للمعاملات المنفذة في الوقت نفسه لبعضها البعض.
  • المتانة: بعد إتمام المعاملة بنجاح، يجب أن تستمر التغييرات في قاعدة البيانات، حتى في حالة حدوث أعطال في النظام.

خاصية ACID في أنظمة إدارة قواعد البيانات مع مثال

فيما يلي مثال على خاصية ACID في نظام إدارة قواعد البيانات:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

المعاملة 1 هي تحويل 50 دولارًا من الحساب X إلى الحساب Y.

المعاملة 2 هي إضافة دفعة فائدة بنسبة 10% لكل حساب.

إذا تم تقديم المعاملتين معًا، فلا يوجد ما يضمن تنفيذ المعاملة الأولى قبل الثانية أو العكس. وبغض النظر عن الترتيب، يجب أن تكون النتيجة كما لو أن المعاملات تتم بالتتابع، واحدة تلو الأخرى.

أنواع المعاملات

بناءً على مجالات التطبيق:

  • غير موزع مقابل موزع.
  • المعاملات التعويضية.
  • توقيت المعاملات.
  • المعالجة عبر الإنترنت مقابل المعالجة الدفعية.

بناءً على الإجراءات:

  • خطوتين.
  • مقيد.
  • نموذج عملي.

على أساس الهيكل:

  • المعاملات المسطحة أو البسيطة: تتكون من سلسلة من العمليات الأولية التي يتم تنفيذها بين عملية البداية وعملية النهاية.
  • المعاملات المتداخلة: هي معاملات تحتوي على معاملات أخرى.
  • سير العمل.

ما هو الجدول الزمني؟

الجدول الزمني هو عملية إنشاء مجموعة واحدة من عدة معاملات متوازية وتنفيذها واحدة تلو الأخرى. يجب أن يحافظ على ترتيب ظهور التعليمات في كل معاملة. إذا تم تنفيذ معاملتين في الوقت نفسه، فقد تؤثر نتيجة إحداهما على مخرجات الأخرى.

مثال

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

إذا تم تنفيذ المعاملة 2 قبل المعاملة 1، فستتم قراءة المعلومات القديمة حول كمية المنتج. وبالتالي، هناك حاجة إلى الجداول الزمنية.

يُعدّ التنفيذ المتوازي في قواعد البيانات أمرًا لا مفر منه. ولكن يُسمح بالتنفيذ المتوازي فقط عند وجود علاقة تكافؤ بين العمليات التي تُنفّذ في الوقت نفسه. وينقسم هذا التكافؤ إلى ثلاثة أنواع.

تكافؤ النتائج: إذا أظهر جدولان نتائج متطابقة بعد التنفيذ، يُطلق عليهما جدولان متكافئان في النتائج. قد يُظهران نفس النتيجة لبعض القيم ونتائج مختلفة لمجموعة أخرى من القيم. على سبيل المثال، تُحدِّث إحدى المعاملات كمية المنتج بينما تُحدِّث الأخرى بيانات العميل.

عرض التكافؤ: يحدث تكافؤ العرض عندما تُنفّذ المعاملات في كلا الجدولين إجراءً مماثلاً. على سبيل المثال، تُدرج إحدى المعاملات تفاصيل المنتج في جدول المنتجات، بينما تُدرج معاملة أخرى تفاصيل المنتج في جدول الأرشيف. المعاملة نفسها، لكن الجداول مختلفة.

معادلة الصراع: في هذه الحالة، تقوم معاملتان بتحديث أو عرض نفس مجموعة البيانات. يوجد تعارض بين المعاملتين، حيث أن ترتيب التنفيذ سيؤثر على الناتج.

ما هي قابلية التسلسل؟

تُعرف قابلية التسلسل بأنها عملية البحث عن جدول زمني متزامن يكون ناتجه مساوياً لجدول زمني تسلسلي تُنفذ فيه المعاملات واحدة تلو الأخرى. وبحسب نوع الجدول الزمني، يوجد نوعان من قابلية التسلسل:

  • قابلية تسلسل الصراع.
  • عرض إمكانية التسلسل.

يختلف الاثنان في مدى صرامة حكمهما على التكافؤ، كما هو ملخص أدناه.

البعد قابلية التسلسل في حالة التعارض عرض قابلية التسلسل
قاعدة ترتيب العمليات المتضاربة علاقات القراءة من وكتابة النهاية
اختبار يجب أن يكون مخطط الأسبقية غير دوري عرض التكافؤ مع جدول زمني متسلسل
صرامة أكثر صرامة، مجموعة فرعية أوسع نطاقًا، يشمل الكتاب المكفوفين
تكلفة التحقق فعّالة صعب حسابيًا

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

الأسئلة الشائعة

يجعل الأمر "Commit" التغييرات التي طرأت على المعاملة دائمة في قاعدة البيانات. أما الأمر "Rollback" فيلغي كل تغيير منذ بدء المعاملة، ويعيد قاعدة البيانات إلى الحالة المتسقة التي كانت عليها قبل بدء المعاملة.

Atomفي حالة حدوث عطل أثناء التنفيذ، تضمن خاصية الذرية تجاهل العمل الجزئي، وبالتالي تُعامل المعاملة كما لو أنها لم تُنفذ أصلًا. ثم تحمي خاصية المتانة العمل الملتزم به بعد الاستعادة.

يقوم الذكاء الاصطناعي بتحليل عمليات انتظار القفل ورسوم بيانية للجمود لاكتشاف المعاملات التي تعيق المعاملات الأخرى، ثم يوصي بمستوى عزل أو تغيير في الفهرس يقلل من التنازع دون إضعاف الصحة.

إلى حد ما. من خلال تعلم أنماط طلبات القفل التي سبقت حالات الجمود السابقة، يمكن للنموذج أن يرصد مزيج المعاملات المحفوف بالمخاطر مبكراً، مما يسمح للمجدول بالتأخير أو إعادة الترتيب قبل تشكل دورة.

يُنفّذ الجدول التسلسلي معاملة واحدة بالكامل قبل بدء المعاملة التالية، لذا لا يمكن للتداخل أن يُفسد البيانات. وهو بطيء، ولهذا السبب فإن الهدف هو جدول متزامن قابل للتسلسل معه.

تلخيص هذه التدوينة بـ: