الخميس، 27 يونيو 2013

انشاء قاعدة بيانات في الأكسس Access و ربط الجداول عن طريق انشاء علاقات


في هذا الدرس سنبدأ بإنشاء قاعدة البيانات التي ستستند إليها في الدروس القادمة و ربط الجداول عن طريق إنشاء علاقات Relations فيما بينها مع شرح مفصل عن أنواع العلاقات.

  • ستكون قاعدة البيانات بسيطة بإذن الله وستحتوي على جميع الجداول والحقول التي نحتاجها لتطبيق هذه الدروس فلنبدأ على بركة الله. 
  • ابدأ --> البرامج --> Microsoft Access
Start --> Programs --> Microsoft Access
الآن اختر ملف File ثم جديد New ثم قاعدة بيانات فارغة Blank Database وقم بتسمية قاعدة البيانات الجديدة بالاسم الذي تريده وليكن my database.
الخطوة الأولى: 
                                     

تشتمل قاعدة البيانات على ثلاث جداول:

الأول: لإدخال بيانات الطلاب وسنسميه بالاسم
Student Table ، ويشتمل على الحقول الموضحة بالصورة:
  



مع ملاحظة أن حقل "الرقم" يتم تعيينه كمفتاح أساسي Primary Key للجدول وذلك بالوقوف عند هذا الحقل ثم الضغط على أيقونة Primary Key من شريط الأدوات القياسي أو عن طريق اختياره من قائمة تحرير Edit .


الثاني: لإدخال بيانات المواد التي يدرسها الطلاب وسنسميه بالاسم Course Table ، ويشتمل على الحقول الموضحة بالصورة:


مع ملاحظة أن حقل "رقم_المادة" يتم تعيينه كمفتاح أساسي Primary Key للجدول وذلك بالوقوف عند هذا الحقل ثم الضغط على أيقونة Primary Key من شريط الأدوات القياسي أو عن طريق اختياره من قائمة تحرير Edit .
                           

الثالث: لإدخال الدرجات التي حصل عليها الطلاب في هذه المواد وسنعطيه الاسم Grades Table ، ويشتمل على الحقول الموضحة بالصورة:



ملاحظة: عند حفظ هذا الجدول ستظهر لك الرسالة التالية:

والتي مفادها باختصار أن هذا الجدول لم يتم تعيين مفتاح أساسي له بالرغم من أنه يستحسن ذلك، فهل ترغب بوضع مفتاح أساسي له؟
سنختار No حيث لا نحتاج لمفتاح أساسي وحيد لهذا الجدول، وسيتم ربط هذا الجدول بالجدولين السابقين عن طريق الحقلين:
رقم_الطالب
رقم_المادة
وبذلك فإننا نعتبر المفتاح الأساسي لهذا الحقل مفتاح مركب من كلا الحقلين السابقين.

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


الخطوة الثانية:

إدخال البيانات في الجداول:

قم بفتح كل جدول من الجداول السابقة في وضع Datasheet View، وقم بإدخال ما يحلو لك من بيانات بالشكل الذي يلائم نوع بيانات الحقل نفسه.

افترض أننا قمنا بإدخال البيانات الآتية:


Student Table

 


Course Table 

Grades Table

ملاحظات هامة:
* إذا كان آكسس يعرض لك الحقول في الجدول من اليسار لليمين، وكنت تريد كتابة سجلات الجدول باللغة العربية فلك أن تغير طريقة عرض بيانات الجدول لتصبح من اليمين لليسار كالآتي:
افتح الجدول في عرض التصميم Design View
ثم انقر على شريط الجدول بالزر الأيمن واختر خصائص Properties ثم قم بتغيير الخاصية Orientation إلى Right-to-left كما بالصورة:



* قمت بتسمية الحقول هكذا: الاسم_الأول، الاسم_الأخير، محل_الميلاد، ........ الخ ، أي بدون فصل الكلمتين عن بعضهما وذلك لتسهيل عملية كتابة الأكواد والشروط فيما بعد.
يمكنك تغيير طريقة ظهور اسم الحقل في عرض ورقة البيانات حتى لا تظهر فقط بهذا الشكل مع بقاء التسمية الحقيقة كما هي كالآتي:
- افتح الجدول في عرض التصميم
Design View
- قف بالمؤشر عند الحقل الذي تريد تغيير تسميته
- من خصائص الحقل بالأسفل قم بتغيير الخاصية
Caption إلى الاسم الذي تريده، كما هو واضح من المثال بالصورة:
 

