تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثاني - تطبيق انشاء قاعدة البيانات لبرنامجنا
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

إذا كنت قد اطلعت على الرابط الذي اضفته في الدرس السابق ، فإنك الآن تستطيع تكوين DFD و ERD لبرنامجنا مع ما يحلقهما ، ولكن هذا ليس ضرورياً في سير الدورة نظراً لإنه لم يتم شرحه بالكامل ، ولذا فهو ليس اجبارياً ، ولكن في الواقع سيتم الالتزام بهذا الجزء وكما أسلفنا فستكون هناك سلسلة دروس بخصوص هذا الموضوع في القسم الخاص بتحليل وتصميم النظم .


ولمن اطلع على الرابط ، وأراد تكوين DFD للبرنامج ، فإنه ما زال محتاجاً لمعرفة خطوات سير البرنامج ، في البداية يمكن أن تكون هذه الخطوات نموذج مبسط من سير البرنامج .


* ادخال بيانات المورد - تخزينها في جدول الموردين .
مطلوب في هذه الخطوة : بيانات المورد .
* ادخال بيانات النوع - تخزينها في جدول الأنواع .
مطلوب في هذه الخطوة : بيانات النوع .
* ادخال بيانات البضاعة - تخزينها في جدول البضائع .
مطلوب في هذه الخطوة : بيانات البضاعة + موردها + نوعها .
* تطبيق عملية بيع على بضاعة .
مطلوب في هذه الخطوة : بيانات عملية البيع + البضاعة .
* تطبيق عملية شراء على بضاعة ( وعملية الشراء الكاملة تشتمل على عدد من البضائع ) .
مطلوب في هذه الخطوة : بيانات عملية الشراء + البضاعة .
* عرض تقرير بالبضائع الموجودة في المخزن .
مطلوب في هذه الخطوة : بيانات البضائع والموردين والأنواع + عمليات البيع والشراء عليها .
* عرض تقرير الأنواع .
مطلوب في هذه الخطوة : بيانات الأنواع + بيانات بضائعه وعمليات البيع والشراء عليها .
* عرض تقرير الموردين .
مطلوب في هذه الخطوة : بيانات الموردين + بيانات بضائعه وعمليات البيع والشراء عليها .
* عرض التقرير اليومي أو على فترة .
مطلوب في هذه الخطوة : تاريخ اليوم أو الفترة + عمليات البيع والشراء التي تمت خلالها .


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

* عمليات البحث .
* حماية قاعدة البيانات . ومعلومات السوبر ماركت وخلافه .
* نسخ واستيراد قواعد البيانات .


وهكذا تستطيع تكوين DFD خاص بالبرنامج ،


ERD :

سنتجاوز بعض العناصر ونقفز مباشرة إلى ERD ومن سير البرنامج السابق نستطيع أن نستبين عناصر حفظ البيانات المطلوبة وهي :

* جدول بيانات الموردين .
* جدول بيانات الأنواع .
* جدول بيانات البضائع .
* جدول عمليات البيع والشراء .

* وجدول اضافي آخر وهو الخاص بالحماية ومعلومات المحل وغير ذلك .


كما وسنجد العلاقات التالية بين الجداول السابقة :

* علاقة One-Many بين الموردين والبضائع ( مورد واحد يورد مجموعة من البضائع ) .

* علاقة One-Many بين الأنواع والبضائع ( نوع واحد يحوي مجموعة من البضائع ) .

* علاقة One-Many بين البضائع وعمليات البيع والشراء ( صنف بضاعة واحد يدخل في العديد من عمليات البيع والشراء ) .


والآن سنرى الحقول داخل كل جدول ، وسنلتزم منذ الآن فصاعداً بالأسماء لاضافتها لاحقاً في قاعدة البيانات .




أولاً : جدول الموردين . الاسم Tb_Factory

الحقول :


* Number رقم المورد ، وهو من نوع Auto Number - ترقيم تلقائي ، كذلك فهو Primary Key - مفتاح رئيسي .


* Name : اسم المورد ، وهو من النوع Text - نص ، وطول الحقل Field Size لا ينبغي أن يزيد على 30 مثلاً .




ثانياً : جدول الأنواع . الاسم Tb_Category

الحقول :


* Number رقم النوع، وهو من نوع Auto Number - ترقيم تلقائي ، كذلك فهو Primary Key - مفتاح رئيسي .


* Name : اسم المورد ، وهو من النوع Text - نص ، وطول الحقل Field Size لا ينبغي أن يزيد على 30 مثلاً .



