التحكم في التزامن في نظام إدارة قواعد البيانات (DBMS): الطابع الزمني والبروتوكولات القائمة على القفل

ما هو التحكم في التزامن؟

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

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

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

المشاكل المحتملة للتزامن

فيما يلي بعض المشكلات التي من المحتمل أن تواجهها أثناء استخدام طريقة التحكم المتزامن في DBMS:

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

لماذا استخدام طريقة التزامن؟

أسباب استخدام طريقة التحكم في التزامن هي DBMS:

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

مثال

لنفترض أن شخصين يذهبان إلى الأكشاك الإلكترونية في نفس الوقت لشراء تذكرة فيلم لنفس الفيلم ونفس وقت العرض.

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

بروتوكولات التحكم في التزامن

توفر بروتوكولات التحكم في التزامن المختلفة فوائد مختلفة بين مقدار التزامن الذي تسمح به ومقدار النفقات العامة التي تفرضها. فولوwing هي تقنيات التحكم في التزامن في نظم إدارة قواعد البيانات:

  • البروتوكولات القائمة على القفل
  • بروتوكول القفل على مرحلتين
  • البروتوكولات القائمة على الطابع الزمني
  • البروتوكولات القائمة على التحقق من الصحة

البروتوكولات القائمة على القفل

البروتوكولات القائمة على القفل في نظام إدارة قواعد البيانات (DBMS) هي آلية لا يمكن للمعاملة من خلالها قراءة البيانات أو كتابتها حتى تحصل على القفل المناسب. تساعد البروتوكولات القائمة على القفل في التخلص من مشكلة التزامن في نظام إدارة قواعد البيانات (DBMS) للتزامنneoمعاملاتنا عن طريق قفل أو عزل معاملة معينة لمستخدم واحد.

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

يتم إجراء جميع طلبات القفل إلى مدير التحكم في التزامن. لا تتم المعاملات إلا بعد الموافقة على طلب القفل.

الأقفال الثنائية: يمكن للقفل الثنائي الموجود على عنصر البيانات أن يكون إما مقفلاً أو غير مقفل.

مشترك/حصري: يفصل هذا النوع من آلية القفل الأقفال في نظام إدارة قواعد البيانات (DBMS) بناءً على استخداماتها. إذا تم الحصول على قفل على عنصر بيانات لإجراء عملية كتابة، فإنه يسمى قفلًا حصريًا.

1. القفل المشترك (S):

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

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

2. القفل الحصري (X):

باستخدام القفل الحصري، يمكن قراءة عنصر البيانات وكتابته أيضًا. وهذا حصري ولا يمكن الاحتفاظ به بشكل متزامن على نفس عنصر البيانات. يتم طلب قفل X باستخدام تعليمات lock-x. قد تؤدي المعاملات إلى إلغاء قفل عنصر البيانات بعد الانتهاء من عملية "الكتابة".

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

3. بروتوكول القفل المبسط

يسمح هذا النوع من البروتوكولات المستندة إلى القفل للمعاملات بالحصول على قفل لكل كائن قبل بدء التشغيل. قد تؤدي المعاملات إلى إلغاء قفل عنصر البيانات بعد الانتهاء من عملية "الكتابة".

4. القفل المسبق للمطالبة

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

الموت جوعا

المجاعة هي الحالة التي تحتاج فيها المعاملة إلى الانتظار لفترة غير محددة للحصول على القفل.

فولوwing ومن أسباب المجاعة:

  • عند عدم إدارة نظام الانتظار للعناصر المقفلة بشكل صحيح
  • في حالة تسرب الموارد
  • يتم تحديد نفس المعاملة كضحية بشكل متكرر

Deadlock

Deadlock يشير إلى موقف محدد حيث تنتظر عمليتان أو أكثر بعضهما البعض لتحرير مورد أو تنتظر أكثر من عمليتين المورد في سلسلة دائرية.

بروتوكول القفل على مرحلتين

بروتوكول القفل على مرحلتين المعروف أيضًا باسم بروتوكول 2PL، وهو وسيلة للتحكم في التزامن في نظام إدارة قواعد البيانات (DBMS) الذي يضمن إمكانية التسلسل من خلال تطبيق قفل على بيانات المعاملة، مما يمنع المعاملات الأخرى من الوصول إلى نفس البيانات في نفس الوقت.neously. يساعد بروتوكول القفل ثنائي الطور على التخلص من مشكلة التزامن في نظام إدارة قواعد البيانات (DBMS).

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

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

بروتوكول القفل على مرحلتين

يسمح بروتوكول القفل على مرحلتين لكل معاملة بإجراء طلب قفل أو فتح في خطوتين:

  • غروwing مرحلة: في هذه المرحلة، قد تحصل المعاملة على أقفال ولكن لا يجوز لها تحرير أي أقفال.
  • مرحلة الانكماش: في هذه المرحلة، قد تقوم المعاملة بتحرير الأقفال ولكن لا يمكنها الحصول على أي قفل جديد

صحيح أن بروتوكول 2PL يوفر إمكانية التسلسل. ومع ذلك، فإنه لا يضمن أن ديadlockلا يحدث.

في الرسم البياني أعلاه، يمكنك أن ترى أن de المحلي والعالميadlock أجهزة الكشف تبحث عن ديadlocks وحلها باستئناف المعاملات إلى حالاتها الأولية.

طريقة قفل صارمة على مرحلتين

نظام القفل الصارم ثنائي الطور يشبه تقريبًا 2PL. والفرق الوحيد هو أن Strict-2PL لا يقوم مطلقًا بتحرير القفل بعد استخدامه. إنه يحتفظ بجميع الأقفال حتى نقطة الالتزام ويحرر جميع الأقفال دفعة واحدة عندما تنتهي العملية.

مركزية 2PL

في Centralized 2 PL، يكون هناك موقع واحد مسؤول عن عملية إدارة القفل. يحتوي على مدير قفل واحد فقط لنظام إدارة قواعد البيانات بالكامل.

النسخة الأساسية 2PL

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

توزيع 2PL

في هذا النوع من آلية القفل على مرحلتين، يتم توزيع مديري القفل على جميع المواقع. إنهم مسؤولون عن إدارة أقفال البيانات في ذلك الموقع. إذا لم يتم نسخ أي بيانات، فهذا يعادل النسخة الأساسية 2PL. تكاليف الاتصال لـ 2PL الموزعة أعلى بكثير من النسخة الأساسية 2PL

البروتوكولات القائمة على الطابع الزمني

البروتوكول القائم على الطابع الزمني في نظام إدارة قواعد البيانات (DBMS) هي خوارزمية تستخدم وقت النظام أو العداد المنطقي كطابع زمني لتسلسل تنفيذ المعاملات المتزامنة. يضمن البروتوكول المستند إلى الطابع الزمني تنفيذ كل عمليات القراءة والكتابة المتضاربة بترتيب الطابع الزمني.

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

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

على سبيل المثال:

Suppose there are there transactions T1, T2, and T3. 
T1 has entered the system at time 0010 
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

المزايا:

  • الجداول قابلة للتسلسل تمامًا مثل بروتوكولات 2PL
  • لا تنتظر الصفقة، مما يلغي إمكانية ديadlocks!

العيوب:

يكون التجويع ممكنًا إذا تم إعادة تشغيل نفس المعاملة وإحباطها باستمرار

بروتوكول التحقق من الصحة

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

يتم تنفيذ البروتوكول القائم على التحقق من الصحة في المتابعةwing ثلاث مراحل:

  1. قراءة المرحلة
  2. مرحلة التحقق
  3. كتابة المرحلة

قراءة المرحلة

في مرحلة القراءة، يمكن قراءة قيم البيانات من قاعدة البيانات بواسطة معاملة ولكن يتم تطبيق عملية الكتابة أو التحديثات فقط على نسخ البيانات المحلية، وليس قاعدة البيانات الفعلية.

مرحلة التحقق

في مرحلة التحقق من الصحة، يتم فحص البيانات للتأكد من عدم وجود انتهاك لقابلية التسلسل أثناء تطبيق تحديثات المعاملات على قاعدة البيانات.

كتابة المرحلة

في مرحلة الكتابة، يتم تطبيق التحديثات على قاعدة البيانات إذا تم التحقق من الصحة بنجاح، وإلا؛ لا يتم تطبيق التحديثات، ويتم التراجع عن المعاملة.

خصائص بروتوكول التزامن الجيد

تحتوي آلية إدارة قواعد البيانات (DBMS) المثالية للتحكم في التزامن على ما يليwing الأهداف:

  • يجب أن يكون مرنًا في مواجهة فشل الموقع والاتصالات.
  • يسمح بالتنفيذ المتوازي للمعاملات لتحقيق أقصى قدر من التزامن.
  • وينبغي أن تكون آليات التخزين والأساليب الحسابية الخاصة بها متواضعة لتقليل النفقات العامة.
  • يجب أن تفرض بعض القيود على هيكل atomإجراءات المعاملات.

نبذة عامة

  • التحكم في التزامن هو الإجراء الموجود في DBMS لإدارة المحاكاةneoعملياتنا دون أن تتعارض مع بعضها البعض.
  • تعد التحديثات المفقودة والقراءة المتسخة والقراءة غير المتكررة ومشكلة الملخص غير الصحيحة من المشكلات التي يتم مواجهتها بسبب عدم التحكم في التزامن.
  • تعتمد على القفل، وعلى مرحلتين، وعلى أساس الطابع الزمني، وعلى أساس التحقق من الصحة، وهي أنواع من بروتوكولات التعامل مع التزامن
  • يمكن أن يكون القفل مشتركًا (S) أو حصريًا (X)
  • يحتاج بروتوكول القفل ثنائي الطور والذي يُعرف أيضًا باسم بروتوكول 2PL إلى أن تحصل المعاملة على قفل بعد تحرير أحد أقفالها. لديها مرحلتين جروwing وتقلص.
  • تستخدم الخوارزمية المستندة إلى الطابع الزمني طابعًا زمنيًا لإجراء تسلسل لتنفيذ المعاملات المتزامنة. يستخدم البروتوكول وقت النظام أو العد المنطقي ك الطابع الزمني.