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

بناء قاعدة البيانات من التحليل إلى التصميم والإختبار النهائي مع التطبيق العملي

بدأه أحمد الشلاحي في 24 أبريل 2009 · 3 رد · 5,328 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

besm4.gif

الحمد لله والصلاة والسلام على أشرف الأنبياء والمرسلين سيدنا ونبينا محمد بن عبدالله وعلى آله الطيبين الأطهار و صحابته المنتجبين الأخيار أما بعد،،

أقدم بين يديكم هذا الشرح حول الأسس العلمية الصحيحة لبناء قواعد البيانات من التحليل إلى التصميم مستخدما برنامج الأكسس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- كل موصل طلبات (هنا شركات) يوصل طلب أو أكثر والطلب الواحد يوصله موصل طلب واحد.

وسيكون شكل العلاقات كالتالي (مرقمة لتوضيح الخطوات ):

495124619.jpg

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

425835471.jpg

وهكذا انتهينا بحمد الله من التحليل وسنلخص خطواته كالتالي :

أولا: تحدد العناصر الأساسية (الكيانات).

ثانيا:يحدد جدول الحركة ويجعل كعنصر مستقل.

ثالثا: تبدأ بالعلاقات بين هذه العناصر خطوة خطوة .

رابعا: تقسم العلاقة من النوع متعدد إلى متعدد إلى علاقتين من النوع واحد إلى متعدد.

خامسا: نرسم مخطط علاقة الكيانات(ERD) .

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

ونحدد نوع البيانات ونضيف الوصف للفائدة .

Northwind.rar

ER.rar

سأرفق قاعدة البيانات أكسس وكذلك شرح بالعربي لER

#2

سنبدأ هنا بعمل ما أسميه كشكول خفيف ووجبة سريعة من المعلومات:

في الجدول Category جعلنا CategoryID ترقيم تلقائي ومفتاح أساسي بالضغط على علامة المفتاح

والحقل Picture من النوع كائن OLE وهنا نوعه صورة .

ــــــــــــــــــــــــــ

في جدول Product

SupplierID يسمى مفتاح أجنبي ( foreign key) ، في الجدول وفي التبويب مفهرس نجعله (نعم التكرار مقبول)

لاحظ العلاقة بين المنتج والمورد ونفس الوضع ينطبق على CategoryID .

في الحقلين SupplierID , CategoryID وفي التبويب بحث يكون عرض عنصر التحكم مربع تحرير وسرد ونوع مصدر الصف جدول /استعلام ومصدر الصف هو جملة SQL تنفذ وتعرض كقيمة للحقل وهنا تكون القيمة المعروضة اسم الصنف واسم المورد على شكل مربع تحرير وسرد.

ــــــــــــــــــــــــــ

UnitPrice وضعنا في التبويب تنسيق $#,##0.00;($#,##0.00)والتنسيق يحول مايدخله المستخدم إلى صيغة ثابته وهنا يحول جميع المدخلات إلى عملة

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

ــــــــــــــــــــــــــ

Discontinued من النوع نعم /لا وجعلنا القيمة الإفتراضية لا=

ـــــــــــــــــــــــــــــــ

في الجدول Customer الحقل CustomerID >LLLLL وحجمه 5 حقول أي أنه يأخذ خمسة أحرف كحد أدنى

ـــــــــــــــــــــــــ

في الجدول Employee الحقل TitleOfCourtesy نختارالتبويب بحث ونجعل عرض عنصر التحكم مربع تحرير وسرد

ونوع مصدر الصف قائمة القيم أي أن الحقل سيحتوي على قائمة محددة وستكون مأخوذة من مصدر الصف فنجد قائمة القيم فيه .Dr.;Mr.;Miss;Mrs.;Ms.

في الحقل BirthDate وفي التنسيق جعلنا طريقة عرض التاريخ بصيغة محددة مهما كانت مدخلات المستخدم حيث تعرض بصيغة dd-mmm-yyyy كما أن قاعدة التحقق من الصحة <Date() أي أصغر من تاريخ اليوم.

في الحقل ReportsTo وفي التبويب بحث جعلنا عرض عنصر التحكم مربع تحرير وسرد ونوع مصدر الصف جدول/استعلام ومصدر الصف هو جملة SQL حيث تنفذها وتعرض القيمة في الحقل.

الجدول Order Details يتكون من مفتاحين

جعلنا الحقل Quantity قيمته الإفتراضية 1 وقاعدة التحقق <0

والحقل Discount تنسيق بالمائة وقاعدة التحقق من الصحة Between 0 And 1

هذه المعلومات بشكل سريع وبدون تكرار وبدون تطويل في الشرح ومن أراد الزيادة فعليه بملف المساعدة من أكسس وذلك بوضع المؤشر على المكان المطلوب شرحه واضغط F1

#3

مشكور على الموضوع

#4

هلا بك حياك الله أخوي ،،

وهذا موقع فيه شرح مختصر ومفيد لER-Diagram وهو موقع للتحليل والتصميم الانظمة

http://web.sxu.edu/rogers/sys/er.html

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…