عبدالفتاح الصلوي

ماذا تعرف عن ال transaction في قواعد البيانات؟

كتبها : عبدالفتاح الصلوي / في رصيف : قواعد البيانات

ماذا تعرف عن ال transaction في قواعد البيانات؟

عندما تقرأ بأن قاعدة بيانات ما  transactional database فهذا يعني بأنها مصممة للتعامل مع ولديها القدرة على معالجة العمليات بمبدأ اتمام الصفقات.

ما هو مبدأ اتمام الصفقات ؟

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

(اكون أو لا أكون تلك هي المسألة) . عندما افتتح شكسبير مسرحية هاملت بهذه العبارة لم يكن يعلم بأن دعم الصفقات transaction  في قواعد البيانات سيعتمد على هذا المبدأ بعد سنين طوال.

 
وبشكل علمي يمكن تعريف الصفقات (transactions) هي سلسلة من العمليات المرتبطة ببعضها البعض وتعامل ككتلة واحدة.
نقصد بالصفقة (ترجمة ل)  transaction و يفترض أن توجد أكثر من عملية تتم بداخل  هذه الصفقة لتكون ذات معنى .

ماذا نقصد بقولنا اكثر من عملية ؟

يقصد بها عملية الاضافة او التعديل او الحذف على البيانات في قاعدة البيانات .

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

تُستخدم قواعد البيانات (التي تدعم الميزة) على نطاق واسع في الانظمة التي تتطلب أداءً عاليًا وموثوقية ودقة. اطلع على مقال ماذا تعرف عن نموذج ACID في قواعد البيانات للمزيد.
وكامثلة لقواعد البيانات التي تدعم هذه الميزة في محركات تخزينها : MySQL، وPostgreSQL، وOracle، وSQL Server، وMongoDB. قد يفيدك الإطلاع على مقال (ماهو database storage engine ؟)

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

كيف نستخدم هذه الميزة ؟

كل ما عليك هو أن تخبر قاعدة البيانات بأن تبدأ الصفقة، ومن ثم تنفذ العمليات وعند الانتهاء نفذ امر الحفظ commit والا نفذ rollback .
في مقال سابق (ما هي الـ Transaction ؟) كنا قد تحدثنا عن استخدام الصفقات في laravel .


علامات ذات صلة :