عرض مشاركة واحدة
  #5  
قديم 02-22-2010, 07:02 PM
ليالى111 ليالى111 غير متواجد حالياً
مراقب عام
 
تاريخ التسجيل: Feb 2010
المشاركات: 115
افتراضي نواع العلاقات Relationships

تنقسم العلاقات الى ثلاثة اجزاء

ولكل جزء عملة وكيفية تكوينة واهمية وجودة فى قاعدة البيانات

وانواع العلاقات :

1- One to One واحد الى واحد

2- One to Many واحد الى كثير

3- Many to Many كثير الى كثير




اولا: علاقة واحد الى واحد One to One 1-1:

يتم التعامل بهذة العلاقة عندما يوجد جدولين وطبيعة التعامل بينهما ان كل جدول يخدم الجدول الاخر بطريقة فردية

كيف يتم ذلك؟؟

مثلا انة عندنا جدولين على سبيل المثال
جدول الاقسام Department
وجدول المديرين Manager

فمن الطبيعى ان لكل قسم مدير واحد
فلا يصلح ان يكون هناك قسمين او اكثر لهم نفس المدير
او ان هناك قسما لة اكثر من مدير او رئيس

فستكون العلاقة بين هذين الجدولين من نوع واحد الى واحد One to one

وتنفذ هذة العلاقة بشكل الجدول الاب والجدول الابن

فاذا فرضنا ان الجدول الرئيسى والذى سوف نجعلة جدول الاب لة تلك الخصائص
جدول المديرين Manager
Man_id
name
address
sal

وكما ذكرنا فى السابق انة لكى تتم العلاقة يجب ان يكون هناك مفتاحا اساسيا فى الجدول Primary key

فعلى سبيل المثال اخترنا الحقل Man_id ليكون المفتاح الاساسى للجدول (الجدول الاب)

والجدول الثانى جدول الاقسام (جدول الابن) لة تلك الخصائص Department

dept_no
dep_name
location
phonenum

التركيز هنا من فضلك

عند عمل علاقة واحد الى واحد يكون المفتاح الاساسى لجدول الابن هوة نفس المفتاح الاساسى لجدول الاب !!

كيف يتم ذلك؟

سنضع الحقل الموجود فى جدول الاب ولة خاصية المفتاح الاساسى سنضعة فى جدول الابن ونجعلة المفتاح الاساسى لجدول الابن مع التعريف بذلك فى جدول الابن

مش فاهمين حاجة!!

بكل بساطة
هتكون خصائص جدول الابن اللى هوة جدول الاقسام Department الجديدة كالتالى
man_id
dept_no
dep_name
location
phonenum

الجديد هنا اننا وضعنا المفتاح الاساسى لجدول المديرين الجدول الابman_id داخل جدول الابن اللى هوة جدول الاقسام وهنخلى المفتاح الاساسى للجدول الابن اللى هوة جدول الاقسام هوة نفسة المفتاح الاساسى للجدول الاب
يعنى المفتاح الاساسى للجدول البن اللى هوة جدول الاقسام department هوة man_id

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

وهذة الصورة توضح الجدولين والعلاقة بينهم على شكل ERD




تظهر لنا الصورة اجدولين وخصائصهم

والخاصية التى تحتها خط هى المفتاح الاساسى للجدول

اما الرقم اسفل الجدول المشار الية بالسهم فهو يبين كيفية العلاقة
وطبعا داخل شكل المعين نوع العلاقة وهى على سبيل المثال manage اى يدير
ومعناها ان الجدول الاب وهو المديرين يرتبط مع الجدول الابن وهو الاقسام بان المديرين يقومون بادارة الاقسام

ملاحظة: يمكن ان نقوم بعمل مفتاح اساسى اخر للجدول الابن ان تطلب الامر ونختار حقلا من حقول جدول الابن يصلح ان يكون مفتاحا اساسيا بالشروط المذكورة سابقا

--------------------------------------

ملاحظة: التعامل مع هذا النوع من العلاقات يكون بحرص شديد جدا جدا وتحليل جيد للنظام لانها تقيد المستخدم بشكل كبير






ثانيا : علاقة واحد الى كثير One to Many 1-m:

يتم وضع هذة العلاقة عندما يكون هناك طرفا واحدا يتعامل مع اكثر من طرف اخر
وهذة الاطراف الاخرى لا تتعامل الا مع الطرف الاول الا بشكل فردى !!

على سبيل المثال

هناك جدولان
جدول الاقسام وخصائصة DEPARTMENT

dept_no
dep_name
location
ومفتاحة الاساسى dept_no ويتم تمثيل المفتاح الاساسى بوضع خط تحتة

وجدول اخر
جدول الموظفين Employee

وخصائصة:
emp_id
name
sal
address

ومفتاحة الاساسى emp_id

السؤال هنا , كيف تتم العلاقة بين هذين الجدولين وماهو نوع العلاقة ؟؟

من الطبيعى ان لكل قسم موظفية

ومن الطبيعى ان يعمل فى قسم واحد فقط اكثر من موظف
مثلا قسم الحسابات يمكن ان يعمل بية اكثر من موظف
ولكن لا يمكن لموظف ان يعمل فى اكثر من قسم
اذا العلاقة هنا هى علاقة واحد الى كثير one to many

كيف نقوم بوضع تلك العلاقة؟؟

طبعا كل جدول لة المفتاح الاساسى الخاص بة

فعندما نريد ان نكون علاقة واحد الى كثير one to many
اولا نقوم بتحديد الجدول الذى سوف يكون التعامل معة بطريقة مفردة والجدول الذى سيتم التعامل معة بكثرة

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

فتكوين العلاقة يتم كالاتى:

نقوم باخذ حقل المفتاح الاساسى لجدول الاقسام dept_no
ووضعة داخل جدول الموظفين
ويتم تعريف الحقل الجديد بالاشارة الى الجدول الاساسى لة
فيتحول هذا الحقل الى مفتاح اجنبى foreign key
وتم التعرف علية مسبقا

فتنتج خصائص جديدة لجدول الموظفين تكون كالتالى

emp_id
name
sal
address
dept_no

وبهذا نكون قد كونا العلاقة

وهذة صورة تمثل العلاقة على شكل ERD




الصورة هنا توضح انة تم وضع حقل المفتاح الاساسى لجدول الاقسام dept_no ومشار الية باللون البرتاقالى

اما رقم واحد 1 المشار الية بالسهم فهو دلالة على ان هذا الجدول يتم التعامل معة بصورة مفردة

وحرف m المشار الية دلالة على ان هذا الجدول يتم التعامل معة بصفة كثير

وطبيعة العلاقة بين الجدولين داخل شكل المعين وهى على سبيل المثال طبيعة عمل work






ثالثا : علاقة كثير الى كثير Many to Many m to n :


التركيز مطلوب جدا ياجماعة

هذة العلاقة بها بعض الاختلاف عن غيرها

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

على سبيل المثال العلاقة بين المدرس والطالب

فكل طالب يقوم بالتدريس علية اكثر من مدرس

وكل مدرس يقوم بالتدريس ل اكثر من طالب

اذا كيف نقوم بتكوين تلك العلاقة؟؟؟

لنفرض انة لدينا جدولين

جدول الطلاب STUDENT

وخصائصة:

st_id
name
address
phone

ومفتاحة الاساسى st_id

وجدول المدرسين TEACHER

وخصائصة :

t_id
name
phone
address
subject

ومفتاحة الاساسى t_id

والان كيف نقوم بتكوين تلك العلاقة؟؟؟

فى هذا النوع من العلاقات نقوم بعمل جدول جديد للعلاقة

كيف ذلك؟؟

الجدول الجديد ستكون خصائصة مكونة من
المفتاح الاساسى للجداول المشتركة فى العلاقة

سنقوم الان بتكوين العلاقة على هذين الجدولين

سنقوم بانشاء جدول جديد ونسمية على سبيل المثال TEACHING اى عملية التدريس

ونقوم بوضع المفتاح الاساسى لجدول المدرسين t_id من خصائص الجدول الجديد
ووضع المفتاح الاساسى لجدول الطلاب st_id ضمن خصائص الجدول الجديد ايضا

فعندما تتم تلك العملية تنشاء علاقتين

علاقة بين جدول المدرسين TEACHER وجدول العلاقة الجديد teaching من نوع واجد الى كثر
واحد من جدول المدرسين وكثير من جدول عملية التدريس

وعلاقة بين جدول الطلاب STUDENT وجدول العلاقة الجديد teaching
علاقة من نوع واحد الى كثثر ايضا

وبهذا تكون علاقة كثير الى كثير قد تم تكوينها

ونمثل ذلك على شكل ERD لتوضيح العلاقة




فى هذة الصورة يتم توضيع العلاقات المكونة
ونوضيح جدول العلاقة الجديد وخصائصة وكيفية انشاء العلاقة بينة وبين الجدولين الاساسيين



وبهذا نكون قد وضحنا تماما انواع العلاقات وكيفية تكوينها


وان شاء الله فى الجزء العملى سيتم توضيح كيفية تطبيق العلاقات





وفى الدرس القادم ان شاء الرحمن سننتقل الى جزء اخر


وان كان هناك اى تقصير منى فسامحونى

فان اصبت فمن الله
وان اخطات فمن نفسى والشيطان



رد مع اقتباس