العاصفة الجزائرية

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
العاصفة الجزائرية

شبكة العاصفة الجزائرية


    الدرس الرابع : العلاقات Relationships من dr pirate

    dr pirate
    dr pirate
    العاصفة الجزائرية
    العاصفة الجزائرية


    ذكر
    عدد الرسائل : 125
    تاريخ التسجيل : 24/12/2008

    شرح الدرس الرابع : العلاقات Relationships من dr pirate

    مُساهمة من طرف dr pirate الأحد فبراير 08, 2009 1:30 am

    بسم الله الرحمن الرحيم

    .

    السلام عليكم ورحمة الله وبركاته .


    العلاقات RelationShip


    قبل أن نبدأ نود أن نعرف أولاً لماذا نستخدم العلاقات ؟ لنعرف ذلك لا بد لنا أولاً أن نعرف ما معنى علاقة .


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


    نعود إلى سؤالنا السابق : نستخدم العلاقة لنضمن شيئين رئيسيين :
    أولاً : تحقيق تكامل حقيقي بين جداول قاعدة البيانات .
    ثانياً : منع تكرار القيم في أي من الجداول لمنع إهدار حجم قواعد البيانات .


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


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


    لتلافي ذلك فإننا نستخدم ما يعرف بالعلاقات RelationShip .



    أنواع العلاقات :
    النوع الأول : One To One - علاقة واحد لواحد .
    في هذه العلاقة نقول أن لكل سجل في القاعدة الرئيسية سجل واحد يقابله في القاعدة الثانية .
    مثال على هذه العلاقة ضمن قاعدة بيانات الأصدقاء :
    بفرض أننا نريد اضافة المعلومات الموجودة ضمن البطاقة الشخصية ( رقم البطاقة - فصيلة الدم - مصدر البطاقة )
    نستطيع اضافة هذه الحقول مباشرة إلى الجدول الأول ، ولكن لاحظ كم سيصبح حجم هذا الجدول ، وبالتالي إذا حاولنا استخراج اسماء الأصدقاء فقط فسيستغرق المزيد من الوقت .
    ربما لن يظهر ذلك مع قاعدتنا البسيطة ولكنه يظهر مع قواعد البيانات الضخمة .
    إذن سنقوم بانشاء جدول جديد يحتوي على الحقول التالية ( رقم البطاقة - فصيلة الدم - مصدر البطاقة )
    PassPort - BClass - From
    تبقى شيء واحد وهو الحقل الذي يمثل رابطاً بين الجدولين .


    وهذا الحقل الرابط له شروط هي :
    * أن يكون موجوداً في الجدولين .
    * أن يكون نوعه متطابقاً في الجدولين ( فلا يصلح أن يكون الأول رقم والثاني نص ) .
    * أن يحتوي على قيم فريدة ( بمعنى أن لا يتكرر ) حتى لا يسبب المشاكل .


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

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




    النوع الثاني : One To Many - علاقة واحد لمجموعة ( والعكس صحيح ) .
    في هذه العلاقة نقول إن لكل سجل في الجدول الرئيسي مجموعة سجلات في الجدول الثاني .
    مثال ذلك المثال الذ قمنا بشرحه في الدرس السابق .
    لو لاحظت المثال ستجد أن مجموعة من الطلاب يمكن أن يكون لهم سجل واحد في جدول الفرق ، لكن لا يمكن أن يكون لطالب ( سجل ) واحد أكثر من سجل آخر في جدول الفرق ( السنوات الدراسية ) .
    وهذا هو الفرق بينه وبين النوع التالي .
    لذا قم بانشاء جدول ثالث تحت اسم Tb_R2 ويحتوي على الحقول التالية :
    Year - Books - Students
    السنة - الكتب - الطلاب
    يمكننا اضافة حقل جديد في الجدول الأول Tb_Main تحت اسم Year حيث سيكون هو الحقل الرابط بين الجدولين .
    قم بالضغط على الجدول الأول ، ثم اضغط على ( تصميم - Design ) ، ثم قم بالضغط بزر الماوس الأيسر في المكان المطلوب ثم قم بالضغط على ( ادراج صف - Insert Row ) .


    أيضاً لا تنس أن تجعل حقل Year مفتاح رئيسي في الجدول الثاني ( جدول الفرق الدراسية ) .


    *** هذا النوع من علاقات هي الأكثر استخداماً .

    نلتقي في الجزء الثاني من الدرس ...


    عدل سابقا من قبل dr pirate في الإثنين فبراير 09, 2009 12:24 am عدل 1 مرات
    dr pirate
    dr pirate
    العاصفة الجزائرية
    العاصفة الجزائرية


    ذكر
    عدد الرسائل : 125
    تاريخ التسجيل : 24/12/2008

    شرح الدرس الرابع : العلاقات Relationships من dr pirate الجزء الثاني

    مُساهمة من طرف dr pirate الإثنين فبراير 09, 2009 12:09 am


    النوع الثالث : Many To Many - علاقة مجموعة إلى مجموعة :
    هل تتذكر العبارة التالية التي أوردتها في الدرس السابق ؟
    لكن لا يمكن أن يكون لطالب ( سجل ) واحد أكثر من سجل آخر في جدول الفرق ( السنوات الدراسية ) .
    إذا أزلنا ( لا ) فإننا نكون قد حصلنا على النوع الثالث .
    مثال هذه العلاقة :
    لو أردنا أن نضيف جدولاً يحتوي على اللغات فإننا سنلاحظ التالي :

    * يمكن للشخص الواحد أن يكون له أكثر من لغة .
    * ويمكن للغة الواحدة أن تكون موجودة عند أكثر من شخص .

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

    الرقم - الاسم .
    1 - أحمد
    2 - محمد
    3 - خالد
    4 - سامي

    والثاني للغات :

    الرقم - اللغة
    1 - العربية
    2 - الانجليزية
    3 - الفرنسية

    أما الجدول الإضافي فهو للعلاقة بين اللغات والأشخاص ، فلكي ندلل على أن أحمد يتحدث العربية والانجليزية ، فيما يتحدث محمد الفرنسية ، أما خالد فيتحدث الثلاث ، بينما لا يتحدث سامي أي لغة ! فإننا سوف نشكل الجدول التالي :

    رقم الشخص - رقم اللغة
    1 - 1
    1 - 2
    2 - 3
    3 - 1
    3 - 2
    3 - 3

    سنقوم الآن ببعض التعديلات على الجداول يصبح كما في المثال المرفق في هذا الدرس ...

    =====================================


    والآن وبعد معرفة الانواع المختلفة سنبدأ الآن بانشاء العلاقات بين الجدول ، وتوجد طريقتين للقيام بذلك :

    * عن طريق محرر العلاقات .
    * عن طريق المعالج الموجود في نوع البيانات Data Types الموجود في خصائص الحقل .

    وسوف نستخدم الطريقة الاولى .

    سنبدأ الآن بإنشاء العلاقات بين جدول الأصدقاء وجدول معلومات البطاقة الشخصية ( تذكر أن العلاقة من نوع واحد إلى واحد One To One ) .
    من قائمة ( Tools - أدوات ) اختر ( Relationships - علاقات ) سوف تظهر شاشة فارغة - افتراضياً - ... اضغط بزر الماوس الأيمن واختر Show Tables - إظهار جداول ، وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 30
    والآن قم باختيار الجداول واحداً تلو الآخر واضغط Add - اضافة ، وبعد الانتهاء اختر Close - إغلاق .
    سيظهر لك شكل كالتالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 31
    الآن من قائمة Relationships - العلاقات ، اختر تحرير علاقة - Edit Relationship . سوف تظهر لك شاشة اختر منها Create New .
    سوف تظهر لك شاشة جديدة بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 32
    في خاصية Left Table Name اختر الجدول الذي سيكون مصدراً للبيانات وهو عندنا Tb_Main
    وفي الجزء الأيمن اختر Tb_R1
    وبالنسبة لخاصية Left Column Name اختر الحقل الذي سيكون رابطاً من الجدول الرئيسي ، ولذا سنختار Number
    وفي الجزء الأيمن سيكون الحقل أيضاً هو Number .
    وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 33
    قم الآن بالضغط على زر Ok وستظهر لك شاشة بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 34
    لاحظ ظهور نوع العلاقة في الجزء الأسفل من الشاشة .
    أما بالنسبة لأزرار الاختيار :

    1 - مربع الإختيار الأول : في هذا الخيار تحدد إذا ما كنت تريد منع المستخدم على ادخال حقل في الجدول الثاني دون أن يكون له نظير في الجدول الأول .
    2 - مربع الإختيار الثاني : في هذا الخيار تحدد إذا ما كان تحديث بيانات الجدول الثاني عند تغيير قيم حقل المفتاح الرئيسي .
    3 - مربع الإختيار الثالث : في هذا الخيار تحدد إذا ما كنت تريد حذف بيانات الجدول الثاني عند حذف نفس السجل في الجدول الرئيسي .

    هناك زر آخر تحت اسم ( Join Type - نوع الدمج ) وبها ثلاث خيارات لأنواع مختلفة من الدمج .

    والآن قم بالضغط على زر ( Create - إنشاء ) . ستلاحظ ظهور رسم لعلاقة بين الجدولين وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 35
    وبهذا نكون قد أنشأنا العلاقة الأولى من نوع One To One ... في العلاقة التالية سوف نستخدم المعالج .
    للتأكد من عمل هذه العلاقة اذهب إلى Tb_Main وانقر علامة + الموجودة على يساره ... أتمنى أن يظهر لديك الشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 36
    dr pirate
    dr pirate
    العاصفة الجزائرية
    العاصفة الجزائرية


    ذكر
    عدد الرسائل : 125
    تاريخ التسجيل : 24/12/2008

    شرح الدرس الرابع : العلاقات Relationships من dr pirate الجزء الثالث

    مُساهمة من طرف dr pirate الإثنين فبراير 09, 2009 12:16 am

    سوف نقوم الآن بإنشاء العلاقة الخاصة بالسنة الدراسية ... لذا سوف نتجه إلى جدول TB_Main ونضغط Design ومن ثم نذهب إلى الحقل Year ونختار Lookup Wizard ، وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 37
    أول شاشة تظهر لنا تخيرنا فيما إذا ما كنا نريد أن نختار جدولاً لننشأ معه علاقة ، أم نريد أن نضع قيم ... سوف نترك الخيار الافتراضي وهو الأول ونضغط على التالي .
    الشاشة التالية سوف تطلب منا اختيار الجدول الذي نريد إنشاء علاقة معه ، وسنختار Tb_R2 .

    في الشاشة الثالثة سوف يطلب اسماء الحقول التي نريد لها أن تظهر في الجدول ... سوف نختار Year وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 38
    ومن ثم نضغط على التالي .
    في الشاشة التالية سوف يظهر لنا بيانات الحقل المختار الموجودة حالياً في الجدول الذي اخترناه ، لذا سوف نختار التالي .
    أخيراً سوف نختار اسم الحقل الذي نريد له أن يظهر العلاقة ، وسنتركه على ما هو عليه ، ونختار Finish - إنهاء .

    سيخبرك أن الجدول لا بد أن يحفظ أولاً قبل القيام بضبط العلاقة ... قم بالحفظ ، ومن ثم أغلق شاشة التصميم .
    الآن قم بتشغيل الجدول واختر الحقل Year ولاحظ ظهور قيم الجدول الثاني في قائمة وبإمكانك الاختيار منها مباشرة ... وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 39
    أيضاً اختر الجدول Tb_R2 وانقر علامة + سيظهر لك جميع الطلبة الذين ينتمون إلى هذه السنة وذلك بالشكل التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 40
    أخيراً سوف نلقي نظرة على شاشة العلاقات التي قمنا بتشغيلها في الدرس السابق ... سوف يظهر لك شكل قريب من التالي :
    الدرس الرابع : العلاقات Relationships من dr pirate 41
    __________________
    جميع الحقوق محفــــــــــــــــdr pirateـــــــوضة

    والله الموفق ...

      الوقت/التاريخ الآن هو الأربعاء مايو 15, 2024 2:34 pm