جدول معاملات قاعدة البيانات

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

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

الترميز

ترميز الشبكة:

  • الأعمدة: المعاملات المختلفة في الجدول.
  • الصفوف: الترتيب الزمني للعمليات (أو الإجراءات).

العمليات (أو الإجراءات):

  • R(X): تقوم المعاملة المقابلة "بقراءة" الكائن X (أي أنها تسترجع البيانات المخزنة في X). يتم ذلك لتمكينها من تعديل البيانات (مثلاً، X=X+4) أثناء عملية "الكتابة" بدلاً من مجرد استبدالها. عندما يتم تمثيل الجدول الزمني كقائمة بدلاً من شبكة، يتم تمثيل الإجراء على النحو التالي:Rأنا(X){\displaystyle Ri(X)}أينأنا{\displaystyle i}هو رقم يتوافق مع معاملة محددة.
  • W(X): تقوم المعاملة المقابلة "بالكتابة" إلى الكائن X (أي أنها تُعدّل البيانات المخزنة في X). عندما يتم تمثيل الجدول الزمني كقائمة بدلاً من شبكة، يتم تمثيل الإجراء على النحو التالي:دبليوأنا(X){\displaystyle Wi(X)}أينأنا{\displaystyle i}هو رقم يتوافق مع معاملة محددة.
  • Com.: يمثل هذا عملية "الالتزام" التي أكملت فيها المعاملة المقابلة بنجاح إجراءاتها السابقة، وجعلت جميع تغييراتها دائمة في قاعدة البيانات.

بدلاً من ذلك، يمكن تمثيل الجدول الزمني برسم بياني موجه غير دوري (أو DAG) حيث يوجد قوس (أي حافة موجهة ) بين كل زوج مرتب من العمليات.

مثال

فيما يلي مثال على جدول زمني:

د
T1T2T3
R(X)
W(X)
كوم.
R(Y)
W(Y)
كوم.
R(Z)
W(Z)
كوم.

في هذا المثال، تمثل الأعمدة المعاملات المختلفة في الجدول D. يتكون الجدول D من ثلاث معاملات T1 وT2 وT3. تقوم المعاملة T1 أولاً بقراءة وكتابة البيانات إلى الكائن X، ثم تقوم بتنفيذ عملية الحفظ. بعد ذلك، تقوم المعاملة T2 بقراءة وكتابة البيانات إلى الكائن Y وتنفيذ عملية الحفظ، وأخيراً، تقوم المعاملة T3 بقراءة وكتابة البيانات إلى الكائن Z وتنفيذ عملية الحفظ.

يمكن تمثيل الجدول D أعلاه كقائمة بالطريقة التالية:

D = R1(X) W1(X) Com1 R2(Y) W2(Y) Com2 R3(Z) W3(Z) Com3

مدة الإجراءات وترتيبها

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

يمكن أن تتداخل عمليات المعاملات في جدول زمني (أي يمكن تنفيذها بالتزامن )، ولكن يجب أن يظل ترتيب الوقت بين العمليات في كل معاملة دون تغيير. يكون الجدول الزمني بترتيب جزئي عندما تتداخل عمليات المعاملات فيه (أي عندما يكون الجدول قابلاً للتسلسل المتعارض ولكنه ليس تسلسليًا). ويكون الجدول الزمني بترتيب كامل عندما لا تتداخل عمليات المعاملات فيه (أي عندما يكون الجدول تسلسليًا).

أنواع الجداول الزمنية

الجدول الزمني الكامل هو الذي يتضمن إما إجراء إجهاض (يُعرف أيضًا بالتراجع ) أو إجراء تأكيد لكل معاملة من معاملاته. آخر إجراء للمعاملة هو إما التأكيد أو الإجهاض. وللحفاظ على الذرية ، يجب على المعاملة التراجع عن جميع إجراءاتها إذا تم إجهاضها.

مسلسل

يكون الجدول متسلسلاً إذا كانت المعاملات المنفذة غير متداخلة (أي أن الجدول التسلسلي هو الجدول الذي لا تبدأ فيه أي معاملة حتى تنتهي المعاملة الجارية).

الجدول د هو مثال على جدول زمني متسلسل:

د
T1T2T3
R(X)
W(X)
كوم.
R(Y)
W(Y)
كوم.
R(Z)
W(Z)
كوم.

قابل للتسلسل

يكون الجدول الزمني قابلاً للتسلسل إذا كان مكافئًا (في نتيجته) لجدول زمني متسلسل.

في الجدول E، لا يكون ترتيب تنفيذ إجراءات المعاملات هو نفسه كما هو الحال في الجدول D، ولكن في النهاية، يعطي الجدول E نفس نتيجة الجدول D.

