تخطَّ إلى المحتوى
AzLearn

اختبار المعاملات

Transactions Quiz

اختبار ~22 دقيقة المستوى: متوسط

اختبار المعاملات — Transactions Quiz

هذا الاختبار يراجع أهم نقطة في SQL الإنتاجية: لا تفصل القرارات الحساسة عن التحديث. إذا كان المخزون يجب ألا يصبح سالباً، اجعل الشرط داخل UPDATE، وأضف CHECK, ونفذ داخل معاملة عندما تكون هناك خطوات مرتبطة.

مراجعة

query.sql

هذا نمط صغير، لكنه يحمل عقلية كبيرة: الشرط والتغيير معاً.

متى تكون المعاملة ضرورية حقاً؟

UPDATE المفرد هو بالفعل ذري (atomic) على مستوى الجملة — إما تنجح كل الصفوف المطابقة أو لا شيء. تغليفه في BEGIN/COMMIT لا يضيف شيئاً للأمان.

المعاملة تصبح ضرورية حين تكون هناك جملتان أو أكثر يجب أن تنجحا معاً أو تفشلا معاً:

query.sql

لو فشلت الجملة الثانية (مثل انقطاع الكهرباء) بعد نجاح الأولى — ROLLBACK التلقائي يُلغي كلتيهما. هذا هو جوهر Atomicity.

تحدي — Challenge

مراجعة المفاهيم

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

سؤال — Question
متى تكون المعاملة BEGIN/COMMIT ضرورية فعلاً؟
سؤال — Question
لماذا نضع الشرط داخل التحديث UPDATE ... SET stock = stock - 1 WHERE id = 1 AND stock > 0 بدل فحص المخزون بـ SELECT ثم التحديث؟
سؤال — Question
في تحويل مالي من جملتين، نجحت الأولى (الخصم) ثم فشلت الثانية. ماذا يفعل ROLLBACK؟

استرجع الآن الكلمات نفسها من ذاكرتك — هي حدود كل وحدة عمل ذرية.

أكمل الفراغ — Fill in the blank
أكمل الفراغ — Fill in the blank