معاملات قاعدة البيانات

تُمثل معاملة قاعدة البيانات وحدة عمل تُنفذ ضمن نظام إدارة قواعد البيانات (أو نظام مشابه) على قاعدة بيانات ، وتُعالج بطريقة متسقة وموثوقة بمعزل عن المعاملات الأخرى [ 1 ] . وتمثل المعاملة عمومًا أي تغيير في قاعدة البيانات. وللمعاملات في بيئة قواعد البيانات غرضان رئيسيان:

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

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

يجب أن تكون معاملة قاعدة البيانات، بحكم تعريفها، ذرية (إما أن تكون كاملة تمامًا أو لا يكون لها أي تأثير على الإطلاق)، ومتسقة (يجب أن تتوافق مع القيود الموجودة في قاعدة البيانات)، ومعزولة (يجب ألا تؤثر على المعاملات الأخرى)، ودائمة (يجب كتابتها إلى وحدة تخزين دائمة). [ 2 ] غالبًا ما يشير ممارسو قواعد البيانات إلى هذه الخصائص لمعاملات قاعدة البيانات باستخدام الاختصار ACID .

غاية

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

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

  1. قيد مبلغ 100 دولار في حساب مصروفات البقالة
  2. إيداع مبلغ 100 دولار في الحساب الجاري

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

قواعد البيانات الخاصة بالمعاملات

قاعدة البيانات المعاملاتية هي نظام إدارة قواعد بيانات يوفر خصائص ACID لمجموعة محددة من عمليات قاعدة البيانات (بدء - تأكيد). تضمن المعاملات أن تكون قاعدة البيانات دائمًا في حالة متسقة، حتى في حالة التحديثات المتزامنة أو حالات الفشل. [ 3 ] جميع عمليات الكتابة ضمن المعاملة لها تأثير كلي أو لا شيء، أي إما أن تنجح المعاملة وتُنفذ جميع عمليات الكتابة، أو تُنقل قاعدة البيانات إلى حالة لا تتضمن أيًا من عمليات الكتابة الخاصة بالمعاملة. كما تضمن المعاملات أن تأثير المعاملات المتزامنة يفي بضمانات معينة، تُعرف بمستوى العزل . أعلى مستوى عزل هو قابلية التسلسل ، والذي يضمن أن تأثير المعاملات المتزامنة مكافئ لتنفيذها التسلسلي (أي المتسلسل).

الأكثر حداثةتدعم أنظمة إدارة قواعد البيانات العلائقية المعاملات. أما قواعد بيانات NoSQL فتعطي الأولوية لقابلية التوسع إلى جانب دعم المعاملات لضمان اتساق البيانات في حالة التحديثات والوصول المتزامن.

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

  1. ابدأ المعاملة.
  2. تنفيذ مجموعة من عمليات معالجة البيانات و/أو الاستعلامات.
  3. إذا لم يحدث أي خطأ، فقم بتنفيذ العملية.
  4. في حالة حدوث خطأ، قم بإلغاء العملية.

تُحفظ جميع نتائج عمليات معالجة البيانات ضمن نطاق المعاملة في قاعدة البيانات عند إتمامها. أما عند التراجع عن المعاملة، فلا تُحفظ النتائج الجزئية لعمليات معالجة البيانات ضمن نطاق المعاملة في قاعدة البيانات. ولا يُمكن بأي حال من الأحوال إتمام معاملة جزئية في قاعدة البيانات، لأن ذلك سيؤدي إلى حالة غير متناسقة في قاعدة البيانات.

داخلياً، تقوم قواعد البيانات متعددة المستخدمين بتخزين ومعالجة المعاملات، غالباً باستخدام معرف المعاملة أو XID.

توجد طرق متعددة ومتنوعة لتنفيذ المعاملات، بالإضافة إلى الطريقة البسيطة المذكورة أعلاه. على سبيل المثال، المعاملات المتداخلة هي معاملات تحتوي على عبارات داخلها تبدأ معاملات جديدة (أي معاملات فرعية). المعاملات متعددة المستويات هي نوع من المعاملات المتداخلة، حيث تتم المعاملات الفرعية على مستويات مختلفة من بنية النظام الطبقية (مثلاً، عملية على مستوى محرك قاعدة البيانات، وعملية أخرى على مستوى نظام التشغيل). [ 4 ] وهناك نوع آخر من المعاملات وهو المعاملة التعويضية .

في لغة SQL

تتوفر المعاملات في معظم تطبيقات قواعد بيانات SQL، وإن كانت بمستويات متفاوتة من المتانة. على سبيل المثال، بدأ MySQL بدعم المعاملات منذ الإصدار 3.23، لكن محرك التخزين InnoDB لم يكن افتراضيًا قبل الإصدار 5.5. أما محرك التخزين السابق MyISAM فلا يدعم المعاملات.

تبدأ المعاملة عادةً باستخدام الأمر `autocommit` BEGIN(مع أن معيار SQL ينص على `autocommit` START TRANSACTION). عند معالجة النظام COMMITلعبارة `autocommit`، تنتهي المعاملة بنجاح. يمكن لعبارة `autocommit`ROLLBACK أيضًا إنهاء المعاملة، مما يؤدي إلى التراجع عن أي عمل تم تنفيذه منذ ذلك الحين BEGIN. إذا تم تعطيل خاصية `autocommit` عند بدء المعاملة، فسيتم إعادة تفعيلها عند انتهائها.

يمكن تحديد مستوى العزل للعمليات الفردية ضمن المعاملات، وكذلك على مستوى قاعدة البيانات ككل. عند أعلى مستوى ( READ COMMITTED)، تبقى نتيجة أي عملية تُنفذ بعد بدء المعاملة غير مرئية لمستخدمي قاعدة البيانات الآخرين حتى انتهاء المعاملة. أما عند أدنى مستوى ( READ UNCOMMITTED)، والذي قد يُستخدم أحيانًا لضمان التزامن العالي، فستكون هذه التغييرات مرئية فورًا.

قواعد بيانات الكائنات

تتألف قواعد البيانات العلائقية تقليديًا من جداول ذات حقول وسجلات ثابتة الحجم. أما قواعد بيانات الكائنات فتتألف من كائنات ثنائية كبيرة الحجم متغيرة ، قد تكون قابلة للتسلسل أو تتضمن نوع MIME . وتتمثل أوجه التشابه الأساسية بين قواعد البيانات العلائقية وقواعد بيانات الكائنات في بدء العملية وتنفيذها (الالتزام أو التراجع) .

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

المعاملات الموزعة

تُنفّذ أنظمة قواعد البيانات المعاملات الموزعة [ 5 ] كمعاملات تصل إلى البيانات عبر عُقد متعددة. تُطبّق المعاملة الموزعة خصائص ACID على عُقد متعددة، وقد تشمل أنظمة مثل قواعد البيانات، ومديري التخزين، وأنظمة الملفات، وأنظمة المراسلة، ومديري البيانات الآخرين. في المعاملة الموزعة، يوجد عادةً كيان يُنسّق العملية بأكملها لضمان تطبيق جميع أجزاء المعاملة على جميع الأنظمة ذات الصلة. علاوة على ذلك، يُعدّ دمج التخزين كخدمة (StaaS) ضمن هذه البيئات أمرًا بالغ الأهمية، حيث يُوفّر مجموعة غير محدودة تقريبًا من موارد التخزين، مُستوعبًا مجموعة من فئات مخازن البيانات السحابية ذات التوافر وقابلية التوسع وخصائص ACID المُتفاوتة. يُعدّ هذا التكامل ضروريًا لتحقيق توافر أعلى، ووقت استجابة أقل، وكفاءة في التكلفة في التطبيقات كثيفة البيانات المنشورة عبر مخازن البيانات السحابية. [ 6 ]

