كل سمور! نحن نعمل بنشاط على توسيع نطاق دوراتنا ، إذا جاز التعبير ، ويسعدنا الآن تقديم دورة جديدة:
"نظام إدارة علاقات العمل" . تم إنشاء الدورة من قبل أحد المعلمين الرائدين
في دورة
مسؤول Linux -
أليكسي تسيكونوف . خلاف ذلك ، سيكون كل شيء على النحو المعتاد: المرافق
والدروس المفتوحة ، حيث سيشارك أليكس أشياء مختلفة لم يتم تضمينها في الدورة نفسها.
دعنا نذهب!
يمكن تعريف المعاملة على أنها مجموعة من المهام ، والتي يعد إنجازها شرطًا أساسيًا لإتمام المعاملة بشكل صحيح. مهمة واحدة هي الحد الأدنى من الكتلة غير القابلة للتجزئة لتغيير البيانات.
هنا مثال لمعاملة بسيطة. افترض أن موظف البنك يحول 500 روبية من الحساب أ إلى الحساب ب. تتضمن هذه المعاملة الصغيرة والبسيطة عدة مهام منخفضة المستوى.
الحساب أ
Open_Account(A) Old_Balance = A.balance New_Balance = Old_Balance - 500 A.balance = New_Balance Close_Account(A)
الحساب ب
Open_Account(B) Old_Balance = B.balance New_Balance = Old_Balance + 500 B.balance = New_Balance Close_Account(B)
خصائص حمضيجب أن تحافظ المعاملة في نظام قاعدة البيانات على الذرية والاتساق والعزل والمتانة - ACID للاختصار - لضمان دقة البيانات واكتمالها وسلامتها:
- Atomicity - تظهر هذه الخاصية أنه يجب اعتبار المعاملة كوحدة ذرية ، أي إما أن يتم تنفيذ جميع عملياتها ، أو لا يتم تنفيذ وحدة واحدة. يجب ألا تكون هناك حالات في قاعدة البيانات يتم فيها إتمام المعاملة جزئيًا. يجب تعيين الولايات إما قبل بدء المعاملة أو بعد إتمامها / انقطاعها / فشلها.
- الاتساق - تشير هذه الخاصية إلى أن قاعدة البيانات يجب أن تظل في حالة متسقة بعد أي معاملة. لا يجب أن يكون لأي معاملة تأثير سلبي على البيانات الموجودة في قاعدة البيانات. إذا كانت قاعدة البيانات في حالة ثابتة قبل إتمام المعاملة ، فيجب أن تكون فيها بعد إتمامها.
- العزلة - في نظام قاعدة البيانات ، حيث يتم تنفيذ العديد من المعاملات في وقت واحد وبالتوازي ، تشير خاصية العزل إلى أن كل معاملة سيتم إجراؤها وتنفيذها كما لو كانت المعاملة الوحيدة في النظام. لا يجب أن تؤثر أي معاملة على وجود معاملات أخرى.
- المرونة - تشير هذه الخاصية إلى أن قاعدة البيانات يجب أن تكون مستقرة بما يكفي لتخزين جميع التحديثات الأخيرة ، حتى إذا أخطأ النظام أو أعاد التشغيل. إذا أدت المعاملة إلى تحديث جزء البيانات في قاعدة البيانات ، فيجب الاستمرار في تخزين هذه التغييرات في قاعدة البيانات. إذا تمت المعاملة ، ولكن تعطل النظام قبل كتابة البيانات على القرص ، فيجب تحديث البيانات فورًا بعد إعادة تشغيل النظام.
تسلسلعندما يتم تنفيذ العديد من المعاملات بواسطة نظام التشغيل في بيئة متعددة البرامج ، فمن المحتمل أن يتم خلط تعليمات إحدى المعاملات مع تعليمات أخرى.
- الجدول هو تنفيذ زمني لسلسلة من المعاملات. يمكن أن يحتوي الجدول على العديد من المعاملات ، كل منها يتكون من عدة تعليمات / مهام.
- الجدول الزمني المتسلسل هو جدول يتم فيه ترتيب المعاملات بحيث يتم إكمال كل معاملة على حدة. يسمى الجدول بالتسلسل لمجرد وجود نمط تنفيذ ثابت.
في بيئة متعددة المعاملات ، يعتبر الجدول الزمني المتسلسل معيارًا. لا يمكن تغيير ترتيب تنفيذ التعليمات في المعاملة ، ولكن قد يكون تنفيذ التعليمات لمعاملتين عشوائيًا. التنفيذ ليس ضارًا عندما تكون عمليتان مستقلتان بشكل متبادل وتعملان على قطاعات بيانات مختلفة ؛ ولكن إذا استخدموا نفس البيانات ، فقد تختلف النتائج ، مما قد يؤدي بقاعدة البيانات إلى حالة غير متناسقة.
لحل هذه المشكلة ، نسمح بالتنفيذ الموازي لجدول المعاملات في حالة إجراء تسلسل للمعاملات أو وجود علاقة تكافؤ.
جداول معادلةيمكن أن تكون الجداول المكافئة من الأنواع التالية:
معادلة النتيجةإذا أسفر جدولين بعد التنفيذ عن نفس النتيجة ، فسيتم اعتبارهما متكافئين في النتيجة. قد تكون النتائج هي نفسها لبعض القيم وقد تختلف لمجموعة أخرى من القيم. لذلك ، لا يعتبر هذا التكافؤ عادةً مهمًا.
معادلة العرضيعتبر جدولان متكافئان في العرض إذا كانت المعاملات في كل جدول تؤدي إجراءات مماثلة بطريقة مماثلة.
على سبيل المثال:
- إذا قرأ T البيانات الأصلية في S1 ، فإنه يقرأ أيضًا البيانات الأصلية في S2.
- إذا قرأت T القيمة المكتوبة بواسطة J في S1 ، فإنها تقرأ أيضًا القيمة المكتوبة بواسطة J في S2.
- إذا أنهى T كتابة القيم إلى S1 ، فإنه ينتهي أيضًا من كتابة القيم إلى S2.
معادلة الصراعسيتعارض جدولان إذا كان لهما الخصائص التالية:
- إنهم ينتمون إلى معاملات مختلفة.
- يصلون إلى نفس البيانات.
- واحد منهم على الأقل هو عملية "الكتابة".
يعتبر جدولان مع عدة معاملات مع عمليات متضاربة معادلاً للتضارب فقط إذا:
- يحتوي كلا الجدولين على نفس مجموعة المعاملات.
- يتم دعم ترتيب أزواج العمليات المتضاربة في كلا الجدولين.
ملاحظة - الجداول المكافئة في العرض قابلة للتسلسل في العرض التقديمي ، والجداول المكافئة للصراع قابلة للتسلسل. جميع الجداول القابلة للتسلسل قابلة للتسلسل.
حالة المعاملةيمكن أن تكون المعاملة في قاعدة البيانات في الحالات التالية:

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