IPB

مرحبا بالضيف ( دخول | التسجيل )

 
> تكوين العلاقات بين جداول Access
أ.محمد القليصي
شارك 28-09-2004, 06:36 pm
مشاركة #1


المشرف العام
أيقونات المجموعة

المجموعة: الإدارة
المشاركات: 12789
التسجيل: 1-07-03
البلد: الـــــ N ــــيـــــــ ME ــــمــــــ YE ــــن
رقم العضوية.: 2




user posted image

العلاقة Relation بين جدولين هي تضمين او مشاركة حقلين Fields بين جدولين بحيث يمكنك ربط سجلات جدول بسجلات جدول اخر عن طريق الحقول التي تكون بها العلاقة. فمثلا: لو كان لدينا جدول بيانات الموظفين ونريد ربطه بجدول اخر يمثل الاقسام التي يعمل بها الموظف، فلابد من استخدام العلاقات حتى نتمكن من ربط سجلات الموظف بسجلات القسم او الدائرة التي يعمل بها.

من المزايا التي نجنيها من تطبيق العلاقات هي:
1) ضمان عدم تكرار بيانات السجلات بحيث لن تربط الجداول المختلفة الا بحقل واحد يعرف بالمفتاح الاجنبي Foreign key فلا يوجد داعي من اعداة تكرار الحقول في اكثر من جدول.
2) عملية التعديل ستكون سهلة جدا، فكل ما هو مطلوب منك تعديل سجل معين مرة واحد وستتأثر كافة جداول قواعد البيانات بهذا التعديل.
3) عند القيام بعملية حذف السجل المرتبط بالعلاقة، سيتم حذف جميع السجلات المرتبطة والموجودة في الجداول الاخرى لقاعدة البيانات تلقائيا.

والان لنتعرف على انواع العلاقات التي يمكننا Microsoft Access من تطبيقها بين الجداول:

علاقة واحد الى واحد:
تقتضي علاقة واحد الى واحد One to one بربط سجل واحد فقط من جدول الى سجل واحد فقط من جدول اخر، فمثلا يمكننا ربط سجل من جدول اسماء الموظفين بسجل اخر في جدول بيانات الموظفين كما في الشكل التالي:

user posted image



علاقة واحد الى مجموعة:

يمكنك عن طريق علاقة واحد الى مجموعة One to many ربط سجل واحد فقط من جدول الى عدد غير محدد من السجلات في جدول اخر، فكما نرى في الشكل التالي ربطنا جدول سجلات اسماء الموظفين بجدول الاقسام:

user posted image


علاقة مجموعة الى مجموعة:
النوع الثالث من العلاقات هو علاقة مجموعة الى مجموعة Many to many حيث يمكنك ربط عدد غير محدد من السجلات بعدد غير محدد من السجلات في جدول اخر. نحتاج الى جدول ثالث لتكوين هذه العلاقة بين جدولين، فمثلا يوضح لك الشكل التالي علاقة تربط جدول اسماء الموظفين بجدول الاقسام عن طريق جدول ثالث يبين تقييم اداء الموظف في قسم معين:

user posted image
تفيدك العلاقة السابقة كثيرا في معرفة مدى تقييم الموظف عند عمله في قسم معين حتى تضع الشخص المناسب في المكان المناسب.


انشاء وتعريف العلاقات:
قبل البدء بعملية انشاء العلاقة بين جدولين عليك تحديد حقل معين يستخدم في تكوين العلاقة يسمى المفتاح الابتدائي Primary Key كما في الشكل التالي:

user posted image

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


يمكنك الان تكوين علاقة بين الجداول في Microsoft Access باختيار الامر Relationships من قائمة Tools، ستظهر لك نافذة بعنوان Show Table تمكنك من اضافة الجداول التي ترغب في تكوين العلاقات بينها، وان لم تظهر لك يمكنك اختيار الامر Show Table من قائمة Relationships.

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

عند خانة Left Table Name حدد اسم الجدول المصدر Source Table وهو الجدول الاساسي او بعنى ابسط الجدول الذي تبدأ باضافة الحقول من عنده، ومن ثم حدد حقل المفتاح الابتدائي من خانة Left Column Name. اما الجهة الاخرى Right Table Name فتحدد فيها الجدول المرتبط مع الجدول الحالي كذلك الحقل المراد ان تربطه به:

user posted image

الحقل القسم الموجود في الخانة Right Column Name يسمى بالمفتاح الاجنبي Foreign key وهو الحقل الذي يربط بين الجدولين في العلاقة الحالية.

ملاحظة: لابد ان يكون نوع المفتاح الاجنبي مماثل تماما لنوع المفتاح الابتدائي فمثلا لا يمكن ان يكون الاول من نوع Text والثاني Number.

