كيفية إنشاء مفاتيح خارجية في Microsoft SQL Server

أحد أهم المفاهيم في قواعد البيانات هو إنشاء علاقات بين جداول قاعدة البيانات. توفر هذه العلاقات آلية لربط البيانات المخزنة في جداول متعددة واسترجاعها بطريقة فعالة. لإنشاء ارتباط بين جدولين ، يجب تحديد مفتاح خارجي في جدول واحد يشير إلى عمود في جدول آخر.

جداول قاعدة البيانات والعلاقات

قد تعرف بالفعل أن قواعد البيانات هي ببساطة سلسلة من الجداول ، مشابهة لما قد تستخدمه بالفعل في برنامج جداول البيانات ، مثل Microsoft Excel. في الواقع ، يمكنك حتى تحويل جدول بيانات Excel إلى قاعدة بيانات. ومع ذلك ، عندما تتباعد قواعد البيانات عن جداول البيانات ، فحينما يتعلق الأمر ببناء علاقات قوية بين الجداول.

خذ بعين الاعتبار ، على سبيل المثال ، قاعدة بيانات تستخدمها شركة لتتبع معلومات الموارد البشرية. قد تحتوي قاعدة البيانات هذه على جدول باسم الموظفين يحتوي على المعلومات التالية لكل عضو من موظفي الشركة:

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

قد تحتوي قاعدة البيانات أيضًا على جدول يسمى المراكز مع المعلومات الإضافية التالية عن كل موضع:

يشبه حقل "معرّف الموضع" في هذا الجدول حقل "معرّف الموظف" في جدول "الموظفين" - وهو رقم صحيح تم إنشاؤه بشكل فريد يتم إنشاؤه عند إضافة موضع إلى قاعدة البيانات.

عندما نذهب إلى سحب قائمة الموظفين من قاعدة البيانات ، سيكون من الطبيعي أن نطلب اسم كل شخص ولقبه. ومع ذلك ، يتم تخزين هذه المعلومات في جداول قاعدة بيانات متعددة ، بحيث يمكن استردادها فقط باستخدام استعلام JOIN الذي يتطلب وجود علاقة موجودة بين الجداول.

عندما تنظر إلى بنية الجداول ، من المحتمل أن يكون الحقل الذي يحدد العلاقة واضحًا - حقل معرف الموضع. يمكن لكل موظف الحصول على وظيفة واحدة فقط ويتم تحديد ذلك الموقف من خلال تضمين معرّف الموضع من الإدخال المقابل لجدول المواضع. بالإضافة إلى كونه المفتاح الأساسي لجدول المواضع ، في هذا المثال ، يكون حقل معرّف الموضع أيضًا مفتاحًا خارجيًا من جدول "الموظفين" إلى جدول "المواضع". بعد ذلك ، يمكن لقاعدة البيانات استخدام هذا الحقل لربط المعلومات من جداول متعددة والتأكد من أن أي تغييرات أو إضافات إلى قاعدة البيانات تستمر في تنفيذ التكامل المرجعي .

بمجرد تحديد المفتاح الخارجي ، يمكنك الانتقال وسحب المعلومات المطلوبة من قاعدة البيانات باستخدام الاستعلام التالي:

SELECT FirstName، LastName، Title FROM Employees INNER JOIN Positions ON Employees.PositionID = Positions.PositionID

خلق مفاتيح خارجية في خادم SQL

من الناحية الفنية ، لا تحتاج إلى تعريف العلاقة بشكل واضح لتكون قادرة على تنفيذ استعلامات مثل تلك المذكورة أعلاه. ومع ذلك ، إذا قمت بتعريف العلاقة بشكل واضح باستخدام قيد مفتاح خارجي ، ستتمكن قاعدة البيانات من تنفيذ بعض أعمال التدبير المنزلي نيابة عنك:

فيما يلي كيفية إنشاء المفتاح الخارجي في SQL Server:

تغيير جدول الموظفين إضافة الوظيفة الرئيسية (PositionID) مراجع الموضع (PositionID)

يمكنك أيضًا إنشاء مفتاح خارجي عند إنشاء جدول بإضافة العبارة:

المراجع الرئيسية الأجنبية (PositionID)

إلى نهاية تعريف العمود لعمود المفتاح الخارجي.