سنضيف أيضاً حقل تحت اسم View من نوع Yes/No - نعم / لا ، وهذا الحقل يقوم بتوضيح الموردين أو الأنواع الذين يتم حذفهم ، وذلك حتى إذا انتهت آخر بضاعة تحت أي منهم يتم حذفه بالكلية من الجدول .


أو بمعنى آخر : عند الحذف سوف يأخذ هذا الحقل قيمة False مؤقتاً حتى يتم حذف آخر بضاعة تقع تحته ، في هذه الحالة فقط سوف يحذف المورد أو النوع .




ثالثاً : جدول البضائع . الاسم Tb_Product

الحقول :


* Number رقم النوع، وهو من نوع Auto Number - ترقيم تلقائي ، كذلك فهو Primary Key - مفتاح رئيسي .


* Name : اسم البضاعة ، وهو من النوع Text - نص ، وطول الحقل Field Size لا ينبغي أن يزيد على 30 مثلاً .


* Factory المورد أو مصنع البضاعة ، وهو من النوع Number - رقم ، وحجم الحقل Field Size هو عدد صحيح طويل ، وسيتم ربطه لاحقاً بجدول الموردين .


* Category النوع ، وهو من النوع Number - رقم ، وحجم الحقل Field Size هو عدد صحيح طويل ، وسيتم ربطه لاحقاً بجدول الأنواع .


* Price وهو سعر الوحدة ( الأساسي مع امكانية تغييره في عمليات البيع والشراء ) وهو من نوع Number - رقم ، وطول الحقل Field Size هو ( مزدوج - Double ) وذلك لاتاحة الفرصة للكسور ( مثلاً 5.5 ) .


* Count وهو العدد الأولي للبضاعة ، والذي سيزيد أو ينقص تبعاً لعمليات البيع أو الشراء . وهو من نوع عدد صحيح طويل .



*** ملاحظة هامة وغلطة شنيعة : هذا الحقل الأخير لا بد أن لا يكون له وجود ، وبديله هو طرح عمليات الشراء من عمليات البيع حيث تعطينا العدد الحالي وذلك لتوفير التكرار في قواعد البيانات ، لكن في الواقع قد تمت دورة سابقة وبرنامج منذ اربع سنوات على هذا الأساس ، وهي الدروس التي أقوم بانزالها في هذه الدورة - انا لا اكتب منه جديد ولكني اعيد صياغة الدروس فقط - .


لذا اعذروني على هذا الخطأ الذي أخطأته في الدورة السابقة ، ومحدش يعمل زيي


وقريباً الأخ بدرميديا سيقوم بسلسلة دروس بخصوص normalization وسيوضح لنا بإذن الله هذه المواضيع بالتفصيل - لبست الأخ بدرميديا - .



* Box_Count عدد الوحدات في كل صندوق ، ويفيد هذا الحقل في حالة اضافة بضائع بالصندوق أو بيعها بنفس الطريقة لمعرفة عدد الوحدات المباعة . وهذا الحقل من نوع Number - رقم ، وكذلك من طول : عدد صحيح طويل .



يتبع ...
}}}}
تم الشكر بواسطة:
#2
رابعاً : جدول عمليات البيع والشراء . الاسم Tb_Sel_Bay


*** تمثل كل عملية بيع بضاعة في هذا الجدول ، وإذا تم شراء عدد من
البضائع مثلاً فإنه يتم اضافة سجل منفصل لكل منهم .


الحقول :


* Number رقم العملية ، وهو من نوع Auto Number - ترقيم تلقائي ، كذلك فهو Primary Key - مفتاح رئيسي .


* Product البضاعة ، وهو من النوع Number - رقم ، وحجم الحقل Field Size هو عدد صحيح طويل ، وسيتم ربطه لاحقاً بجدول البضائع .


* Date : تاريخ العملية ، وهو من النوع Date/Time - تاريخ /وقت . وفي حقل تنسيق - Format نقوم باختيار تنسيق Short Date .


* Count وهو العدد الأولي للبضاعة ، والذي سيزيد أو ينقص تبعاً لعمليات البيع أو الشراء . وهو من نوع عدد صحيح طويل .


* Price السعر الاجمالي لعملية البيع هذه ( لبضاعة معينة ) . وهو من نوع Number .


* Kind هو حقل من نوع رقم Number لكنه من طول Byte - بايت ، وفي حالتنا فهو يحمل أحد قيمتين ( 0 ، 1 ) للتفريق بين عمليتي البيع والشراء .



