يختلف المفتاح الخارجي عن المفتاح الفائق أو المفتاح المرشح أو المفتاح الأساسي لأن المفتاح الخارجي هو الذي يستخدم لربط جدولين معًا أو إنشاء اتصال بينهما.
هنا، في هذا القسم، سنناقش المفتاح الخارجي واستخدامه وننظر إلى بعض الأمثلة التي ستساعدنا على فهم عمل المفتاح الخارجي واستخدامه. سنرى أيضًا تنفيذها العملي على قاعدة بيانات، أي إنشاء وحذف مفتاح خارجي على جدول.
ما هو المفتاح الخارجي
المفتاح الخارجي هو المفتاح المستخدم لربط جدولين معًا عبر المفتاح الأساسي. وهذا يعني أن أعمدة أحد الجدولين تشير إلى سمة المفتاح الأساسي للجدول الآخر. وهذا يعني أيضًا أنه إذا تم تعيين أي سمة كسمة مفتاح أساسي، فستعمل في جدول آخر كسمة مفتاح خارجي. ولكن ينبغي للمرء أن يعلم أن المفتاح الخارجي لا علاقة له بالمفتاح الأساسي.
استخدام المفتاح الخارجي
إن استخدام المفتاح الخارجي هو ببساطة ربط سمات جدولين معًا بمساعدة سمة المفتاح الأساسي. وبالتالي، يتم استخدامه لإنشاء والحفاظ على العلاقة بين العلاقتين.
مثال على المفتاح الخارجي
دعونا نناقش مثالاً لفهم عمل المفتاح الخارجي.
اجتياز الشجرة
النظر في جدولين طالب و قسم لها سماتها الخاصة كما هو موضح في هيكل الجدول أدناه:
امريكا كم مدينة
في الجداول، هناك سمة واحدة شائعة، وهي Stud_Id ، ولكن له قيود رئيسية مختلفة لكلا الجدولين. في جدول الطالب، يكون الحقل Stud_Id هو a المفتاح الأساسي لأنه يحدد بشكل فريد جميع الحقول الأخرى في جدول الطالب. من ناحية أخرى، Stud_Id هو مفتاح غريب سمة لجدول القسم لأنها تعمل كسمة مفتاح أساسي لجدول الطالب. وهذا يعني أن جدولي الطلاب والقسم مرتبطان ببعضهما البعض بسبب السمة Stud_Id.
في الشكل الموضح أدناه، يمكنك عرض البنية التالية للعلاقة بين الجدولين.
ملاحظة: تم تطوير التكامل المرجعي في نظام إدارة قواعد البيانات (DBMS) من مفهوم المفتاح الخارجي. من الواضح أن المفتاح الأساسي هو مفتاح موجود بمفرده وأن المفتاح الخارجي يشير دائمًا إلى مفتاح أساسي في بعض الجداول الأخرى، حيث يُعرف الجدول الذي يحتوي على المفتاح الأساسي بالجدول المشار إليه أو الجدول الأصلي للجدول الآخر الذي هو وجود المفتاح الخارجي.
إنشاء قيد المفتاح الخارجي
على إنشاء الجدول
فيما يلي الصيغة التي ستجعلنا نتعلم إنشاء مفتاح خارجي في جدول:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) );
بهذه الطريقة، يمكننا تعيين مفتاح خارجي لجدول في قاعدة بيانات MYSQL.
في حالة إنشاء مفتاح خارجي لجدول في SQL أو Oracle Server، ستعمل الصيغة التالية:
CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) );
على طاولة التغيير
فيما يلي بناء الجملة لإنشاء قيد المفتاح الخارجي على ALTER TABLE:
ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id);
إسقاط المفتاح الخارجي
من أجل حذف مفتاح خارجي، هناك صيغة موضحة أدناه يمكن استخدامها:
ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment;
وبهذه الطريقة، يمكننا إسقاط المفتاح الخارجي باستخدام ALTER TABLE في قاعدة بيانات MYSQL.
أشر للتذكر
عندما تقوم بإسقاط المفتاح الخارجي، يحتاج المرء إلى الاهتمام بسلامة الجداول المتصلة عبر المفتاح الخارجي. في حالة قيامك بإجراء تغييرات في جدول واحد وإزعاج سلامة كلا الجدولين، فقد يتم عرض أخطاء معينة بسبب الاتصال غير السليم بين الجدولين.
بايثون __dict__
الإجراءات المرجعية
هناك بعض الإجراءات المرتبطة بالإجراءات التي يتخذها حامل جدول المفتاح الخارجي:
1) تتالي
مقارنة بين الأسد والنمر
عندما نحذف صفوفًا في الجدول الأصلي (أي الذي يحمل المفتاح الأساسي)، يتم أيضًا حذف نفس الأعمدة في الجدول الآخر (أي الذي يحمل مفتاحًا خارجيًا). وهكذا يعرف الفعل بأنه تتالي .
2) تعيين فارغة
يحافظ هذا الإجراء المرجعي على التكامل المرجعي لكلا الجدولين. عندما نقوم بمعالجة/حذف صف مرجعي في الجدول الأصل/المرجعي، في الجدول الفرعي (جدول يحتوي على مفتاح خارجي)، يتم تعيين قيمة هذا الصف المرجعي على أنه NULL. يُعرف هذا الإجراء المرجعي باسم تعيين فارغة .
3) تعيين الافتراضي
المعلمة في البرنامج النصي شل
يحدث مثل هذا الإجراء عندما يتم تحديث القيم الموجودة في الصف المشار إليه في الجدول الأصلي، أو يتم حذف الصف، أو يتم تعيين القيم الموجودة في الجدول الفرعي إلى القيم الافتراضية للعمود.
4) تقييد
إنه قيد التقييد حيث لا يمكن تعديل أو حذف قيمة الصف المشار إليه في الجدول الأصلي ما لم تتم الإشارة إليه بواسطة المفتاح الخارجي في الجدول الفرعي. وبالتالي، فهو إجراء مرجعي عادي لمفتاح خارجي.
5) لا يوجد إجراء
وهو أيضًا قيد تقييد للمفتاح الخارجي ولكن يتم تنفيذه فقط بعد محاولة تعديل أو حذف الصف المشار إليه في الجدول الأصلي.
6) المشغلات
يتم تنفيذ كل هذه الإجراءات المرجعية وغيرها بشكل أساسي كمشغلات حيث تكون إجراءات المفتاح الخارجي متشابهة إلى حد كبير أو تشبه تقريبًا المشغلات المحددة من قبل المستخدم. ومع ذلك، في بعض الحالات، يتم استبدال الإجراءات المرجعية المطلوبة بمشغلات مكافئة محددة من قبل المستخدم لضمان تنفيذ المشغل بشكل صحيح.