ضياء الشمس

74

16,926

قواعد المعطيات في الشبكات أو الموزعة Distributed Database (DDB)

بسم الله الرحمن الرحيم


حلقة بحث عن قواعد البيانات الموزعة

Distributed Database (DDB)



قبل المقدمة قد يسئل الكثير لماذا أكتب هكذا موضوع

عندما أردت أن أكتب حلقة بحث عن هذا الموضوع لم أجد أي شئ بالإنترنت إلا قليلاً

فهي بإذن الله معينة لمن أراد أن يستفيد من الموضوع من أعضاء وزوار لشبكتنا الغالية طه سوفت

بقلمي .... ضياء الشمس


مقدمة:
قواعد البيانات الموزعة أو الشبكية Distributed Database (DDB) هي بالتعريف مجموعة من قواعد البيانات التقليدية المترابطة فيما بينها عن طريق شبكة والتي تبدو للمستخدم بأنها قاعدة بيانات واحدة منطقياً ولكنها فيزيائياً مقسمة وموزعة على مواقع موزعة على الشبكة، يتم إدارة كل قاعدة بيانات من القواعد البيانات المتواجدة على المواقع بشكل مستقل عبر نظام إدارة قاعدة بيانات Database Management System (DBMS) مخصص لهذا النوع من قواعد البيانات، بينما يتم إدارة قاعدة البيانات الموزعة الكلية عن طريق نظام برمجي يدعى نظام إدارة قاعدة البيانات الموزعة Distributed Database Management System (DDMS) والذي تقع على عاتقه تأمين مبدأ شفافية البيانات Data Transparency والذي يتيح للمستخدم تنفيذ عملياته على قاعدة البيانات الموزعة وكأنها قاعدة بيانات واحدة.
يمكننا تميز نوعين من قواعد البيانات الموزعة:
1. قواعد البيانات الموزعة المتجانسة Homogeneous: والتي يكون فيها قواعد البيانات ونظام إداراتها المتواجدة في جميع المواقع Sites متشابهة كأن تكون جميعها أكسس Access أو بارادوكس Paradox أو فوكس برو Fox Pro وما شابه من أنظمة قواعد البيانات التقليدية.
2. قواعد البيانات الموزعة المتغايرة Heterogeneous: والتي يكون فيها قواعد البيانات ونظام إداراتها مختلف عن بعضها البعض، كأن تكون في بعض المواقع أكسس Access وفي بعضها الأخر بارادوكس Paradox وفي مواقع أخرى فوكس برو Fox Pro وهكذا.
ملاحظة: (في بعض الأحيان يعتبر الاختلاف في نسخة الإصدار Version لنظام إدارة قاعدة البيانات المتواجدة في المواقع (مع وجود نفس النوع من قواعد البيانات في هذه المواقع سبباً كافياً لاعتبار أن قاعدة البيانات الموزعة متغايرة).
تزداد صعوبة إدارة قاعدة البيانات الموزعة مع ازدياد درجة التغاير كوجود أكثر من نوع من قواعد البيانات ووجود أكثر من نسخة من نظام إدارة قواعد البيانات في هذه المواقع.

يمكننا تلخيص وذكر أهم المكونات الواجب تواجدها في قواعد البيانات الموزعة بالمكونات التالية:
ü معالج الاستعلامات الموزعة.
Distributed Query Processing .
هنا يقصد أنه يتم تخصيص جزء من المعالج لإدارة الاستعلامات الموزعة.
ü إدارة نظام الأمن الموزع
Distributed Security Management.
لكل مستخدم أو مجموعة مستخدمين صلاحيات على قواعد المعطيات وتكون حسب متطلبات النظام.
ü إدارة النسخ المماثلة الموزعة
Distributed Replication Management.
في قواعد المعطيات الموزعة المستقلة حيث انه عندما يكون على كل جهاز جزء من قاعدة البيانات هذه الخاصية تمنع التضارب.
ü إدارة الدليل الموزع
Distributed Directory Management.
في قواعد المعطيات الموزعة المركزية حيث انه عندما يكون على كل جهاز جزء من قاعدة البيانات هذه الخاصية تمنع التضارب.


ü إدارة عمليات استرجاع قاعدة البيانات الموزعة
Distributed Database Recovery Management.
عند حدوث أي مشكلة في قاعدة البيانات هذه الخاصية تمنحنا إمكانية استرجاع البيانات التي حدثت عليها المشكلة.
2: نظم إدارة قواعد البيانات الموزعة Distributed Database Management Systems DDBMSs
كما مر معنا سابقاً فإن نظام إدارة قواعد البيانات الموزعة هو عبارة عن النظام البرمجي المسئول عن إدارة ومعالجة البيانات الموزعة والمتواجدة في المواقع المكون للشبكة، يمكننا تقسيم أنواع أنظمة إدارة قواعد البيانات الموزعة للأصناف الأساسية التالية [1]:
أ‌- حسب المكونات Based on Components: يتكون نظام إدارة قواعد البيانات الموزعة في هذه الحالة من مجموعة من المكونات ، كالمكون الخاص بإدارة الجداول والمكون الخاص بإدارة الملفات وما شابه ذلك.
ب‌- حسب الوظائف Based on Functions: في هذه الحالة يتم تقسيم نظام إدارة قاعدة البيانات الموزعة لمجموعة من الوظائف المراد توفيرها لمعالجة البيانات، ومن ثم يتم بناء مجموعة من البرمجيات والإجرائيات Procedures التي تؤدي هذه الوظائف وذلك لبناء النظام الكلي.
ت‌- حسب البيانات Based on Data: في هذه الحالة يتم تقسيم البيانات المراد معالجتها لعدة مجموعات من البيانات، ويتم بناء البرمجيات والإجرائيات التي تتعامل مع هذه البيانات حسب طبيعتها.
3: معمارية توزيع البيانات في قواعد البيانات الموزعة.
بفرض أنه لدينا مجموعة من قواعد البيانات التقليدية وأردنا توزيعها على مجموعة من المواقع Sites المكونة لشبكة حواسيب مترابطة فيما بينها بغية توفير هذه البيانات والتشارك عليها، يمكن لنظم إدارة قواعد البيانات Database Management Systems DBMSs المتواجد على هذه الأجهزة أن تعمل بطرق مختلفة ضمن فضاء توزيع البيانات Data Distribution Space والذي يتألف من بعدين وهما:
التوزيع Distribution: هناك عدة طرق لتوزيع البيانات سنذكر منها طريقتين اثنين هما:
نظام المخدم/الزبون Client/Server:
تقوم فكرة نظام مخدم/زبون على تقسيم وظائف إدارة البيانات إلى نوعين من الوظائف Functions وهي الوظائف الخاصة بالمخدم والمسئولة عن إدارة ومعالجة وتخزين البيانات، والوظائف الخاصة بالزبون والمسؤولة عن الاتصال مع المخدم لتأمين البيانات وتوفيرها للمستخدم، يبين الشكل البنية الأساسية لنظام مخدم/زبون والذي يبين كيفية الترابط بين المخدم والزبون عن طريق البرامج الخاص بالاتصال Communication Software، كما يظهر في هذا الشكل أن أغلب الوظائف الخاصة بإدارة ومعالجة البيانات يتم تنفيذها في المخدم ومن ثم ترسل النتائج إلى الزبون



يجب ملاحظة أن هناك عدة أشكال من أنظمة مخدم/زبون أبسطها الذي يحوي على مخدم واحد فقط ومجموعة من الزبائن ويمكن أن ندعو هذا النظام بنظام مخدم وحيد - متعدد الزبائن Multiple Clients-Single Server، يمكننا تشبيه هذه البنية من أنظمة مخدم/زبون بنظام قاعدة البيانات المركزية Centralized Database لأنه يتم تخزين البيانات في قاعدة بيانات واحدة موجودة على المخدم والذي يتواجد عليه أيضاً نظام إدارة قاعدة البيانات DBMS.
النوع الأخر من أنظمة مخدم/زبون هو نظام متعدد المخدمين – متعدد الزبائن Multiple Clients- Multiple Servers، وفي هذا النوع من أنظمة مخدم/زبون نصادف طريقتين للاتصال بين الزبون والمخدم:
- الطريقة الأولى تتمثل بأن يقوم كل زبون بالاتصال بالمخدم المناسب لطلب البيانات التي يريدها، وفي هذه الطريقة يتم تبسيط مهام المخدم في حين تزداد المسئولية على نظام الزبون، تدعى هذه الطريقة بنظام الزبون الثقيل Heavy Client System.
- أما الطريقة الأخرى فتقتضي بأن يقوم كل زبون بالاتصال بمخدم واحد فقط لطلب البيانات منه ليقوم هذا المخدم بدوره بالاتصال ببقية المخدمات لطلب وتجميع البيانات التي لا تتواجد لديه وتوفيرها لذلك الزبون، وبهذا تزداد وظائف المخدم وتنخفض أعباء الزبون والذي يسمى بهذه الحالة بالزبون الخفيف Light Client الذي يتعامل مع البيانات بشفافية مطلقة ويقوم فقط بطلب البيانات من المخدم المحلي أو المخدم القريب له بدون معرفة مكان تواجد هذه البيانات على أي مخدم من المخدمات المتواجدة في الشبكة وهذا ما يسمى بشفافية البيانات Data Transparency.

نظام الند للند Peer-to-Peer:
تقوم فكرة نظام الند للند Peer-to-Peer على مبدأ تجميع مجموعة من الحواسيب المتصلة فيما بينها بواسطة شبكة Network بحيث يعمل كل حاسب من هذه الحواسيب كمخدم للحواسيب البقية وتزويدهم بالبيانات التي يحتاجونها، وفي نفس الوقت يعمل هذا الحاسب كزبون عند طلب بيانات من الحواسيب البقية وبهذا فإن بيئة العمل في هذه الحالة تدعى بنظام التوزيع الكلي Full Distribution.
يبين الشكل بنية نظام التوزيع الند للند، نلاحظ أنه قد يختلف نظام إدارة قاعدة البيانات المتواجد على مجموعة الحواسيب المترابطة فيما بينها ولذلك نشاهد أن كل حاسب يمتلك المخطط المحلي الداخلي Local Internal Schema (LIS) والذي يصف بنية نظام إدارة قاعدة البيانات الموجود على هذا الحاسب، وبنتيجة ترابط هذه الحواسيب وتوزيع البيانات فيما بنيها ينشئ لدينا من وجهة نظر قاعدة البيانات الموزعة المخطط المفاهيمي العام Global Conceptual Schema (GCS) الذي يصف بنية قاعدة البيانات الموزعة والذي يتألف بطبيعة الحال من مجموعة من المخططات المفاهيمة المحلية المتواجدة على كل حاسب والتي تدعي بالمخطط المفاهيمي المحلي Local Conceptual Schema (LCS)، أما الطبقة الأخيرة في هذا النظام فهي الطبقة الخارجة التي تصف التطبيقات Applications وواجهة المستخدم User Interface التي تتعامل مع قاعدة البيانات الموزعة والتي يصفها المخطط الخارجي External Schema (ES) والتي تتواجد على كل حاسب من الحواسيب المترابطة فيما بينها.





التغاير (عدم التجانس) Heterogeneity: يندرج ضمن مفهوم التغاير مجموعة من الحالات التي يبدو فيها الاختلاف في نقطة معينة أو جانب معين مثل:
1. الاختلاف في التجهيزات المادية Hardware للأجهزة المتصلة مع بعضها البعض.
2. الاختلاف في بروتوكولات الاتصال المستخدمة للتواصل بين الأجهزة المتصلة فيما بينها ونقل وتبادل البيانات.
من أهم البروتوكولات:
ODBC(Open Database Connectivity),OLE DB(Object Linking and Embedding, Database)
3. الاختلاف بطرق معالجة وتخزين البيانات في نظم إدارة قواعد البيانات.
4. الاختلاف بطرق كتابة الاستعلامات Queries واللغات المستخدمة فيها والبنى والتراكيب التي تستخدمها هذه اللغات، مثل الاختلافات بين لغة الاستعلامات البنيوية Structured Query Language (SQL) المستخدمة في أنظمة إدارة قواعد البيانات المختلفة مثل Oracle و SQL Server و FoxPro وبقية الأنظمة الأخرى.

طرق تصميم قواعد البيانات الموزعة
عند تصميم قواعد البيانات الموزعة فإن هناك طريقتين شهيرتين للتصميم يمكننا اتباعها [1] وهاتين الطريقتين هما:
· طريقة التصميم من الأعلى إلى الأسفل Top-Down Design: وهي الطريقة المناسبة عند تصميم قواعد البيانات الموزعة مباشرة من الصفر، أي بدون وجود قواعد بيانات موجودة مسبقاً بالنظام.
· طريقة التصميم من الأسفل إلى الأعلى Bottom-Up Design: وهي الطريقة المتبعة عند تصميم قواعد بيانات موزعة انطلاقاً من قواعد بيانات تقليدية موجودة مسبقاً ويراد دمجها مع بعضها البعض وتوفيرها كقاعدة بيانات موزعة
5-1: طريقة التصميم من الأعلى إلى الأسفل Top-Down Design
تتكون هذه الطريقة من عدة مراحل والتي تبدأ بجمع وتحليل المتطلبات وتنتهي بالتصميم النهائي لقاعدة البيانات الموزعة،

تستخدم طريقة التصميم من الأعلى للأسفل عندما نريد أن نقوم بتصميم قاعدة البيانات الموزعة من البداية، إن عملية التصميم تتم عبر المراحل التالية:
- المرحلة الأولى، تحليل المتطلبات Requirement Analysis: يتم في هذه المرحلة جمع وتحليل البيانات المراد تخزينها بالإضافة إلى القيود Restrictions المطبقة على هذه البيانات مثل قيود عدم تكرار رقم الموظف أو قيود عمر الموظف أكبر من رقم معين وما شابه ذلك من القيود، وكذلك الأمر جمع وتحليل العلاقات Relationships التي تربط بين هذه البيانات. يتم خلال هذه المرحلة إجراء المقابلات مع المسئولين والموظفين الذي يتعاملون مع البيانات بشكل مباشر وفي نهاية هذه المرحلة نكون قد حصلنا على الوثائق التي تصف متطلبات النظام System Requirements أو الأهداف Objectives التي تصف البيانات مع القيود والعلاقات فيما بينها ويمكننا الانتقال إلى المرحلة التالية.
- المرحلة الثانية، التصميم المنظوري والمفاهيمي: في هذه المرحلة يكوم لدينا جزئيتين تعملان بالتوازي بحيث يكون الدخل لهاتين الجزئيتين هي وثيقة متطلبات النظام System Requirements الناتجة في المرحلة السابقة، والجزئيتين هما:
1. جزئية التصميم المنظوري View Design: والتي تهتم بتصميم واجهات المستخدم User Interfaces والتي سيتعامل معها المستخدمين.
2. جزئية التصميم المفاهيمي Conceptual Design: والتي تهتم بدارسة وتحديد الكينونات Entities التي ستكون قاعدة البيانات، بالإضافة لدراسة وتحديد العلاقات Relationships التي تربط بين هذه الكينونات، يمكن تقسيم هذه الجزئية بدورها إلى خطوتين فرعيتين [3] هما:
أ‌- تحليل الكينونات Entities Analysis: والتي تهتم بدراسة وتحليل الكينونات والحقول المكونة له والعلاقات التي تربط بينها.
ب‌- تحليل الوظائف Functional Analysis: والتي تهتم بدراسة وتحليل الوظائف الأساسية التي ستطبق على البيانات.
وفي نهاية هاتين الخطوتين يتوجب علينا تجميع البيانات الناتجة عنها لمعرفة أي من الوظائف Functions ستتعامل مع أي من الكينونات Entities.
نلاحظ أن هناك تكامل بين جزئية التصميم المنظوري وجزئية التصميم المفاهيمي حيث من الممكن أن يتم مقاطعة التصميم المفاهيمي من قبل التصميم المنظوري وذلك لتلبية بعض المتطلبات التصميمية للمستخدمين لاعتبارات معينية وذلك بواسطة السهم المتجه من جزئية التصميم المنظوري لجزئية التصميم المفاهيمي والمسمى تكامل المنظور View Integration.
كما أنه خلال هذه المرحلة يتوجب على المستخدم توفير بعض البيانات الإحصائية عن التطبيقات Applications التي ستعمل على قاعدة البيانات الموزعة النهائية، ونقصد هنا بالبيانات الإحصائية تحديد العدد الوسطي المتوقع من المستخدمين لكل تطبيق والكمية الوسطية من البيانات التي سيتعامل بها كل تطبيق ومعدل أو عدد مرات تشغيل هذه التطبيقات من قبل المستخدمين خلال فترة زمنية محددة وما شابه ذلك. وفي نهاية هذه المرحلة نكون قد حصلنا على المخطط المفاهيمي العام Global Conceptual Schema والذي ينتج عن جزئية التصميم المفاهيمي، بالإضافة إلى تعريف المخطط الخارجي External Schema Definition ومعلومات الولوج Access Information والتي ستحدد طبيعة وآلية واجهة المستخدم النهائية، وسيتم تجميع النتائج الثلاثة الناتجة عن هذه المرحلة لتكون دخلاً للمرحلة الثالثة.
- المرحلة الثالثة، تصميم التوزيع Distribution Design: تتركز في هذه المرحلة جوهر عملية تصميم قواعد البيانات الموزعة والتي تقتضي بتجزئة Fragmentation الكينونات المكونة لقاعدة البيانات الموزعة.
ومن ثم توزيع Allocation الجزئيات الناتجة على المواقع Sites التي ستعمل عليها قاعدة البيانات الموزعة، ينتج عن هذه المرحلة المخطط المفاهيمي المحلي Local Conceptual Schema والذي سيكون دخلاً للمرحلة الرابعة.
- المرحلة الرابعة، التصميم الفيزيائي Physical Design: يتم في هذه المرحلة تطبيق وتنفيذ المخطط المفاهيمي المحلي الناتج عن المرحلة السابقة على الأجهزة الفيزيائية ووسائط التخزين المتواجدة في المواقع Sites المكونة للنظام الموزع Distribution System، ينتج عن هذه المرحلة المخطط الفيزيائي Physical Schema لتصميم قاعدة البيانات الموزعة.
- المرحلة الأخيرة، الملاحظة والمراقبة Observation and Monitoring: تهتم المرحلة الاخيرة بمراجعة التصميم النهائي الناتج لقاعدة البيانات الموزعة واختباره ودراسة التحسينات والمقترحات الممكنة على النظام والتي سيتنتج عنها تغذية عسكية راجعة Feedback يتم إرسالها إلى جميع مراحل التصميم الأربعة السابقة بناءً على نوع التحسين المقترح ليتم إعادة تنفيذ مرحلة التصميم من جديد ومتابعة عملية التصميم للوصول إلى أفضل تصميم ممكن لقاعدة البيانات الموزعة.
5-2: طريقة التصميم من الأسفل إلى الأعلى Bottom-Up Design
تعتبر هذه الطريقة مناسبة عندما نريد تحويل مجموعة من قواعد البيانات الموجودة حالياً من قواعد بيانات متفرقة وغير متصلة فيما بينها إلى قاعدة بيانات واحدة موزعة ومتصلة فيما بينها، يتم استخدام هذه الطريقة عند تصميم قواعد البيانات الغير متجانسة Heterogeneous والتي تكون فيها قواعد البيانات الموجودة بالأصل مختلفة عن بعضها البعض ونظام إدارة قاعدة البيانات DBMS مختلف أيضاً. تبدأ عملية التصميم في هذه الطريقة من المخطط المفاهيمي المحلي Local Conceptual Schema الخاص بكل قاعدة بيانات من قواعد البيانات المنفصلة لتجميعها مع بعضها البعض لتشكيل المخطط المفاهيمي العام Global Conceptual Schema كما في طريقة التصميم السابقة.








نسأل الله أن يكون شرحناً كافياً

قدمنا لكم


حلقة بحث عن قواعد البيانات الموزعة

Distributed Database (DDB)


والحمد لله رب العالمين

التعليقات (11)

abubkir     
مشكوووووووووووور على الشرح
ضياء الشمس     
مشكور أخوي عالرد

بس كان بكفي رد واحد
خالد الشعيب     
تسلممممممممممممممم
خالد الشعيب     
الله يعطيك العافية
خالد الشعيب     
مشكورررررررررررررررررررررررررر
خالد الشعيب     
شكراااااااااااااااااااااااااااااا
ضياء الشمس     
هلا أخوي شكراً عالرد جزاك خيراً
scorobioon     
مشكووووووووور
ضياء الشمس     
جزاكم الله خيراً
خالد الشعيب     
thank youuuuuuuuuuuu
ThE PuNiShEr     
مشكور
عل شرح دقيق
تقبل مروى