المهندس معاذ علاء الدين على عبدالموجود
نرحب بكم فى منتداكم وبالمشاركة نصل الى كل جديد وفى حالة قيامكم بالتسجيل ستصل رسالة فى بريد الياهو spam او بريد هوتميل junk ومن خلال قيامك بتنشيط والضغط بفتح هذه الرسالة سوف يكون بامكانكم المشاركة والتحميل للمتريال وفتح الراوبط المهمة وبالمشاركة يكتمل العمل
نتمنى لكم دوام التقدم والرقى للدعم الفنى والاستفسارات يجب مراسلتناعلى هذا الايميل instructor_mo3az@yahoo.com

الاكسيس العلاقات RelationShip

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

الاكسيس العلاقات RelationShip

مُساهمة  معاذ علاء الدين في الأربعاء مارس 24, 2010 5:17 pm

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

لنفرض أن لدينا قاعدة بيانات تحتوي على الموظفين ويهمنا فقط اسم الموظف وفرع الشركة التي يعمل فيها ومكان الفرع .
إذا قامت الشركة مثلاً بحذف فرع ... فهذا يعني أن تقوم يدوياً - أو حتى بالكود - بحذف جميع الموظفين الذين ينتمون إلى هذا الفرع .
لكن الأمر ليس كذلك مع العلاقات ، فبمجرد حذف القسم سوف يحذف تلقائياً الموظفون التابعون له – طبعاً فقط إذا كنا نرغب في ذلك
أنواع العلاقات :
النوع الأول : One To One - علاقة واحد لواحد
في هذه العلاقة نقول أن لكل سجل في القاعدة الرئيسية سجل واحد يقابله في القاعدة الثانية .
مثال على هذه العلاقة ضمن قاعدة بيانات الأصدقاء
وهذا الحقل الرابط له شروط هي :
* أن يكون موجوداً في الجدولين .
* أن يكون نوعه متطابقاً في الجدولين ( فلا يصلح أن يكون الأول رقم والثاني نص ) .
* أن يحتوي على قيم فريدة ( بمعنى أن لا يتكرر ) حتى لا يسبب المشاكل .
ولذا فإننا نقول أننا لا نستطيع أن نستخدم حقل الإسم لاخلاله بالشرط الثالث لاحتمال تشابه الأسماء .
لذلك فإن أنسب حقل هو حقل الرقم لأننا ذكرنا أنه سيحتوي على قيم فريدة ( غير متشابهه ) .
قم الآن باضافة حقل Number إلى الجدول السابق وعينه كمفتاح رئيسي Primary Key ، وقم بحفظ الجدول تحت اسم Tb_R1 أو أي اسم كما تحب .
النوع الثاني : One To Many - علاقة واحد لمجموعة ( والعكس صحيح
في هذه العلاقة نقول إن لكل سجل في الجدول الرئيسي مجموعة سجلات في الجدول الثاني .
مثال ذلك المثال الذ قمنا بشرحه في الدرس السابق .
لو لاحظت المثال ستجد أن مجموعة من الطلاب يمكن أن يكون لهم سجل واحد في جدول الفرق ، لكن لا يمكن أن يكون لطالب ( سجل ) واحد أكثر من سجل آخر في جدول الفرق ( السنوات الدراسية ) .
وهذا هو الفرق بينه وبين النوع التالي .
لذا قم بانشاء جدول ثالث تحت اسم Tb_R2 ويحتوي على الحقول التالية :
Year - Books – Students
النوع الثالث : Many To Many - علاقة مجموعة إلى مجموعة
أردنا أن نضيف جدولاً يحتوي على اللغات فإننا سنلاحظ التالي :

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

للقيام بهذه النوعية من العلاقات فإننا نحتاج إلى جدول بسيط ، فمثلاً لدينا جدولين في البداية هما :
الرقم - الاسم .
1 - أحمد
2 - محمد
3 - خالد
4 - سامي

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

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

بالتوفيق

معاذ علاء الدين
Admin

عدد المساهمات : 264
تاريخ التسجيل : 01/06/2009
العمر : 32
الموقع : http://mo3azmera.blogspot.com-http://mo3azmera.ibda3.org

معاينة صفحة البيانات الشخصي للعضو http://instructor_mo3az@yahoo.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى