إنشاء علاقات الجداول:-
قد تحتاج بعد تقسيم المعلومات في جداول إلى تجميعها معاً مرة أخرى بطريقة صحيحة. على سبيل المثال، يتضمن النموذج التالي معلومات من عدة جداول.
** تأتي المعلومات في هذا النموذج من جدول “العملاء” و جدول “الموظفون” و جدول “الطلبات” و جدول “المنتجات و جدول”تفاصيل الطلبات”.
إن Access هو نظام لإدارة قواعد البيانات الارتباطية. في قاعدة البيانات الارتباطية, يتم تقسيم المعلومات إلى جداول منفصلة مستندة إلى مواضيع. ثم يتم استخدم العلاقات بين الجداول لإرجاع المعلومات مع بعضها مرة أخرى عند الحاجة.
إنشاء علاقة رأس بأطراف ( واحد الى متعدد ) :-
راجع هذا المثال: جداول “الموردون” و”المنتجات” في قاعدة بيانات طلبات المنتجات. يمكن لمورد واحد تقديم أي عدد من المنتجات. وتبعاً لذلك يمكن أن يقابل كل مورد موجود في جدول “الموردون” عدة منتجات في جدول “المنتجات”. وهكذا تكون العلاقة بين جدولي “الموردون” وجدول “المنتجات” هي علاقة رأس بأطراف.
لعرض علاقة رأس بأطراف في تصميم قاعدة البيانات، استخدم المفتاح الأساسي الموجود في ناحية “رأس” من العلاقة وقم بإضافته كعمود أو أعمدة إضافية للجدول الموجود في ناحية “الأطراف” من العلاقة. في هذه الحالة، يمكنك على سبيل المثال إضافة العمود “معرّف المورد” من جدول “الموردون” إلى جدول “المنتجات”. يستخدم Access بعد ذلك رقم معرّف المورد في جدول “المنتجات” لتحديد موقع المورد الصحيح لكل منتج.
يسمى العمود “معرّف المورد” في جدول “المنتجات” مفتاح خارجي. يعد المفتاح الخارجي هو مفتاحاً اساسياً آخر للجدول. ولذلك يعتبر العمود “معرّف المورد” مفتاحاً خارجياً في جدول “المنتجات” وأساسي أيضاً في جدول “الموردون”.
تقوم بتوفير أساس ضم الجداول المرتبطة عن طريق تأسيس أزواج من المفاتيح الأساسية والخارجية. في حالة عدم التأكد من الجداول التي تشترك في أعمدة شائعة، يتم تعريف علاقة رأس بأطراف لضمان حاجة الجدولين الموجودين في العلاقة إلى عمود مشترك بينهما.
إنشاء علاقة أطراف بأطراف ( متعدد الى متعدد ) :-
فكر في العلاقة بين جدول “المنتجات” وجدول “الطلبات”.
قد يتضمن طلب واحد أكثر من منتج. على الجانب الآخر, يمكن أن يظهر منتج واحد في عدة طلبات. ولذلك، قد يكون لكل سجل في جدول “الطلبات” عدة سجلات في جدول “المنتجات”. وقد يكون أيضاً لكل سجل في جدول “المنتجات” عدة سجلات في جدول “الطلبات”. يسمى هذا النوع من العلاقات علاقة أطراف بأطراف، حيث يكون لأي منتج عدة طلبات؛ ويكون لأي طلب عدة منتجات. لاحظ أنه من المهم لاكتشاف علاقات أطراف بأطراف بين الجداول أن تضع جانبي العلاقة في الاعتبار.
تتضمن مواضيع الجدولين — الطلبات والمنتجات — علاقة أطراف بأطراف مما يؤدى إلى ظهور مشكلة. لإدراك هذه المشكلة تخيل أنك تحاول إنشاء علاقة بين الجدولين بإضافة الحقل “معرّف المنتج” إلى جدول “الطلبات”. تحتاج للحصول على عدة منتجات لكل أمر لأكثر من سجل واحد في جدول “الطلبات” لكل أمر. قد تتكرر معلومات الأمر في كل صف مرتبط بأمر واحد — مما يتسبب في إنشاء تصميم غير فعال يقودك إلى بيانات غير دقيقة. ستقع في نفس هذه المشكلة إذا تم وضع الحقل “معرّف الطلب” في جدول “المنتجات” — قد تجد أكثر من سجل لكل منتج في جدول “المنتجات”. كيف يمكنك حل هذه المشكلة؟
تتمثل الإجابة في إنشاء جدول ثالث يسمى جدول الوصل، الذي يقسم علاقة أطراف بأطراف إلى علاقتين رأس بأطراف. يتم إدراج المفتاح الأساسي من كلا الجدولين إلى الجدول الثالث. مما يؤدي إلى قيام الجدول الثالث بتسجيل كل تطابق أو مثيل في العلاقة.
يمثل كل سجل في جدول “تفاصيل الطلبات” بند سطر واحد في الطلب. يتكون المفتاح الأساسي لجدول “تفاصيل الطلبات” من حقلين — المفاتيح الخارجية من جداول “الطلبات” و”المنتجات”. لا يعمل استخدام الحقل “معرّف الطلب” وحده مثل المفتاح الأساسي لهذا الجدول، لأنه يمكن أن يكون للطلب الواحد عناصر خطوط متعددة. يتم تكرار “معرّف الطلب” لكل بند سطر في الطلب، لا يتضمن الحقل قيم فريدة. وكذلك لا يعمل استخدام الحقل “معرّف المنتج” حيث يمكن ظهور منتج واحد في عدة طلبات مختلفة. ولكن دائماً ينتج الحقلان الاثنان معاً قيم فريدة لكل سجل.
في قاعدة بيانات مبيعات المنتج، لا يرتبط كل من جدول “الطلبات” وجدول “المنتجات” مباشرة. بدلاً من ذلك، يرتبطا بطريقة غير مباشرة من خلال جدول “تفاصيل الطلبات”. يتم تقديم علاقة أطراف بأطراف بين الطلبات والمنتجات في قاعدة البيانات باستخدام علاقتي رأس بأطراف:
تربط بين كل من جدول “الطلبات” وجدول “تفاصيل الطلبات” علاقة رأس بأطراف. قد يكون لكل طلب أكثر من بند سطر، ولكن كل بند سطر يرتبط بطلب واحد فقط.
تربط بين كل من جدول “المنتجات” وجدول “تفاصيل الطلبات” علاقة رأس بأطراف. قد يقترن بكل منتج أكثر من عنصر خط واحد، ولكن يشير كل بند سطر إلى منتج واحد.
من جدول “تفاصيل الطلبات”، يمكنك تحديد كافة المنتجات الموجودة ضمن طلب معين. يمكنك أيضاً تحديد كافة الطلبات الخاصة بمنتج معين.
بعد تضمين جدول “تفاصيل الطلبات”، يجب أن تظهر قائمة الجداول والحقول كما يلي:
إنشاء علاقة رأس برأس (واحد الى واحد ) :-
تعد علاقة رأس برأس هي نوع آخر من أنواع العلاقات. على سبيل المثال، افترض أنك تحتاج لتسجيل معلومات حول بعض المنتجات الإضافية التي قليلاً ما تحتاجها أو يتم تطبيقها على عدد قليل من المنتجات. يجب وضع هذه المعلومات في جدول منفصل وذلك بسبب عدم الحاجة إليها في كثير من الأحيان، ولأن تخزين هذه المعلومات في جدول “المنتجات” يؤدي لظهور مساحات فارغة لكل منتج لا يتم تطبيقها عليه. يتم استخدام الحقل “معرّف المنتج” كمفتاح أساسي مثلما حدث في جدول “المنتجات”. تكون العلاقة بين الجدول الإضافي وجدول “المنتجات” هي علاقة رأس برأس. يوجد لكل سجل في جدول “المنتجات” سجل واحد مطابق له في الجدول الإضافي. يجب عند تعريف مثل هذه العلاقة أن يشترك كلا الجدولين في حقل مشترك.
عند الحاجة لعلاقة رأس برأس في قاعدة البيانات، يجب التفكير فيما إذا كان يمكنك وضع المعلومات من الجدولين في جدول واحد ( و هذا الافضل ) . لكن في حالة عدم الرغبة في القيام بذلك ربما لأنه يتسبب في ظهور الكثير من المساحات الفارغة. يتم ربط الجدولين كما يلى :-
إذا كان موضوع الجدولين هو نفسه، يمكنك إعداد العلاقة باستخدام نفس المفتاح الأساسي في كلا الجدولين.
إذا كان لكل جدول من الجدولين موضوع مختلف بمفاتيح أساسيه مختلفة، اختر أحد الجداول وقم بإدراج مفتاحه الأساسي كمفتاح خارجي في الجدول الآخر.
يساعد تحديد العلاقات بين الجداول على تأكيد وجود الجداول والأعمدة الصحيحة. عند وجود علاقة رأس برأس أو رأس بأطراف، يجب أن تشترك الجداول الموجودة في هذه العلاقات في عمود أو أعمدة مشتركة. عند وجود علاقة أطراف بأطراف، يجب أن يتم تقديم العلاقة من خلال جدول ثالث.