الأربعاء، 16 نوفمبر 2011

تصميم قاعدة البيانات

هو أن أغلب تصميماتنا لقواعد البيانات سواء كنا مبتدئين أو محترفين يغلب عليه الطابع الروتيني الممل ، ومنها ما لا نستطيع وصفه إلا بأوصاف غير لائقة .. يتساءل البعض طبعا ( لماذا نحن هكذا ؟؟؟؟؟؟؟ ).

سأجيب عما يدور من ذهنك .. فإجابة هذا السؤال واحد مما يأتي أو كلهم جميعا أو مجموعة منهم ، وللعلم سبب واحد منهم كفيل بان يجعل قاعد البيانات تتلف بعد شهر واحد من العمل ... :

· عدم حصولك كمبرمج أو محلل نظم على المعلومات الكافية من العميل ، أو بمعنى آخر عدم قدرتك على استخلاص المعلومات من العقل الباطن للعميل – العملية في رأيي الشخصي احتراف وخبرة أكثر من كونها كلام أكاديمي.

· عدم قدرتك على صياغة المعلومات التي تحصلت عليها من العميل في شكل نظام إلكتروني أو حل برمجي يساعد في القضاء على كل مشاكل العميل.

· العمل الجماعي .. لن أقول لك أن العمل الجماعي يوفر الوقت والجهد لان هذا الطبيعي وما نسمعه ونقراه كثيرا .. ولكن سأقول لك أن العمل الجماعي يجعل أعمالك وحلولك البرمجية اكثر عمقا واحترافا ، وهذا يتوقف على القدرة العلمية والاحترافية لأعضاء فريق العمل.

· التخصص .. كثير منا يقوم بالبرنامج من الألف للياء – مع اختلاف الأسباب – ولكن من وجهة نظري المتواضعة أن التخصص في العمل يجعلك تركز في ما تعمل به ، فقد أثبتت بعض الدراسات العلمية أن التخصص في البرمجة بالذات يجعلك تدقق في عملك وتتلافى أخطائك البرمجية ضعفي ما كنت تقوم به لوحدك.

· الأسباب كثيرة جدا ، ولا أريد الاستطراد فيها لان هذا ليس مجالا للحديث عن الأخطاء والمشاكل ، وإنما نحن هنا لوضع الحلول والطرق الصحيحة.

تصميم قاعدة البيانات

للوصول إلى تصميم جيد لقاعدة بيانات سليمة ومنطقية يجب اتباع الآتي :

1. تصميم خريطة النظام.

2. تحديد أنواع البيانات المطلوبة للنظام.

3. تنظيم البيانات داخل الجداول.

4. إنشاء العلاقات السليمة بين جداول البيانات.

5. تصميم الاستعلامات اللازمة عن النظام.

6. معالجة البيانات.

7. مراجعة التصميم.


التعرف على وظائف النظام
يحتوي هيكل النظام على جميع الوظائف الموجودة بالنظام ، وأسهل طريقة لتحديد أو توصيف وظائف النظام تكون بتحديد المطلوب من هذا النظام. أو بعبارة أخرى تحديد المخرجات المطلوب الحصول عليها من النظام ، ومن معرفة المخرجات يمكننا تجميع البيانات واستخدام المعالجات المطلوبة لهذه البيانات للحصول على هذه المخرجات ، وفي النهاية تكون قد حصلت على النظام الذي يحقق الوظائف المطلوبة.
سنوضح فيما يلي – كمثال – كيفية تصميم نظام لإدارة قواعد البيانات من خلال مثال عملي عبارة عن برنامج لمنشأة تجارية يقوم بالوظائف التالية :

· تقرير ببيانات عملاء المنشأة.
· تقرير ببيانات مندوبي المبيعات.
· تقرير ببيانات الموردين.
· تقرير بالأصناف الواردة.
· تقرير بجميع الطلبات الخاصة بعميل معين.
· تقرير بجميع الطلبات الخاصة بمندوب معين.
· تقرير بجميع الطلبات ( اليومية / الشهرية / السنوية ).


ومن هذا السرد لوظائف النظام تلاحظ أن النظام يشتمل على خمسة برامج على النحو التالي :

· في البرنامج الأول : يقوم المستخدم بتسجيل بيانات العملاء بجدول " العملاء " ومن هذا يتم استخراج تقارير تحتوي على جميع بيانات عملاء المنشأة.


· في البرنامج الثاني : يقوم المستخدم بتسجيل بيانات المندوبين بجدول " المندوبين " ومن هذا يتم استخراج تقارير تحتوي على جميع بيانات مندوبي مبيعات المنشأة.


· في البرنامج الثالث : يقوم المستخدم بتسجيل بيانات الموردين بجدول " الموردين " ومن هذا يتم استخراج تقارير تحتوي على جميع بيانات موردين المنشأة.


· في البرنامج الرابع : يقوم المستخدم بتسجيل بيانات الأصناف بجدول " الأصناف " بالإضافة إلى أسماء الموردين ومن هذا الجدول يتم استخراج تقارير الأصناف الواردة.


· في البرنامج الخامس : يتم تجميع بيانات العملاء والموردين والأصناف كل من الجدول الخاص به ، ومن هذا البرنامج يمكن الحصول على :

1. فاتورة بيع.

2. طلبات خاصة بعميل معين.

3. طلبات خاصة بمندوب معين.

4. الطلبات ( اليومية / الشهرية / السنوية ).


تحديد أنواع البيانات المطلوبة

في البداية لا بد من أن تحدد ما هي البيانات التي يجب أن تحتفظ بها داخل قاعدة البيانات وما هي البيانات التي يمكن أن تتغاضى عنها حالياً.


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

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

إرسال تعليق