دورة احترافية في قواعد البيانات اكسس تعلمها بسهولة الدرس السادس
- التعرف العلاقة بين الجداول.
- أنواع العلاقات.
- العلاقة One to One.
- الاستفادة من العلاقةOne to One لعمل Query.
- العلاقة One to Many.
- الاستفادة من علاقة One to Many في عمل Form.
- العلاقة Many to Many.
- البدء في المشروع المتكامل.
تمرين مطلوب عمل الأتي: مطلوب إنشاء قاعدة بيانات جديدة باسم ” العلاقات و أهميتها للمبرمج “. |
1- العلاقة بين الجداول
من القواعد الأساسية في الـ Access انه على المبرمج تفتيت قاعدة البيانات إلى جداول صغيرة ( أي صغيرة في عدد الحقول و ليس صغيرة في عدد السجلات ) و ذلك للأسباب الآتية:
- عندما تكون عدد الحقول صغيرة في الجدول يسهل الاستعلام منه.
- منع تكرار إدخال البيانات المتشابه اكثر من مرة.
- الأمن و السرية.
ثم بعد تفتيت قاعدة البيانات الى جداول عديدة يتم عمل Relationship بينها.
أهداف العلاقات:
- عمل استعلام على اكثر من جدول طالما بينهم Relationship.
- عمل نموذج على اكثر من جدول طالما بينهم Relationship.
- عمل تقرير على اكثر من جدول طالما بينهم Relationship.
2- أنواع العلاقات
- One to One .
- One to Many.
- Many to Many.
3- العلاقة One to One
مثال |
- بفرض أن لدنا جدول ” بيانات شخصية ” تصميمه كالأتي:
كود الموظف | Text |
اسم الموظف | Text |
العنوان | Text |
- جدول ” بيانات مالية ” تصميمه كالأتي:
كود الموظف | Text |
المرتب | Number |
الصافي | Number |
نلاحظ أن العلاقة بين الجدولين ” One to One ” حيث ان كل سجل في جدول ” البيانات الشخصية ” يقابله و يكمله سجل في جدول ” البيانات المالية.
شروط إنشاء هذه العلاقة:
- أن يكون هناك حقل مشترك ( و هو في حالتنا هذه كود الموظف ).
- أن يكــون هنــاك حقـل مشــــترك ” Primary Key ” في إحـدى الجدولين .
- المقصود بالـ ” Primary Key “:
- حقل لا يمكن أن تكرر البيانات بداخله.
- لا يمكن أن يترك الحقل فارغاً بدون إدخال بيانات.
- شرط من شروط العلاقات.
الجدول الذي به Primary Key يسمى ” Primary Table “، الجدول الأخر يسمى ” Related Table “.
الخطوات:
- يفتح جدول ” البيانات الشخصية ” في وضع الـ Design View.
- نضيء حقل ” كود الموظف “.
- نـضـغـط عـلى علامة المـفتاح ” Primary Key ” فيكـون بالتالـي ” Primary Table “
- نغلق هذا الجدول.
- يفتح جدول ” البيانات المالية ” في وضع الـ Design View.
- نضيء حقل ” كود الموظف “.
- نجعل كود الموظف مفهرس مع عدم التكرار ( No Duplicates ) و ذلك من خلال خاصية ” Indexed ” الموجودة بـ ” Field Properties “ثم نغلق الجدول.
- نفتح قائمة Tools و نختار Relationships.
- تظهر نافذة ” Show Table ” بها أسماء الجدولين.
- أشير إلى جدول ” البيانات الشخصية ” ثم Add.
- أشير إلى جدول ” البيانات المالية ” ثم Add ثم بعد ذلك Close.
- نسحب كود الموظف من جدول ” البيانات الشخصية ” و نضعه على كود الموظف الموجود في جدول ” البيانات المالية “.
- تظهر نافذة ” Relationships ” بها الأتي:
- Enforce Referential Integrity: نشـــطها ( أي فرض تكــامـل مرجـعـي بـين الجدولين ).
- Cascade Update Related Fields: أنشطها ( بمعنى إذا عدلنا كود الموظف في جدول ” البيانات الشخصية ” يتغير أيضاً كود الموظف في جدول ” البيانات المالية “.
- Cascade Delete Related Record: أنشــطها ( إذا حـذفنا سجل من جدول ” البيانات الشخصية ” يحذف تلقائياً سجل من جدول ” البيانات المالية”.
- ثم Create.
- نلاحظ ظهور علاقة ” One to One ” ثم Save، بعد ذلك نغلق هذه الشاشة ( Relationships ).
4- الاستفادة من العلاقةOne to One لعمل Query
الخطوات:
- Query New Design View.
- نعمل Add لجدول “البيانات الشخصية ” و Add لجدول ” البيانات المالية ” ثم Close.
- نسحب كود الموظف و اسم الموظف من جدول” البيانات الشخصية “.
- نسحب المرتب من جدول” البيانات المالية “.
- نكتب أمام ” Criteria ” 100
- يحفظ الـ Query باسم مناسب.
5- العلاقة One to Many
يقصد بها أن كل سجل في جدول ما، يقابله اكثر من سجل في الجدول الأخر.
مثال |
- بفرض أن لدينا جدول ” اجماليات الفواتير ” تصميمه كالأتي:
كود الفاتورة | Text ( Primary Key ) |
إجمالي قيمة الفاتورة | Number |
يتم إدخال البيانات الأتية:
كود الفاتورة | إجمالي قيمة الفاتورة |
100 | 8000 |
200 | 3000 |
300 | 2000 |
- جدول ” تفاصيل الفواتير ” تصميمه كالأتي:
كود الفاتورة | Text (مفهرس مع الكرار) |
اسم الصنف | Text |
القيمة | Number |
يتم إدخال البيانات الأتية:
كود الفاتورة | اسم الصنف | القيمة |
100 | سجاد | 4000 |
100 | موكت | 3000 |
100 | ستائر | 1000 |
200 | سجاد | 2000 |
200 | موكت | 1000 |
300 | سجاد | 2000 |
نلاحظ أن العلاقة بين الجدولين ” One to Many ”
الخطوات:
- يفتح جدول ” إجمالي الفواتير ” في وضع الـ Design View.
- نضيء حقل ” كود الفاتورة” و نجعله Primary Key، نغلق هذا الجدول.
- يفتح جدول ” تفاصيل الفواتير ” في وضع الـ Design View.
- نضيء حقل ” كود الفاتورة “، ثم نجعل كود الفاتورة مفهرس مع التكرار (Duplicates Ok )،ثم نغلق هذا الجدول.
- نفتح قائمة Tools و نختار Relationships.
- نفتح نافذة ” Show Table ” من خلال قائمة Relationships.
- أشير إلى جدولي ” اجماليات الفواتير ” و ” تفاصيل الفواتير ” ثم Add ثم بعد ذلك Close.
- نسحب كود الفاتورة من جدول ” اجماليات الفواتير ” و نضعه على كود الفاتورة الموجود في جدول ” تفاصيل الفواتير “.
- تظهر نافذة ” Relationships ” ثم Create.
- نلاحظ ظهور علاقة ” One to Many ” ثم Save، بعد ذلك نغلق هذه الشاشة ( Relationships ).
6- الاستفادة من علاقة One to Many في عمل Form
الخطوات:
- يتم عمل نموذج تلقائي Columnar على جدول “اجماليات الفواتير ” و حفظه.
- يتم عمل نموذج تلقائي Tabular على جدول “تفاصيل الفواتير ” و حفظه.
- يفتح نموذج ” اجماليات الفواتير ” في وضع الـ Design View و يتم توسيع القسم الخاص بالـ Details.
- انشط Wizard Control في صندوق الأدوات، ثم اختار أداة Subform ثم أضعها إلى الـ Form ثم احفظ هذا العمل.
- تظهر نافذة ” Subform/Subreport Wizard” ثم افتح الـ Combo و اختار ” تفاصيل الفواتير ” ثم Next.
- أعطى اسم للـ Subform ثم Finish.
- للتأكد أتحول إلى وضع الـ Design View.
- نلاحظ الأتي:
- القسم العلوي بها اجماليات الفواتير، و القسم السفلي به تفاصيل الفواتير.
- وجود عدد (2) Data Control.
7- العلاقة Many to Many
هي عبارة عن علاقتين One to Many.
مثال |
- جدول ” الدارسين ” تصميمه كالأتي:
كود الدارس | Text (Primary Key) |
اسم الدارس | Text |
التليفون | Text |
على أن يتم إدخال 4 سجلات على الأقل.
- جدول ” الدورات ” تصميمه كالأتي:
كود الدورة | Text (Primary Key) |
اسم الدورة | Text |
على أن يتم إدخال 3 دورات.
- العلاقة بين هذين الجدولين One to Many، حيث أن الدارس يمكن ان يدرس اكثر من دورة. و من ناحية أخرى يمكن أن يلتحق بالدورة اكثر من دارس.أي أن هذه العلاقة Many to Many بشرط إنشاء جدول ثالث يربط بين هذين الجدولين يسمى هذا الجدول ” جدول رابط “.
- الجدول الرابط تصميمه كالأتي:
كود الدارس | Text (مفهرس مع التكرار) |
كود الدورة | Text (مفهرس مع التكرار) |
يتم إدخال البيانات الآتية في الجدول الرابط:
كود الدارس | كود الدورة |
1 | 200 |
1 | 300 |
2 | 300 |
2 | 200 |
3 | 100 |
3 | 200 |
- عند عمل علاقة نربط كود الدارس في جدول ” الدارسين ” مع كود الدارس في الجدول ” الرابط “.
- عند عمل علاقة نربط كود الدورة في جدول ” الدورات ” مع كود الدورة في الجدول ” الرابط “.
8- البدء في المشروع المتكامل
تمرين
مطلوب عمل الآتي:
- إنشاء قاعدة بيانات جديدة باسم “مشروع المخازن “.
- يتم عمل نموذج من وضع الـ Design :
- و لا يكون مؤسس على Table أو Query.
- على أن يوضع بها Label مكتوب عليه آية قرآنية .
- يحفظ هذا النموذج باسم ” F1 “.
- عمل جدول باسم ” الأقسام الرئيسية ” تصميمه كالأتي:
كود القسم | Text (Primary Key) |
اسم القسم | Text |
صورة القسم | OLE ( صورة تعبر عن القسم و ليكن صور أقسام السوبر ماركت ) |
- على أن يتم إدخال بيانات 4 أقسام ( قسم رجالي – قسم حريمي – قسم أطفال – قسم أغذية و مشروبات ).
- عمل جدول باسم ” العملاء ” تصميمه كالأتي:
كود العميل | Text (Primary Key) |
اسم العميل | Text |
العنوان | Text |
المدينة | Text ( القاهرة – المنصورة – المحلة … وهكذا ) |
التليفون | Text |
- يتم إدخال سجلات على أن تكون أكواد العملاء ( 100-200-300 … (.
- مراعاة التكرار للمدينة.
- عمل جدول باسم ” الموردين ” تصميمه كالأتي:
كود المورد | Text (Primary Key) |
اسم المورد | Text |
العنوان | Text |
المدينة | Text ( القاهرة – المنصورة – المحلة … وهكذا ) |
التليفون | Text |
- على أن يتم إدخال بيانات 7 سجلات.