العودة إلى الدورة

المعاملات (Transactions) وخصائص ACID

أساسيات قواعد البيانات: من الصفر إلى الاحتراف

الدرس 39: المعاملات (Transactions) وخصائص ACID

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

خصائص ACID

يضمن كل نظام DBMS موثوق به سلامة بياناته من خلال الالتزام بخصائص ACID:

1. الذرية (Atomicity)

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

2. الاتساق (Consistency)

  • المفهوم: يجب أن تنقل المعاملة قاعدة البيانات من حالة صالحة إلى حالة صالحة أخرى. إنها تضمن أن البيانات المكتوبة في قاعدة البيانات يجب أن تلتزم بجميع القواعد والقيود المحددة (PK, FK, NOT NULL).

3. العزل (Isolation)

  • المفهوم: يجب أن تكون المعاملات المتزامنة معزولة عن بعضها البعض. يجب أن تكون نتيجة المعاملات المتزامنة هي نفسها كما لو تم تنفيذها بالتسلسل.

4. المتانة (Durability)

  • المفهوم: بمجرد الالتزام بالمعاملة (اكتمالها بنجاح)، تصبح تغييراتها دائمة، حتى في حالة فشل النظام (انقطاع التيار الكهربائي، تعطل).

التحكم الأساسي في المعاملات

sql -- بدء كتلة معاملة BEGIN TRANSACTION;

-- العمليات 1 UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1;

-- العمليات 2 UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 2;

-- إذا كان كل شيء على ما يرام، اجعل التغييرات دائمة COMMIT;

-- إذا حدث خطأ، تراجع عن جميع التغييرات منذ BEGIN -- ROLLBACK;