Skip to main content

العلاقات بين واحد إلى واحد في قاعدة البيانات

شرح عملي مبسط جداً لكيفية إنشاء العلاقات في الاكسس Microsoft Access (قد 2024)

شرح عملي مبسط جداً لكيفية إنشاء العلاقات في الاكسس Microsoft Access (قد 2024)
Anonim

تحدث علاقة رأس بأطراف في قاعدة بيانات عندما يكون لكل سجل في الجدول أ العديد من السجلات المرتبطة في الجدول ب ، ولكن قد يكون لكل سجل في الجدول ب سجل واحد مطابق في الجدول أ. علاقة رأس بأطراف في قاعدة البيانات هي تصميم قاعدة البيانات العلائقية الأكثر شيوعًا وهي في صميم التصميم الجيد.

فكر في العلاقة بين المعلم والدورات التي يدرسها. يمكن للمدرس تدريس دورات متعددة ، ولكن الدورة لن يكون لها نفس العلاقة مع المعلم.

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

لماذا تأسيس علاقة بين لكثير مهم

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

ربما أنشأنا جدولًا نريد فيه تسجيل الاسم والدورات التي يتم تدريسها. قد نصممه على النحو التالي:

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

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

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

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

يجعل من الصعب البحث عن البيانات. ينتهك هذا التصميم المبدأ الأول لتطبيع قاعدة البيانات ، النموذج الأول العادي (1NF) ، والذي ينص على أن كل خلية جدول يجب أن تحتوي على قطعة واحدة منفصلة من البيانات.

قد يكون بديل آخر للتصميم هو ببساطة إضافة سجل ثانٍ لكارمن:

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

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

كيفية تصميم قاعدة بيانات مع علاقات رأس بأطراف

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

هنا ، أزلنا عمود الدورة التدريبية في جدول المعلمين:

معلمون
مدرس_هوية شخصيةمدرس_اسم
Teacher_001كارمن
Teacher_002فيرونيكا
Teacher_003خورخي

وهنا جدول الدورات. لاحظ أن مفتاحه الخارجي ، Teacher_ID ، يربط المقرر الدراسي بمعلم في جدول المعلمين:

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

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

هذا يخبرنا أن كل من علم الأحياء والرياضيات يتم تدريسهما من قبل كارمن وأن جورج يقوم بتدريس اللغة الإنجليزية.

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

يمكن لقواعد البيانات أيضًا تنفيذ علاقة رأس برأس وعلاقة بين أطراف بأطراف.