تابع الدرس الثاني
العلاقات :
بين كل جدول وجدول علاقة , فمثلا جدول الموظفين و جدول الأقسام بينهما علاقة
العلاقة ما هي يا ترى ؟
العلاقة هي ان الموظف الواحد يعمل تحت قسم واحد
وان القسم الواحد به اكثر من موظف يعمل به
ما رأيك ان نفترض هذا الجدول (الصورة 32) :
لاحظ معي هذه المعلومات , انظر الى قسم المحاسبة وهو قسم واحد ويوجد بمكة ويستوعب 60 شخص ...
لاحظ معي ان هذا القسم به 3 موظفين وهم وليد وسعد واحمد ...
لاحظ معي ان القسم به معلومات خاصة تكررت !!
كم مرة ذكرنا ان قسم المحاسبة موقعه في مكة وانه يستوعب 60 موظف ؟؟
ولو هناك 1000000 موظف في هذا القسم على سبيل المثال !! هل لاحظت ان هذا التكرار قد يجعل حجم البيانات ضخم لدرجة الهوس !
نكتشف انه يوجد تكرار للمعلومات !! ويجب ان نتحاشى هذا التكرار . كيف ؟
نصمم جدول خاص بمعلومات الاقسام . وليكن هذا الجدول (صورة 42) "جدول الاقسام "
اين المفتاح الاساسي ؟
رقم القسم هو المفتاح الاساسي (لاحظ الخط الذي تحت رقم القسم )
الان دعنا نتصور الجدول الاساسي وقد صار فيه معلومات الموظفين ونسميه مثلا "جدول الموظفين "
الصورة (52)
نريد ان نعرف ان الموظف يوسف مثلا في قسم الرواتب !! كيف ؟؟ نريد ان نربط بين الجدولين ؟؟ كيف نربط بين الجدولين ؟؟
اليك هذا الحل :
نزيد عمود في جدول الموظفين ونسميه "رقم القسم" ونكتب رقم القسم فيه ... اليك الجدول الجديد (الصورة 62)
لاحظ هذه الارقام (ارقام القسم ) لم تأتي عبطا !!
فاحمد وسعد ووليد ... جميعهم في القسم رقم واحد ,,, والقسم رقم واحد من أين نأتي به ؟؟ من جدول الاقسام (راجع الصورة 42)
وهو المحاسبة ومقر القسم بمكة ويستوعب 60 شخص ....
يوسف في القسم 2 .. وهو قسم الرواتب الذي يقع في الرياض ويستوعب 40 موظف
(وماذا عن سالم ؟)
(لم افهم حقا ما حصل !! لماذا فصلتهما في جدولين ؟ لماذا فعلت ذلك ؟)
لاحظ يا عزيزي انه في الصورة 62 قد تكرر الرقم "واحد" ثلاث مرات ... (نعم صحيح .. اذن طريقتك خاطئة !)
ليست طريقة خاطئة ولكن كم عمود به تكرار ؟ عمود واحد وهو رقم القسم فقط ... شاهد الصورة 62
واما الجدول القديم (الصورة 32) فقد تكررت المعلومات في ثلاث اعمدة !! وهي اسم القسم ومكانه واستيعابه .
(طيب .. لم تفرق كثيرا ..)
بل تفرق كثيييييييييرا لو فكرت مليا !! ... فكر لو يوجد 1000000 موظف كم من البيانات تتكرر في الجدول السابق (انظر الصورة 32) ؟؟
فكر لو ان جدول الاقسام به 50 عمود ... كم من البيانات سوف تتكرر ؟؟؟
الان ... هل شاهدت العمود الذي اضفته في جدول الموظفين (اقصد عمود رقم القسم ) ؟(انظر الصورة 62)
هذا العمود يدعى المفتاح الاجنبي Foreign Key (ما فائدة هذا المفتاح ؟؟ وكيف اعرف ما اذا كان هذا العمود مفتاح اجنبي او لا ؟؟)
المفتاح الاجنبي :
كما شاهدنا .... غرضه هو ربط جدولين ... وكما في مثالنا السابق .. ربطنا جدول الموظفين بجدول الاقسام ... وجعلنا المفتاح الاجنبي في جدول الموظفين وهو العمود الخاص برقم القسم .
( كيف أميز المفتاح الاجنبي ) المفتاح الاجنبي هو مفتاح اساسي في جدول اخر .. أي انه مفتاح اساسي في جدول الاقسام , وهو في جدول الموظفين اجنبي !!
(استنتجت شيء !! هل يوجد مفتاح اجنبي في جدول الاقسام ؟؟ ) لا لا يوجد (لماذا ؟على أي اساس اضيف المفتاح الاجنبي ؟)
نحن اضفنا عمود في جدول الموظفين وسميناه مفتاح اجنبي ولم نضيف مفتاح اجنبي في جدول الاقسام لسبب .. ستعرفه في الدرس القادم ان شاء الله :
اريدك الان ان تستنتج ذلك عبر درجات العلاقات
درجة العلاقات :
سوف نتكلم نظريا عن مفاهيم هذه الدرجات فهناك ثلاث درجات وهي /
- واحد لواحد : مثل علاقة المسافر بالتذكرة ... فالمسافر الواحد يملك تذكرة واحدة للرحلة الواحدة .. والتذكرة الواحدة يمتلكها مسافر واحد للرحلة الواحدة
هل يمكن لمسافرين ان يمتلكان تذكرة واحدة للرحلة الواحدة ؟؟ لا .... وهل يمكن للمسافر ان يمتلك تذكرتين للرحلة الواحدة ؟ لا طبعا ...
مثال اخر ...
الشخص الواحد لديه روح واحدة .... الروح الواحدة في شخص واحد ...
- واحد لمتعدد أو متعدد لواحد : مثلا ان يعمل الموظف الواحد في قسم واحد .. والقسم الواحد يعمل تحته مجموعة موظفين (موظفين متعددين .. يعني ممكن يكون موظف واحد ويمكن اكثر ) هل استنتجت لماذا اضفنا المفتاح الاجنبي في جدول الموظفين ؟
مثال اخر .. العلاقة بين رجل وامرأة الزواج .. الرجل يتزوج اكثر من امرأة (طالما انهم جميعا احياء) وان المرأة لا تتزوج الا رجل واحد (طالما انهما احياء)....
- متعدد لمتعدد : مثل .. الطالب يدرس تحت مجموعة معلمين ... والمعلم الواحد يدرس اكثر من طالب
مثال اخر .....
الكابتن الواحد يقود اكثر من طائرة ... والطائرة الواحدة يقودها اكثر من كبتن
انتهى الدرس ولله الحمد
الواجب :
نوعه : اعتمادي على الطالب
ملاحظات :
اريد منك شيء واحد .. اقرأ الدرس جيدا ... ثم حل الواجب بدون ان ترجع للدرس ... لان فيه تمرين العقل وقوة استيعابه ... وهو تكنيك رااااااائع
س1 : اضرب لي 3 امثلة لم اذكرها لدرجة العلاقات (واحد لواحد ... و متعدد لمتعدد ... و متعدد لواحد او واحد لمتعدد)
س2:في رأيك ... عندنا جدولين .. ويلزمنا ان نربط بينهما ... هما جدول المدينة وجدول الدولة
اين نضع المفتاح الاجنبي ؟ في أي جدول ؟
س3: اشرح لي مايلي بطريقتك الخاصة وبفهمك .. ولا يهمني اذا كان صحيح ام خاطيء:
- المفتاح الرئيسي ماهو ؟ ولماذا نستخدمه ؟ ومتى نعرف ما اذا كان هذا مفتاح اساسي او لا ؟
- المفتاح الاجنبي ماهو ؟؟ ولماذا نستخدمه ؟ ومتى نعرف ما اذا كان هذا مفتاح اجنبي او لا ؟
- قواعد البيانات ماهي ؟
- نظام قاعدة البيانات العلائقية ما هو ؟
س4 : فكر في جدولين (مثال من عقلك لاي جدولين ) واضف مفتاح اساسي , ولو استطعت اضف مفتاح اجنبي ...