الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أفكار برمجية : منع تداخل البيانات ..

مغلق
بدأه محمد خليل أبو صلاح في 17 نوفمبر 2002 · 0 رد · 424 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1

من المعروف حاليا مدى تعقيد برامج إدارة قواعد البيانات DBMS و تطورها بشكل يمنع الكثير من وقوع الأخطاء

التي قد يقع بها المبرمجون سهوة مثل ال Dead Lock و غيرها من المشاكل التي وجد لها حلول من خلال ال Scheduler

أو غيرها من أجزاء هذه البرامج مما أدى إلى تطور قواعد البيانات و ظهور العديد منها بالأسواق ..

المهم لا نريد أن نخرج عن موضوعنا .. لكن كان تمهيدا لا بد منه .. إفرض أنك صممت تطبيقا لشركة ما أو أي جهة أخرى

يسمح للموظفين من خلال لوحة تحكم معينة إضافة و تعديل و حذف البيانات ..

دعونا نركز على تعديل البيانات كمثال .. من المعلوم أننا من خلال برمجتنا سنلجأ لعدة طرق لمنع إجراء أي أخطاء في التطبيق

مثلا تحدثنا سابقا على انه لو دخل الموقع زائران او أكثر في نفس الوقت ربما لن يزيد العداد إلا بمقدار واحد فقط .. و وجدنا حلا

لذلك و هو ال Lock من خلال الكائن Application الذي ذكرنا عنه موضوعا كاملا و الذي يحدث في عملية الاغلاق

انه يمنع وصول أي تعديل أو غيره لقاعدة البيانات حتى يتم إنجاز المهمة الحالية و بعدها ننتقل للمهة التالية ..

هذا شيء جميل جدا و من جهة قواعد البيانات يكون الحل الذي قد لا تشعر به .. لكن هل هناك طريقة لتشعر الموظف

أنه هناك عملية معينة و عليه الإنتظار ؟؟؟؟

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

1 أو صفر .. و ليكن الواحد في حالة أنشغال قاعدة البيانات بمهمة معينة و الصفر حال عدم وجود مهمة معينة ..

كل ما عليك هو عمل استعلام عند طلب اداء المهمة ليعرف ما إن كانت هناك مهمة أو لا .. غن كانت هناك مهمة تظهر رسالة

ان موظفا اخرا يقوم بالتعديل و طبعا في الأصل لا يكون هناك تعديل لكن بمجرد دخول الموظف الأول يتم عمل update للاستعلام

بحيث يحول الصفر لواحد و بعدها ياتي الموظف الثاني و يخبره ناتج الاستعلام أن السجل تحت التعديل ..

و بعد أن ينتهي الموظف الأول نقوم بعمل استعلام اخر يقوم بإرجاع الصفر و بالتالي عند تحديث الموظف الثاني للصفة يجد نفسه

قد دخل للصفحة المعنية بإجراء التعديلات ..

ملاحظة : في الحقيقة مع استخدام ال Lock لن يحدث تداخل حقيقي للبيانات لكن من اللطيف أن تشعر الموظف أنه ينتظر بدلا من أن يظهر معه

خطأ ما أو ما غير ذلك ..

أتمنى أن تكون هذه فكرة مفيدة و إن شاء الله المزيد عما قريب .. :)

You can fly while you can touch the sky

هذا الموضوع مغلق.

مواضيع مشابهة