الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

علاقات الجداول

بدأه agma.10 في 16 أغسطس 2010 · 1 رد · 695 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندي قاعدة بيانات كبيرة الحجم نوعاً ما

عندي 30 جدول

وكل جدول في الخانة

رقم السجل المدني

و الجدول الرئيسي يحتوي على البيانات الكاملة السجل المدني اسم الاول و الأخير و تاريخ الميلاد

وهناك الجدول التالي الذي يحتوي على المعلومات الاكاديمة و يحتوي على السجل المدني

والجدول التالي معلومات الطوارئ ويحتوي على السجل المدني

هل تؤيدون ربط الجدول من جدول إلى جدول يعني من الجدول الرئيسي ( رقم السجل المدني ) - ثم إلى المعلومات الأكاديمة (رقم السجل المدني) ثم إلى معلومات الطوارئ (رقم السجل المدني)

أو الجدول الرئيسي المعلومات الاكاديمة

الجدول الرئيسي معلومات الطوارئ وهكذا

شاكراً مقدراً

#2

أخي الكريم،

اسمح لي -ولو كنت سأطيل عليك- أن أقتطع جزءاً من مقدمة درس للعلاقات على هذا الرابط:

اقتباس
عرفنا أن فكرة قواعد البيانات العلائقية تقتضي تقسيم بيانات النظام في الحياة الواقعية إلى بنى منطقية أسميناها الجداول، وأسماها Codd بـ

relations. عرفنا أيضاً (أعلم أنك كنت تعلم ذلك منذ دهر، وأنك ربما اكتشفته قبل Codd نفسه، ولكن تجاوز عني قليلاً) أن كل جدول لا بد أن

يحتوي على حقل واحد (عمود واحد) على الأقل لا تتكرر فيه نفس القيمة في صفين أو أكثر (مثل رقم قيد الطالب، الرقم الوظيفي لموظف، رقم

فاتورة، رقم ملف لمريض، مجموع رقمي المشترك والشهر لقراءة استهلاك الكهرباء، وهكذا). هذا الحقل (أو مجموعة الحقول) أسميناه المفتاح الأساسي.

بدون هذا المفتاح لا يمكنك الوصول إلى صف بعينه.

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

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

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

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

التقسيم إلى جداول... هنا يأتي دور العلاقات.

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

وسائل إضافية لحفظ العلاقات غير البيانات الموجودة أصلاُ في الجداول. هذه الوسائل الإضافية هي على سبيل المثال المؤشرات pointers أو أي هياكل

أخرى تربط بين الجداول. الثمن الذي تدفعه هو القليل من تكرار البيانات المقبول، وهو ثمن يسير لو تعلم. الآن ما معنى هذا كله؟ معناه أن

العلاقات بين الجداول تحفظ باستخدام حقول مشتركة بين هذه الجداول. العلاقة بين جدول العملاء وجدول الفواتير هي حقل (عمود) رقم العميل الذي

تكرره في الجدولين بالطبع؛العلاقة بين جدول بيانات الطلاب وبين جدول العلامات هي حقل رقم قيد الطالب؛ العلاقة بين جدول المواد وبين جدول

العلامات أيضاً هي حقل رمز المادة؛ العلاقة بين جدول القراءات الشهرية وبين جدول بيانات المشتركين هي حقل رقم المشترك؛ العلاقة بين جدول

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

المقصود من هذا أن أشير إلى أن العلاقات التي تنشئها في الأكسس هي إخبار للأكسس عن العلاقات الموجودة أصلاً عند تصميم الجداول، وهي التي نعبر

عنها بوجود حقول مشتركة (رقم السجل المدني). لذلك، ففي الحقيقة، لقد تم تحديد العلاقات بالفعل بين الجداول، والسؤال الآن: ما هو التصميم

الذي تعكسه هذه الجداول؟

على الأرجح فإن التصميم يعبر عن كائن هو الشخص نفسه (مع خصائصه أو بياناته من اسم وتاريخ ميلاد وما إلى ذلك)، ثم خصائص متعددة لهذا

الكائن (مثل مؤهلاته الأكاديمية) أو كائنات أخرى ترتبط بهذا الكائن (مثل الحوادث التي حصلت له مثلاً)، وتم التعبير عن هذا الارتباط بواسطة

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

الخصائص الأخرى، وليس بين الجداول الأخرى بعضها مع بعض.

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

الطوارئ، وهكذا... ولكنني أحببت أن أوضح السبب خلف هذا الاختيار.

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

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

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

وليس بين الجداول بعضها مع بعض... والله أعلم.

مواضيع مشابهة