إن أحد أهداف التصميم الجيد لقاعدة البيانات هو إزالة تكرار البيانات (البيانات المكررة). لتحقيق هذا الهدف، تقوم بتقسيم البيانات إلى جداول متعددة تستند إلى الموضوع بحيث تتمثل كل حقيقة مرة واحدة فقط. ثم تتيح لبرنامج Access تجميع المعلومات المقسمة معاً مرة أخرى - يمكنك تنفيذ ذلك بوضع حقول مشتركة في جداول مرتبطة. ومع ذلك، لتنفيذ هذه الخطوة بشكلٍ صحيح، يجب أن تفهم العلاقات بين الجداول، ثم تحدد هذه العلاقات في قاعدة البيانات.
في هذه المقالة
مقدمة
بعد إنشاء جدول لكل موضوع في قاعدة بيانات، يجب أن تتيح لبرنامج Access تجميع هذه المعلومات معاً مرة أخرى عندما تحتاج إليها. يمكنك تنفيذ ذلك من خلال وضع الحقول المشتركة في جداول مرتبطة، وتعريف العلاقات بين الجداول. بعد ذلك، يمكنك إنشاء استعلامات ونماذج وتقارير تعرض المعلومات من جداول متعددة في الوقت نفسه. على سبيل المثال، يتضمن النموذج المعروض هنا معلومات من جداول متعددة:
1. تأتي المعلومات في هذا النموذج من جدول "العملاء"...
2. ...وجدول "الطلبات"...
3. ...وجدول "المنتجات"...
4. ...وجدول "تفاصيل الطلب".
يتم استرداد اسم العميل في المربع فاتورة إلى من جدول "العملاء"، وتأتي قيم الحقلين "معرّف الطلب" و"تاريخ الطلب" من جدول "الطلبات"، كما يأتي اسم "المنتج" من جدول "المنتجات"، وتأتي قيم الحقلين "سعر الوحدة" و"الكمية" من جدول "تفاصيل الطلب". يتم ربط هذه الجداول ببعضها بطرق متعددة لاسترداد المعلومات من كل منها إلى النموذج.
في المثال السابق، يجب أن تكون الحقول في الجداول متناسقة بحيث تعرض معلومات حول الطلب نفسه. يتحقق هذا التناسق باستخدام علاقات الجداول. تعمل علاقة الجداول من خلال مطابقة البيانات في الحقول الأساسية — يكون غالباً الحقل الذي له الاسم نفسه في الجدولين. في معظم الأحيان، تكون هذه الحقول المتطابقة المفتاح الأساسي من أحد الجدولين، والذي يوفر معرفاً فريداً لكل سجل، ومفتاح خارجي في الجدول الآخر. على سبيل المثال، يمكن إقران الموظفين بالطلبات التي تم تعيينهم كمسؤولين عنها عن طريق إنشاء علاقة جدول بين حقول "معرّف الموظف" في الجدولين "الموظفون" و"الطلبات".
1. يظهر معرّف الموظف في الجدولين — كمفتاح أساسي ...
2. ... وكمفتاح خارجي.
أنواع علاقات الجداول
هناك ثلاثة أنواع من علاقات الجداول في Access.
-
علاقة رأس بأطراف
فلنستخدم قاعدة بيانات لتعقب الطلبات تتضمن جدول "العملاء" و"الطلبات" كمثال. يمكن للعميل تقديم أي عدد من الطلبات. وتبعاً لذلك، يمكن أن يقابل كل عميل موجود في جدول "العملاء" عدة طلبات في جدول "الطلبات". وهكذا تكون العلاقة بين جدول "العملاء" وجدول "الطلبات" علاقة رأس بأطراف.
لتمثيل علاقة واحد لأكثر في تصميم قاعدة البيانات، استخدم المفتاح الأساسي الموجود في الجانب "واحد" من العلاقة وقم بإضافته كحقل إضافي أو حقول إضافية إلى الجدول الموجود في الجانب "متعدد" من العلاقة. في هذه الحالة، على سبيل المثال، تقوم بإضافة حقل جديد — حقل المعرف من جدول العملاء — إلى جدول «الطلبات» وتسميته "معرف العميل". حينئذ يمكن لـ Access استخدام رقم "معرف العميل" في جدول "الطلبات" لتحديد موقع العميل الصحيح لكل طلب.
-
علاقة أطراف بأطراف
فلنلقٍ الآن نظرة على العلاقة بين جدول "المنتجات" وجدول "الطلبات". قد يتضمن طلب واحد أكثر من منتج واحد. على الجانب الآخر، يمكن أن يظهر منتج واحد في عدة طلبات. لذلك، يمكن أن يكون لكل سجل في جدول "الطلبات" عدة سجلات في جدول "المنتجات". علاوةً على ذلك، يمكن أن يكون لكل سجل في جدول "المنتجات" عدة سجلات في جدول "الطلبات". تسمى هذه العلاقة علاقة أطراف بأطراف. تجدر الإشارة إلى أنه من المهم أخذ جانبي العلاقة بالاعتبار، لاكتشاف علاقات أطراف بأطراف بين الجداول.
لتمثيل علاقة أطراف بأطراف، يجب إنشاء جدول ثالث يسمى غالباً جدول الوصل، يقسّم العلاقة أطراف بأطراف إلى علاقتي رأس بأطراف. وتقوم بإدراج المفتاح الأساسي من كل جدول من الجدولين في الجدول الثالث. ونتيجة لذلك، يسجل الجدول الثالث كل حدوث أو مثيل، للعلاقة. على سبيل المثال، هناك علاقة أطراف بأطراف بين الجدولين "الطلبات" و"المنتجات" يتم تعريفها بإنشاء علاقتي رأس بأطراف مع جدول "تفاصيل الطلب". يمكن أن يحتوي طلب واحد على العديد من المنتجات، ويمكن أن يظهر كل منتج في العديد من الطلبات.
-
علاقة رأس برأس
في علاقة رأس برأس، لكل سجل في الجدول الأول هناك سجل واحد فقط مطابق في الجدول الثاني، ولكل سجل في الجدول الثاني هناك سجل واحد فقط مطابق في الجدول الأول. هذا النوع من العلاقات غير شائع، إذ يتم في أغلب الأحيان تخزين المعلومات المرتبطة بهذه الطريقة في الجدول نفسه. ويمكنك استخدام علاقة رأس برأس لتقسيم جدول يحتوي على عدة حقول، أو لعزل جزء من جدول لأسباب تتعلق بالأمان، أو لتخزين معلومات تنطبق فقط على مجموعة فرعية من الجدول الرئيسي. عند تعريف مثل هذه العلاقة، يجب أن يشترك كلا الجدولين في حقل مشترك.
لماذا تنشئ علاقات الجداول؟
يمكنك إنشاء علاقة جدول بشكل صريح باستخدام النافذة "العلاقات"، أو بسحب حقل من جزء قائمة الحقول. يستخدم Access علاقات الجداول لتحديد كيفية ربط الجداول عندما تحتاج إلى استخدامها في عنصر قاعدة بيانات. هناك أسباب متعددة لإنشاء علاقات الجداول قبل إنشاء عناصر قاعدة بيانات أخرى، كالنماذج والاستعلامات والتقارير.
-
تؤثر علاقات الجداول على تصميمات الاستعلامات
للعمل مع سجلات من أكثر من جدول واحد، يجب إنشاء استعلام يربط هذه الجداول في أغلب الأحيان. يعمل الاستعلام من خلال مطابقة القيم في حقل المفتاح الأساسي للجدول الأول بحقل مفتاح خارجي في الجدول الثاني. على سبيل المثال، لإرجاع صفوف تسرد كافة الطلبات لكل عميل، يجب أن تنشئ استعلاماً يربط جدول "العملاء" بجدول "الطلبات" استناداً إلى الحقل "معرّف العميل". في النافذة "العلاقات"، يمكنك بشكلٍ يدوي تحديد الحقول المطلوب ربطها. ولكن، إذا كانت لديك بالفعل علاقة معرّفة بين الجدولين، سيوفر Access الصلة الافتراضية، استناداً إلى علاقة الجدول الموجودة. بالإضافة إلى ذلك، إذا استخدمت أحد معالجات الاستعلامات، يستخدم Access المعلومات التي يجمعها من علاقات الجداول التي عرّفتها مسبقاً ليقدم لك اختيارات تستند إلى هذه المعلومات ولإعادة تعبئة إعدادات الخصائص بالقيم الافتراضية المناسبة.
-
تؤثر علاقات الجداول على تصميمات النماذج والتقارير
عند تصميم نموذج أو تقرير، يستخدم Access المعلومات التي يجمعها من علاقات الجداول التي عرّفتها مسبقاً ليقدم لك اختيارات تستند إلى هذه المعلومات ولإعادة تعبئة إعدادات الخصائص بالقيم الافتراضية المناسبة.
-
علاقات الجداول هي الأساس الذي يمكنك تبعاً له فرض التكامل المرجعي ليساعدك على منع السجلات المعزولة في قاعدة البيانات. السجل المعزول هو سجل ذي مرجع إلى سجل آخر غير موجود — على سبيل المثال، سجل طلب يشير إلى سجل عميل غير موجود.
عند تصميم قاعدة بيانات، تقوم بتقسيم المعلومات إلى جداول، لكل منها مفتاح أساسي. ثم تقوم بإضافة المفاتيح الخارجية إلى الجداول المرتبطة التي تشير إلى المفاتيح الأساسية هذه. تشكل أزواج المفاتيح الأساسية والخارجية هذه الأساس لعلاقات الجداول والاستعلامات متعددة الجداول. من المهم أن تبقى مراجع المفاتيح الأساسية والخارجية هذه متزامنة. يساعدك التكامل المرجعي، الذي يعتمد على علاقات الجداول، على ضمان بقاء المراجع متزامنة.
فهم التكامل المرجعي
عند تصميم قاعدة بيانات، تقوم بتقسيم معلومات قاعدة بيانات إلى جداول متعددة تستند إلى الموضوع لتقليل تكرار البيانات. بعد ذلك، ستتيح لبرنامج Access تجميع البيانات المقسمة معاً مرة أخرى بوضع حقول مشتركة في الجداول المرتبطة. على سبيل المثال، لتمثيل علاقة رأس بأطراف، استخدم المفتاح الأساسي الموجود في الجدول "رأس" وقم بإضافته كحقل إضافي إلى الجدول "طرف". لتجميع البيانات معاً مرة أخرى، يأخذ Access القيمة الموجودة في الجدول "طرف" ويبحث عن القيمة المطابقة لها في الجدول "رأس". وبهذه الطريقة، تشير القيم الموجودة في الجدول "طرف" إلى القيم المطابقة لها في الجدول "رأس".
افترض أن لديك علاقة رأس بأطراف بين الجدولين "شركات الشحن" و"الطلبات"، وأردت أن تحذف إحدى شركات الشحن. إذا كانت شركة الشحن التي تريد حذفها لها طلبات في جدول "الطلبات"، ستصبح هذه الطلبات "معزولة" عندما تحذف سجل "شركة الشحن". وسيبقى "معرّف شركة الشحن" موجوداً في الطلبات، ولكنه لن يعود صالحاً، لأن السجل الذي يشير إليه لم يعد موجوداً.
الهدف من التكامل المرجعي هو منع السجلات المعزولة والحفاظ على تزامن المراجع بحيث لا يحدث هذا الموقف الافتراضي مرة أخرى أبداً.
يمكنك فرض التكامل المرجعي من خلال تمكينه لعلاقة الجدول. بعد فرضه، يرفض Access أية عملية تنتهك التكامل المرجعي لعلاقة الجدول هذه. يعني ذلك أن Access سيرفض كلاً من التحديثات التي ستغير هدف المرجع وعمليات الحذف التي تزيل هدف المرجع. من المحتمل أن تواجه حاجة صحيحة تستوجب تغيير المفتاح الأساسي لشركة شحن لها طلبات في جدول "الطلبات". بالنسبة إلى حالات من هذا النوع، فأنت تحتاج في الواقع أن يقوم Access بتحديث كافة الصفوف المتأثرة تلقائياً كجزء من عملية واحدة. وبهذه الطريقة، يضمن Access إكمال التحديث بشكل تام بحيث لا تُترك قاعدة البيانات في حالة عدم تناسق، حيث توجد صفوف محدّثة وصفوف أخرى غير محدّثة. لهذا السبب، يدعم Access الخيار تتالي تحديث الحقول ذات الصلة . عندما تفرض التكامل المرجعي وتحدد الخيار تتالي تحديث الحقول المرتبطة، ثم تقوم بتحديث المفتاح الأساسي، يقوم Access تلقائياً بتحديث كافة الحقول التي تشير إلى المفتاح الأساسي.
من المحتمل أيضاً أن تواجه حالة صحيحة تستوجب حذف صف وكافة السجلات المرتبطة — على سبيل المثال، سجل "شركة شحن" وكافة الطلبات المرتبطة الخاصة بشركة الشحن هذه. لهذا السبب، يعتمد Access الخيار تتالي حذف السجلات المرتبطة. عندما تفرض التكامل المرجعي وتحدد الخيار تتالي حذف السجلات المرتبطة، ثم تحذف سجلاً في جانب المفتاح الأساسي من العلاقة، يحذف Access تلقائياً كافة السجلات التي تشير إلى المفتاح الأساسي.
عرض علاقات الجداول
لعرض علاقات الجداول، انقر فوق علاقات على علامة تبويب أدوات قاعدة البيانات. تفتح النافذة "العلاقات" وتعرض أية علاقات موجودة. إذا لم يتم تعريف أية علاقات جداول بعد وكنت تفتح النافذة "العلاقات" للمرة الأولى، يطالبك Access بإضافة جدول أو استعلام إلى النافذة.
فتح النافذة "العلاقات"
-
انقر فوق ملف، وانقر فوق فتح، ثم حدد قاعدة البيانات وافتحها.
-
من علامة التبويب أدوات قاعدة البيانات، في المجموعة علاقات، انقر فوق علاقات.
-
على علامة التبويب تصميم العلاقات ، في المجموعة علاقات ، انقر فوق كافة العلاقات.
يعرض هذا كافة العلاقات المعرفة في قاعدة البيانات الخاصة بك. تجدر الإشارة إلى أنه لن يتم عرض الجداول المخفية (الجداول المحددة لها خانة الاختيار مخفي في مربع الحوار خصائص) والعلاقات الخاصة بها إذا لم يكن الخيار إظهار الكائنات المخفية محدداً في مربع الحوار خيارات التنقل.
يتم تمثيل علاقة الجدول باستخدام خط علاقة يتم رسمه بين جدولين في النافذة "العلاقات". تظهر العلاقة التي لا تفرض التكامل المرجعي كخط رفيع بين الحقول المشتركة التي تعتمد هذه العلاقة. وعندما تحدد العلاقة بواسطة النقر فوق الخط الخاص بها، يظهر هذا الخط بشكل أكثر سمكاً للإشارة إلى أنه محدد. أما إذا فرضت التكامل المرجعي لهذه العلاقة، سيظهر هذا الخط بشكل أكثر سمكاً عند كل نهاية. بالإضافة إلى ذلك، يظهر الرقم 1 فوق الجزء السميك من الخط على أحد جانبي العلاقة، ويظهر رمز اللانهاية (∞) فوق الجزء السميك على الجانب الآخر من الخط.
عندما تكون النافذة "العلاقات" نشطة، يمكنك الاختيار من الأوامر التالية الموجودة على الشريط:
في علامة التبويب تصميم العلاقات ، في المجموعة أدوات :
-
تحرير علاقات يفتح مربع الحوار تحرير علاقات. عندما تحدد خط علاقة، يمكنك النقر فوق تحرير علاقات لتغيير علاقة الجدول. يمكنك أيضاً النقر نقراً مزدوجاً فوق خط العلاقة.
-
مسح التخطيط يقوم بإزالة كافة الجداول والعلاقات من العرض في النافذة "العلاقات". تجدر الإشارة إلى أن هذا الأمر يخفي الجداول والعلاقات فقط — ولا يحذفها.
-
تقرير العلاقة ينشئ تقريراً يعرض الجداول والعلاقات في قاعدة البيانات. يعرض التقرير الجداول والعلاقات غير المخفية فقط في النافذة "العلاقات".
في علامة التبويب تصميم العلاقات ، في المجموعة علاقات :
-
إضافة جداول تمكين تحديد الجداول لإظهارها في نافذة العلاقات.
-
إخفاء الجدول يخفي الجدول المحدد في النافذة "العلاقات".
-
العلاقات المباشرة يعرض كافة العلاقات والجداول المرتبطة للجدول المحدد في النافذة "العلاقات"، إذا لم تكن معروضة بالفعل.
-
كافة العلاقات يعرض كافة العلاقات والجداول المرتبطة في قاعدة البيانات في النافذة "العلاقات". تجدر الإشارة إلى أنه لن يتم عرض الجداول المخفية (الجداول المحددة لها خانة الاختيار مخفي في مربع الحوار خصائص) والعلاقات الخاصة بها إذا لم يكن الخيار "إظهار الكائنات المخفية" محدداً في مربع الحوار "خيارات التنقل".
-
إغلاق يغلق النافذة "العلاقات". إذا قمت بإجراء أي تغييرات على تخطيط النافذة "العلاقات"، سيتم سؤالك عما إذا كنت تريد حفظ هذه التغييرات أم لا.