المتابعون للمدونة

الجمعة، 13 مايو 2016

ضغط قاعدة البيانات Database Compacting:


ضغط قاعدة البيانات Database Compacting:

عندما تحذف أحد السجلات من أحد الجداول، فإنه يختفي من عرض الجدول، ولكنه في الواقع يظل في موضعه في ملفّ قاعدة البيانات.. كل ما حدث هو أنّ قاعدة البيانات قد أشارت إلى حالته باعتباره سجّلا محذوفا، حتى لا يتمّ التعامل معه.. ولو حدث في برنامجك أن صار السجل الذي تتعامل معه محذوفا (بسبب قيام مستخدم آخر لقاعدة البيانات بحذفه)، فإنّ محاولة قراءة البيانات أو كتابتها في هذا السجل ستؤدّي إلى حدوث خطإ في برنامجك.
 

وقد تظن أنّ هدف إخفاء السجل المحذوف هو منحك القدرة على التراجع عن حذفه.. ولكنّ هذا ليس صحيحا على الإطلاق، فالسجل الذي يحذف لا يمكن استعادته، رغم أنه ما زال موجودا في ملفّ قاعدة البيانات موسوما بأنه محذوف!

لماذا إذن تستخدم قاعدة البيانات هذه الطريقة؟

تخيّل أنك تريد حذف سجل موجود في منتصف ملفّ قاعدة البيانات.. كيف في نظرك يحدث هذا؟

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

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

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

ولحل هذه المشكلة، يجب أن تقوم بين فترة وأخرى بعملية تسمى "ضغط قاعدة البيانات" Database Compacting، وفيها يتمّ إنشاء نسخة جديدة من ملفّ قاعدة البيانات لا تحتوي على السجلات المحذوفة.

وللقيام بهذا في Access، اضغط قائمة الأدوات Tools، ومنها اضغط القائمة الفرعيّة "أدوات مساعدة لقواعد البيانات" ومنها اضغط الأمر "ضغط قاعدة بيانات وإصلاحها" Compact and repair database.. هنا سيقوم Access بإغلاق قاعدة البيانات وضغطها ثمّ إعادة فتحها.. ولو اختبرت حجم ملفّ قاعدة البيانات، فربّما تجده أقل مما كان عليه.

***

بهذه النبذة السريعة، نكون قد أنهينا حديثنا عن Access.. وطبعا ليست هذه هي كل إمكانيّات هذا التطبيق الشهير، فهو قادر في حدّ ذاته على إنشاء النماذج والتقارير، وكتابة كود لغة خاصة من فيجيوال بيزيك تسمّى Visual Basic For Applications أو اختصارا VBA، وهو ما يخرج عن نطاق هذا الكتاب.. إنّ Access له وحده مراجع متخصصة!

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:


 

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر