# قاعدة بيانات موزعة

قاعدة البيانات الموزعة تُعرَّف بأنها قاعدة البيانات التي لا تكون اجهزة التخزين فيها موصولة بوحدة معالجة مشتركة كـ وحدة المعالجة المركزية في الحاسب الآلي. قد تكون مخزنة في اجهزة متعددة وتتواجد في نفس المكان الطبيعي أو قد تكون اختفت عبر شبكة من الأجهزة المتصلة. على عكس الأنظمة الموازية حيث تكون المعالجات مترابطة بشكل قوي وتمثل قاعدة بيانات وحيدة، قاعدة البيانات الموزعة تحتوي على عدة مواقع عمل متناثرة لا تتواجد في نفس المكان فعليا. مجموعة البيانات كمثال في قاعدة البيانات قد يتم توزيعها على عدة مواقع فعلية. قاعدة البيانات الموزعة قد تتواجد في خادم شبكة الإنترنت، إنترانت أو اكسترانت مشتركة أو في أي شبكة أخرى داخل الشركة. النسخ المكررة والموزعة من قاعدة البيانات تساهم في تحسين أداء قاعدة البيانات بالنسبة للمستخدم النهائي. لضمان مواكبة قاعدة البيانات الموزعة للتحديثات يوجد هنالك عمليتين هما:
* التكرار: يضمن استخدام برمجيات متخصصة في البحث عن التحديثات في قاعدة البيانات الموزعة. عندما يتم إيجاد تحديث أو تغيير فإن إجراء التكرار تعمم التغيير على كل قواعد البيانات. إجراء التكرار قد يكون معقد جدا ويستهلك الكثير من الوقت بناء على حجم وعدد القواعد الموزعة. وقد تحتاج هذه العملية إلى الكثير من الوقت والمصادر الحاسوبية.
* الإستنساخ: من جهة أخرى ليس بالأمر المعقد. الإستنساخ ببساطة يحدد قاعدة بيانات معينة ويعينها كنسخة أصلية ومن ثم يقوم بإستنساخها. إجراء الأستنساخ عادة يتم بعد مرور وقت معين. هذا للتأكد من أن كل مكان موّزع يضم نفس البيانات. في هذا الإجراء، التغييرات مسموحة فقط في قاعدة البيانات الأصلية. وهذا لضمان عدم الكتابة على البيانات المحلية. استخدام أي إجراء من هذين الإجرائين يضمن حداثة البيانات في كل المواقع التي وزعت فيها قواعد البيانات. إلى جانب تكرار وتجزئة قاعدة البيانات الموزعة فأنه يوجد هناك الكثير من تقنيات تصميم قواعد البيانات الموزعة المختلفة. على سبيل المثال، تقنيات قاعدة البيانات الموزعة في الحكم الذاتي والمزامنة واللامزامنة. تطبيق هذه التقنيات يتوقف بدرجة أساسية على احتياجات العمل ومدى حساسية المعلومات التي ستخزن في هذا النوع من قواعد البيانات وكذلك على الميزانية المخصصة لضمان سرية المعلومات وصحتها.

## البناء

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

## اعتبارات مهمة

يجب توخي الحذر في إطار قواعد البيانات الموزعة لضمان التالي:
* شفافية التوزيع: يجب أن يملك المستخدمون القدرة على التعامل مع النظام وكأنه نظام مركزي وحيد. وهذا ينطبق أيضا على أداء النظام وأساليب الوصول بالتحديد.
* شفافية العمليات: كل عملية تحدث يجب أن تحافظ على صحة بيانات قاعدة البيانات. العمليات أيضا يجب أن تقسم إلى عمليات مصغرة، كل عملية تؤثر على قاعدة بيانات وحيدة.
هنالك بشكل رئيسي طريقتان لتخزين العلاقة في قاعدة بيانات موزعة r.
* التكرار
* التجزئة
1- التكرار: من خلال التكرار يقوم النظام بصيانة نسخ متطابقة للعلاقة r في مواقع مختلفة ومتفرقة.
* مدى توافر البيانات أعلى من خلال هذه الطريقة.
* المزامنة تزداد بعد الاستجابة لطلبات القراءة (Query).
* تزداد الضغوط (Overhead) خلال عمليات التحديث لكل موقع يحتوي على نسخة من البيانات التي تحتاج إلى تحديث للوصول إلى توافق وانتظام عام بين قواعد البيانات الموزعة.
2- التجزئة: العلاقة r يتم تجزئتها هنا إلى r1,r2,r3....rn بطريقة تضمن بأن العلاقة الرئيسة يمكن إعادة بنائها من خلال الأجزاء المتفرقة، ومن ثم يتم توزيع الأجزاء على المواقع المختلفة. هنالك منهجان في التجزئة:
* التجزئة الأفقية: تنقسم هنا العلاقة عن طريق تصنيف كل صف في العلاقة إلى حزء واحد أو أكثر.
* التجزئة العمودية: تنقسم العلاقة هنا عن طريق تفكيك مخطط العلاقة العام.