هـ
T1T2T3
R(X)
R(Y)
R(Z)
W(X)
W(Y)
W(Z)
كوم.كوم.كوم.

تُستخدم قابلية التسلسل للحفاظ على اتساق البيانات في عنصر البيانات. وهي المعيار الرئيسي لصحة جدولة المعاملات المتزامنة، وبالتالي فهي مدعومة في جميع أنظمة قواعد البيانات العامة. من المرجح أن تُنتج الجداول غير القابلة للتسلسل نتائج خاطئة، والتي قد تكون ضارة للغاية (على سبيل المثال، عند التعامل مع الأموال داخل البنوك). [ 1 ] [ 2 ] [ 3 ]

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

أفعال متضاربة

يقال إن فعلين متعارضان (زوج متعارض) إذا وفقط إذا تحققت جميع الشروط الثلاثة التالية:

  1. الإجراءات تنتمي إلى معاملات مختلفة.
  2. إحدى هذه العمليات على الأقل هي عملية كتابة.
  3. تصل الإجراءات إلى نفس الكائن (قراءة أو كتابة). [ 4 ] [ 5 ]

بمعنى آخر، يُعتبر فعلان متعارضين إذا وفقط إذا كانا غير تبادليين . بمعنى آخر، يُعتبر فعلان متعارضين إذا وفقط إذا كانا تعارضًا بين القراءة والكتابة ، أو بين الكتابة والقراءة ، أو بين الكتابة والكتابة .

مجموعة الإجراءات التالية متضاربة:

  • R1(X)، W2(X)، W3(X) (3 أزواج متضاربة)

في حين أن مجموعات الإجراءات التالية لا تتعارض:

  • R1(X)، R2(X)، R3(X)
  • R1(X), W2(Y), R3(X)

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

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

تكافؤ الصراع

يُقال إن الجدولين S1 و S2 متكافئان من حيث التعارض إذا وفقط إذا تحقق الشرطان التاليان:

  1. يتضمن كل من الجدولين S1 و S2 نفس مجموعة المعاملات بحيث تحتوي كل معاملة على نفس الإجراءات بنفس الترتيب.
  2. يحتوي كلا الجدولين على نفس مجموعة الأزواج المتضاربة (بحيث تكون الإجراءات في كل زوج متضارب بنفس الترتيب). [ 6 ] وهذا يعادل اشتراط أن تكون جميع العمليات المتضاربة (أي العمليات في أي زوج متضارب) بنفس الترتيب في كلا الجدولين.

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

وبصورة مكافئة، يُقال إن جدولين متكافئان من حيث التعارض إذا وفقط إذا كان من الممكن تحويل أحدهما إلى الآخر عن طريق تبديل أزواج من العمليات المتجاورة غير المتعارضة ذات المعاملات المختلفة. [ 7 ]

قابل للتسلسل في حالة التعارض

يقال إن الجدول الزمني قابل للتسلسل المتعارض عندما يكون الجدول الزمني مكافئًا تعارضيًا لجدول زمني متسلسل واحد أو أكثر.

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

الجدول الزمني K مكافئ من حيث التعارض للجدول الزمني التسلسلي <T1,T2>، ولكنه ليس <T2,T1>.

ك
T1T2
R(A)
R(A)
W(B)
كوم.
W(A)
كوم.

يمكن فرض قابلية التسلسل المتعارض عن طريق إعادة تشغيل أي معاملة داخل الدورة في مخطط الأسبقية، أو عن طريق تطبيق قفل ثنائي المرحلة ، أو ترتيب الطوابع الزمنية ، أو عزل اللقطات القابلة للتسلسل . [ 8 ]

عرض التكافؤ

يُقال إن الجدولين S1 و S2 متكافئان من حيث العرض عندما تتحقق الشروط التالية:

  1. إذا كانت المعاملةتيأنا{\displaystyle T_{i}}في S1، يتم قراءة القيمة الأولية للكائن X، وكذلك يتم تنفيذ نفس المعاملة.تيأنا{\displaystyle T_{i}}في S2.
  2. إذا كانت المعاملةتيأنا{\displaystyle T_{i}}يقرأ قيمة (لكائن X) مكتوبة بواسطة المعاملةتيج{\displaystyle T_{j}}في المرحلة S1، يجب أن يفعل ذلك في المرحلة S2.
  3. إذا كانت المعاملةتيأنا{\displaystyle T_{i}}في S1 يتم تنفيذ عملية الكتابة النهائية للكائن X، وكذلك يتم تنفيذ نفس المعاملة.تيأنا{\displaystyle T_{i}}في S2.

