ما هي علاقة قاعدة البيانات؟

جدول المحتويات:

ما هي علاقة قاعدة البيانات؟
ما هي علاقة قاعدة البيانات؟
Anonim

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

كيف يعمل مفتاح خارجي لتأسيس علاقة

يحدد المفتاح الأساسي بشكل فريد كل سجل في الجدول. إنه نوع من المفاتيح المرشح يكون عادةً العمود الأول في الجدول ويمكن إنشاؤه تلقائيًا بواسطة قاعدة البيانات للتأكد من أنه فريد. المفتاح الخارجي هو مفتاح مرشح آخر (وليس المفتاح الأساسي) يستخدم لربط سجل ببيانات في جدول آخر.

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

معرف_الدورة اسم الدورة معرف_المعلم
Course_001 علم الأحياء Teacher_001
Course_002 الرياضيات Teacher_002
Course_003 الإنجليزية Teacher_003

يمكنك أن ترى أن المفتاح الخارجي في الدورات يطابق مفتاحًا أساسيًا في المدرسين:

معرف_المعلم Teacher_Name
Teacher_001 كارمن
Teacher_002 فيرونيكا
Teacher_003 خورخي

يمكننا القول أن المفتاح الخارجي Teacher_ID ساعد في إنشاء علاقة بين الدورات التدريبية وجداول المعلمين.

Image
Image

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

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

واحد لواحد

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

واحد لأكثر

تسمح علاقة رأس بأطراف بسجل واحد في جدول واحد ليكون مرتبطًا بسجلات متعددة في جدول آخر. ضع في اعتبارك عملًا به قاعدة بيانات بها جداول العملاء والطلبات.

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

كثير إلى كثير

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

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

لماذا تعتبر علاقات قاعدة البيانات مهمة؟

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

معرف_المعلم Teacher_Name دورة
Teacher_001 كارمن علم الأحياء ، الرياضيات
Teacher_002 فيرونيكا الرياضيات
Teacher_003 خورخي الإنجليزية

هذا التصميم غير مرن وينتهك المبدأ الأول لتطبيع قاعدة البيانات ، النموذج العادي الأول ، الذي ينص على أن كل خلية جدول يجب أن تحتوي على قطعة واحدة منفصلة من البيانات.

أو ربما قررنا إضافة رقم قياسي ثان لكارمن ، من أجل فرض 1NF:

معرف_المعلم Teacher_Name دورة
Teacher_001 كارمن علم الأحياء
Teacher_001 كارمن الرياضيات
Teacher_002 فيرونيكا الرياضيات
Teacher_003 خورخي الإنجليزية

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

تقسيم هذا الجدول إلى جدولين ، المعلمون والدورات التدريبية ، يخلق العلاقة المناسبة بين البيانات وبالتالي يساعد على ضمان اتساق البيانات ودقتها.

موصى به: