
الحمد لله والصلاة والسلام على أشرف الأنبياء والمرسلين سيدنا ونبينا محمد بن عبدالله وعلى آله الطيبين الأطهار و صحابته المنتجبين الأخيار أما بعد،،
أقدم بين يديكم هذا الشرح حول الأسس العلمية الصحيحة لبناء قواعد البيانات من التحليل إلى التصميم مستخدما برنامج الأكسس2003 ، ومتطرقا إلى معظم الاستفسارات التي قد ترد في مكانها بإذن الله وسيكون مشروعنا هو مشروع Northwind الموجود في البرنامج ، بسم الله نبدأ على بركة الله .
طريقتي في الشرح : الإختصار قدر المستطاع بحيث لا يخل بتوصيل المعلومة وما كان من صواب فمن الله وما كان من خطأ فمن نفسي والشيطان.
المرحلة الأولى : التحليل
التحليل هو مثل مخطط البناء فالمهندس يحلل ثم يضع تحليله على الورق بشكل رسومي وأيضا نحن كذلك سنحلل قاعدة البيانات Northwind بإستخدام ER-Diagram فكلما كان التحليل سليما كان بناء قاعدة البيانات سهلة وميسرة ( سأرفق ملفا يشرح هذه الطريقة وذلك خشية الإطالة ويلزم من يريد أن يتابعنا خطوة بخطوة أن يقرأ هذا الملف وهو بالعربية).
هناك طرق كثيرة لبدء التحليل ، فمثلا في مشروع التطبيق الصيفي كنت أرغب من بعض الموظفين شرح حركة العمل للنظام فكانت إجاباتهم قاصرة ، فأخذت بعض الجداول المطبوعة على ورق وبدأت أحلل بحثا عن العناصر الأساسية للمشروع ، وهناك طريقة أخرى عندما تريد بناء مشروع بنفسك دون الرجوع لمثل هذه الأشياء وهذا قائم على ماتريده أو يريده صاحب المشروع .
سيكون المشروع قريبا من مشروع مطعم (وسنتخيل أنه طلب منا عمل برنامج لمطعم)، ففي حالتنا سنسأل أنفسنا عدة أسئلة:
ماهي عناصر المشروع الأساسية(يسمى الكيان) لمطعم – سيختلف التصميم من شخص لشخص وعليه يكون بناء برنامجه- سأفكر طبقا للمشروع الجاهز :
العنصر الاول : الأصناف Categories ، ولكل صنف منتج.
العنصر الثاني : المنتج Products ، ولكل منتج موردين.
العنصر الثالث : الموردين Suppliers وعندنا لكل مطعم عملاء.
العنصر الرابع :الزبائن Customers ، وعندنا طبعا موظفين.
العنصر الخامس: موظفين Employees ، وعندنا موصلي الطلبات.
العنصر السادس: موصل الطلبات Shippers (العناصر الأساسية دائما تكون محسوسه).
هذه العناصر الأساسية التي حددناها للمشروع بناء على تفكير صاحب المشروع نفسه فقد يأتي شخص آخر ويفكر بتفكير آخر وعلى حسب بيئته .
بقي هنا مايسميه البعض جدول الحركة ، وسأسميه النشاط الرئيسي للمشروع فمثلا في برنامج المكتبة الجامعية النشاط الرئيسي هو الإستعارة وهنا سيكون النشاط الرئيسي هو مجموعة من الطلبات Orders ، وسيكون عنصرا مستقل في المشروع . (جدول الحركة هو بالأساس علاقة متعدد إلى متعدد وسأشرحه إن شاء الله).
العنصر السابع:Orders
هنا انتهينا من عمل العناصر الرئيسية للمشروع ، وبقي لنا البدء في تحديد العلاقات بين تلك العناصر بناء على السيناريو المحتمل للمشروع نفسه وهنا سنشرح العلاقات لأنها موجودة أمامنا ولكن سأفكر طبقا لتفكير صاحب المشروع وذلك حتى يتسنى للجميع معرفة الطريقة المثلى لإنشاء العلاقات خطوة بخطوة(أنواع العلاقات مشروحة في الملف المرفق).
1- كل صنف يحتوي على منتج أو أكثر والمنتج ينتمي لصنف واحد فقط(العلاقة واحد إلى متعدد One To Many).
2- كل مورد يورد منتج أو أكثر وكل منتج يورده مورد واحد فقط(العلاقة واحد إلى متعدد One To Many).
كل زبون يطلب منتج أو أكثر وكل منتج يطلبه زبون أو أكثر (Many To Many ) وفي هذه الحالة تقسم العلاقة Many To Many إلى علاقتين من النوع One To Many ونجعل العلاقة عنصر ولنسميه الطلبات Orders(جدول الحركة) --ـ المفتاح الأساسي يكون رقم الطلب لأن هذا ما يميزه ـ والعلاقتين الناتجتين هما :
3- كل زبون يطلب طلب أو أكثر وكل طلب يطلبه زبون واحد (العلاقة واحد إلى متعدد One To Many).
كل طلب يحتوي منتج أو أكثر وكل منتج محتوى في طلب أو أكثر (Many To Many ) وأيضا تقسم هذه العلاقة إلى علاقتين من النوع One To Many ونجعل العلاقة عنصر ولنسميه تفاصيل الطلب Order Details وهنا يكون المفتاح الأساسي هو المفتاح الأساسي للمنتج والمفتاح الأساسي للطلب (كل علاقة Many To Many ينتج عنه عنصر يحتوي على المفتاحين الأساسيين للمنتج والطلب ويعتبر المفتاحان مع بعضهما مفتاح أساسي للعنصر الجديد).
4- كل طلب محتوى في تفاصيل الطلب (بالمعنى الفاتورة) وكل تفاصيل طلب هي لطلب واحد فقط.
5- كل منتج محتوى في تفاصيل طلب أو أكثر وكل تفاصيل طلب هي لطلب واحد فقط .
6- كل موظف عنده طلب أو أكثر وكل طلب عند موظف واحد فقط.
7- كل موصل طلبات (هنا شركات) يوصل طلب أو أكثر والطلب الواحد يوصله موصل طلب واحد.
وسيكون شكل العلاقات كالتالي (مرقمة لتوضيح الخطوات ):

وهذا مخطط ER-Diagram :

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