ماهى العلاقات بين الجداول:
فى قواعد البيانات يتم تقسيم جميع البيانات ذات الصلة فى جدول منفصل ..فيتكون لدينا عدة جداول هذه الجداول هى المكون الأساسي لقاعدة البيانات وهذه الجداول تكون بينها وبين بعضها صلة رابطة من حيث الموضوع ..فالعلاقة هى ربط بين الجداول المرتبطة مع بعضها البعض ويتم الربط بواسطة حقل المفتاح الاساسي primary key فى الجدول الأول وربطه مع حقل آخر فى الجدول الثانى يسمى مفتاح أجنبي foreign key
فمثلا فى قاعدة بيانات المدرسة يكون لدينا جدول للمعلمين وجدول للطلاب وجدول للفصول ...هذه الجداول إذا أمعنا النظر فيهم نجد أن هناك صلة بين المعلم والطالب وهناك صلة بين الفصل وبين الطالب ومن هنا تنشأ العلاقات بين الجداول
فائدة العلاقات بين الجداول
1- تفادى تكرار البيانات2- الحفاظ على سرية البيانات وحمايتها عن طريق وضعها فى أكثر من جدول
3- سرعة البحث عن البيانات
4- تعمل العلاقات على تلافي كبر حجم قاعدة البيانات وذلك بمنع التكرار
أنواع العلاقات بين الجداول
يوجد ثلاثة أنواع رئيسية من العلاقات بين الجداول- العلاقة واحد إلى واحد وتسمى (رأس برأس) : one to one
- العلاقة واحد إلى متعدد وتسمى ( رأس بأطراف) : one to many
- العلاقة متعدد إلى متعدد وتسمى (أطراف بأطراف) : many to many
أولاً: العلاقة واحد إلى واحد: one to one
تنشأ العلاقة واحد إلى واحد : one to one فى حالة الرغبة فى :-1- تقسيم الجداول الكبيرة التى تحتوى على عدد كبير من الحقول إلى عدة جداول
2- الحفاظ على سرية البيانات
وفى هذا النوع من العلاقات يكون كل سجل فى الجدول الأول مرتبط بسجل واحد فى الجدول الثاني
ولإنشاء العلاقة واحد إلى واحد بين جدولين :one to one لابد من وجود كلا المفتاح الأساسي فى كلا الجدولين
إنشاء العلاقة واحد إلى واحد : one to one
إنشاء العلاقة one to one
نريد أن نفصل مثلا نتيجة الطلاب ونضعها فى جدول منفصل كنوع من أنواع الحماية والسرية على هذا الحقلفنقوم بإنشاء جدول آخر يسمى جدول النتيجة results ونضع في هذا الجدول حقل النتيجة ونقوم بإنشاء حقل مفتاح اساسي يكون مماثل لحقل البيانات فى جدول الطلاب (اجعل نوع البيانات الخاص بالمفتاح الأساسي فى الجدول الثانى -جدول النتيجة- number) فلا يصح أن يكون الحقلان نوع البيانات فيهما auto number فيؤدى ذلك لحدوث بعض المشكلات عند فرض التكامل المرجعى enforce referential integrity
خطوات إنشاء العلاقة One to one
1- من التبويب database tools اختر relationships2- من النافذة التى ستظهر أمامك حدد الجداول التى ترغب فى الربط بينها ويمكن تحديد اكثر من جدول بالضغط على مفتاح ctrl من لوحة المفاتيح أثناء التحديد ثم اضغط على add
3 - قم بسحب حقل المفتاح الأساسي فى الجدول الأول جدول الطلاب وإفلاته على حقل المفتاح الأساسي فى الجدول الثاني results
4- يمكن تعديل حقول الربط بين الجدولين من نافذة edit relationships
5- يمكن فرض خاصية التكامل المرجعى enforce referential integrity
6- نضغط على create لإنشاء العلاقة بين الجدولين
7- عند الرغبة فى حذف العلاقة بين الجدولين اضغط كليك يمين على الخط الفاصل بين الجدول (خط العلاقة) واختر delete
8- لتعديل العلاقة بين الجدولين اضغط كليك يمين على الخط الفاصل بين الجدولين (خط العلاقة) واختر edit relationships
فرض التكامل المرجعى enforce referential integrity
التكامل المرجعى: هو مجموعة من القواعد التى يتم تطبيقها على الجداول المرتبطة بحيث تظل العلاقات بين الجداول متكاملة ومتناغمة ويعمل التكامل المرجعى بين الجداول على عدم حدوث أخطاءفمثلا عند فرض التكامل المرجعى بين جدولين جدول الطلاب وجدول النتيجة يعمل التكامل المرجعى على عدم إمكانية ادخال نتيجة طالب فى جدول النتائج إلا إذا كان هذا الطالب مسجلاً فى جدول الطلاب وكذلك عدم إمكانية حذف سجل فى جدول إذا كانت هناك سجلات مرتبطة به فى جدول أخر مرتبط وعند حذف سجل فى الجدول الأول يتم حذف جميع السجلات المرتبطة به فى الجدول الثانى cascade delete.ويعمل كذلك التكامل المرجعى على أنه فى حالة تحديث بيانات سجل فى الجدول الأول يتم تحديث جميع السجلات المرتبطة به فى الجدول الثانى cascade delete
تتابع التحديثات وتتابع الحذف cascade update&cascade delete
تتابع التحديثات تعنى أن فى حالة تحديث بيانات الجدول الأول يتم تحديث البيانات المرتبطة تلقائيا فى الجدول الثانيفمثلا عند الرغبة فى تحديث رقم طالب فى جدول الطلاب يتم تحديث رقم الطالب تلقائيا فى جدول النتائج
وتتابع الحذف cascade delete تعنى أنه عند حذف سجل معين فى الجدول الأول يتم حذف جميع السجلات المرتبطة فى الجدول الثانى
العلاقة One to many (واحد إلى متعدد- رأس بأطراف)
وهى أكثر أنواع العلاقات شيوعا وانتشارا
وفى العلاقة one to many يكون كل سجل فى الجدول الأول يرتبط بأكثر من سجل فى الجدول الثانى ولكن كل سجل فى الجدول الثانى يرتبط بسجل واحد فى الجدول الأول.
مثل العلاقة بين التلاميذ والفصل فالفصل الواحد يجلس فيه عدد كبير من التلاميذ ولكن التلميذ الواحد يجلس فى فصل واحد
فالعلاقة هنا علاقة One to many من جهة الفصل One ومن جهة التلاميذ many
ومثل العلاقة بين الدرجات المالية والمعلمين فالمعلم الواحد له درجة مالية واحدة ولكن الدرجة المالية الواحدة ممكن أن يشغلها أكثر من معلم فمن جهة الدرجة المالية One ومن جهة المعلمين Many.
خطوات إنشاء علاقة One to many
1- قم بإنشاء جدول الدرجات المالية financial class وقم بإنشاء المفتاح الأساسي به وليكن اسمه F_ID ونوع البيانات به Number
2- قم بإنشاء جدول المعلمين وقم بوضع مفتاح أجنبي foreign key يمثل المفتاح الأساسي primary key فى جدول الدرجات المالية (financial class ) ويمكن تسميته أى اسم ويستحسن نفس اسم المفتاح الأساسي primary key فى الجدول الأول حتى يسهل الاستدلال عليه بسهولة F_ID واجعل نوع بياناته Number
لاحظ : أن المفتاح الأجنبي foreign key يتم إنشاؤه فى داخل الجدول الذى يمثل العلاقة many
3- من التبويب database tools اختر relationships
4- من النافذة التى ستظهر أمامك حدد الجداول التى ترغب فى الربط بينها ويمكن تحديد اكثر من جدول بالضغط على مفتاح ctrl من لوحة المفاتيح أثناء التحديد ثم اضغط على add5 - قم بسحب حقل المفتاح الأساسي فى الجدول الأول جدول الدرجات المالية f_ID وإفلاته على حقل المفتاح الأجنبي فى الجدول الثاني (جدول المعلمين teachers) حقل f_ID
6- يمكن فرض خاصية التكامل المرجعى enforce referential integrity
7- نضغط على create لإنشاء العلاقة بين الجدولين
العلاقة many to many (علاقة متعدد إلى متعدد) أو (علاقة أطراف بأطراف)
تكون العلاقة بين الجدولينmany to many حينما يكون كل سجل فى الجدول الأول يرتبط بأكثر من سجل فى الجدول الثانى وكذلك يكون كل سجل فى الجدول الثانى مرتبط بأكثر من سجل فى الجدول الأول
مثل العلاقة بين جدول المعلمين teachers وجدول الدورات التدريبية courses حيث أن كل معلم ممكن أن يدرس أكثر من دورة تدريبية وكذلك الدورة التدريبية ممكن يدرسها أكثر من معلم
وفى العلاقة many to many نحتاج إلى جدول ثالث يسمى جدول الوصل أو جدول الربط junction table
وفى هذا الجدول يتم وضع المفتاح الأساسي primary key فى الجدول الأول كمفتاح أجنبيforeign key ويتم وضع ايضا المفتاح الأساس primary key فى الجدول الثاني كمفتاح أجنبي foreign key وممكن أن يحتوى هذا الجدول على أى حقول أخرى مثل مثلا موعد الدورة.
أى أن العلاقة many to many عبارة عن علاقتين كل منهما one to many
خطوات إنشاء العلاقة Many to Many
1- نقوم بإنشاء جدول الربط junction table ونضع فيه المفتاح الأساسي primary key فى الجدول الأول والمفتاح الأساس فى الجدول الثاني primary key وكلاهما يعتبر مفتاح أجنبي foreign key فى جدول الربط junction table
2- من التبويب database tools اختر relationships
3- من النافذة التى ستظهر أمامك حدد الجداول التى ترغب فى الربط بينها ويمكن تحديد اكثر من جدول بالضغط على مفتاح ctrl من لوحة المفاتيح أثناء التحديد ثم اضغط على add5 - قم بسحب حقل المفتاح الأساسيprimary key فى الجدول الأول جدول المعلمين T_IDوإفلاته على حقل المفتاح الأجنبي foreign key فى جدول الربط Junction table التفاصيل details لإنشاء علاقة One to many بين جدول المعلمين وجدول الوصل details
6- قم بسحب حقل المفتاح الأساسي primary key فى جدول الدورات التدربيية C_ID وإفلاته على حقل المفتاح الأجنبي C_ID فى جدول الربط junction table والمسمى details
4- يمكن تعديل حقول الربط بين الجدولين من نافذة edit relationships
5- يمكن فرض خاصية التكامل المرجعى enforce referential integrity
6- نضغط على create لإنشاء العلاقة بين الجدولين
وبهذا نكون أنشأنا العلاقة Many to Many
اسعدك المولى معلومات قيمية ربي يسعدك.
ردحذفعند عملية الربط بين الجداول تظهر رساله مكتوب فِيَھ يجب التساوي في عدد الحقول ونوع البيانات ما السبب ممكن تفيدونا
ردحذفيجب ان يكون كلا نوعي البيانات فى حقلي الربط من نفس النوع سواء رقم او نص او غير ذلك
حذفجزاك الله خيرا ...... معلومات قيمة لكن لو كانت الشرائح التوضيحية أبطأ قليلا
ردحذفواياكم وتم مراعاة هذا الامر فى الدروس التالية
ردحذفخالد شكرى شكرا جزيلا أستاذنا دروس رائعة في القمة في ميزان حسناتك
ردحذفكل الشكر نرجو شرح عمل ملف تنفيذى
ردحذف