بالإضافة إلى ذلك، يجب أن يتضمن جدولان متكافئان من حيث العرض نفس مجموعة المعاملات بحيث تحتوي كل معاملة على نفس الإجراءات بنفس الترتيب.

في المثال أدناه، يكون الجدولان S1 و S2 متكافئين من حيث العرض، ولكن لا S1 ولا S2 متكافئان من حيث العرض مع الجدول S3.

S1S2S3
T1T2T1T2T1T2
R(A)R(A)R(A)
W(A)W(A)W(A)
R(B) (1)R(A)R(A)
W(B)W(A)W(A)
كوم.R(B) (1)R(B) (1)
R(A)W(B)W(B)
W(A)كوم.R(B) (2)
R(B) (2)R(B) (2)W(B) (3)
W(B) (3)W(B) (3)كوم.
كوم.كوم.كوم.

لم يتم استيفاء الشروط اللازمة لكي يكون S3 مكافئًا من حيث العرض لـ S1 و S2 عند الرموز العلوية المقابلة للأسباب التالية:

  1. فشل الشرط الأول لتكافؤ الرؤية لأن T1 قرأ القيمة الأولية لـ B في S1 و S2، لكن T2 قرأ القيمة الأولية لـ B في S3.
  2. فشل الشرط الثاني لتكافؤ العرض لأن T2 قرأ القيمة التي كتبها T1 لـ B في S1 و S2، لكن T1 قرأ القيمة التي كتبها T2 لـ B في S3.
  3. فشل الشرط الثالث لتكافؤ العرض لأن T2 قام بالكتابة النهائية لـ B في S1 و S2، لكن T1 قام بالكتابة النهائية لـ B في S3.

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

  • S1: R1(A) قراءة أولية ، W1(A)، R1(B) قراءة أولية ، W1(B)، Com1، R2(A) كتابة بواسطة T1 ، W2(A) كتابة نهائية ، R2(B) كتابة بواسطة T1 ، W2(B) كتابة نهائية ، Com2
  • S2: R1(A) قراءة أولية ، W1(A)، R2(A) كتابة بواسطة T1 ، W2(A) كتابة نهائية ، R1(B) قراءة أولية ، W1(B)، Com1، R2(B) كتابة بواسطة T1 ، W2(B) كتابة نهائية ، Com2
  • S3: R1(A) قراءة أولية ، W1(A)، R2(A) كتابة بواسطة T1 ، W2(A) كتابة نهائية ، R2(B) قراءة أولية ، W2(B)، R1(B) كتابة بواسطة T2 ، W1(B) كتابة نهائية ، Com1، Com2

قابل للعرض التسلسلي

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

جي
T1T2
R(A)
R(A)
W(B)

لاحظ أن المثال أعلاه (وهو نفسه المثال الوارد في مناقشة قابلية التسلسل المتعارض) قابل للتسلسل للعرض وقابل للتسلسل المتعارض في الوقت نفسه. مع ذلك، توجد جداول قابلة للتسلسل للعرض ولكنها غير قابلة للتسلسل المتعارض: وهي الجداول التي تتضمن معاملة تُجري كتابة عمياء .

ح
T1T2T3
R(A)
W(A)
كوم.
W(A)
كوم.
W(A)
كوم.

المثال أعلاه غير قابل للتسلسل المتعارض، ولكنه قابل للتسلسل العرضي لأنه يحتوي على جدول تسلسلي مكافئ للعرض <T1,|  T2,|  T3>.

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

قابل للاسترداد

في الجدول القابل للاسترداد ، لا تُنفَّذ المعاملات إلا بعد أن تُنفَّذ جميع المعاملات التي تقرأ تغييراتها. يصبح الجدول غير قابل للاسترداد إذا...تيأنا{\displaystyle T_{i}}يقرأ ويعتمد على التغييرات من معاملة أخرىتيج{\displaystyle T_{j}}، وثمتيأنا{\displaystyle T_{i}}يلتزم وتيج{\displaystyle T_{j}}يلغي العملية.

FF2ج
T1T2T1T2T1T2
R(A)R(A)R(A)
W(A)W(A)W(A)
R(A)R(A)R(A)
W(A)W(A)W(A)
كوم.إجهاضكوم.
كوم.إجهاضإجهاض

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

الجدول J غير قابل للاسترداد لأن المعاملة T2 تم تنفيذها قبل T1 على الرغم من قراءة القيمة التي كتبتها T1 مسبقًا. ولأن T1 أُجهضت بعد تنفيذ T2، فإن القيمة التي قرأتها T2 خاطئة. ولأن المعاملة لا يمكن التراجع عنها بعد تنفيذها، فإن الجدول غير قابل للاسترداد.

بلا شلال

الجداول غير المتتالية (المعروفة أيضًا باسم "جداول تجنب الإجهاض المتتالي") هي جداول تتجنب الإجهاض المتتالي عن طريق منع عمليات القراءة غير الملتزمة . يحدث الإجهاض المتتالي عندما يتسبب إجهاض معاملة ما في إجهاض معاملة أخرى لأنها قرأت واعتمدت على تغييرات المعاملة الأولى على كائن ما. تحدث القراءة غير الملتزمة عندما تقرأ معاملة ما بيانات من عملية كتابة غير ملتزمة في معاملة أخرى. [ 9 ]

الأمثلة التالية هي نفسها تلك الواردة في المناقشة حول البيانات القابلة للاسترداد:

FF2
T1T2T1T2
R(A)R(A)
W(A)W(A)
R(A)R(A)
W(A)W(A)
كوم.إجهاض
كوم.إجهاض

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

فيما يلي جدول زمني قابل للاسترداد يتجنب الإجهاض المتتالي. مع ذلك، لاحظ أن تحديث A بواسطة T1 يُفقد دائمًا (لأن T1 يتم إلغاؤه).

F3
T1T2
R(A)
R(A)
W(A)
W(A)
إجهاض
يقترف

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

حازم

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

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

علاقات فئة قابلية التسلسل

توضح التعبيرات التالية العلاقات الهرمية (الاحتواء) بين فئات قابلية التسلسل وقابلية الاسترداد :

  • تسلسلي قابل للتسلسل في حالة التعارض قابل للتسلسل في حالة العرض جميع الجداول
  • تسلسلي صارم بدون تتالي (ACA) قابل للاسترداد جميع الجداول

يوضح مخطط فين (أدناه) البنود المذكورة أعلاه بشكل بياني.

مخطط فين لفئات قابلية التسلسل وقابلية الاسترداد

انظر أيضاً

مراجع

  1. فيليب أ. بيرنشتاين ، فاسوس هادزيلاكوس، ناثان غودمان (1987): التحكم في التزامن والاستعادة في أنظمة قواعد البيانات (تنزيل مجاني بصيغة PDF)، شركة أديسون ويسلي للنشر، رقم ISBN 0-201-10715-5
  2. ^ جيرهارد ويكوم ، جوتفريد فوسين (2001): نظم معلومات المعاملات ، إلسفير، ISBN 1-55860-508-8
  3. موريس هيرليهي وج. إليوت ب. موس. الذاكرة المعاملاتية: الدعم المعماري لهياكل البيانات غير المقفلة. وقائع الندوة الدولية السنوية العشرين حول هندسة الحاسوب (ISCA '93). المجلد 21، العدد 2، مايو 1993.
  4. 1 2 "قابلية التسلسل المتعارض في أنظمة إدارة قواعد البيانات" . GeeksforGeeks . 29-12-2015 . تم الاطلاع عليه بتاريخ 27-11-2023 .
  5. سيلبرشاتز، أبراهام؛ كورث، هنري ف.؛ سودارشان، س. (2020). مفاهيم نظم قواعد البيانات ( الطبعة السابعة). نيويورك، نيويورك: ماكجرو هيل للتعليم. ص 814. ISBN   978-1-260-08450-4.
  6. ^ راماكريشنان، راغو. جيركي، يوهانس (2000). أنظمة إدارة قواعد البيانات . سلسلة علوم الكمبيوتر ( الطبعة الثانية). بوسطن: ماكجرو هيل. ص. 540. ردمك   978-0-07-232206-4.
  7. غارسيا-مولينا، هيكتور؛ أولمان، جيفري د.؛ ويدوم، جينيفر (2009). أنظمة قواعد البيانات: الكتاب الكامل . طبعة بيرسون الدولية ( الطبعة الثانية). أبر سادل ريفر، نيوجيرسي: بيرسون/برنتيس هول. الصفحات 891-892 . ISBN   978-0-13-187325-4.
  8. 1 2 مايكل ج. كاهيل، أوي روم، آلان د. فيكيت (2008): "العزل التسلسلي لقواعد بيانات اللقطات" ، وقائع مؤتمر ACM SIGMOD الدولي لإدارة البيانات لعام 2008 ، الصفحات 729-738، فانكوفر، كندا، يونيو 2008، ISBN 978-1-60558-102-6(جائزة أفضل ورقة بحثية في مؤتمر SIGMOD لعام 2008)
  9. "التطبيق بدون تتالي في أنظمة إدارة قواعد البيانات" . GeeksforGeeks . 2019-08-06 . تم الاطلاع عليه بتاريخ 2023-11-29 .