المفتاح الاساسي والمفتاح الاجنبي primary key vs foreign key🔑
مقالة نشرح فيها عن ماهو المفتاح الاساسي والمفتاح الاجنبي Sql server primary key vs foreign key
وماهي اهميتهم وفائدتهم بقاعدة البيانات السيكوال سيرفر
:primary key المفتاح الاساسي
هو المفتاح الفريد او الرئيسي الذي يميز الجدول والذي يتمثل بالحقل الذي لايمكن ان تتكرر قيمته ابدا ولايمكن ان يكون فارغ حيث ان للجدول لايمكن ان يكون له غير مفتاح رئيسي واحد , فائدته بعمليات الحذف والبحث والتعديل للقيود بالجدول ويمكن لن نربط جدول بجدول اخر وعمل علاقة بينهما .
المفتاح الاجنبي Foreign Key
هو المفتاح يكون رئيسي بالجدول الاول وفرعي بالجدول الثاني والذي يمثل العلاقة بين الجدولين فمثلا لدينا جدول البلدان وهو الCountry وجدول المدن ال City التي داخل هذا الCountry لذا نضع المفتاح الرئيسي للجدول الاول وهو جدول البلدان وهو حقل country_id وكذلك نضع city_id المفتاح الرئيسي لجدول المدن , كما موضح بالصورة التالية :
لكي نعمل علاقة بين الجدولين لكي نستطيع ان نعرض البلدان ومدنها او المدن التابعة لتلك البلدان لابد ان نضع علاقه فيما بين الجدولين بان نضع حقل بجدول المدن وهو المفتاح الرئيسي country_id وكما موضح بالصورة التالية :
الان سنوضح كيفية عمل اساسيات العلاقات بجداول قاعدة بيانات السيكوال سيرفر :
* ننشا جدول جديد بان نقف عل قاعدة البيانات وعمل كلك يمين بمؤشر الماوس Add Table .
* نبداء باضافة اول حقل وهو حقل Country_id وهوالمفتاح الرئيسي لجدول البلدان الCountry .
وكما موضح بالصورة التالية :
وبعده F4 وتحديد identity Column نحدد فيه اسم الحقل وهو الcountry_id وكما موضح بالصورة التالية :
ثم نكمل بقية الجدول ونقوم بحفظه باسم Country وكما بالصورة التالية :
الان نقوم بانشاء جدول بقاعدة البيانات بعمل جدول المدن City وكما موضح بالصورة التالية :
الان ماذا عن العلاقات بين الجداول في قواعد البيانات
ان الجدولين اللذين تم انشاؤهما غير مرتبطين باي علاقة فيما بينهم اي ان كل جدول منفصل عن الجدول الاخر اي انني لااستطيع ان اجلب مدن دوله معينة وذلك . لانهم غير مربوطين مع بعض
لكي نقوم بربطهم بعلاقة علينا انشاء حقل بجدول الCity i هو نفس اسم Country_id الموجود كمفتاح رئيسي بجدول الدول هنا سيكون مفتاح اجنبي بجدول المدن وكما موضح بالصورة التالية :
الان نقوم بحفظ الجدول بهذا نكون قد عملنا العلاقه بين الجدولين التي ستتكون اوتوماتيكلي لاننا عملنا المفتاح الاجنبي بنفس الاسم والمواصفات للمفتاح الرئيسي الخاص بجدول الدول . والان اي استفسار للمدن التابعة لدوله معينه سيكون جاهز وطبعا بعد ملئ البيانات للدول والمدن .وكما موضح بالصورة التالية :
Sql edit top rows
ادخل الدول مثلا دولة مصر والسعودية كما موضح بالصورة التالية :
الان ندخل بيانات جدول المدن نضيف اسم المدينة ورقم الدولة لها هنا رقم الدوله هو المفتاح الاجنبي والمؤشر عليه بالسهم الاحمر من اجل الربط بين الجدولين وكما موضح بالصورة التالية :
وبعد عمل ال Sql view بين الجدولين او جملة الاستعلام سيكون المخرج كما بالصورة التالية :
عرض البيانات من الجداول في قاعدة البيانات