قاعدة البيانات المستخدمة للتوضيح وفى إعداد الأمثلة التالية (Microsoft Access 2003):
فى هذا الموضوع سيتم توضيح طريقة:
1) استخدام نظام (Cache) خاص لرفع أداء تطبيقات قواعد البيانات
الهدف: تطبيق ذلك بطريقة سهلة، وبأقل مجهود من المبرمج.
1) استخدام نظام (Cache) خاص لرفع أداء تطبيقات قواعد البيانات
لرفع أداء تطبيق قاعدة البيانات، بالخصوص التى تعمل من خلال شبكة – و قد تقوم بتجميع البيانات من عدة قواعد بيانات موزعة – وبالتالى فسرعة الشبكة سيكون له تأثير فى أداء التطبيق، وقد تكون البيانات الموجودة فى الجدول الموجود على الشبكة زمن الثبات لها طويل (لا تتغير بسرعة)، والتطبيق يتعامل معها أكثر من مرة، وفى كل مرة يقوم بجلب نفس البيانات عبر الشبكة (دون داعى) !
لتوضيح الفكرة - لنفترض على سبيل المثال أن إدارة تعليمية مرتبطة بشبكة بالمدارس التابعة لها، وعدد المدارس كبير، وكل مدرسة لديها قاعدة بيانات (ولنفترض أنها تسمى Loacl.mdb) إحدى محتوياتها جدول (Classes) يحتوى على أسماء الفصول فى المدرسة وكود يشير إلى مشرف المنطقة الذى يشرف على هذا الفصل. أما بالنسبة للإدارة فلديها قاعدة بيانات أخرى (ولنفترض أنها تسمى Remote.mdb) تحتوى على جدول (Employees)، وهو يشير إلى بيانات المشرف. وحيث أنه يتم التبديل بين المشرفين كل فترة، فسيتم تحديث بيانات المشرفين فى الإدارة أسبوعياً (فى جدول Employees) مع ثبات رقم الـ (ID)، وبالتالى كل مدرسة يمكنها معرفة المشرفين الجدد دون الاحتياج لتحديث قاعدة بياناتها، وذلك بالاستعلام فى قاعدة بيانات الإدارة عبر الشبكة.
وبإستخدام الـ (Cache) سيتم الاستلام عن بيانات المشرف وإحضارها عبر الشكة، أول مرة فقط، ثم سيتم تخزينها فى (Caching system) داخل قاعدة البيانات، واستدعائها من الـ (Cache) بعد ذلك، عند الاحتياج إليها.
المثال يحتوى على قاعدتين بيانات (Remote.mdb) وتحتوى على جدول أسماء المشرفين، و (Local.mdb) ويحتوى على نظام إدارة الـ (Cache)، وعلى نموذجين (Classes - Cache):
1) النموذج (Classes): يقوم بعض الفصول الدراسية، وعند الانتقال لفصل جديد يقوم بالاستعلام فى الـ (Cache) عن بيانات المشرف بالدالة (GetEmployeeFromCache)، وفى حالة العثور عليها يقوم بعرضها.
Private Sub Form_Current() Dim EmpID As Long Dim pCurrentEmp As Employee Dim bCache As Boolean EmpID = Val(SupervisorID.Value) Set pCurrentEmp = GetEmployeeFromCache(EmpID) ' إحضار بيانات من الـكاش عند وجودها If Not pCurrentEmp Is Nothing Then Call UpdateData(pCurrentEmp) lblState.Caption = "Cache" Else Call ClearData End If End Sub
كذلك يحتوى على الزرار (تحميل مشرف المنطقة ...) والذى يقوم بجلب البيانات من قاعدة البيانات فى حالة عدم وجودها فى الـ (Cache)، بأستخدام الدالة (GetEmployee).
2) النموذج (Cache): وهو نظام إدارة الـ(Cache)، ويسمح بتحميل البيانات دفعة واحدة إلى الـ (Cahe) أو تفريغها أو تصفحها.
ملحوظة: لمزيد من التوضيح حول استخدام الـ (Linked list):
مثال على استخدام (Linked list) فى تطبيق قاعدة بيانات (Microsoft Access):
وشكراً