TRANSACTIONS · DATABASE · 2026
الـ Transactions عملياً
من الـ BEGIN للـ COMMIT: كل اللي محتاج تعرفه عشان تستخدم transactions صح في كودك،
0%
Section 00
إيه هي الـ Transaction؟
البداية من الصفر
دورة حياة الـ Transaction
من البداية للنهاية
STEP 1 · BEGIN
افتح transaction
BEGIN;
STEP 2 · WORK
نفّذ العمليات
INSERT / UPDATE / DELETE
STEP 3 · DECIDE
إيه القرار؟
COMMIT أو ROLLBACK
✓ COMMIT
كل حاجة تمام
التغييرات بتتحفظ بشكل دائم في الـ DB. الـ Durability تتفعل.
✗ ROLLBACK
في مشكلة
كل التغييرات بترجع. الـ DB تعود لحالتها قبل الـ BEGIN. كأن الـ transaction ما حصلتش.
الـ Transaction هي مجموعة عمليات DB بتتعامل كوحدة واحدة. يا كلها بتنجح ويتم تطبيقها، يا كلها بترجع كأنها ما حصلتش أصلاً. مفيش "نص شغالة".
📖 المثال الكلاسيكي
تحويل 100 جنيه من حساب A لحساب B = عمليتين:
- اخصم 100 من A
- ضيف 100 لـ B
لو حصلت العملية ١ ومحصلتش العملية ٢ (السيرفر crashed مثلاً)، الـ 100 جنيه اختفوا. ده غير مقبول. الـ transaction بتضمن إن الاتنين يحصلوا سوا، أو الاتنين ما يحصلوش.
إمتى أستخدم transaction؟
✓ استخدمها لما:
- ← بتعدل في أكتر من جدول
- ← بتعدل في أكتر من row في نفس الجدول
- ← فيه read-then-write (تقرا وتعدل)
- ← العمليات بتعتمد على بعض
- ← فيه فلوس أو بيانات حساسة
✗ مش محتاجها لما:
- ← مجرد SELECT بسيط
- ← INSERT/UPDATE/DELETE واحد بس على row واحد
- ← العمليات مستقلة عن بعض
- ← (ملحوظة: كل statement لوحده بيكون auto-commit transaction)
⚡ معلومة مهمة
في معظم الـ DBs، كل SQL statement لوحده بيتنفذ في transaction ضمنية (implicit transaction) بـ auto-commit. الـ BEGIN/COMMIT بتسمحلك تجمع كذا statement في transaction واحدة.
أسئلة انترفيو على القسم ده
3القسم 1 / 13