*** أيضاً يمكن جعل هذا الحقل من نوع Yes/No - نعم/ لا لتدل الحالة الأولى على النوع الأول ( بيع مثلاً ) والثانية على النوع الثاني وذلك لتخزينها فعلياً في متغير من نوع bit والذي يقبل 0 أو 1 .



خامساً : جدول المستخدمين . الاسم Tb_User

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


الحقول :


* User-Name : اسم المستخدم . وهو نص Text بطول أقصى 15 خانة .


* PassWord : كلمة المرور وهو أيضاً نص بحد أقصى 15 خانة .


* Name : اسم المحل أو خلافه ، وهو نص بطول 50 خانة .


* Telephone : الهاتف ، وهو رقم من نوع عدد صحيح طويل .



*** يفضل تخزين الهاتف ، والهاتف الجوال وخلافه في حقول نصية دائماً . فهي أكثر توفيراً للمساحة كما تتيح لك اضافة رقم مثل 010 -

صفر على اليمين - على عكس الحقول الرقمية .


* More : اي بيانات اضافية يرغب في اضافتها وعرضها ، وهو من نوع مذكرة Memo .




والآن نقوم باضافة الجداول السابقة إلى قاعدة بيانات من نوع أكسيس كما تعلمنا في الدورة السابقة .


وهنا لن نضطر لتحويل الاصدار إلى 97 حيث أننا سنكمل مشوارنا مع Dao والتي تتعامل مع أنواع احدث من قواعد البيانات من Access .



*** اختيار ال DAO للعمل في هذا الوقت جاء بناء على وجود دورة في المنتدى لتعليم ال ADO ولذا تم اختيار DAO لتجربة نوع آخر من التعامل ...



بعد قيامك بتشغيل Microsoft Access قم بانشاء قاعدة بيانات تحت اسم Db1 ، بعد ذلك قم باختيار ( جداول Tables ) ، ومن ثم :
انشاء جدول في طريقة عرض التصميم - Create Table in Design View
وبعد ذلك قم باضافة حقول كل جدول على حدة ، وبعد الانتهاء قم بحفظ الجداول .

بعد ذلك سنطبق العلاقات والتي تعرضنا لكيفية عملها في الأجزاء السابقة من الدورات ، ولكن باختصار :

من قائمة Tools اختر RelationShip ( أدوات - علاقات ) من ثم اختر من الجدول الظاهرة الجداول التالية :
Tb_Product - Tb_Factory - Tb_Category - Tb_Sel_Bay
إذا لم يظهر جدول اضغط بزر الماوس الأيمن واختر ( اظهار جداول - Show Tables ) .

الآن قم بوضع زر الماوس على حقل Number من Tb_Factory واسحب منه على حقل Factory في الجدول Tb_Product .
سوف يظهر خط يصل بين الجدولين ، فيما ستظهر شاشة ، اجعل الثلاثة اختيارات صحيحة .


*** تحدد هذه الاختيارات لتحقيق تكامل بين الجدولين ، فمثلاً إذا تم حذف نوع فإن البضائع التي تحته يتم حذفها أيضاً . كذلك لن يتم اضافة بضائع تحت نوع غير موجود أصلاً ..


بنفس الطريقة انشأ علاقة من جدول Tb_Category مع حقل Category في جدول Tb_Product .

العلاقة الثالثة والأخيرة سوف تكون بين حقلي Number في Tb_Product وحقل Product في جدول Tb_Sel_Bay ... قم بسحب الماوس من الحقل Number باتجاه حقل Product بنفس الطريقة السابقة .

أخيراً نقوم باضافة كلمة سر ، وكما تعلمنا سابقاً نقوم باغلاق قاعدة البيانات ، ومن ثم نقوم بفتحها بطريقة Exuclusive ، بعد ذلك قم بوضع كلمة المرور من قائمة :
أدوات Tools - أمان Securty ، وبعد ذلك اختر تعيين كلمة مرور .

والآن هذه هي قاعدة البيانات كاملة في المرفقات وكلمة السر هي VB4ARAB.


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .


الملفات المرفقة
.zip   db1.zip (الحجم : 27.48 ك ب / التحميلات : 160)
}}}}
تم الشكر بواسطة: A.T.A


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 1,434 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 1,229 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 1,161 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 1,754 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 991 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 835 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 1,552 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 1,709 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 1,221 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 1,098 15-10-12, 08:37 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم