المفاهيم الأساسية:
- المعاملات: مجموعة من العمليات التي تعمل كوحدة واحدة. إما أن تُنفذ بالكامل أو لا تُنفذ على الإطلاق.
- الالتزام: حفظ التغييرات التي أجرتها المعاملة بشكل دائم في قاعدة البيانات.
- التراجع: التراجع عن التغييرات التي أجرتها المعاملة في حالة حدوث خطأ.
- خصائص 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()