المفتاح الأجنبي (Foreign key) (بالفرنسية: clé étrangère) هو المفتاح الذي يربط جدولين أو أكثر في قاعدة بيانات علائقية معينة.
يربط المفتاح الأجنبي جدول البيانات الأول (أو خانات منه فقط) بالثاني أو العكس، هذا ويتوجب على أحد الجداول أن يحتوي على المفتاح الرئيسي. فائدة المفتاح الأجنبي أنه يجعل كل قيمة من الجدول الأول مرتبطة أو موجودة في الجدول الثاني، كما يتوجب على خانة الجدول الأول ألا تحتوي على قيم غير موجودة في الجدول الثاني أو العكس.
يٌمَكِّنٌ المفتاح الأجنبي من ربط العديد من الجداول ببعضها البعض، حيث يبني علاقة بينهم، هذه العلاقة يجب أن تكون قائمة على عامل مشترك واحد أو أكثر بين الجداول المراد ربطها، ولذلك يٌعتبر المفتاح الأجنبي أحد الأمور الأساسية والضرورية عند بناء قاعدة بيانات علائقية.
مثال
لنفترض قاعدة بيانات مكونة من جدولين، الجدول الأول هو جدول الشيء، والذي يحتوي على قائمة من الأشياء تخص شخصا ما، في حين أن الجدول الثاني هو جدول الميزة، والذي يحتوي على ميزة كل شيء على حدا.
الشيء (ر.ت الشيء، ر.ت الميزة، اسم الشيء) الميزة (ر.ت الميزة، اسم الميزة)
في البداية، يجب تعيين مفاتيح رئيسية في كل من عمود ر.ت الشيء في جدول الشيء، وكذلك عمود ر.ت ميزة في جدول الميزة، كما يجب تعيين مفتاح أجنبي في العمود ر.ت الشيء في جدول الشيء كي يكون مرجعا للعمود ر.ت الميزة في جدول الميزة، وبالتالي:
- لا يمكن إضافة سطر جديد في جدول الشيء مع ر.ت ميزة غير موجود أصلا في جدول الميزة.
- لا يمكن حذف سطر من جدول الميزة، إذا وفقط إذا كان هناك سطر من جدول الشيء مرتبط بقيمة معينة من ر.ت ميزة في نفس هذا الجدول.
معلومات إضافية
يٌمكن إضافة المفتاح الأجنبي في معظم البرامج التي تقوم بإنشاء أو قراءة قواعد البيانات، على غرار أوراكل، ميكروسوفت إس كيو إل سيرفر، بوستجري إس كيو إل، ماريا دي بي وغيرهم.
في ماي إس كيو إل، يجب استعمال خاصية إينو دي بي من أجل الحصول على ميزة تعيين مفتاح أجنبي، وذلك لأن الخاصية الافتراضية ماي إيسام لا تحتوي على هذه الميزة.[1]