أنظمة الملفات الخاصة بالمعاملات

يدعم نظام ملفات Namesys Reiser4 لنظام Linux [ 7 ] المعاملات، ومنذ نظام التشغيل Microsoft Windows Vista ، يدعم نظام ملفات Microsoft NTFS [ 8 ] المعاملات الموزعة عبر الشبكات. وتجري حاليًا أبحاث لتطوير أنظمة ملفات أكثر تماسكًا للبيانات، مثل نظام ملفات Warp Transactional Filesystem (WTF) [ 9 ] .

انظر أيضاً

مراجع

  1. "قواعد بيانات ACID مقابل قواعد بيانات BASE - الفرق بين قواعد البيانات - AWS" . شركة أمازون لخدمات الويب . تم الاطلاع عليه بتاريخ 28 نوفمبر 2025. المعاملة هي أي عملية تعتبرها قاعدة البيانات وحدة عمل واحدة. يجب أن تكتمل المعاملة بالكامل لكي تظل قاعدة البيانات متسقة. على سبيل المثال، عند تحويل الأموال من حساب مصرفي إلى آخر، يجب أن تغادر الأموال حسابك وتُضاف إلى حساب الطرف الثالث. لا يُمكن اعتبار المعاملة مكتملة دون إتمام كلتا الخطوتين.
  2. "ما هي المعاملة؟ (ويندوز)" . msdn.microsoft.com . 7 يناير 2021.
  3. دينكو، آنا ماريا؛ اكسينتي، سابينا دانييلا؛ باسيفاروف، إيوان (2022/12/29). "تحسينات الأداء لمعاملات قاعدة البيانات" . المجلة الدولية لأمن المعلومات والجرائم الإلكترونية . 11 (2): 29-34 . دوى : 10.19107/ijisc.2022.02.02 . ردمك 2285-9225 . S2CID 259653728 .  
  4. بيري، سي.؛ بيرنشتاين، بي. إيه.؛ غودمان، إن. (1989). "نموذج للتزامن في أنظمة المعاملات المتداخلة" . مجلة ACM . 36 (1): 230-269 . doi : 10.1145/62044.62046 . S2CID 12956480 . 
  5. أوزسو، م. تامر؛ فالدوريز، باتريك (2011). مبادئ أنظمة قواعد البيانات الموزعة، الطبعة الثالثة . سبرينغر. Bibcode : 2011podd.book.....O . doi : 10.1007/978-1-4419-8834-8 . ISBN 978-1-4419-8833-1.
  6. المنصوري، ياسر؛ الطوسي، عادل ندجاران؛ بويا ، راجكومار (2017/12/11). "إدارة تخزين البيانات في البيئات السحابية: التصنيف والمسح والاتجاهات المستقبلية" . مسوحات الحوسبة ACM . 50 (6): 91:1-91:51. دوى : 10.1145/3136623 . ISSN 0360-0300 . 
  7. "Linux.org" . Linux.org .
  8. "مكتبة MSDN" . 4 فبراير 2013. تم الاطلاع عليه بتاريخ 16 أكتوبر 2014 .
  9. "تصميم وتنفيذ نظام ملفات المعاملات Warp" (ملف PDF) . usenix.org . ١٨ مارس ٢٠١٦. تم الاطلاع عليه بتاريخ ١٦ أكتوبر ٢٠٢٥ .

للمزيد من القراءة

  • فيليب أ. بيرنشتاين ، إريك نيومر (2009): مبادئ معالجة المعاملات ، الطبعة الثانية ، مورغان كوفمان (إلسيفير)، رقم ISBN 978-1-55860-623-4
  • جيرهارد ويكوم، جوتفريد فوسن (2001)، نظم المعلومات التفاعلية: النظرية والخوارزميات وممارسة التحكم في التزامن والاستعادة ، مورغان كوفمان، ISBN 1-55860-508-8