إحدى السمات الأساسية لقواعد البيانات العلائقية هي أنها تحتوي على جداول متعددة، كل منها يمكن أن يكون له علاقة بأي من الجداول الأخرى. حتى الآن قمنا بإنشاء جدول واحد فقط ولإنشاء علاقة يجب أن نضيف جداول أخرى لقاعدة البيانات.
قاعدة البيانات تحتاج أكثر من جدول على أي حال، لأننا بحاجة إلى أن تكون هذه القاعدة قادرة على تتبع ليس فقط العملاء، ولكن أيضا المنتجات، فضلا عن المنتجات التي يشتريها العملاء حاليا.
لذلك دعونا نقوم بإنشاء جدولين آخرين وإقامة علاقة بينهما. أحد الجدولين لتخزين معلومات عن المنتجات، والآخر لتخزين بيانات الطلبيات.
إنشاء الجداول ذات علاقة
لنمضي قدما وننشأ جدولين على النحو التالي:
تأكد من تعيين تنسيق وقيمة افتراضية للحقول "تاريخ التسجيل" على كلا الجدولين (يجب ألا يحتاج المستخدم إلى إدخال هذا الحقل - يمكن للنظام القيام بذلك).
المفتاح الأساسي
تذكر أن رمز المفتاح يشير إلى أن الحقل هو المفتاح الأساسي. ويضمن المفتاح الأساسي أن تكون البيانات في هذا الحقل فريدة من نوعها - لا يمكن أن يكون هناك قيمتان متماثلان-. يجب أن يحتوي الجدول على مفتاح أساسي قبل أن يتم تأسيس علاقة مع جدول آخر. يقوم أكسس تلقائيا بتعيين حقل المعرف كمفتاح أساسي، طالما أننا ببساطة نعيد تسمية المعرف إلى "رقم المنتج" (أو معرف الطلب حسب الحالة)، سيبقى هو المفتاح الأساسي. إذا كان هذا الجدول لا يحتوي على مجموعة مفاتيح أساسية لسبب ما، أو إذا كنا نريد تغيير حقل المفتاح الأساسي، فيمكننا ببساطة النقر بزر الماوس الأيمن على رأس الحقل (في طريقة عرض التصميم)، ثم تحديد المفتاح الأساسي من القائمة السياقية.
ربط العلاقة:
الآن بعد أن قمنا بإنشاء جدولين إضافيين، تحتوي قاعدة البيانات حاليا على ثلاثة جداول. الآن حان الوقت لإنشاء العلاقة بين جميع الجداول الثلاثة.
1. أثناء عرض جدول في طريقة العرض "تصميم"، وبعد التأكد من تحديد علامة التبويب تصميم، انقر فوق علاقات من الشريط:
2. سيظهر مربع حوار "إظهار جدول"، مع عرض جميع الجداول الثلاثة. حدد كل منهم وانقر على إضافة:
3. انقر فوق إغلاق لإغلاق مربع الحوار
4. سنرى الآن ثلاثة صناديق التي تمثل هذه الجداول الثلاثة. انقر واسحب معرف العميل من جدول العملاء عبر الحقل "رقم" المقابل في جدول الطلبات:
5. مربع الحوار "تحرير العلاقات" سوف يظهر على السطح. انقر على فرض النزاهة المرجعية حتى يتم تحديدها. تحقق من أن القيم هي نفس لقطة الشاشة التالية وانقر فوق موافق:
6. سنرى الآن خطا تم إنشاؤه بين حقل معرف العميل في جدول العملاء ومعرف العميل في جدول الطلبيات.
7. الآن نفعل الشيء نفسه لجدول المنتجات. وهذا يعني، انقر واسحب "رقم المنتج" من جدول المنتجات عبر الحقل "رقم المنتج" المقابل في جدول الطلبات. يجب أن تبدو علاقات الجدول كما هو الحال في لقطة الشاشة التالية:
أنواع العلاقات
نشأنا للتوالعلاقة "العديد-إلى-العديد". هناك ثلاثة أنواع من العلاقات التي يمكنك تأسيسها بين الجداول. وهذه هي كما يلي:
العلاقة "العديد إلى العديد"
وهذا ما يستخدمه المثال أعلاه. يمكن أن يحتوي صف في الجدول أ على العديد من الصفوف المطابقة في الجدول ب، والعكس صحيح. في حالتنا، يمكن للعميل واحد طلب العديد من المنتجات، ومنتج واحد يمكن أن يكون للعديد من الزبائن. إنشاء علاقة "العديد إلى العديد" باستخدام جدول ثالث يسمى جدول تقاطع (المزيد على ذلك أدناه).
العلاقة : "واحد إلى العديد "
هذا هو نوع العلاقات الأكثر شيوعا. لا تحتاج إلى جدول (تقاطع) ثالث لهذا النوع من العلاقة. في هذا النوع من العلاقة، يمكن أن يحتوي صف في الجدول A على العديد من الصفوف المطابقة في الجدول B، ولكن يمكن أن يكون صف في الجدول B صف واحد فقط متطابق في الجدول A. على سبيل المثال، صف في جدول الجنس (الذي يحتوي على السجلات الذكور والإناث) يمكن أن يكون العديد من الصفوف مطابقة في جدول العملاء، ولكن صف في جدول العملاء يمكن أن يكون سوى صف واحد مطابقة في الجدول الجنس( أي لا يمكن أن يكون الجنس لنفس العميل ذكر وأنثى في نفس الوقت). وهذا ما لم يكن هناك قاعدة الأعمال التي تسمح للعملاء ليكون الذكور و الإناث في نفس الوقت. وفي هذه الحالة، يلزم إقامة علاقة من نوع "العديد إلى العديد".
العلاقة : "واحد إلى واحد"
يمكن أن يحتوي صف في الجدول A على صف مطابق واحد فقط في الجدول B والعكس صحيح. وهذا نوع نادر من العلاقات، حيث أن البيانات الواردة في الجدول B يمكن أن تكون بسهولة في الجدول A. ولا يستخدم هذا النوع من العلاقات عموما إلا لأغراض أمنية، أو لتقسيم جدول كبير، وربما أسباب قليلة أخرى.
يعتمد نوع العلاقة التي تستخدمها على بنية الجدول وكيفية تعريف الحقول.
تقاطع الجدول
في العلاقة المذكورة سابقا، يعرف جدول الطلبات كجدول تقاطع. جدول تقاطع هو جدول يحتوي على حقول مشتركة من جدولين أو أكثر من نفس قاعدة البيانات. يتم استخدامه كجدول مرجعي في علاقة "العديد إلى العديد" (مثل ما هو الحال فيما قمنا به)
عرفت جداول تقاطع تحت العديد من الأسماء المختلفة. في ما يلي بعض التسميات لهذا الجدول: الجدول المرجعي المرجعي، جدول الجسر، جدول الربط، جدول الخريطة، جدول التقاطع، جدول الربط، محلل متعدد إلى متعدد، جدول الوصلات، جدول الاقتران، الجدول المحوري، جدول النقل، أو جدول التجميع.
فإذا سمعت شخص ذكر واحدة من هذه المصطلحات ، فستكون لديك فكرة مسبقة عما يشير إليه.
المفتاح الأساسي مقابل المفتاح الأجنبي
نحن نعلم بالفعل أن المفتاح الأساسي يضمن أن البيانات في الجدول فريدة من نوعها. هذا أمر مهم لأن لدينا جدول الطلبيات يحتاج قيمة فريدة من نوعها من أجل الرجوع إلى أي سجل من الجداول الأخرى. على سبيل المثال، لا يمكن استخدام الحقل "الاسم" لأنه يمكن أن يكون هناك أكثر من شخص واحد مع الاسم الأول المحدد. ولا يمكن استخدام قيمة "تاريخ التسجيل" لأنه من الممكن أن يتم إنشاء سجلين في نفس الوقت بالضبط (على سبيل المثال، إذا كان المستخدمين يدخلان البيانات أو إذا تم استيراد العديد من السجلات من مصدر خارجي). هذا هو السبب في أننا بحاجة إلى حقل واحد على الأقل التي نعلم أنها لن تحتوي إلا على قيمة فريدة من نوعها.
المفتاح الأجنبي هو ببساطة الحقل الرئيسي للمفتاح الأساسي في الجدول ذي الصلة. لذا في مثالنا، يكون حقل معرف العميل في الجدول "الطلبيات" هو مفتاح خارجي، في حين أن الحقل "رقم " في جدول العملاء هو مفتاح أساسي. وبالمثل، الحقل "رقم المنتج" في الجدول "الطلبيات" هو مفتاح أجنبي، في حين أن حقل "رقم المنتج" في الجدول "المنتجات" هو مفتاح أساسي. الحقول لا تحتاج بالضرورة أن يكون لها نفس الأسماء ولكن من الممارسات الجيدة أن تعتاد على ذلك. وسوف تجعل بالتأكيد بنية قاعدة البيانات أسهل للفهم - وخصوصا عند بدء إضافة المزيد من الجداول التي تحتاج أيضا إلى إقامة علاقات
العلاقات والاستعلامات
إنشاء علاقات مثل المذكورة أعلاه يمكن أن تساعد في بناء الاستفسارات على قاعدة البيانات. بعد ذلك، سنستخدم العلاقة التي تم إنشاؤها سابقا لمساعدتنا في إنشاء استعلام على الجداول في قاعدة البيانات المعرفة في هذا الموضوع.
ليست هناك تعليقات:
إرسال تعليق