-قم بحفظ التغيرات في الجدول ثم افتح الجدول في وضع عرض ورقة البيانات Datasheet View وستلاحظ بنفسك التغير الحاصل في تسمية الحقول.
خلاصة الدرس:
هذا الدرس يعتبر مراجعة لما سبق ويفترض الآن أنك أصبحت ماهرا في إنشاء الجداول والتحكم بخصائص الحقول وإظهارها بالشكل المناسب.
قمنا بعمل قاعدة بيانات تحتوي على ثلاثة جداول:

الأول: يعرض بيانات الطالب ويعتبر رقم الطالب هو المفتاح الأساسي Primary Key لهذا الجدول.

الثاني: يعرض بيانات المواد التي يدرسها الطلاب ويعتبر رقم المقرر هو المفتاح الأساسي Primary Key لهذا الجدول.

الثالث: يعرض الدرجات التي حصل عليها الطلاب في المقررات التي يدرسونها ويحتوي هذا الجدول على مفتاحان أجنبيان Foreign Keys هما "رقم_الطالب" و "رقم_المقرر" حيث يعتبر هذان المفتاحان معا مفتاح أساسي مركب من كلا الحقلين.
في هذا الدرس سنتعلم سويا كيف ننشيء علاقات بين الجداول مع أمثله عمليه يتم تطبيقها على قاعدة البيانات التي نشأناها في الدرس السابق.
ماذا نعني بربط الجداول؟

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

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

علاقة one-to-many :
وهي الأكثر استخداما، وتعني أن السجل الواحد في جدول البيانات الرئيسي Primary Table يقابله أكثر من سجل في الجدول الآخر Related Table.

علاقة one-to-one :
هذا النوع أقل استخداما من النوع السابق، وفيه كل سجل في الجدول الرئيسي يقابله سجل واحد في الجدول المرتبط به.

علاقة many-to-many :
هذا النوع نادر الاستخدام، وفيه يقابل كل سجل من الجدول الرئيسي عدة سجلات في الجدول المرتبط به، والعكس حيث يقابل كل سجل في الجدول المرتبط عدة سجلات في الجدول الرئيسي.
هذا النوع من العلاقات معقد، لذا يجب ربط الجدولين بأسلوب غير مباشر وذلك بإنشاء جدول ثالث يعمل على تجزئة هذه العلاقة إلى علاقتين من النوع one-to-many ، وفي هذه الحالة يكون المفتاح الرئيسي للجدول الجديد مكون من المفتاحين الأساسيين للجدولين الآخرين.


 
تطبيق عملي على الربط بين الجداول:
قبل إنشاء علاقة بين جدولين تأكد من الآتي:
1
. كلا الجدولين يهما حقل / حقول متشابهة من حيث نوع البيان المخزن Data Type داخل الحقل.
2. تحديد الجدول الرئيسي والجدول التابع.
3. إذا لم يكن الجدول التابع يتطابق مع حقل المفتاح الأساسي في الجدول الرئيسي، فقم بإضافة حقلا جديدا في الجدول التابع بنفس مواصفات حقل المفتاح الأساسي في الجدول الرئيسي.
4. لا يمكن تعديل مواصفات أو حذف الحقول التي أسست علاقة الربط إلا إذا ألغيت علاقة الربط بين الجدولين أولا.


ربط الجداول في قاعدة البيانات my database:

1- قم بفتح قاعدة البيانات التي قمت بإنشائها في الدرس السابق.

2- من قائمة أدوات Tools اختر علاقات Relationships.
  

- ستظهر لك نافذة إظهار جدول Show Table، قم بإضافة الجداول الثلاثة Student Table ، Course Table و Grades Table، وذلك عن طريق النقر المزدوج على اسم الجدول أو عن طريق تحديد اسم الجدول ثم النقر على زر إضافة Add.


3- ربط الجدولين
Student Table و Grades Table باستخدام علاقة الارتباط one-to-many :

- يعتبر جدول الطالب Student Table هو الجدول الأساسي، بينما جدول الدرجات Grades Table هو الجدول التابع.
- يعتبر حقل "الرقم " مفتاح أساسي Primary Key في جدول الطالب بينما يعتبر الحقل "رقم_الطالب" مفتاح أجنبي Foreign Key في جدول الدرجات.

