PYTHON Tutorial

معالجة المعاملات

المفاهيم الأساسية:

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

الخطوات العملية:

  • بدء المعاملة: ابدأ معاملة في قاعدة البيانات باستخدام الأمر "BEGIN TRANSACTION".
  • إجراء العمليات: إجراء العمليات المطلوبة ضمن المعاملة.
  • فحص النتائج: في حالة نجاح جميع العمليات، انتقل إلى الخطوة التالية. وإلا، انتقل إلى الخطوة 5.
  • الالتزام بالمعاملة: جعل التغييرات دائمة باستخدام الأمر "COMMIT".
  • التراجع عن المعاملة: التراجع عن التغييرات في حالة فشل أي عملية باستخدام الأمر "ROLLBACK".

مثال Python على ضمان سلامة البيانات باستخدام المعاملات في MySQL:

import mysql.connector

# إنشاء اتصال بقاعدة البيانات
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="",
    database="mydatabase"
)

# إنشاء مؤشر على كائن الاتصال
mycursor = mydb.cursor()

# بدء معاملة
mycursor.execute("BEGIN TRANSACTION")

try:
    # إجراء العمليات
    mycursor.execute("UPDATE customers SET balance = balance + 100 WHERE id = 1")
    mycursor.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 2")

    # الالتزام بالمعاملة في حالة نجاح العمليات
    mycursor.execute("COMMIT")
except:
    # التراجع عن المعاملة في حالة فشل أي عملية
    mycursor.execute("ROLLBACK")

# إغلاق مؤشر وموصل قاعدة البيانات
mycursor.close()
mydb.close()