## المزايا

* إدارة البيانات الموزعة بمستويات مختلفة من الشفافية مثل شفافية الشبكة وشفافية التجزئة وشفافية النسخ المتماثل، إلخ.
* زيادة الموثوقية والتوافر.
* قابلية التوسع بسهولة.
* تعكس بناء المنظمة - اجزاء قاعدة البيانات توجد في أقسام المؤسسة المعنية بها.
* الإستقلالية المحلية أو إستقلالية الموقع- كل قسم يستطيع التحكم في البيانات المتعلقة به.
* حماية البيانات القيّمة: في حال حدوث كارثة ما كالحريق مثلا فإن البيانات لا توجد في مكان واحد فقط بل موزعة على مواقع مختلفة.
* تحسين الأداء: البيانات توجد بالقرب من المكان الأكثر طلبا لها، وقواعد البيانات بالأساس تعمل بشكل متوازي يتيح توزيع الثقل على خوادم مختلفة. (الثقل العالي على جزء معين من قاعدة البيانات لن يؤثر على بقية الأجزاء في حال قاعدة البيانات الموزعة).
* اقتصادية: التكلفة تكون أقل لإنشاء شبكة من حواسيب صغيرة تعمل مجتمعه كحاسوب عملاق.
* النمطية: من الممكن تغيير، إضافة أو حذف جزء معين من قواعد البيانات الموزعة بدون أن تتأثر بقية الأجزاء.
* موثوقية العمليات: نتيجة للتكرار الحاصل في قاعدة البيانات.
* إستقلالية الهاردوير، نظام التشغيل، الشبكة، التجزئة، نظام إدارة قواعد البيانات، التكرار والمكان.
* العمل المتواصل.
* التوزيعية في معالجة الأوامر والإستفسارات.
* التوزيعية في إدارة العمليات.
الفشل في موقع واحد لا يؤثر على أداء النظام الكلي. كل العمليات تخضع لخاصية A.C.I.D: الوحدة (A-atomicity): العملية تتنفذ جميعها بدون مشاكل أو لا تتنفذ أبدا. التوافق (C-consistency): نقل قاعدة البيانات من حالة متوافقة إلى أخرى. الفصل (I-isolation): كل عملية تتعامل مع قواعد البيانات الموزعة على أنها قاعدة بيانات وحيدة متوافقة. المتانة (D-durability): نتائج العملية يحب أن تقاوم فشل النظام. يستخدم أسلوب دمج الأجزاء المتكررة لتعزيز وجود البيانات في قواعد البيانات.

## العيوب

* التعقيد: تتطلب المزيد من العمل من قبل إدارة قواعد البيانات للحفاظ على الطبيعة المتوزعة للنظام بشكل جلي.المزيد من العمل أيضا يجب أن يبذل لصيانة الأنظمة الموزعة بدلا عن صيانة نظام واحد عملاق. تتطلب المزيد من التركيز في مرحلة التصميم للمحافظة على طبيعة التفكك في هذا النوع من قواعد البيانات: على سبيل المثال، الدمج في قواعد البيانات الموزعة مكلف بشكل لا يطاق عندما يتم على مستوى أنظمة متعددة.
* التكلفة: زيادة التعقيد والبنية التحتية الضخمة في هذا النوع من قواعد البيانات يعني ارتفاع في تكلفة الأيدي العاملة.
* الأمان: وجود أجزاء من قاعدة البيانات في مواقع بعيدة عن مركز النظام يتطلب توفير الأمان في هذه المواقع. البنية التحتية لقاعدة البيانات يجب أن تكون أيضا أمنة (عن طرق مثلا تشفير الشبكة التي تربط بين المواقع البعيدة).
* صعوبة ضمان صحة البيانات: محاولة ضمان صحة البيانات في قاعدة البيانات الموزعة قد يستهلك الكثير من مصادر الشبكة حتى يصبح فعالا.
* قلة الخبرة: نظرا لصعوبة العمل بقواعد البيانات الموزعة ولأنه حقل تقني ناشيء فأنه لا تتوفر حوله الكثير من التجارب الكافية.
* النقص في المعايير: لا تتوفر إلى الآن أساليب وطرق منهجية لتحويل قواعد البيانات المركزية إلى موزعة.
* تصميم قاعدة البيانات هنا أكثر صعوبة: إلى جانب الصعوبات المعتادة أثناء تصميم قاعدة البيانات المركزية فأن الموزعة تضيف صعوبات إضافية تتمثل في تجزئة البيانات، توزيع الأجزاء على مواقع محددة وتكرار البيانات.
* الحاجة إلى المزيد من البرمجيات.
* نظام التشغيل يجب أن يدعم البيئة الموزعة.
* التحكم المتزامن: يعد من المشاكل الرئيسية لهذا النوع من قواعد البيانات. يمكن حل هذه المشكلة باستخدام خاصية الإقفال والتوقيت.