اضغط على الزر OK لتعود الى صندوق الحوار السابق Edit Relationships، ستلاحظ ان الزر Create يمكنك استخدامه الان، لا تضغطه حتى تحدد الاختيارات الثلاث: Enforce Referential Integrity و Cascade Update Related Fields و Cascade Delete Rlated Records حتى نجبر المستخدم على اضافة سجل في الجدول الثاني (Right Table) يكون له مقابل في الجدول الاول (Left Table)، كما نمكن قاعدة البيانات من اجراء عملية التحديث التلقائية عند تعديل حقل المفتاح الابتدائي او عملية الحذف التلقائي عند حذف الحقل الابتدائي، كما بالشكل التالي:

user posted image

خاتمة
تحدثنا عن العلاقات في هذا المقال وتمكنا من انشاء علاقة من النوع واحد الى مجموعة والعلاقات الاخرى يمكنك انجازها بنفس الطريقة باستثناء العلاقات من النوع مجموعة الى مجموعة حيث تشترط عملية انشاء جدول ثالث يربط الجدولين بعلاقتين من النوع واحد الى مجموعة. تلاحظ في الشكل التالي طريقة عرض الجدول المصدر (Left Table) للعلاقة:

user posted image


------------------------
موقع المطورون العرب
user posted image
user posted image
user posted image


--------------------
Go to the top of the page
 
+Quote Post
خالد الحطامي
شارك 22-11-2008, 12:59 pm
مشاركة #2


المشرف العام
****************

المجموعة: إدارة المنتدى
المشاركات: 4157
التسجيل: 8-04-07
البلد: الحـــــــــــــديـــــــ
ـــــدة
رقم العضوية.: 1087






درس رائع ....ومبسط

مشكور استاذي العزيز


--------------------
Go to the top of the page
 
+Quote Post
شارك 5-04-2009, 11:18 am
مشاركة #3





المجموعة:
المشاركات: 0
التسجيل: --
رقم العضوية.:




My name is Derek and
I'm glad to join to this forum.
Go to the top of the page
 
+Quote Post
Mr. Abdalla Al-D...
شارك 6-04-2009, 11:07 pm
مشاركة #4


نائب المشرف العام
**************

المجموعة: إدارة المنتدى
المشاركات: 1369
التسجيل: 13-11-07
البلد: ON BOARD MAERSK MARIB
رقم العضوية.: 1362




Thank you very much Derek for joining us

Can you please tell me how you heard about Al-Rasheed Forums? I would appreciate it if you answer my question

I hope that you find Al-Rasheed Forums very beneficial and useful.

We are looking forward to reading your topics and replies

If you need any assistance, please feel free to ask me

Thank you very much

Mr. Abdalla Al-Dirbji
Supervisor
Al-Rasheed Forums


--------------------
Go to the top of the page
 
+Quote Post
ابوسليمان
شارك 17-04-2009, 10:50 pm
مشاركة #5


عضو مؤسس
****************

المجموعة: الأعضاء
المشاركات: 3746
التسجيل: 29-08-04
البلد: اينما تفسح لى الارض
رقم العضوية.: 246




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

وشرح رائع لاستاذي محمد


--------------------
Go to the top of the page
 
+Quote Post
همسة أمل
شارك 21-11-2011, 02:54 am
مشاركة #6


عضو جديد


المجموعة: الأعضاء
المشاركات: 1
التسجيل: 21-11-11
رقم العضوية.: 5258




يعطيكم العافية على هذا الموضوع ....
عند تطبيقة بعض العلاقات كانت تطلع عندي خطأ ....
يعني بدل ما تظهر العلاقة رأس بأطراف بتطلع معي رأس برأس ....
ممكن أعرف ايش المشكلة



...
وشكرا ...
[font="Courier New"][/font]
Go to the top of the page
 
+Quote Post
ابوسليمان
شارك 22-11-2011, 04:10 am
مشاركة #7


عضو مؤسس
****************

المجموعة: الأعضاء
المشاركات: 3746
التسجيل: 29-08-04
البلد: اينما تفسح لى الارض
رقم العضوية.: 246




إقتباس(همسة أمل @ 21-11-2011, 02:54 am) *
يعطيكم العافية على هذا الموضوع ....
عند تطبيقة بعض العلاقات كانت تطلع عندي خطأ ....
يعني بدل ما تظهر العلاقة رأس بأطراف بتطلع معي رأس برأس ....
ممكن أعرف ايش المشكلة



...
وشكرا ...
[font="Courier New"][/font]



ما نوع النسخه المستخدمه في التطبيق ؟


--------------------
Go to the top of the page
 
+Quote Post

1 عدد القراء الحاليين لهذا الموضوع (1 الزوار 0 المتخفين)
0 الأعضاء:

 

RSS نسخة خفيفة الوقت الأن: 10-02-2012, 03:55 pm
أٹأڑأ‘أ­أˆ أ¦أٹأکأ¦أ­أ‘: أ”أˆأںأ‰ أ›أ’أ‰ أ“أ¦أ‌أٹ
أٹأڑأ‘أ­أˆ أ¦أٹأکأ¦أ­أ‘: أ”أˆأںأ‰ أ›أ’أ‰ أ“أ¦أ‌أٹ