أحد أهم المفاهيم في قواعد البيانات هو إنشاء علاقات بين جداول قاعدة البيانات. توفر هذه العلاقات آلية لربط البيانات المخزنة في جداول متعددة واسترجاعها بطريقة فعالة. لإنشاء ارتباط بين جدولين ، يجب تحديد مفتاح خارجي في جدول واحد يشير إلى عمود في جدول آخر.
جداول قاعدة البيانات والعلاقات
قد تعرف بالفعل أن قواعد البيانات هي ببساطة سلسلة من الجداول ، مشابهة لما قد تستخدمه بالفعل في برنامج جداول البيانات ، مثل Microsoft Excel. في الواقع ، يمكنك حتى تحويل جدول بيانات Excel إلى قاعدة بيانات. ومع ذلك ، عندما تتباعد قواعد البيانات عن جداول البيانات ، فحينما يتعلق الأمر ببناء علاقات قوية بين الجداول.
خذ بعين الاعتبار ، على سبيل المثال ، قاعدة بيانات تستخدمها شركة لتتبع معلومات الموارد البشرية. قد تحتوي قاعدة البيانات هذه على جدول باسم الموظفين يحتوي على المعلومات التالية لكل عضو من موظفي الشركة:
- هوية الموظف
- الاسم الاول
- الكنية
- هاتف المكتب
- HomePhone
- PositionID
في هذا المثال ، معرّف الموظف هو عدد صحيح تم إنشاؤه بشكل فريد يتم تعيينه لكل موظف عند إضافتها إلى قاعدة البيانات. معرف الموضع هو رمز وظيفي يستخدم للإشارة إلى موقع الموظف في الشركة. في هذا النظام ، يجوز للموظف أن يكون لديه وظيفة واحدة فقط ، ولكن يمكن للموظفين المتعددين (أو لا) ملء كل وظيفة. على سبيل المثال ، قد يكون لديك المئات من الموظفين الذين لديهم وظيفة "أمين الصندوق".
قد تحتوي قاعدة البيانات أيضًا على جدول يسمى المراكز مع المعلومات الإضافية التالية عن كل موضع:
- PositionID
- عنوان
- JobLevel
- SkillCategory
- موقعك
يشبه حقل "معرّف الموضع" في هذا الجدول حقل "معرّف الموظف" في جدول "الموظفين" - وهو رقم صحيح تم إنشاؤه بشكل فريد يتم إنشاؤه عند إضافة موضع إلى قاعدة البيانات.
عندما نذهب إلى سحب قائمة الموظفين من قاعدة البيانات ، سيكون من الطبيعي أن نطلب اسم كل شخص ولقبه. ومع ذلك ، يتم تخزين هذه المعلومات في جداول قاعدة بيانات متعددة ، بحيث يمكن استردادها فقط باستخدام استعلام JOIN الذي يتطلب وجود علاقة موجودة بين الجداول.
عندما تنظر إلى بنية الجداول ، من المحتمل أن يكون الحقل الذي يحدد العلاقة واضحًا - حقل معرف الموضع. يمكن لكل موظف الحصول على وظيفة واحدة فقط ويتم تحديد ذلك الموقف من خلال تضمين معرّف الموضع من الإدخال المقابل لجدول المواضع. بالإضافة إلى كونه المفتاح الأساسي لجدول المواضع ، في هذا المثال ، يكون حقل معرّف الموضع أيضًا مفتاحًا خارجيًا من جدول "الموظفين" إلى جدول "المواضع". بعد ذلك ، يمكن لقاعدة البيانات استخدام هذا الحقل لربط المعلومات من جداول متعددة والتأكد من أن أي تغييرات أو إضافات إلى قاعدة البيانات تستمر في تنفيذ التكامل المرجعي .
بمجرد تحديد المفتاح الخارجي ، يمكنك الانتقال وسحب المعلومات المطلوبة من قاعدة البيانات باستخدام الاستعلام التالي:
خلق مفاتيح خارجية في خادم SQL
من الناحية الفنية ، لا تحتاج إلى تعريف العلاقة بشكل واضح لتكون قادرة على تنفيذ استعلامات مثل تلك المذكورة أعلاه. ومع ذلك ، إذا قمت بتعريف العلاقة بشكل واضح باستخدام قيد مفتاح خارجي ، ستتمكن قاعدة البيانات من تنفيذ بعض أعمال التدبير المنزلي نيابة عنك:
- عند إضافة سجل جديد إلى جدول "الموظفين" ، ستضمن قاعدة البيانات أن معرّف الموضع الذي أدخلته هو مفتاح أساسي صالح في جدول "المواضع".
- إذا قمت بتغيير "معرّف الموضع" في جدول "المراكز" ، يمكن لقاعدة البيانات إجراء التحديثات المطلوبة إلى جدول "الموظفين" للحفاظ على التناسق.
- يمكن لقاعدة البيانات أن تحمي من تأثير حذف الموقع من جدول الموضع إما عن طريق رفض حذف موقع ما مع إدخالات الموظف المقابلة أو إجراء حذف متسلسل لجميع الموظفين المعنيين.
فيما يلي كيفية إنشاء المفتاح الخارجي في SQL Server:
تغيير جدول الموظفين إضافة الوظيفة الرئيسية (PositionID) مراجع الموضع (PositionID)يمكنك أيضًا إنشاء مفتاح خارجي عند إنشاء جدول بإضافة العبارة:
المراجع الرئيسية الأجنبية (PositionID)إلى نهاية تعريف العمود لعمود المفتاح الخارجي.