شرح transaction في الداتا بيس - شرح sql بالعربي شرح transaction في الداتا بيس - شرح sql بالعربي - اقرا معي وتعلم على الانترنت

شرح transaction في الداتا بيس - شرح sql بالعربي

السلام عليكم ورحمة الله وبركاته في البداية نعتذر عن توقفنا عن النشر لظروف خاصة , نلتقي مجدداً في موضوعنا دورة في SQL بالعربي لمتابعة الدروس يمكنك زيارة الرابط التالي :
شرح transaction في الداتا بيس

موضوعنا اليوم شرح transaction او يمكن تسميتها بالمناقلات.

هل سبق لك وفكرت ما الذي سيحدث في حال انقطاع التيار الكهربائي أو حدوث خلل متعلق بالعتاد الصلب أو البرمجيات أثناء عملية تحويل مصرفي الكتروني أو عملية شراء عبر الانترنت. فغالبًا ما تتكون هذه العمليات ككل من أكثر من عملية جزئية. هل خطر لك ما الذي سيحدث إذا فشلت إحدى تلك العمليات الجزئية؟ لنأخذ حالة شخص أراد شراء سلعة بسعر $ 200 عبر موقع تجارة الكتروني عن طريق بطاقته الائتمانية.
أبسط سيناريو لتلك العملية سيكون سحب المبلغ من حسابه وإيداعه في الحساب الخاص بموقع التجارة الالكتروني وإذا أردنا التعبير عن هذا بصيغة SQL :
UPDATE creditAccount set creditBalance=creditBalance - 200 where creditNumber=’345276778543’;

UPDATE SiteAccount set SiteBalance=SiteBalance + 200 where accountNumber=345231;

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

مالمقصود بالمناقلة او ماهو ال Transaction ؟

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

ملاحظات:

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


خصائص transaction :

المناقلات بشكل عام وليس فقط المطبقة في قواعد البيانات يجب ان تحقق مجموعة من الخصائص هذه الخصائص تسمى خصائص ACID وهي :
  • الذرية Atomicity: تعود الى طبيعة الكل او اللاشي الخاصة بالمناقلة أي اما ان يتم تطبيق المناقلة كاملة او لا تتم ابداً وتعتبر هذه الخاصية الخاصية الرئيسية للمناقلات والاكثر تعبيراً عن طبيعة وظيفتها .
  • الثباتية او التماسك Consistency: تعني ان المناقلة يجب ان تنقل النظام من وضع مستقر ومتسق الى وضع اخر مستقر ومتسق .
  • العزل Isolation : تعني ان كل مناقلة يجب ان تعمل بشكل مستقل تماماً عن اية مناقلة اخرى او عمليات اخرى تتم في نفس الوقت 
  • الاستمرارية Durability : تعني يجب ان تكون نتائج المناقلة الناجحة قادرة على الصمود ومقاومة الاحداث حتى المتعلقة بانهيار النظام ككل.

كيف تعمل المناقلة TRANSACTION :

طريقة عمل المناقلة تختلف تبعاً لنظام قواعد البيانات المستخدم ولكن المبادئ والمراحل موحدة لجميع انواع قواعد البيانات وهي كالاتي :

تحديد بداية مناقلة :

بحسب المعيار SQL99 يتم ذلك بالتعبير START TRANSACTION لكن هذا التعبير غير مستخدم في قواعد بيانات   DB2 و Oracle و SQL Server  و MySQL  حيث ان صيغة البدء في SQL Server  تكون كما يلي :
BEGIN TRANSACTION transaction_name;

وفي MySQL تكون الصيغة :

BEGIN;

اما في Oracle 

يتم بدء المناقلة عند بدء تنفيذ اول استعلام كذلك الامر في DB2 إذاً لن تحتاج الى تعبير بدء المناقلة فيها .
أما قواعد بيانات Access فلا تدعم المناقلات.
متى نستخدم المناقلات TRANSACTIONS:
اذا اردنا ادخال او تعديل او حذف اكثر من صف دفعة واحدة
اذا اردنا التعديل على اكثر من قاعدة بيانات بشكل متزامن.
في حالات العمليات الموزعة على اكثر من قاعدة على اكثر من خادم .


نكتفي بهذا ونلتقي في درس اخر بإذن الله .
شارك الموضوع
تعليقات
  1. رائع جداً . .
    لكن نريد تكملة الموضوع مع الامثلة

    ردحذف
  2. شرحك ممتاز ومبسط اكمل باقي الدروس

    ردحذف
    الردود
    1. انا فخور جداً بذلك لقد اسعدتني كثيراً بتعليقك هذا لك فائق احترامي ومودتي ياغالي ,,, تشرفت بتواجدك في الموقع

      حذف
  3. شكرا لكم جزيل الشكر شرح أكثر من رائع كم تعبت وانا ابحاول فهم عذا الموضوع لاكن الان فهمته بكشل ممتاز ولكم الفضل بعد الله تعالى

    ردحذف

إرسال تعليق

لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر

محتوى قد يهمك

.