إذن نستطيع إنشاء علاقة الارتباط one-to-many بين الجدولين عن طريق سحب الحقل "الرقم" من جدول الطالب Student Table وإسقاطه فوق الحقل "رقم_الطالب" في جدول الدرجات Grades Table وسوف تظهر لك مباشرة النافذة التالية:

قم بتنشيط فرض التكامل المرجعي Enforce Relational Integrity بخياريه:
Cascade Update Related Fields (تتالي تحديث الحقول المرتبطة)
Cascade Delete Related Records (تتالي حذف السجلات المرتبطة)
وفائدة ذلك أنه عند تعديل أو حذف أحد الحقول فسيتم تحديث علاقة الارتباط تلقائيا بين الجدولين.

ثم انقر فوق إنشاء Create، وستلاحظ ظهور علاقة one-to-many بين الجدولين.




4- ربط الجدولين
Course Table و Grades Table باستخدام علاقة الارتباط one-to-many :

- يعتبر جدول الطالب Course Table هو الجدول الأساسي، بينما جدول الدرجات Grades Table هو الجدول التابع.
- يعتبر حقل "رقم_المادة" مفتاح أساسي Primary Key في جدول المقرر بينما يعتبر الحقل "رقم_المادة" مفتاح أجنبيForeign Key في جدول الدرجات.

إذن نستطيع إنشاء علاقة الارتباط one-to-many بين الجدولين عن طريق سحب الحقل "رقم_المادة" من جدول المقرر Course Table وإسقاطه فوق الحقل "رقم_المادة" في جدول الدرجات Grades Table وسوف تظهر لك مباشرة النافذة التالية:
  

قم بتنشيط فرض التكامل المرجعي Enforce Relational Integrity بخياريه:
Cascade Update Related Fields (تتالي تحديث الحقول المرتبطة)
Cascade Delete Related Records (تتالي حذف السجلات المرتبطة)
وفائدة ذلك أنه عند تعديل أو حذف أحد الحقول فسيتم تحديث علاقة الارتباط تلقائيا بين الجدولين.

ثم انقر فوق إنشاء Create، وستلاحظ ظهور علاقة one-to-many بين الجدولين السابقين.



ستكون نافذة علاقات Relationships والتي تظهر العلاقات بين الجداول الثلاثة كما بالشكل التالي:
  


خلاصة الدرس:

تعلمنا في هذا الدرس:
- أنواع علاقات الارتباط.
- أساسيات إنشاء العلاقات بين الجداول.
- تطبيق عملي على أشهر أنواع العلاقات وأكثرها استخداما one-to-many relationship.
- إذا أضفت حقول أو جداول جديدة وأردت إنشاء علاقات جديدة فيما بينها، أو أردت تعديل أو حذف علاقات موجودة مسبقا فكل ما عليك هو فتح قائمة أدوات Tools ثم النقر على علاقات Relationships، لتظهر لك نافذة Relationships وتحتوي على جميع العلاقات التي تم إنشاؤها مسبقا بين الجداول، إذا أردت إضافة جداول جديدة انقر على أيقونة أظهار جدول Table Show
 



من شريط الأدوات، أو من قائمة علاقات Relationships.


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



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

  1. وررررررررررررررررررررررررررررررررررررررررررررررررررررررررررررررده عاشت ايدك والله اوضح شرح بالنت كوله

    ردحذف
  2. بارك الله فيك .. وجزيت خيرا

    ردحذف
  3. بسم الله الرحمن الرحيم
    هذا درسٌ مفيدٌ، وملخَّصٌ جيدٌ في هذا الباب؛ فجزاكم الله خيرًا، ووجعله في موازين حسناتكم، وبارك الله فيكم وفي ذريتكم، وجعل سعيكم مشكورًا.
    وصلَّى الله وسلَّم على رسوله محمد وعل آله وأصحابه
    والحمد لله ربّ العالمين.

    ردحذف
  4. صباح الخير , شرح جميل و وافي والله يجزاك خير

    ردحذف
  5. لا اعتقد يوجد توضيح اكثر من هذا الشرح الموجز..بارك الله فيك اخي

    ردحذف
  6. مساعدة اريد عمل استعلام يعرض اسم الطالب واسم المقرر ودجه المقرر كسجل واحد

    ردحذف