پیشگفتار
پیشرفت تکنولوژی سیستم های مدیریت پایگاه داده ها ، با توسعه تکنولوژی های محاسبات توزیع شده وپردازش های موازی همگام شده است. نتیجه این همگامی ، سیستم های مدیریت پایگاه داده های توزیع شده و موازی است .سیستم های پایگاهی توزیع شده ، مجموعه ای از چندین پایگاه داده های منطقاً مرتبط است که دریک شبکه کامپیوتری گسترده شده اند .
اینگونه از سیستم های پایگاهی در عین دارا بودن مزایایی همچون :

 سازگاري و هماهنگي با ماهيت سازمان هاي نوين
 كارايي بيشتر در پردازش داده ها به ويژه در پايگاه داده هاي بزرگ
 دستيابي بهتر به داده ها
 اشتراك داده ها
 افزايش پردازش موازي
 كاهش هزينه ارتباطات
 تسهيل گسترش سيستم
 استفاده از پايگاه داده هاي از قبل موجود.

دارای معایبی نیز می باشد. از جمله معایب آن می توان به موارد ذیل اشاره نمود :

 پيچيدگي طراحي سيستم
 پيچيدگي پياده سازي
 كاهش كارايي در برخي موارد
 هزينه بيشتر
 مصرف حافظه بيشتر

معماري توزيع شده براي پايگاه داده ها ، با وجود اينكه مزاياي سيستم هاي پايگاهي را با مزاياي سيستم هاي توزيع شده يكجا مي كند ، ولي مسائل و مشكلات خاص خود را دارد. آنچه قابل يادآوري است اين كه ، انتخاب نوع معماري براي ايجاد نرم افزار كاربردي ،بايد كاملاً حساب شده باشد. اين انتخاب بايد بهترين حالت ممكن براي پاسخگويي به نياز هاي كاربران را داشته و در عين حال از نظر كارايي در حد مطلوبي قرار داشته باشد.

با تقدير و سپاس
از زحمات
استاد عزيز جناب آقاي روحانی
كه در تمامي مراحل اين پايان نامه مرا ياري نمودند .

و تقدیم به پدر و مادر عزیزم
که همواره سنگ صبورم بوده اند .
وتمام کسانی که از سرچشمه دانششان نوشیده ام .

مطالعات نظري ۷
فصل اول ۸
۱٫ سيستم پايگاهي توزيع شده ۹
تعاريف ۹
۲٫ مزايا و معايب سيستم پايگاهي توزيع شده ۱۳
۲٫۱٫ مزايا: ۱۴
۲٫۲٫ معايب: ۱۴
۳٫ چند سيستم نمونه ۱۴
۴٫ يك اصل بنيادي ۱۵
۵٫ دوازده قاعده فرعي ۱۷
۵٫۱٫ خود مختاري محلي ۱۷
۵٫۲٫ عدم وابستگي به يك مانه مركزي ۱۸
۵٫۳٫ استمرار عمليات ۱۸
۵٫۴٫ استقلال از مکان ذخيره سازي ۱۹
۵٫۵٫ استقلال از چگونگي پارسازي داده ها ۱۹
۵٫۶٫ استقلال ازچگونگي نسخه سازي داده ها ۲۲
۵٫۷٫ پردازش در خواست هاي توزيع شده ۲۴
۵٫۸٫ مديريت تراكنش هاي توزيع شده ۲۴
۵٫۹٫ استقلال از سخت افزار ۲۵
۵٫۱۰٫ استقلال از سيستم عامل ۲۵
۵٫۱۱٫ استقلال از شبكه ۲۵
۵٫۱۲٫ استقلال از DBMS. 26
6. پايگاه داده هاي توزيع شده همگن و ناهمگن ۲۶
۷٫ مشکلات سيستم هاي توزيع شده ۲۶
۷٫۱٫ پردازش در خواست ۲۷
۷٫۲٫ مديريت كاتالوگ ۳۰
۷٫۳٫ انتشار بهنگام سازي ۳۳
۷٫۴٫ كنترل ترميم ۳۴
۷٫۵٫ كنترل همروندي ۳۶
۸٫ گدار ۳۸
۹٫ مقايسه سيستم هاي مشتري/خدمتگزار با سيستم هاي توزيع شده ۴۰
۱۰٫ خلاصه ۴۱
۱۱٫ نتيجه گيري ۴۲
فصل دوم ۴۳
۱٫ سيستم هاي پايگاه داده هاي توزيع شده و موازي ۴۴
۲٫ توازي بين درخواست ها ۴۶
۳٫ نگاهي دقيقتر به تکنولوژي پايگاه داده هاي توزيع شده وموازي ۵۱
۳٫۱٫ سطح و نوع توزيع شدگي داده ها ومسئوليت ها در DDBMSهاي مختلف ۵۲
۳٫۲٫ پردازش و بهينه سازي درخواست ۵۵
۳٫۳٫ کنترل همروندي (Concurency control) 63
3.4. پروتکل هاي قابليت اطمينان ۶۷
۴٫ خلاصه ۷۷
۵٫ نتيجه گيري ۷۸
فصل سوم ۷۹
۱٫ تاريخچه ۸۰
۲٫ جنبه هاياوراکل براي سيستم هاي توزيع شده ۸۲
۳٫ خطوط اتصال پايگاه داده ها ۸۲
۳٫۱٫ رده بندي database link بر اساس نحوه برقراري ارتباط ۸۳
ضرورت استفاده از database link ها ۸۳
۳٫۲٫ بکارگيري اسامي سراسري پايگاه داده هادر database link ها ۸۴
۳٫۳٫ نامگذاري database link ها ۸۵
۳٫۴٫ گونه هاي مختلف database link 85
3.5. مقايسه کاربران ِ گونه هاي مختلف database link ها ۸۶
۳٫۶٫ مثال هايي از تعريف database link در سيستم هاي توزيع شده پايگاه داده ها ۸۷
۴٫ عمليات روي داده هاي ذخيره شده در پايگاه داده هاي توزيع شده اوراکل ۸۸
فصل چهارم ۸۹
۱٫ توزيع داده ها ۹۰
۱٫۱٫ استراتژي هاي توزيع داده ها ۹۰
۱٫۲٫ تخصيص داده ها ۹۱
۱٫۳٫ طرح توزيع و تخصيص مناسب براي DDB خوابگاه دانشگاه شهيد بهشتي ۹۱
۱٫۴٫ انتخاب طرح توزيع DDB خوابگاه دانشگاه شهيد بهشتي ۹۱

بخش اول
مطالعات نظري

فصل اول

۱٫ سيستم پايگاهي توزيع شده
تعاريف
پايگاه داده: مجموعه اي است از داده هاي ذخيره شده و پايا، بصورت مجتمع (يكپارچه) (نه لزوماً هميشه بطور فيزيكي، بلكه حداقل بطورمنطقي)، بهم مرتبط، حتي الامكان با كمترين افزونگي، (داراي يك ساختار منطقي مبتني بر يك مدل داده اي و توصيف شده بويژه در محيط انتزاعي يعني در چارچوب همان مدل داده اي )، تحت مديريت يك سيستم كنترل متمركز، مورد استفاده يك يا چند كاربر از يك(يا بيش از يك)«سيستم كاربردي»،بطور همزمان و اشتراكي.]روحا۸۳[
شبكه كامپيوتري: مجموعه اي از كامپيوتر ها، مسير ياب ها، ماهواره ها،اتصالات ارتباطي، كه از طريق آن مي توان به اطلاعات موجود در كامپيوترهاي مختلف عضو اين سيستم دسترسي پيدا كرد.
به زبان ساده سيستم پايگاه داده توزيع شده ، مزاياي تكنولوژي پايگاه داده و تكنولوژي شبكه را در خود جمع كرده است.البته اين يكپارچه سازي ، با تمركز تفاوت دارد.شكل زير گوياي اين مطلب است:

شكل ۱- معماري توزيع شده پايگاهي،تركيبي از تكنولوژي هاي شبكه و پايگاه داده ها[TAMER99]
• تعريف اول:
يك سيستم توزيع شده پايگاهي، شامل مجموعه اي از مانه هاست که از طريق برخي المانهاي اتصال، بهم متصل مي باشد بطوريکه :
۱- هر مانه خود يك سيستم پايگاه داده ها به معناي كامل مي باشد.
۲- مانه ها به نحوي بهم متصل هستند كه كاربر هر مانه مي تواند به داده هاي هر مانه ديگر طوري دسترسي يابد كه منطقاً با حالتي كه تمام داده ها در مانه كاربر مربوطه قرار دارند، فرقي نداشته باشد.
با تعريف ارائه شده فوق از سيستم هاي پايگاه داده هاي توزيع شده ،مي توان فهميد كه سيستم پايگاه داده هاي توزيع شده، در واقع نوعي شيء مجازي مي باشد كه مولفه هاي آن بطور فيزيكي در تعدادي پايگاه داده هاي واقعي مختلف در تعدادي مانه مجزا قرار دارد . ( در اصل DDB ، اجتماع منطقي اين چند پايگاه داده واقعي مي باشد ).] [DATE2000
• تعريف دوم:
سيستم توزيع شده پايگاهي، مجموعه اي از داده هاي ذخيره شده ( با ويژگي هاي بر شمرده در تعريف پايگاه داده ها)، كه منطقاً به يك سيستم تعلق دارند ، ولي در مانه ها ي مختلف يك يا بيش از يك شبكه توزيع شده اند. به عبارتي ديگر، مي توان گفت كه تعدادي پايگاه داده هاي ذخيره شده روي كامپيوتر هاي مختلف داريم كه از نظر كابران، پايگاه واحدي هستند. به بيان ديگر، مجموعه اي است از چند پايگاه داده منطقاً يكپارچه(مجتمع)،ولي بطور فيزيكي توزيع شده روي يك شبكه كامپيوتري.]روحا۸۳[

شكل ۲- يك سيستم پايگاه داده هاي توزيع شده

• تعريف سوم:
يك سيستم پايگاهي توزيع شده(DDB) ،مجموعه اي است از چندين پايگاه داده هاي منطقاً بهم مرتبط از طريق يك شبكه كامپيوتري. سيستم مديريت پايگاه داده هاي توزيع شده(DDBMS)،نرم افزاري كه مديريت پايگاه داده هاي توزيع شده را فراهم مي آورد و«توزيع شدگي» را از ديد كاربران پنهان مي
سازد.[TAMER99]

طبق تعريف فوق، سيستم پايگاه داده هاي توزيع شده، از مجموعه اي مانه در خواست کننده ( با صفر يا بيشتر عضو فعال ) و يک مجموعه ناتهي از مانه داده ها تشکيل شده است.
مانه هاي داده اي، قابليت نگهداري فيزيکي داده هاي سيستم را دارند در حاليکه مانه هاي درخواست کننده فاقد اين امکان هستند. در مانه هاي درخواست کننده تنها واسط هايي وجود دارد که با اجراي آنها، داده هاي ذخيره شده در مانه هاي داده ها بهتر و راحتتر بدست مي آيند.

شكل۳- محيط سيستم پايگاه داده توزيع شده[TAMER99]
همانطور که از شکل بالا مشخص است، بجز مانه۱ که از نوع مانه درخواست کننده است، بقيه از نوع داده هستند.

اما حالت فوق، تنها حالت ممکن براي پايگاه داده هاي توزيع شده نيست. در نوع ديگري از معماري توزيع شده پايگاه داده ها، فرض مي شود هر مانه(مانه هاي «درخواست کننده» و «داده ها») بطور منطقي حاوي ]حداقل[يک ماشين مستقل است. بنابراين هر کدام از مانه ها داراي مخزن ذخيره سازي اوليه و ثانويه مستقل خود مي باشند. مانه ها، سيستم عامل هاي مستقل خود را (که مي توانند همگن يا ناهمگن باشند)

دارند و هر يک قادر خواهند بود برنامه هاي کاربردي خود را بطور محلي احرا نمايند. مانه ها بوسيله يک شبکه کامپيوتري بهم متصل شده اند. تاکيد مي شود که اتصال بين مانه ها در اين نوع سيستم هاي توزيع شده، از نوع «اتصال ضعيف» بين پردازنده ها است. منظور از اتصال ضعيف بين پردازنده آن است که هر پردازنده کلاک اختصاصي ، حافظه اوليه و ثانويه و سيستم عامل خود را دارد. در مقابل اين نوع اتصال، «اتصال قوي» بين پردازنده ها وجود دارد که در آن پردازنده ها از يک حافظه مشترک و يک کلاک همگام استفاده مي کنند. سيستم عامل واحدي پردازنده ها و حافظه را مديريت مي کند. اتصال بين پردازنده از نوع مستقيم است نه از طريق يک شبکه ارتباطي.

گونه ديگري از سيستم هاي پايگاه داده ها وجود دارد که از جهاتي شبيه سيستم هاي پايگاه داده هاي موازي است. اين نوع DBMS ها DBMS هاي موازي کاملاً مستقل ناميده مي شوند. در از DBMS هاي موازي، با بکارگيري معماري چند پردازنده اي، کارايي بالاتر و دسترس پذيري بيشتر را همراه با هزينه کمتر در مقايسه با ابر کامپيوترها خواهيم داشت.
معماري سيستم هاي پايگاه داده هاي موازي، جزئيات خاص خود را دارد که در محدوده اين نوشتار نمي گنجد.

• تعريف چهارم:
يك سيستم محاسبات توزيع شده ،شامل تعدادي عناصر پردازشگر- نه لزوماً همگن- است كه از طريق يك شبكه كامپيوتري با هم در ارتباطند. يك سيستم توزيع شده پايگاه داده را مي توان منطقاً مجموعه اي چندگانه از پايگاه داده ها دانست كه روي يك شبكه كامپيوتري توزيع شده اند و DDBMS نرم افزار مديريت اين پايگاه داده توزيع شده است به نحوي كه توزيع شدگي سيستم را از ديد كاربر پنهان مي سازد.[CONN2002]
• تعريف پنجم:
برخلاف سيستم هاي پايگاهي موازي كه در آنها پردازشگرها كاملاً بهم متصل شده و يك پايگاه داده واحد را تحت كنترل دارند، سيستم هاي پايگاهي توزيع شده از اتصال نسبتاً ضعيف مانه هايي كه هركدام بطور انحصاري ميتوانند عمل كنند تشكيل شده است.
هر مانه ممكن است در پردازش يك تراكنشي كه داده مورد نياز خود را از مانه(هاي) ديگر دريافت مي كند، شركت كند.

تفاوت اصلي معماري سيستم پايگاهي متمركز با معماري سيستم پايگاهي توزيع شده در محل استقرار داده ها است. در معماري متمركز، داده ها بطور فيزيكي در يك رسانه ذخيره سازي قرار دارند در حاليكه داده هاي معماري توزيع شده در مانه هاي مختلف توزيع شده اند. همين توزيع داده ها در مانه هاي مختلف ، باعث تفاوت هاي زيادي در پردازش تراكنش ها و درخواست ها با معماري متمركز ايجاد نموده است.[SILB2002]

منظور از اينکه هر مانه داراي سيستم پايگاه داده کامل و مستقلي است اين است که : هر مانه پايگاه- داده هاي واقعيِ محلي خود، كاربران، DBMS و نرم افزارها ي مديريت تراكنش ها و مديريت ارتباط داده هاي خود را دارد. خصوصاً، يك كاربر مي تواند عمليات روي داده هاي مانه خود را مانند حالتي كه مانه آن اصلاً عضو يك شبكه توزيع شده پايگاه داده ها نباشد، به همان شكل محلي و متمركز انجام دهد. ( حداقل مطلوب اين است. )] DATE2000 [ .

مولفه نرم افزاري جديد در هر مانه (بطور منطقي)،گسترده اي از همان DBMS محلي و سيستم جديد كه تركيبي از مولفه هاي نرم افزاري و DBMS موجود است،همان سيستم مديريت پايگاه داده توزيع شده به حساب مي آيد] DATE2000 [.
درتعريف سيستم پايگاه داده هاي توزيع شده،فرض مي شود که مانه هاي سازنده سيستم، بطور فيزيکي از هم مجزا هستند، گرچه در اساس، مجزا بودن از نظر منطقي نيز کافي است(معمولا ًدر دنياي واقع چنين است که مانه ها از نظر جغرافيايي از هم جدا هستند).
مثلاً ممكن است دو مانه، کنار هم بر روي يك ماشين فيزيكي قرار گرفته باشند.
در بيشتر تحقيقات اوليه فرض بر توزيع جغرافيايي مانه ها بود، درحالي که بيشتر سازمانهاي تجاري اخير در راستاي توزيع محلي فعاليت مي كنند كه در آن تعدادي مانه همگي در يك ساختمان و از طريق شبكه محلي بهم متصل شده اند.

۲٫ مزايا و معايب سيستم پايگاهي توزيع شده
پيشرفت تکنولوژي سيستم هاي مديريت پايگاه داده ها، با توسعه تکنولوژي محاسبات توزيع شده و پردازش هاي موازي همگام شده است. نتيجه نهايي اين دو سيستم هاي مديريت پايگاه داده هاي توزيع شده و موازي است. سازمانها بطور معمول، داراي ماهيت توزيع شده هستند. اين توزيع بطور منطقي و بصورت زير بخش ها، دپارتمان ها و گروه هاي كاري و در اكثر مواقع بطور فيزيكي مي باشد. در نتيجه سيستم توزيع شده ، ما را قادر مي سازد تا ساختار پايگاه داده هاي مورد نياز سازمانها را شبيه ساختار واقعي آنها ايجاد كنيم. بدين صورت که، داده محلي را مي توان همانطور محلي نگه داري كرد در حاليكه در صورت نياز امكان دسترسي به داده هاي دور بطور همزمان نيز وجود داشته باشد .
بعنوان مثال، فرض كنيد تنها دو مانه داريم: يكي در شهر A وديگري در شهر B. فرض كنيد هدف طراحي و پياده سازي پايگاه داده اطلاعاتي براي حساب افراد در بانك باشد . اين سيستم افزايش كارايي پردازش را ازطريق نگه داري داده مورد نياز هر مانه در نزديك ترين محل به آن، و افزايش دسترس پذيري را بوسيله دسترسي به داده هاي غير محلي از ديگر مانه ها، بهمراه دارد.

سيستم پايگاه داده هاي توزيع شده، با وجود داشتن مزايا خالي از عيب نيست ]حداقل[ از ديدگاه تكنيكي عيب آنها اين است كه سيستم هاي توزيع شده پيچيدگي خاص خود را دارند.
در حالت ايده آل(حداقل از نظر تئوري)، اين پيچيدگي فقط مسئله اي براي پياده ساز پايگاه داده است نه كاربرپايگاهي . البته در عمل تمام پيچيدگي ها و مشکلات سيستم هاي پايگاه داده هاي توزيع شده را نمي توان از کاربر پاياني پنهان ساخت.

در زير برخي از مزايا و معايب اين نوع سيستم ها بيان شده است:
۲٫۱٫ مزايا:
۱- سازگاري و هماهنگي با ماهيت سازمان هاي نوين
۲- كارايي بيشتر در پردازش داده ها به ويژه در پايگاه داده هاي بزرگ
۳- دستيابي بهتر به داده ها
۴- اشتراك داده ها
۵- افزايش پردازش موازي

۶- كاهش هزينه ارتباطات
۷- تسهيل گسترش سيستم
۸- استفاده از پايگاه داده هاي از قبل موجود.
۲٫۲٫ معايب:
۱- پيچيدگي طراحي سيستم
۲- پيچيدگي پياده سازي
۳- كاهش كارايي در برخي موارد
۴- هزينه بيشتر
۵- مصرف حافظه بيشتر.]روحا۸۳[
۳٫ چند سيستم نمونه

در اينجا سه نمونه سيستم توزيع شده پايگاهي در سطح نمونه اوليه و سه نمونه تجاري آن رابيان مي كنيم :
• سيستم هاي پايگاه داده توزيع شده نمونه اوليه:
۱ – سيستمSDD-1 كه در يك تحقيق در يك كمپاني كامپيوتر در اواخر سال ۱۹۷۰ و اوايل ۱۹۸۰ در امريكا ايجاد شد.
۲ – سيستم يك نسخه توزيع شده از سيستم پايگاهي Rكه در تحقيقات IBM در اوايل ۱۹۸۰ ساخته شد.
۳ – سيستم Distributed INGRES كه در اوايل ۱۹۸۰ در دانشگاه بركلي امريكا ايجاد شد.
• سيستم هاي پايگاه داده توزيع شده در سطح تجاري : اكثر سيستم هاي پايگاهي رابطه اي امروز انواعي از امكانات توزيع شده را پشتيباني مي كنند كه البته درجه توانش آنها متفاوت است.
a ) سيستم INGRES/STAR از گروه ASK.

b )نسخه توزيع شده سيستم پايگاهي ORACLE 7 از كمپاني oracle.
c ) سيستم DB2 با قابليت توزيع داده از IBM.
4. يك اصل بنيادي
«از ديد كاربر، يك سيستم توزيع شده بايد دقيقاً شبيه يك سيستم متمرکز باشد.» به بياني ديگر كاربران يك سيستم توزيع شده بايد درست مانند حالت سيستم متمرکز، عمل نمايند. تمام مشکلات سيستم هاي توزيع شده بايد داخلي و در سطح پياده سازي باشد نه در سطح خارجي يا در سطح كاربر. ] DATE2000 [

شكل ۴– سيستم پايگاه داده توزيع شده از ديد كاربر سيستم

شكل ۵– سيستم پايگاه داده توزيع شده در دنياي واقع
عملگرهاي عملياتي داده ها مانند گزينش و پرتو، بايد بطور منطقي بدون تغيير باقي بمانند. روشن است عملگرهاي تعريف داده ، نياز به گسترش هايي براي سيستم هاي توزيع شده دارد. بعنوان مثال كاربر واقع در مانه اي بايد بتواند يك رابطه ذخيره شده را به پاره هايي تقسيم و در مانه هاي ديگر ذخيره نمايد.

قاعده مهم بالا، چند اصل فرعي را در پي دارد:
۱- خودمختاري محلي .
۲- عدم وابستگي به مانه مركزي .
۳- تداوم عمليات .
۴- استقلال از مکان و عدم وابستگي جغرافيايي.
۵- استقلال از چگونگي پارسازي .
۶- استقلال از چگونگي نسخه سازي .
۷- پردازش در خواستهاي توزيع شده .

۸- مديريت تراكنش هاي توزيع شده .
۹- استقلال سخت افزاري
۱۰ – استقلال از سيستم عامل
۱۱- استقلال از شبكه
۱۲- استقلال از DBMS.

دوازده مورد ذكر شده بالا بطور كامل نسبت به هم مسقل نيستند و از نظر درجه اهميت در يك سطح قرار ندارند. مهم اين است كه موارد ذكر شده به عنوان اصولي براي فهم تكنولوژي توزيع بوده وچارچوبي براي مشخص كردن توانش يك سيستم توزيع شده خاص به حساب مي آيد.

نکته آنکه، بين سيستم هاي توزيع شده پايگاهي و سيستم هايي كه داراي قابليت هايي براي دسترسي داده از راه دور ( مانند سيستم هاي مشتري / خدمتگذار ) هستند ، تفاوت قائل شد.
در سيستم هاي دسترسي داده از راه دور، كاربر ممكن است قادر باشد به داده اي كه در مانه دوري قرار دارد دستيابي كند و روي آن عمليات پردازش انجام دهد، يا به چند داده واقع در چند مانه جدا بطور همزمان دسترسي داشته باشد

، اما كاربر از عملكرد سيستم آگاه است، يعني مي داند كه كدام داده محلي و كدام داده از دوردست است. در يك سيستم پايگاهي توزيع شده واقعي عملكرد سيستم مخفي است. بر طبق آنچه گفته شد ، اصطلاح سيستم توزيع شده به يك سيستم پايگاهي توزيع شده واقعي گفته مي شود كه درست در مقابل يك سيستم ساده دسترسي داده از راه دور مي باشد.
۵٫ دوازده قاعده فرعي
۵٫۱٫ خود مختاري محلي

مانه ها در سيستم توزيع شده پايگاهي بايد خود مختار باشند. خود مختاري محلي يعني تمام عمليات داده شده به يك مانه بايد توسط همان مانه كنترل شود. هيچ مانه اي نبايد براي انجام درست عملياتش به مانه اي ديگر وابسته باشد ( در غير اينصورت اگر يک مانه از كار بيافتد عمليات مانه ديگر بطور مستقل و بدرستي انجام نمي شود ).

براي پشتيباني از خودمختاري محلي، نگهداري داده ها ومديريت آنها بايد بطور محلي انجام گيرد: تمام داده هاي محلي بطور واقعي متعلق به پايگاه داده هاي محلي هستند، مگر اينكه از طريق مانه هاي دور مورد دسترسي قرار گيرند. امنيت ، جامعيت و نمايش حافظه داده هاي محلي تحت كنترل مانه محلي قرار دارند.

در حقيقت خود مختاري محلي بطور كامل قابل تحقق نيست. در مواردي يک مانه براي كنترل يا انجام عمليات تا حدي به مانه ديگري وابسته است. در عمل، يک مانه هدايت کننده وجود دارد که مانه هاي ديگر به نوعي با آن در ارتباطند. البته وجود اين مانه هدايت کننده از ميزان «عدم وابستگي به يک مانه مرکزي» مي کاهد.مطلوب آن است که مانه ها تا حداکثر ممکن خودمختار باشند و کمترين وابستگي را به مانه اي خاص داشته باشند.۵٫۲٫ عدم وابستگي به يك مانه مركزي

بر اساس خودمختاري محلي، تمام مانه ها از نظر توانش عملياتي بايد در يک سطح باشند. بنابراين هيچ وابستگي به يك مانه مركزي براي سرويس هاي مركزي – مانند پردازش درخواست متمركزشده ، مديريت تراكنش متمركز شده – وجود ندارد بطوريكه همه سيستم به آن مانه وابسته باشند. اين عدم وابستگي به مانه مركزي از خود مختاري محلي تاثير مي پذيرد.
چون خودمختاري محلي بطور كامل امكان پذير نيست پس عدم وابستگي به مانه مركزي هم صد در صد امكان نمي پذيرد.
وابستگي به مانه مركزي حداقل به دو دليل نامطلوب است: اول آنکه، ممكن است توانش عملياتي و قدرت پردازش مانه مركزي محدود باشد ، دوم و مهمتر اينكه ، امكان آسيب پذيري سيستم بيشتر مي شود. آسيب پذيري بيشتر سيستم بدان جهت است كه اگر مانه مركزي از كار بيافتد، تمام سيستم از كار مي افتد.

۵٫۳٫ استمرار عمليات
در اساس، يكي از مزاياي مهم سيستم هاي توزيع شده آن است كه قابليت اطمينان و قابليت دسترس پذيري بيشتري را فراهم مي آورد.
• قابليت اطمينان: احتمال اين که سيستم فعال بوده ودر يک لحظه دلخواه درحال اجرا باشد،.چون سيستم هاي توزيع شده قادر به ادامه عمليات حتي در صورت خراب شدن مولفه اي خاص مانند يك مانه نيز مي باشند، قابليت اطمينان در آنها نسبت به سيستم هاي پايگاه داده هاي متمرکز، بيشتر است.

• دسترس پذيري: احتمال اين كه سيستم فعال بوده و بطور مستمر در يك دوره مشخص در حال اجرا باشد. در سيستم هاي توزيع شده پايگاهي، دسترس پذيري نيز افزايش مي يابد. بخشي به همان دليل ذكر شده براي افزايش قابليت اطمينان و بخشي هم بدليل امكان تكرار داده .

۵٫۴٫ استقلال از مکان ذخيره سازي
بطور ساده، منظور از استقلال داده ها از مکان ذخيره سازي که تحت عنوان پنهان سازي مکان ذخيره سازي نيز شناخته مي شود،اين است که كاربر نبايد بداند كه داده بطور فيزيكي در كجا ذخيره شده است، بعلاوه بايد بتواند ]حداقل از ديدگاه منطقي[ به همان نحوي داده ها را ببيند كه همه داده ها بطور فيزيكي در مانه محلي آن ذخيره شده باشد. استقلال ازمحل ذخيره سازي داده ها، يك جنبه مطلوب به حساب مي آيد، زيرا عمليات در پايانه ها و برنامه هاي كاربران را ساده تر مي كند ، خصوصاً اين ويژگي، به داده ها اجازه مهاجرت يا جابجايي بين مانه ها را مي دهد، بدون اينكه برنامه هاي كاربران نا معتبر شوند.

با قابليت مهاجرت داده ها، سيستم قادر خواهد بود آنها را در طول شبکه جا به جا کند تا کارايي سيستم را بهتر کند. كاربر سيستم از اين جابجايي ها نامطلع است.
۵٫۵٫ استقلال از چگونگي پارسازي داده ها
اگر بتوان اگر يك رابطه ذخيره شده را به قطعاتي تفكيك كرد و آن ها را در مانه هاي مجزا ذخيره کرد، سيستم پارسازي داده ها را پشتيباني مي كند.

پارسازي با هدف افزايش كارايي يك قابليت مطلوب به شمار مي آيد. داده ها مي توانند در محل هايي كه بيشتر مورد استفاده قرارمي گيرند ذخيره شوند ، بنابراين بيشتر عمليات، بصورت محلي انجام مي گيرد و ترافيك شبكه كاهش مي يابد.
رابطه کارمند( EMP ) كه در محيط واقع حاوي نمونه موجوديت هاي كارمند است، را در نظر بگيريد.
در سيستمي كه پارسازي داده ها را پشتيباني مي كند مي توانيم دو پاره را به شكل زير تعريف مي كنيم:
FRAGMENTATION EMP INTO
N_EMP AT SITE ‘New York’ WHERE DEPT# =’D1′ OR DEPT#=’D3′;
L_EMP AT SITE ‘C2′ WHERE DEPT# =’D2’

شكل ۶ – نمونه اي از پارسازي داده ها[DATE2000]
‌ در رابطه هاي بالا فرض براين است كه «D1» و «D3» دپارتمان « نيويورک»و«D2» دپارتمان «لندن» است. به بيان ديگر تاپل هاي كارمندان «نيويورک» در مانه واقع در« نيويورک» و تاپل كارمندان «لندن» در مانه واقع در آن شهر ذخيره خواهد شد.
با پارسازي و نسخه سازي داده ها، مي توان داده هاي سيستم را بطور فيزيکي در مانه هاي مختلف توزيع نمود.

در اساس دو نوع پارسازي داده ها داريم، پارسازي افقي و پارسازي عمودي. اين پارسازي ها با کمک عملگرهاي گزينش و پرتو صورت مي گيرد. بطور كلي تر ، يك پاره ، زير رابطه اي است دلخواه كه قابل اشتقاق از رابطه اصلي بوسيله عملگرهاي گزينش و پرتو باشد. بدون اينكه به كليت موضوع خدشه اي وارد شود، براي سادگي فرض مي كنيم كه تمام پارهاي داده شده براي يك رابطه از هم مجزا هستند، به عبارتي هيچ پاره اي را نمي توان از پارهاي ديگر بدست آورد، يا هيچ پاره اي گزينش يا پرتو پاره ديگر نيست. (‌ اگر نياز محيط عملياتي به داشتن پاره هاي يكسان در مانه هاي مختلف باشد از مكانيزم تكرار استفاده مي كنيم .)

• اگر براي ايجاد پارها از عملگر پرتو استفاده شود، پرتو بايد بي گمشدگي باشد.
بازسازي رابطه اصلي ازروي پارها با استفاده مناسب از عملگرهاي پيوند و اجتماع امكان پذير است ( پيوند براي پارسازي عمودي و اجتماع براي پارسازي افقي).

در بحث پارسازي عمودي براي آنكه پارسازي بي گمشدگي باشد بايد در نظر گرفت که پرتو يك رابطه به دو رابطه بايد به نحوي باشد كه پيوند آنها دوباره همان رابطه اصلي را به ما بدهد .مثلا اگر روي رابطه EMP دو پرتو ( EMP# و( DEPT# و ( SALARY ) زده شود، از پيوند اين دو پرتو، نمي توان همان رابطه EMP را بدست آورد. در برخي سيستم ها، رابطه هاي ذخيره شده يك صفت مجازي- «شناسه تاپل» يا TID- دارند كه TID آدرس فيزيكي يا منطقي براي يك تاپل ذخيره شده است.

TID بطور مشخص، كليد كانديد رابطه در پرسش ها است و از ديد کاربر پنهان است. واضح تر آنکه،TID جزء صفات اصلي رابطه نيست و در مرحله طراحي منطقي داده ها اين صفت ديده نشده است، تنها صفتي است که سيستم خود آن را به مجموعه صفات رابطه مي افزايد تا بتواند پارسازي را پياده سازي نمايد. بنابراين اگر رابطه EMP صفت TID داشته باشد، مي توان آن را به دو رابطه زير پارسازي کرد:
EMP(EMP# , DEPT#, SALARY) = R1 (TID , EMP# , DEPT# ) UNION R2( TID , SALARY)
پارسازي بالا كاملاً بي گمشدگي است.

سيستمي كه پارسازي داده ها را پشتيباني مي كند همچنين بايد از استقلال از چگونگي پارسازي ( يا به عبارتي پنهان سازي چگونگي پارسازي ) نيز حمايت كند . كاربران حداقل از ديدگاه منطقي بايد به نحوي با سيستم كاركنند كه مانند سيستم متمركز ديده شود. استقلال ازچگونگي پارسازي نيز مانند استقلال محلي مطلوب است ، زيرا برنامه هاي كاربران ساده تر مي شود . بطور خاص، اين امكان اجازه مي دهد تا بدون اينكه تغييري در اعتبار برنامه هاي كاربردي كاربران ايجاد شود،

داده ها رادر هر لحظه، از پاره ها بازيابي كنيم تا بتوانيم كارايي بهتري را براي سيستم فراهم نماييم. با اين امکان، يك ديد انتزاعي از پايگاه داده ها براي كاربر ارائه مي شود كه در آن پارها بوسيله پيوند و اجتماع هاي مناسب، بطور منطقي با هم تركيب شده اند. بهينه ساز سيستم موظف است تا تعيين كند كدام پاره كدام مانه بطور فيزيكي قرار گيرد تا در خواست هاي كاربران به بهترين شكل پاسخ داده شود.
دوباره رابطه EMPرا درنظر بگيريد. فرض كنيد كاربري در خواست زير را داده است :
EMP WHERE SALARY > 40K AND DEPT# = ‘ D1’
بهينه ساز، براساس تعريف پارها ( كه قطعاً در كاتالوگ سيستم قرار دارد ) تشخيص مي دهد كه تمام نتيجه را مي تواند از مانه نيويورك بدست آورد. در اين وضع ديگر هيچ نيازي به دسترسي به مانه لندن نمي بيند .

با نگاهي دقيقتر به اين مثال، مي توان رابطهEMP را يك ديد روي پارهاي N_EMP و L_EMP در نظر گرفت:
EMP = N_EMP UNION L_EMP
با اين ديد ، بهينه ساز سيستم ، در خواست كاربر را براي اجرا به صورت زير تبديل مي كند :
( N_EMP UNION L_EMP ) WHERE SALARY > 40K AND DEPT# = ‘ D1’
عبارت فوق را مي توان به صورت زير نيز تبديل كرد :
( N_EMP WHERE SALARY > 40K AND DEPT# = ‘ D1’ )
UNION
( L_EMP WHERE SALARY > 40K AND DEPT# = ‘ D1’ )
بر اساس تعريفِ پاره ي L_EMP در كاتالوگ، بهينه ساز تشخيص مي دهد که مجموعه جواب بخش دوم عبارت فوق همواره تهي است(‌ شرط تحديد DEPT# = ‘ D1’ AND DEPT# = ‘D2’ هرگز درست نيست ).
بنابراين تمام عبارت توسط بهينه ساز بصورت زير ساده مي شود :
N_EMP WHERE SALARY > 40K AND DEPT# = ‘ D1’
اكنون بهينه ساز مي داند كه تنها دسترسي به مانه نيويورك براي پاسخ به پرسش مذكور كافي مي باشد.

۵٫۶٫ استقلال ازچگونگي نسخه سازي داده ها
يك سيستم نسخه سازي داده را پشتيباني مي كند اگر، يك رابطه ذخيره شده يا بطور كلي تر يك پارِ داده شده را بتوان با نسخه هايي متعدد ( چندين رونوشت ) ذخيره شده در مانه هاي مختلف ايجاد كرد. منظور از پشتيباني سيستم مديريت پايگاه داده از نسخه سازي آن است که بتوان نسخه هايي از رابطه(هاي) ذخيره شده را در مانه هاي مختلف ايجاد و ذخيره نمود.

بعنوان نمونه با کمک عبارت زير، رابطه N_EMP که خود حاصل پارسازي رابطه EMP است را روي دو مانه نيويورک و لندن تکرار مي کنيم. پس از اين نسخه سازي، کاربران هريک از مانه هاي مذکور مي توانند به داده هاي رابطهEMP بطور محلي دسترسي داشته باشند بي آنکه نيازي به دسترسي از راه دور باشد.

REPLICATE N_EMP
LN_EMP AT SITE ‘New York’;
REPLICATE L_EMP
NL_EMP AT SITE ‘New York’;

شكل ۷- نمونه اي از نسخه سازي داده[DATE2000]
نسخه سازي ]حداقل[ به دو دليل مطلوب است:
• اول: باعث افزايش كارايي مي شود ( برنامه هاي كاربردي مي توانند بجاي اينكه با مانه هاي دور ارتباط بر قرار كنند، روي نسخه هاي محلي عمل كنند. چون داده ها در مانه ها تكرار شده اند ديگر نيازي به دسترسي از راه دور نيست).

• دوم: مي تواند باعث دسترس پذيري بهتر شود ( يك شي نسخه سازي شده به منظور پردازش تا زماني كه حداقل يك رونوشت از آن،]حداقل براي عمل بازيابي[ در مانه اي وجود داشته باشد، قابل دسترسي خواهد ماند).

عيب اصلي نسخه سازي داده بطور وضوح، اين است كه هنگامي كه يك شي نسخه سازي شده بهنگام مي شود، تمام نسخه هاي آن شي بايد بهنگام شود. اين وضعيت همان انتشار بهنگام سازي و عمل آن بهنگام سازي منتشر شونده ناميده مي شود. در اين گونه از بهنگام سازي، با اجراي تراکنش مربوط عمل بهنگام سازي روي رابطه(ها)يي ديگري نيز صورت مي گيرد. به زبان ساده تر و با صرف نظر از پاره اي جزئيات، تراکنشي که منطقاً روي رابطه اي خاص اجرا مي شود، در عمل روي رابطه هاي ديگر نيز تاثير مي گذارد.

ذکر اين نکته ضروري به نظر مي رسد که بهنگام سازي منتشر شونده گونه هايي دارد و تنها مختص به سيستم هاي توزيع شده نمي باشد. گاه براي آنکه سازگاري پايگاه داده ها برقرار باشد، از رهانا استفاده مي شود. در بيشتر موارد، استفاده از رهانا با قبول بهنگام سازي منتشر شونده همراه است.

نسخه سازي داده ها به نوعي افزونگي كنترل شده داده ها را نيز بهمراه دارد . مطلوب آن است كه نسخه سازي (مانند پارسازي) از ديد كاربر پنهان باشد. به بياني ديگر، سيستمي كه نسخه سازي داده ها را پشتيباني مي كند بايد استقلال از چگونگي نسخه سازي و يا پنهان سازي طرز نسخه سازي را نيز پشتيباني كند. با استقلال ازچگونگي نسخه سازي مي توان نسخه هاي مختلف داده را ايجاد وحذف نمود، بدون اينكه هيچ تغييري در اعتبار برنامه كاربرديِ كاربران ايجاد شود.

دسترسي به هر نسخه از يك رابطه به ازاي در خواست كاربر، بعهده بهينه ساز سيستم است و اين بخش از سيستم است كه تشخيص مي دهد كدام نسخه بطور فيزيكي بايد مورد دسترسي قرار گيرد تا به نياز كاربر پاسخ داده شود. استقلال ازچگونگي نسخه سازي داده ها نيز به دلايلي بطور صد در صد قابل تحقق نيست .

۵٫۷٫ پردازش در خواست هاي توزيع شده
دو نكته مهمي که در مورد اين بخش بايد بررسي شود در مثال زير بيان شده است.
• درخواست « تهيه كنندگان لندني كه قطعه قرمز رنگ تهيه كردند»را در نظر بگيريد . فرض كنيد كاربر در مانه نيويورك قرار دارد و داده هاي مورد نياز، بطور فيزيكي در لندن ذخيره شده اند و تعداد n تاپل جواب اين در خواست باشد . اگر سيستم رابطه اي باشد ، در خواست اساساً شامل دو پيغام مي شود. يكي براي ارسال در خواست از نيويورك به لندن و ديگري براي برگرداندن مجموع

جواب n تاپلي از لندن به نيويورك. از طرف ديگر اگر سيستم رابطه اي نباشد اما در هر لحظه يك ركورد را پردازش كند ، در خواست ۲n پيغام را شامل مي شود ، n پيغام از نيويورك به لندن براي در خواست «تاپل بعدي» و n پيغام از لندن به نيويورك به منظور برگرداندن تهيه كننده «بعدي».
• بهينه سازي . براي پاسخ دهي به درخواست هايي مانند درخواست بالا از سوي كاربر ، سيستم ممكن است مجبور به انتقال حجمي از داده ها از مانه]هايي[ به مانه]هاي[ ديگر شود و براي اين انتقالات جايگشت هاي مختلفي داشته باشد. مهم انتخاب بهترين استراتژي است .

مثلا ً پاسخ به در خواست اجتماع رابطه واقع در مانه xو رابطه واقع در مانه y را مي توان با انتقال به y يا با انتقال به x يا با انتقال هر دو به مانه سومي مثل z پاسخ داد .
۵٫۸٫ مديريت تراكنش هاي توزيع شده

دو جنبه مهم در بحث مديريت تراكنش ها مطرح است؛ كنترل ترميم و كنترل همروندي كه هر يك نياز به توجه بيشتري در محيط هاي توزيع شده دارند. ابتدا لازم است تا عبارت جديدي به نام عامل يا کارگزار تعريف شود. در سيستم توزيع شده، يك تراكنش مي تواند باعث اجراي كدهايي در تعداد زيادي از يا انتشار بهنگام سازي در چند مانه شود . بنابراين هر تراكنش شامل تعدادي عامل است که مي تواند روي مانه هايي اجرا شود.

عامل، پردازشي است كه در پس يك تراكنش در يك مانه داده شده اجرا مي شود . سيستم بايد بداند كه چه موقع دو عامل براي يك تراكنش اجرا شده اند . بعنوان مثال ، دو عامل كه هر دو براي يك تراكنش اجرا مي شوند، نبايد توسط هم دچار بن بست شوند.
در يک محيط توزيع شده پايگاهي، تراکنش ها بايد تجزيه ناپذير باشند. منظور از تجزيه ناپذيري آن است که مجموعه عامل هاي يک تراکنش، يا همگي بايد اجرا يا همگي واگردانده شوند. اين جنبه را مي توان با استفاده از پروتكل اجراي دومرحله اي تا حدودي تامين کرد.
بطور معمول كنترل همروندي در اكثر سيستم هاي توزيع شده، بر اساس مفهوم قفل گذاري بنا شده است كه از اين جنبه مشابه سيستم هاي متمركز مي باشد .

۵٫۹٫ استقلال از سخت افزار
استقلال سيستم توزيع شده پايگاهي از سخت افزاري كه روي آن اجرا مي شود نياز به توضيح چنداني ندارد و بطور مسلم قابليت مطلوبي به شمار مي آيد . در دنياي واقع و در سطح سخت افزار ، كامپيوتر ها انواع مختلفي دارند : ماشين هاي HP,DEC,IBM و PC ها. مطلوب آن است كه به كاربر يك « تصوير تك سيستمي» ارائه شود.

۵٫۱۰٫ استقلال از سيستم عامل
استقلال از سيستم عامل به نوعي با استقلال سخت افزار همراه است. حالت مطلوب آن است كه نه تنها بتوان يك DBMSرا روي سخت افزارهاي مختلفي اجراي كرد بلكه بتوان آنرا روي سيستم عامل هاي مختلفي نيز به اجرا درآورد و DBMS به سخت افزار يا سيستم عامل خاصي وابسته نباشد.

۵٫۱۱٫ استقلال از شبكه
اگر DDBMS قابليت استقلال ازسخت افزار و سيستم عامل را داشته باشد، مطلوب است كه از اتصالات شبكه هم مستقل باشد. اين عدم وابستگي در سطح سخت افزار، سيستم عامل و شبكه، DDBMS را کاربردي تر و سازگارتر با سيستم هاي موجود مي سازد.

۵٫۱۲٫ استقلال از DBMS.
با اين امكان، فرض همگن بودن DBMSها براي ايجاد يك سيستم پايگاهي توزيع شده-DDBMS -برداشته مي شود. در اين وضع ديگر نيازي نيست كه DBMSهاي واقع در مانه هاي مختلف نسخه هاي مشابه از يك سيستم مديريت پايگاه داده باشند و تنها كافيست كه همگي از واسط واحدي پشتيباني كنند. بعنوان مثال اگر INGRESو ORACLEهردوSQL استاندارد را پشتيباني كنند ، امكان اين وجود دارد كه هر كدام از مانه هاي ORACLE و INGRES بتوانند از طريق يك سيستم توزيع شده با هم ارتباط بر قرار كنند .

مطلوب (حداقل از ديدگاه تئوري)آن است كه يك سيستم توزيع شده پايگاه داده ها، تمام دوازده مورد ذكر شده را پشتيباني كند، اما بدليل محدوديت هايي كه در جهان واقع وجود دارد رعايت همزمان و كامل تمام موارد بالا در عمل امكان پذير نيست. بعلاوه موارد ذكر شده را مي توان بعنوان معياري جهت سنجيدن و قياس بين سيستم هاي توزيع شده مختلف بكار برد.

۶٫ پايگاه داده هاي توزيع شده همگن و ناهمگن
در پايگاه داده هاي توزيع شده همگن، تمام مانه ها داراي نرم افزار مديريت پايگاه داده يكسان هستند و هر مانه ضمن اطلاع از مانه هاي ديگر قابليت پردازش توزيع شده درخواست كاربر را دارد. در چنين سيستمي ، هر مانه بخشي از خودمختاري خود را براي بر اساس تغيير در شماي پايگاه داده هاي خود از دست مي دهد. اين سيستم بعلاوه بايد قادر به پردازش تراكنش توزيع شده باشد تا بتواند درخواست هاي توزيع شده را جواب دهد.

در سيستم هاي پايگاهي توزيع شده ناهمگن، هر مانه داراي نرم افزار مديريت پايگاه داده ها و شماي خاص خود مي باشد كه لزوماً با ديگر مانه ها يكسان نيست. مانه ها ممكن است از وجود هم مطلع نباشند(در اين حالت،برقراي ارتباط مي تواند با استفاده از بك مانه هماهنگ كننده باشد).در اين سيستم، امكانات كمتري براي پردازش هاي توزيع شده وجود دارد و قابليت مانه ها براي اين امكان نيز كمتر است. تفاوت در شماهاي پايگاه داده ها و نرم افزار مديريت پايگاه داده در مانه ها، يكي از مسائلي است كه در اين سيستم ها وجود دارد كه اين اختلاف نرم افزار خود عامل كاهش سرعت پاسخگويي در تراكنش هاي توزيع شده اي است كه نيازمند دسترسي به چند مانه مي باشد.

۷٫ مشکلات سيستم هاي توزيع شده
در اين بخش بطور مشروح به جزئيات برخي از مشکلات سيستم هاي توزيع شده پرداخته مي شود. ارتباط شبكه حداقل در شبكه هاي گسترده محلي- LAN – نسبتاً كند است. يك شبكه گسترده – WAN – خاص ممكن است نرخ انتقال داده هاي موثري در حدود ۵ تا ۱۰هزار بايت در ثانيه داشته باشد. از طرفي، يك ديسك سخت بطور معمول ، نرخ انتقال داده هايي در حدود ۵ تا ۱۰ ميليون بايت در ثانيه دارد. ( شبكه هاي محلي نيز نرخ انتقالي در حدود ديسك هاي سخت دارند )

. در نتيجه يك هدف مهم در سيستم هاي توزيع شده از طريق شبكه، كمينه كردن بكارگيري شبكه ، بمنظور كمينه كردن تعداد و اندازه پيغام ها مي باشد. از طرف ديگر،اين هدف مشکلات زير را در پي دارد:
• پردازش درخواست
• مديريت كاتالوگ
• بهنگام سازي منتشر شونده
• كنترل ترميم
• كنترل همروندي
۷٫۱٫ پردازش در خواست

ديدگاه کاهش استفاده از شبكه درپردازش درخواست ها، باعث مي شود تا خود فرايند بهينه سازي در خواست نيز مانند فرايند اجراي در خواست نياز به توزيع داشته باشد . به بيان ديگر تمام فرايند بهينه سازي ، بطور كلي شامل يك مرحله بهينه سازي سراسري و به دنبال آن مراحل بهينه سازي محلي ، در مانه تحت تاثير مي باشد. فرض كنيد در خواست Q از مانه Xصادر شده است

و نيز فرض كنيد درخواست Q شامل اجتماع رابطه با يكصد تاپل در مانه Y و رابطه با يك ميليون تاپل در مانه Z باشد. بهينه ساز در مانه Xاستراتژي سراسري را براي اجراي در خواست Q بكارمي گيرد، و نكته مهم اين است كه بهينه ساز تصميم مي گيرد كه را به مانه Z انتقال دهد نه را به Z( يا هر دو را به X ) . پس از آنكه تصميم گرفته شد تا به مانه Z منتقل شود ، استراتژي جهت كارايي اجتماع واقعي در مانه Z بوسيله بهينه ساز محلي در مانه Z صورت مي گيرد .

در مثال زير بطور مفصل نكات بالا را توضيح داده مي شود.
رابطه هاي تهيه کننده(S)، قطعه(P) و خريدقطعه(SP) را در نظر بگيريد. فرض کنيد:

S 10,000 Stored tuple at site A
P 100,000 Stored tuple at site B
SP 1,000,000 Stored tuple at site A

فرض كنيد طول هر تاپل ذخيره شده ۲۵ بايت ( ۲۰۰بيت ) است .
درخواست « شماره تهيه كنندگان لندني كه قطعه قرمزرنگ تهيه كرده اند» را در نظر بگيريد.شکل ديگر اين درخواست در حساب رابطه اي بصورت زير بيان مي شود:
S.S# WHERE EXISTS SP
EXISTS P ( S.CITY = c2
AND S.S# = SP.S#
AND SP.P# = P.P#
AND P.COLOR = ‘ Red’ )
كارديناليتي ارزيابي شده ( برآورده شده ) نتايج مياني :
تعداد قطعات قرمزرنگ- ۱۰
تعداد قطعه هاي خريداري شده بوسيله تهيه كنندگان لندني – ۰۰۰/۱۰۰
پارامترهاي فرضي مربوط به ارتباط :
نرخ انتقال – bps 000/50
تاخير دسترسي = ۱/۰ ثانيه

 

براي پردازش اين در خواست، شش استراتژي ممكن وجود دارد كه در اينجا هر يك را شرح داده مي شود. زمان انجام درخواست در استراتژي i ام را با T[i] بر اساس فرمول زير مشخص مي كنيم :
( نرخ انتقال / مجموع حجم داده ) + مجموع تاخير دسترسي = T[i]
( 50000 /تعداد بيت ) + ( ۱/۰* تعداد پيغام ها ) =
۱- انتقال رابطه P به مانه A و پردازش در خواست در مانه A .
T[1]= =1/0 + ( 100000*200 ) / 50000 = ثانيه۴۰۰  ۹۷/۶ دقيقه
۲- انتقال رابطه S و SP به مانه B و پردازش در خواست در مانه B .

T[2]= 2/0 + ( (10.000+100.000) * 200) / 50.000 = ثانيه ۴٫۰۴۰  ۱۲/۱ ساعت
۳- پيوند رابطه S و SP در مانه A ، تحديد تاپل هاي نتيجه با شرط تهيه كنندگان لندني ، سپس به ازاي هر يك از تاپل ها در مقابل ، مانه B را بررسي كنيم كه آيا رنگ قطعه مطابق با تاپل، قرمز است يا نه . هر يك از اين بررسي ها شامل دو پيغام است : يك در خواست و يك پاسخ به در خواست ، زمان انتقال براي اين پيغام ها در مقابل تاخير دسترسي اندك است ، پس :
T[3]= ثانيه ۲۰۰۰  ساعت ۵۶/۵
۴- تاپل ها ي رابطه P را در مانه B با شرط قطعات قرمز رنگ گزينش مي كنيم ، سپس براي هر كدام از اين تاپل ها در مانه A بررسي مي كنيم آيا معامله اي بين تهيه كننده لندني و قطعه مذكور در مانه B صورت گرفته يا نه . هر كدام از اين بررسي ها نيز دو پيغام را شامل مي شود ؛ در اين حالت نيز زمان رد و بدل اين پيغام ها در مقابل تاخير دسترسي اندك خواهد بود . بنابراين، بطور تقريبي داريم:

T[4]= ثانيه ۲
۵- رابطه S و SP را در مانه A با هم پيوند مي زنيم ، نتيجه را با شرط تاپل هايي كه تهيه كننده آنها لندني هستند گزينش مي كنيم . سپس روي S# و P# تاپل هايِ نتيجه، پرتو مي زنيم و نتيجه را به مانه B منتقل كرده و باقيمانده پردازش را در B تكميل مي كنيم :
T[5]= 2/. + (200*100.000 ) / 50.000 = ثانيه ۴۰۰  دقيقه ۹۷/۶
۶- تاپل هاي رابطه P در مانه B را، با شرط كالاهاي قرمز رنگ گزينش كرده و نتيجه را به مانه A انتقال مي دهيم . بقيه پردازش را در مانه A كامل مي كنيم :
T[6]= 1/. +( 200*10 ) /50.000  ثانيه ۱/.

• هر كدام از ۶ حالت ذكر شده يك روش براي پاسخگويي به پرسش فوق است ، اما تغييرات بين زمان ارتباط در استراتژي ها قابل توجه است .( كندترين زمان ۲ ميليون برابر كندتر از سريعترين است ) .
• نرخ انتقال و تاخير دسترسي دو فاكتور مهم در انتخاب استراتژي هستند .

شكل ۸- مقايسه زماني روش هاي پردازش تراكنش توزيع شده
• زمان پردازش ( محاسبه ) و I/O نيز در مقابل با زمان ارتباط قابل چشم پوشي هستند .
بعلاوه برخي استراتژي ها اجازه پردازش موازي در دو مانه را بطور همزمان مي دهند ، در نتيجه زمان پاسخ گويي در مقايسه با سيستم مركزي حتي ممكن است كمتر نيز باشد.
۷٫۲٫ مديريت كاتالوگ
در يك سيستم توزيع شده ، كاتالوگ سيستم نه تنها شامل داده هاي معمول كاتالوگ ديگر سيستم هاست ( با توجه به رابطه هاي اصلي، ديد ها، شاخص ها و كاربران) بلكه حاوي داده هاي كنترلي لازم جهت تامين استقلال از محل ذخيره سازي، استقلال از پارسازي و استقلال از نسخه سازي نيز مي باشد

.
اما سوال مهمي كه مطرح مي شود اين است: «خود كاتالوگ را كجا و چگونه ذخيره كنيم؟»
راههاي زير متصورند:
۱- بطور متمركز . تمام كاتالوگ بطور كامل و دقيقاً يكبار در يك مانه مركزي ذخيره شود.
۲- كاملاً نسخه سازي شده . تمام كاتالوگ بطور كامل در هر يك از مانه ها نگهداري شود .(هر مانه يك نسخه كامل از كاتالوگ سيستم را دارد)
۳- بخش بندي شده . هرمانه كاتالوگ خودش را براي شيء هاي ذخيره شده در خود را دارد.
در اين حالت كاتالوگ كامل سيستم ، از اجتماع اين كاتالوگ هاي مجزا حاصل مي شود.
۴- تركيبي از حالت ۱و۳ . هرمانه كاتالوگ محلي خود را دارد. بعلاوه يك مانه مركزي يك رونوشت از تمام كاتالوگ هاي محلي را داراست .
هر كدام از اين راهها مشکلات خاص خود را دارد . راه اول، به وضوح «عدم وابستگي به يك مانه مركزي» را نقض مي كند .
راه حل دوم از نقطه نظر استقلال شديداً ضعيف است ، چون بهنگام سازي هر كاتالوگ بايد در هر كدام از مانه ها منتشر شود. راه حل سوم عمليات غير محلي را بسيار پرهزينه مي كند (يافتن شي دور بطور ميانگين نياز به دسترسي به نصف مانه ها دارد) . ديدگاه چهارم از ديدگاه سوم كاراتر است (يافتن شيئ دور تنها نياز به دسترسي به يك كاتالوگ دور دارد )، اما اين ديدگاه نيز هدف «عدم وابستگي به يك مانه مركزي» را برآورده نمي سازد. در عمل ، سيستم ها از هيچ كدام از اين ديدگاه ها استفاده نمي كنند .

بعنوان مثال روش استفاده شده در سيستم را مورد بررسي قرار مي دهيم.
بمنظور آشنايي با ساختار كاتالوگ در بهتر است ابتدا در مورد ، نامگذاري اشياء صحبت شود.
چون احتمال دارد كه مانه مجزا مانند BوA شيء داده اي يكساني-مثلاً يك رابطه ذخيره شده مثل R- داشته باشند. درنتيجه، اشياءداده اي مانه ها، با اسم مانه مي شوند. درواقع، براي آنكه تضمين شود اسم كامل شيء يكتاست، از نام مانه بعنوان پيشوند براي نام شيء داده استفاده مي شود ( مانند Site1.Object1 ) . از سوي ديگر، اگر نام چندي نما براي كاربر نمايش داده شود ، مشخص است كه هدف استقلال از محل ذخيره سازي داده ها، نقض خواهد شد.

يك ابزار نگاشت لازم است تا اسم اشياء ديد كاربر را به اسم معادل آن، كه براي سيستم شناخته شده است، تبديل نمايد. ساده تر اينكه، اگر تابع تبديلي داشته باشيم كه نام اشياء را از ديد كاربر به نام كامل آنها كه براي سيستم شناخته شده است تبديل نمايد، هم به استقلال از محل ذخيره سازي داده هاخدشه اي وارد نكرديم و هم مي توانيم يكتايي نام اشياء براي سيستم را تضمين كنيم.
بين اسم قابل نمايش شيء – اسمي كه بطور معمول توسط كاربر ارجاع داده مي شود (مثلاً دريك دستورSQL SELECT ) – و اسم گسترده سيستمي آن -كه اسم واحد و سراسري يك شي يا به عبارتي شناسه آن است- تفاوت قائل است.
اسم گسترده سيستمي اشياء، چهار مولفه دارد.

• شناسه سازنده ( كاربري كه شيئ را ايجاد كرده است ).
• شناسه مانه سازنده (ID مانه اي كه دستورCREATE در آن وارد شده است ).
• نام محلي ) اسم محلي شيئ ).
• شناسه مانه توليد (ID مانه اي كه شيئ اولين بار در آن ذخيره شده است ).
بعنوان مثال، اسم گسترده سيستمي

Ammar @Tehran.StdRel@Poldokhtar
شي اي را مشخص مي كند (در اينجا، يك رابطه ذخيره شده ) كه اسم محلي آن StdRel است ، توسط كاربري بنام عمار در مانه تهران ايجاد گشته و ابتدا در مانه پلدختر ذخيره شده است. در سيستم تضمين شده كه اين نام به هيچ وجه، حتي هنگامي كه شيئ از مانه اي به مانه ي ديگر انتقال ( مهاجرت) يابد، تغيير نكند. .

همانطور كه بيان شد، كاربران بطور معمول از طريق اسم قابل نمايش به اشياء رجوع مي كنند. اسم قابل نمايش، اسم ساده بدون پيشوند يا مولفه اسم محلي از اسم گسترده سيستمي، يا يك مترادف براي آن اسم گسترده سيستمي است كه توسط دستور خاص CREATE SYNONYM از دستورات SQL ايجاد شده است . براي مثال :
CREATE SYNONYM SynStdRel FOR Ammar @Tehran.StdRel@Poldokhtar;
پس از تعريف اسم مترادف براي يک شيء، كاربر مي تواند به آن شيء هم از طريق نام اصلي و کامل آن و هم نام مترادف دسترسي داشته باشد.
SELECT … FROM SynStdRel

OR
SELECT … FROM Ammar @Tehran . StdRel @poldokhtar
در حالت اول ( استفاده از اسم محلي )، سيستم به اسم گسترده سيستميِ شيء با در نظر گرفتن تمام مقادير پيش نهاده قبلي- نام محلي شيء،شناسه محل ذخيره، شناسه مانه سازنده، سازنده كاربر سازنده – ارجاع مي كند. يكي از نتايج در نظر گرفتن اين مقادير پيشنهاده آن است كه برنامه هاي كاربردي نسخه قديميR ، بدون نياز به تغيير در سيستم نيز اجرا مي شوند.
در حالت دوم ( استفاده از اسم مترادف ) سيستم ، اسم گسترده سيستمي را با استفاده از جدول مترادف ها تعيين مي كند . جدول مترادف ها را مي توان اولين مؤلفه كاتالوگ دانست . هر مانه اي مجموعه اي از اين جدول ها را براي هر كاربر عضو در آن مانه نگهداري مي كند. با نگاشت (تبديل ) اسم مترادف شئ براساس جدول مترادف هاي هركاربر ، اسم گسترده سيستمي شئ توسط سيستم مشخص مي شود. بجز جداول مترادف ، هر مانه :

۱- يك مدخل در كاتالوگ براي هر شئ ايجاد شده درآن مانه و
۲- يك مدخل كاتالوگ براي هر شئ اخيراً ذخيره شده درآن مانه را نگهداري مي كند.
حال فرض كنيد كه كاربري درخواستي براي ارجاع به نام مترادف SynStdRel صادرمي كند.

ابتدا سيستم براي يافتن اسم گسترده سيستمي مطابق با اين نام، جدول مترادف مناسب را جستجو مي كند (جستجو بطور كاملاً محلي صورت مي گيرد،چون سيستم جدول مترادف همان مانه را جستجو مي كند.) پس از آن ، مانه اي كه شيء در آن توليد شده ،( در اين مثال پلدختر را مي يابد) و مي تواند به سراغ كاتالوگ پلدختر برود .( كه بطور كل ما اين ارجاع را يك دسترسي از راه دور فرض مي كنيم – اولين ارجاع از راه دور ) . كاتالوگ پلدختر حتماً مدخلي براي شيء مورد نظر خواهد داشت ( با در نظر گرفتن نكته ۱ ) اگر شيء مورد نظر همچنان در پلدختر باشد،سيستم. جستجو در کاتالوگ مانه ها را متوقف مي سازد . اگر شيء به مانه ديگري مثل يزد انتقال يافته باشد، مدخل كاتالوگ پلدختر اين اطلاع را به سيستم خواهد داد و اكنون سيستم به سراغ كاتالوگ يزد مي رود. ( دومين دسترسي از راه دور) و بر اساس نكته ۲ كاتالوگ يزد حتماً مدخلي براي شيء مورد نظر خواهد داشت . بنابراين شيء مورد نظر به حداكثر ۲ بار دسترسي از راه دور پيدا خواهد شد. بعلاوه اگر شي دو باره به مانه ديگري مثل ابركوه منتقل شود سيستم اعمال زير را انجام خواهد داد: يك مدخل به كاتالوگ ابركوه مي افزايد. مدخل كاتالوگ تهران را حذف مي كند. مدخل كاتالوگ پلدختر را به نحوي بهنگام مي كند كه بجاي تهران به ابركوه اشاره كند. با اين اعمال ، هنوز يافتن شيء مورد نظر با حداكثر ۲ بار دسترسي از راه دور امكان پذير است .
نكته ديگر اينكه اين شِماي كاتالوگ كاملاً توزيع شده مي باشد و هيچ كاتالوگ مانه مركزي در سيستم وجود ندارد.

۷٫۳٫ انتشار بهنگام سازي
مسئله اصلي در بحث نسخه سازي داده ها اين است كه، هر تغيير در يك شيء محلي بايد با تغيير در تمام نسخه هاي آن شي در مانه هاي ديگر همراه باشد. واضح است كه در سيستم هاي متمركز اين مسئله در اين سطح وجود ندارد.

مشكلي كه وجود دارد اين است كه، در لحظه بهنگام سازي شيء در يكي از مانه ها، ممكن است يكي از نسخه هاي شيء در مانه ديگر در دسترس نباشد (مثلاً بدليل نقص مانه يا شبكه)، دراين حالت امكان انتشار آني تغيير در نسخه هاي شيء وجود ندارد. در نتيجه تراكنش در صورتي كه حتي يكي از نسخه ها در دسترس نباشد امكان پذير نخواهد بود. با اين توضيح به نظر مي رسد كه دسترس پذيري داده در اين حالت نسبت به سيستمي كه در آن نسخه سازي نداريم كمتر باشد.

يك ديدگاه معمول در ارتباط با اين مسئله (البته نه تنها طرح ممكن) طرح نسخه اصلي ناميده مي شود، كه به شرح زير است:
• يك نسخه از هر يك از اشياء نسخه سازي شده را بعنوان نسخه اصلي در نظر مي گيريم. تمام ديگر نسخه هاي آن شيء، نسخه ثانويه ناميده مي شوند .
• نسخه اصلي اشياء مختلف در مانه هاي مختلف قرار مي دهيم(در نتيجه يك طرحِ توزيع شده داريم. نسخه اصلي بايد در مانه مناسب ذخيره شود. ) .

• با به بهنگام شدن نسخه اصلي، ابتدا بطور منطقي فرض مي شود كه عمليات بهنگام سازي تمام شده است . بعد از آن مانه شامل نسخه اصلي، مسئول انتشار بهنگام سازي در ديگر مانه هاي حاوي نسخه ثانويه ي شيء، در يك زمان ديرتر است. اين طرح خود مسائل ديگري را به وجود مي آورد كه بحث در باره آنها از حيطه اين نوشتار خارج است .بحث سازگاري داده ها يکي از اين موارد است.

نكته اين كه اين طرح به نوعي هدف خود مختاري محلي را هم نقض مي كند . چون اگر از نسخه ها در مانه اي دچار خرابي (مشکل) شود، حتي اگر نسخه محلي يك شيء در دسترس باشد، تراكنش انجام نمي شود.
در نسخه هاي تجاري از سيستم هاي توزيع شده امروزي، امكاناتي در نظر گرفته شده تا بهنگام سازي كاربر در زمان قابل تنظيمي انجام شود. در اين محصولات بهنگام سازيِ با تأخير انجام مي گيرد. مسئله اي كه در ارتباط با اين «بهنگام سازي با تاخير» وجود دارد اين است كه ديگر تضميني براي سازگاري پايگاه داده نيست.

به عنوان مثال فرض كنيد يك پايگاه داده توزيع شده براي بانك موجود مي باشد. رابطه Account براي نمايش موجوديت هاي رابطه حساب بانكي در محيط است. دو مانه A و B داريم كه نسخه اصلي رابطه Account در مانه A و نسخه ثانويه آن در مانه B قرار دارد. اگر در مانه A در لحظه عمليات تغيير دهنده اي روي رابطه ذكر شده صورت گيرد، با فرض استفاده از روش بهنگام سازيِ با تاخير، بعد از يك تاخير زماني مانند ثانيه، رابطه Account در مانه B نيز به روز خواهد شد.

حال اگر در همان لحظه در مانه B درخواستي از سوي كاربر به منظور خواندن تاپلي]هايي[ از رابطه B صادر شود، از لحظه صدور درخواست تا ثانيه بعد از آن ،پايگاه داده مي تواند ناسازگار باشد. در حقيقت، در اين بازه زماني آنچه در مانه B از رابطه واحد Account مي بينيم با آنچه در مانه A قرار دارد،مي تواند يكسان نباشد و اين ناسازگاري پايگاه داده را در پي دارد.مگر اينكه براي اين مشكل تدبيري انديشيده شود. يک راه اين است که لحظه بهنگام سازي رابطه Account ، بمدت هر گونه دسترسي به اين رابطه را در مانه هاي ديگر رد كرد،که البته اين راه حل، عدم دسترس پذيري داده را ايجاد مي كند.

با نگاهي دقيقتر به بهنگام سازي با تاخير، اين بحث را جمع بندي مي كنيم :
۱- هدف نسخه سازي در يك سيستم با بهنگام سازي به تأخير افتاده را مي توان بعنوان يك كاربرد محدود از ايده عکس لحظه اي دانست.
۲- دليل اينكه سيستم هاي تجاري توزيع شده، نسخه سازي را با بهنگام سازي با تأخير پياده سازي مي كنند اين است كه بهنگام سازي تمام نسخه ها قبل از انجام، نياز به پشتيباني تثبيت دو مرحله اي دارد. تثبيت دو مرحله اي مستلزم آن است كه تمام مانه هاي مربوطه فعال بوده و در مدت زمان انجام، در حال اجراباشند و اين مي تواند خيلي پرهزينه باشد.

۷٫۴٫ كنترل ترميم
كنترل ترميم در سيستم هاي توزيع شده پايگاهي بطور معمول، بر اساس پروتكل «تثبيت دو مرحله اي» (يا ديگر پروتكل هاي مشابه آن)است. تثبيت دو مرحله اي، در هر محيطي كه يك تراكنش براي انجام شدن، مي تواند با چندين مديريت منبع خودمختار تعامل كند، ضروري به نظر مي رسد. در بحث کنترل ترميم،ذکر موارد زير ضروري است:
۱- هدف «عدم وابستگي به يك مانه مركزي» اين را مي رساند كه وظيفه تابع هدايت كننده نبايد به يك مانه مجزا و مشخص شده در شبكه محول شود، بلكه بايد توسط مانه هاي مختلف و به ازاي تراكنش هاي متفاوت انجام گيرد. بطور معمول، اين وظيفه در مانه اي كه تراكنشِ درخواست در آن شروع شده است اداره مي شود. در نتيجه هر مانه بايد قادر باشد در نقش مانه هدايت كننده براي برخي تراكنش ها و در نقش شركت كننده در ديگر تراكنش ها عمل کند.

۲- تثبيت دو مرحله اي نياز به يك هدايت كننده براي بر قراري ارتباط با هريك از مانه هاي شركت كننده دارد .برقراري ارتباط از طريق تبادل پيغام صورت مي گيرد. اين پيغام هاي اضافي هزينه سربار را بيشتر مي کند. البته استقلال از مانه مركزي را نبايد فراموش كرد.

۳- اگر مانه اي در يك فرايند تثبيت دو مرحله اي در نقش شركت كننده قرار گيرد و مانه اي ديگر در نقش هدايت كننده باشد، آنگاه مانه شرکت کننده بايد هر آنچه توسط مانه هدايت کننده گفته مي شود اجرا كند ( اجرا يا لغو عمليات ) كه اين باعث كاهش خود مختاري محلي مي شود .
۴- ايده آل آن است كه فرايند تثبيت دو مرحله اي حتي در مواقعي كه خرابي در هر نقطه از شبکه نيز رخ دهد، كار كند. ايده آل تر آنكه، پردازش در حال انجام در مقابل هر نوع خرابي قابل تصور ،

عكس العمل مناسب داشته باشد. متأ سفانه به سادگي مي توان ديد كه اين مورد اساساً قابل حل نيست . در واقع هيچ پروتكلي وجود ندارد كه تضمين كند تمام جنبه ها يك تراكنش موفق را بطور همگن اجرا خواهد كرد يا يك تراكنش ناموفق را در مواجه با هر خطاي رخ داده در سيستم( مانند خرابي شبکه) واگردَاند.

براي اين که نشان دهيم چنين پروتكلي وجود ندارد ، فرض كنيد N حداقل تعداد پيغام مورد نياز براي اجراي پروتكل مذكور باشد. اكنون فرض كنيد آخرين پيغام از اين N پيغام بدليل بروز نقص از بين رفته است . بنابراين حتي اگر پيغام از دست رفته يك پيغام غير ضروري باشد ، فرض قضيه را كه N پيغام را حداقل پيغام لازم در نظر گرفته بود، را نقض مي كند . چون با كمتر از N پيغام پروتكل درست كار نمي كند . در نتيجه با رسيدن به تناقض اثبات شد كه چنين پروتكلي وجود ندارد.] [DATE2000

۷٫۵٫ كنترل همروندي
كنترل همروندي در بيشتر سيستم هاي توزيع شده درست مانند سيستم هاي متمركز بر مبناي قفل گذاري است. به هرحال در يك سيستم توزيع شده درخواست براي تست نمودن قفل، قفل گذاري يا قفل گشايي بوسيله تبادل پيغام ها صورت مي گيرد و پيغام يعني هزينه سربار. بعنوان مثال تراكنشي را در نظر بگيريد كه بايد يك شيء را كه نسخه هايي در n مانه دور دارد، بهنگام كند. اگر هر مانه مسئول قفل هاي روي اشياء همان مانه باشد (كه اين در راستاي فرض خود مختاري محلي است) آنگاه اجراي اين تراکنش، حداقل نياز به n5 پيغام است.

• n پيغام درخواست قفل گذاري
• n پيغام درخواست تضمين قفل
• n پيغام بهنگام سازي
• n پيغام تاييد
• n پيغام در خواست قفل گشايي

روش قبلي را مي توان با تركيب كردن بعضي از پيغام ها، بهبود داد. مثلاً پيغام در خواست قفل گذاري و پيغام بهنگام سازي را با هم تركيب كرد و در قالب يك پيغام فرستاد. همچنين مي توان پيغام تضمين قفل وپيغام تاييد را نيز با هم فرستاد، اما همچنان زمان مجموع براي بهنگام سازي چندين مرتبه از حالتي كه سيستم متمركز است بيشترمي باشد .

يک راه حل متداول براي حل اين مسئله، پذيرفتن استراتژي نسخه اوليه ( اصلي ) مورد بحث در انتشار بهنگام سازي است. براي يك شيء داده شده مثل R مانه اي كه نسخه اوليه شيء R را دارد ، كليه عمليات لازم براي اداره قفل براي آن شيء عهده دار است (متداول آن است که نسخه هاي هاي اوليه اشياي مختلف در مانه هاي مختلف قرار دارند. به بيان ديگر ،معمولاً در يك مانه دو رونوشت از يك شيء داده نداريم) . با اين استراتژي مجموع تمام نسخه هاي يك شئ را با هدف قفل گذاري مي توان يك شيء تنها در نظر گرفت در نتيجه مجموع پيغام ها از n5 پيغام به ۳+ n2 پيغام كاسته مي شود (يك پيغام درخواست قفل گذاري، يك پيغام تضمين قفل گذاري، nپيغام تائيد و يك در خواست قفل گشايي).

قابل ذکر است که راه حل ارائه شده بالا، با کاهش خودمختاري محلي همراه است. اگر در تراکنشي، نسخه اوليه شي اي که تراکنش روي آن تاثير مي گذارد در دسترس نباشد، اجراي آن تراکنش مختل خواهد شد، حتي در حالتي که تراکنش فقط خواندني باشد و داده ها هم بطور محلي در دسترس باشند.
بنابراين، يكي از اثرات جانبي نامطلوب استراتژي نسخه اوليه، كاهش كارايي و دسترس پذيري براي عمليات بازيابي است.

مسئله بعدي در مورد قفل گذاري در سيستم هاي توزيع شده، امكان ايجاد بن بست سراسري است. بن- بست سراسري، بن بستي است كه شامل حداقل دو مانه باشد. مثال زير را در نظر بگيريد:
۱- کارگزار تراكنش T2 در مانه X منتظر عامل تراكنش T1 در مانه X است تا قفل را رها كند .
۲- کارگزار تراكنش T1 در مانه X منتظر عامل تراكنش T1 در مانه Y است تا كامل شود.
۳- کارگزار تراكنش T1 در مانه Y منتظر عامل تراكنش T2 در مانه Y است تا قفل را رها كند.
۴- کارگزار تراكنش T2 در مانه Y منتظرعامل تراكنش T2 در مانه X است تا كامل شود.
در اين حالت بن بست رخ داده است.

شكل ۹-نمونه اي از بن بست سراسري[DATE2000]
در مثال بالا، هيچ حلقه اي درگراف انتظار محلي وجود ندارد ، اما اگر دو گراف محلي را تركيب كرده و يك گراف سراسري را درنظر بگيريم حلقه ديده خواهد شد ( در گراف انتظار سراسري ).
گراف انتظار محلي، گرافي است تنها شامل يك مانه، منابع موجود و درخواست هاي داده شده براي آن منابع. اين گراف، وضعيت فعلي مانه را از نظر وجود بن بست نشان مي دهد.
گراف انتظار سراسري، از تركيب حداقل دو گراف محلي ايجاد مي شود كه وضعيت بن بست بين مانه هاي موجود در گراف را نشان مي دهد.

تشخيص بن بست سراسري بدليل نياز به تركيب گراف هاي محلي هزينه سرباري در بر دارد.
۸٫ گدار
استقلال سيستم پايگاه داده هاي توزيع شده ازDBMS، يكي از اهداف مهم در اين گونه سيستم ها به شمار مي آيد. براي راحتي، در ابتدا فرض شد، سيستم پايگاه داده هاي توزيع شده از هر نظر همگن است. اما واقعيت اين است كه در عمل براي ايجاد سيستم توزيع شده پايگاهي نياز به اين فرض نيست. آنچه لازم مي باشد، اين است كه DBMS هاي مانه هاي مختلف از يك واسط مشترك پشتيباني كنند. بعنوان مثال اگر INGRES و ORACLE هردو بوسيله نسخه اداريSQL استاندارد پشتيباني شوند، به راحتي مي توان آنها را به عنوان دوعضو شركت كننده در يك سيستم توزيع شده غيرهمگن فرض كرد و پايگاه داده هاي توزيع شده برپا نمود.

شكل ۱۰ – نمونه اي از پايگاه داده INGRES و ORACLE در يک DDBMS [DATE2000]
فرض كنيد دو مانه X و Y داريم كه به ترتيبDBMS هايINGRES و ORACLE در آنها درحال اجراء هستند. فرض كنيد كاربر U در مانه X مايل است كه يك پايگاه داده هاي توزيع شده كه شامل داده هايي از پايگاه INGRES در مانه X و داده هايي از پايگاه داده هاي ORACLE در مانه Y است، داشته باشد. چون كاربر U يك كاربرِ پايگاه داده هاي INGRES است،

پايگاه داده هاي توزيع شده از ديد وي بايد يك پايگاه داده هاي INGRES باشد. بنابراين فراهم نمودن پشتيباني هاي لازم براي اين پنهان سازي از ديد کار ، وظيفه سيستم مديريت پايگاه داده هايINGRES است نه ORACLE.
سيستم مديريت پايگاه داده ها ي INGRES بايد يك برنامه كاربردي كه معمولاً به آن گدار مي گويند- فراهم كند كه در يك سطح بالاتر از ORACLE اجرا شده و باعث شود كه ORACLE مانند INGRES به نظر آيد. (در واقع INGRES با ايجاد يك لايه مجازي بر روي ORACLE آنرا بصورت يك DBMS از نوع INGRES نشان مي دهد. با اين امكان،استقلال از DBMS را فراهم مي كنيم.)
گدار بايد بتواند موارد زير را پوشش دهد:
• پياده سازي پروتكل هايي براي مبادله اطلاعات بين INGRES و ORACLE – كه شامل تشخيص ساختار پيغام جملات SQL فرستاده شده از INGRES است. پس از آن،نگاشت نتايج از ORACLE به ساختار پيغام هايي كه توسط INGRES پذيرفته مي شود.

• دروازه بايد قادر باشد هر دستور دلخواه SQL روي پايگاه داده ORACLE را اجرا كند. براي آنكه اين قابليت فراهم شود گدار بايد از امكانات SQL دايناميك در مانه ORACLE استفاده کند.[DATE2000]
• نگاشت دستورات INGRES و ORACLE. نكته اينكه هر كدام از INGRES و ORACLE فيچرهايي از SQL پشتيباني مي كنند كه ممکن است ديگري پشتيباني ننمايد. يعني برخي فيچرها از SQL توسط INGRES حمايت مي شود ولي ORACLE آنها را ندارد. نگاشتي لازم است كه اين فيچرها را شبيه سازي كند و به صورت تركيبي از دستورات و فيچرهاي مشترك بين هر دو تبديل كند.
• نگاشت اطلاعات برگشتي از ORACLE به ساختار INGRES.
• نگاشت كاتالوگ ORACLE به ساختار INGRES به نحوي كه كاربران آن بتوانند از محتواي داده اي مانه ORACLE مطلع شوند.

۹٫ مقايسه سيستم هاي مشتري/خدمتگزار با سيستم هاي توزيع شده
بطور كلي سيستم هاي مشتري/خدمتگزار را مي توان نمونه ساده اي از سيستم هاي توزيع شده در نظر گرفت .
از نگاهي ديگر، يك سيستم مشتري/خدمتگزار يك سيستم توزيع شده است كه در آن:
الف ) تعدادي از مانه ها داراي نقش مشتري و تعدادي ديگر خدمتگزار اند.
ب ) تمام داده ها در مانه هاي خدمتگزار قرار دارند.

ج ) تمام برنامه هاي كاربردي در مانه هاي مشتري ها اجرا مي شوند.
د ) بر خلاف سيستم هاي پايگاه داده هاي توزيع شده، پنهان سازي کامل از ديد کاربر نداريم.
اصطلاح «مشتري/خدمتگزار» در اصل به نوعي معماري – تقسيم منطقي مسئوليتها- بر مي گردد. يك مشتري همان برنامه كاربردي ( كه پيشا نيز خوانده مي شود ) است و خدمتگزار همانDBMS (‌كه ماشين پسا نيز ناميده مي شود) است. [DATE2000]

۱۰٫ خلاصه
در اين نوشتار، تا حدودي كلياتي از سيستم هاي پايگاه داده توزيع شده را بررسي كرديم. دوازده هدف مهم كه در مورد اين سيستم ها مهم است مطرح شد. بار ديگر تاكيد مي شود كه لزوماً تمام اين دوازده مورد هميشه و بطور همزمان قابل دسترسي نيستند. نيز مسائل تكنيكي كه مانند پردازش درخواست، مديريت كاتالوگ و مانند آن را مطرح نموديم.

۱۱٫ نتيجه گيري
معماري توزيع شده براي پايگاه داده ها ، با وجود اينكه مزاياي سيستم هاي پايگاهي را با مزاياي سيستم هاي توزيع شده يكجا مي كند ، ولي مسائل و مشكلات خاص خود را دارد. آنچه قابل يادآوري است اين كه ، انتخاب نوع معماري براي ايجاد نرم افزار كاربردي ،بايد كاملاً منطقي و حساب شده باشد. اين انتخاب بايد بهترين حالت ممكن براي پاسخگويي به نياز هاي كاربران را داشته و در عين حال از نظر كارايي در حد مطلوبي قرار داشته باشد. استفاده نابجا از سيستم توزيع شده پايگاهي نه تنها كارايي را نسبت به سيستم هاي متمركز افزايش نمي دهد،بلكه ممكن است در مواردي نتيجه عكس حاصل شود.

فصل دوم

۱٫ سيستم هاي پايگاه داده هاي توزيع شده و موازي
پيشرفت تکنولوژي سيستم هاي مديريت پايگاه داده ها ، با توسعه تکنولوژي هاي محاسبات توزيع شده وپردازش هاي موازي همگام شده است. نتيجه اين همگامي ، سيستم هاي مديريت پايگاه داده هاي توزيع شده و موازي است .

DDB ، مجموعه اي از چندين پايگاه داده هاي منطقاً مرتبط است که دريک شبکه کامپيوتري گسترده شده اند . بنابراين DDBMS ، نرم افزاري است که مديريت پايگاه داده هاي توزيع شده را انجام مي دهد و اين توزيع شدگي را از کاربران نهايي پنهان مي سازد.
طبق تعريف فوق ، اين سيستم ، از مجموعه اي با صفر (صفر يا بيشتر) مانه درخواست کننده ومجموعه ناتهي از مانه هاي داده تشکيل شده است. همانطور که از نام مانه هاي داده پيداست ، اين مانه ها قابليت نگهداري داده ها را دارند که البته مانه هاي درخواست کننده فاقد اين امکان هستند. در مانه هاي درخواست کننده ، تنها واسط هايي براي دستيابي بهتر و راحتتر به داده هاي ذخيره شده درمانه هاي داده ها به اجرا درمي آيد.

در نوعي ديگر از معماري توزيع شده ، فرض مي شود هرمانه (داده ه اي يا درخواست کننده) ، بطور منطقي ، حاوي يک کامپيوتر مستقل است. بنابراين هرمانه ، مخزن ذخيره سازي اوليه وثانويه خود را دارد ، سيستم عامل خود را اجرا مي کند ، (که ممکن است با ديگر مانه همگن باشد يا نه) و هر مانه قادر است برنامه هاي کاربردي خود را بطور محلي اجرا کند. مانه ها بوسيله يک شبکه کامپيوتري بهم وصل شده اند.

لازم به ذکر است که اين اتصال بين مانه ها را اصطلاحاً اتصال ضعيف بين پردازنده ها مي نامند. چون در اين گونه اتصال ، هرپردازنده کلاک اختصاصي خود ، حافظه اوليه و ثانويه جداگانه سيستم عامل مستقل ومربوط خود را اجرا مي کند.
با پارسازي و نسخه سازي ، داده ها بطور فيزيکي درمانه ها توزيع مي شوند. پارسازي داده ها که مي تواند بصورت عمودي يا افقي باشد هررابطه را به برش هايي تبديل مي کند ،از آن جهت مطلوب است که اين امکان را فراهم مي سازد تا داده ها را در نزديکترين محل استفاده آن ذخيره نماييم. واضح است که اين امکان باعث کاهش هزينه انتقال واندازه رابطه هاي شرکت کننده در درخواست ها مي شود.

براساس نياز کاربر و محيط عملياتي که براي آن DDB ايجاد شده است ، ممکن است پارهاي داده ها را تکرار کنند.
تکرار داده ها مخصوصاً در موارديکه برنامه هاي کاربردي کاربران از داده هاي يکسان استفاده مي کنند سودمند خواهد بود. چون دراين حالت هزينه سربار تکرار داده ها درمانه ها ، نسبت به جابجايي وانتقال هاي پي درپي آنها درمانه ها ، کمترخواهد بود. پس بهينه تر آن است که نسخه هايي از يک رابطه ايجاد کرده و آنها را در مانه هاي مجزا قرار دهيم. با اين عمل ، دسترسي هاي کاربران آن مانه ها به رابطه ي مذکور بطور محلي خواهد بود.
نوع ديگري از سيستم هاي پايگاه داده ها وجود دارد که شباهت زيادي با سيستم هاي پايگاه داده هاي توزيع شده دارد.
سيستم هاي پايگاه داده هاي موازي ، گونه ديگري از DBMSها هستند که از جهات بسياري با DBMSهاي توزيع شده شباهت دارند. در واقع سيستم هاي پايگاه داده ها کاملاً مستقل موازي به سيستم هاي پايگاه داده هاي توزيع شده کاملاً شبيه اند .

به کمک PDBMSها ، با بکارگيري معماري چندپردازنده اي ، کارايي بالاتر و دسترس پذيري بيشتر داده ها را به همراه هزينه کمتر درمقايسه با استفاده از ابر کامپيوتر ها خواهيم داشت.
معماري سيستم هاي پايگاه داده موازي جزئيات خاص خودار دارد که درمحدوده اين نوشتار نمي گنجد.
قابل ذکر است که پيچيدگي اين نوع BBMS ها سطوح مختلفي دارد. ساده ترين نوع آنها ، با بکارگيري امکانات وروتين هاي موجود سيستم عامل ميزبان و سيستم عاملي که DBMS روي آن اجرا مي شود پايگاه داده هاي موازي را مديريت مي کند . ذکر اين نکته ضروري به نظر مي رسد که سيستم هاي مديريت پايگاه داده هاي موازي پيچيده اي هم وجود دارد که خود تمام جنبه هاي توازي مانند پردازش موازي را بهمراه امکانات مربوط به مديريت پايگاه داده ها را با هم دارد.
سيستم هاي مديريت پايگاه داده هاي موازي و سيستم هاي پايگاه داده هاي توزيع شده از نظر نحوه اجراي تراکنش ها و بکارگيري توازي ، بهم شبيه اند.

بطور کل ، سه گونه توازي وجود دارد که DBMS ها مي توانند از آنها استفاده کنند:
۱- توازي درون- درخواست .
بااستفاده از اين نوع توازي اين امکان وجود دارد که بتوان چندين عمليات مستقل از تراکنشي را بطور همزمان اجرا کرد.
به عنوان نمونه ، اگر يک DBMS اين امکان را پشتيباني نمايد ، مي توان چندين دستور Select را که درتراکنشي وجود دارند ، بطور همزمان اجرا نمود.

فرض کنيد درتراکنش T ، دستور Select زير وجود دارد :
Select * from Std
که درآن Std رابطه اي است با نمونه موجوديت هاي دانشجو ، در پايگاه داده هاي دانشگاه.
درهمان تراکنش دستور Select زير وجود دارد:
Select * from Prof
که تاپل هاي رابطه prof حاوي اطلاعات اساتيد درهمان پايگاه داده ها است.
اگر تراکنش بالا دريک DBMS که از توازي درون-درخواست پشتيباني مي کند اجرا شود دو دستور Select بطور همزمان اجرا شده و زمان اجراي آنها همپوشاني مي شود.
۲٫ توازي بين درخواست ها
اين نوع توازي ، امکان اجراي موازي چندين ترکنش مستقل را بطور همزمان فراهم مي سازد.
لازمه «توازي بين درخواست ها» و «توازي درون درخواست» در PDBMSها ، استفاده از بخش بندي داده ها است . بخش بندي داده ها درسيستم پايگاه داده هاي موازي شبيه پارسازي داده ها درسيستم هاي پايگاه داده هاي توزيع شده مي باشد.

عملگرهاي مجموعه گراي زبان هاي پايگاهي (مانندSQL) ، باعث مي شود تا بتوان هرچه بيشتر و بهتر از «توازي درون درخواست» بهره برد. چون با کمک آنها درخواست را به نحوي تنظيم نمود که اجراي هر بخش آن بتواند جزيي از مجموعه جواب را ايجاد نمايد. ترکيب مناسبي از مجموعه تاپل هاي جواب هاي مياني ، تاپل هاي جواب نتيجه است. حال مي توان براي بدست آوردن هريک از جواب هاي مياني از گونه هاي مختلف توازي استفاده نمود.
باتوجه به مباحث مطرح شده مي توان خصوصياتي چند از سيستم هاي پايگاه داده هاي توزيع شده و موازي را برشمرد :
۱- پايگاه داده هاي توزيع شده و موازي ، مجموعه اي از فايل هاي ذخيره شده بطور مجزا و پراکنده در مانه هاي مختلف نيستند.
بين DDB ومجموعه اي از فايل هاي ذخيره شده دريک شبکه کامپيوتري که توسط يک سيستم فايل توزيع شده مديريت مي شوند تفاوت وجود دارد. به بياني ديگر ، اين توزيع شدگي داده ها در مانه هاي مختلف( و در مورد PDBMSها در گره هاي مجزا) ، از ديدگاه تئوري هيچ خدشه اي به مفهوم و تعريف پايگاه داده وارد نمي کند.DDBها در وهله ي اول ، DB هستند.

در DDB ، داده هاي توزيع شده بطور منطقي بهم مرتبط اند .ارتباط بين داده ها از طريق يک مدل داده اي ( مانند مدل رابطه اي) ودرسطوح انتزاعي تعريف شده است. گويا تر آنکه ، دسترسي به داده هاي ذخيره شده در شبکه توزيع شده داده ها ، در سطوح انتزاعي(و در سطح مدل داده- اي)صورت مي گيرد نه در سطح فايل ها. کاربر نهايي داده ها را آنطور مي بيند که گويي در يک سيستم پايگاه داده هاي متمرکز قرار دارند.ذکر اين نکته لازم به نظر مي رسد که در عمل اين انتزاع ، بطور کامل صورت نمي گيرد. به هر حال سطحي از توزيع شدگي بر کاربران پيداست.
۲- سيستم هاي پايگاه داده هاي توزيع شده و موازي ، هر يک توانش هاي يک DBMS متمرکز را بطور کامل دارا هستند. منظور آن است که DDBMS تنها يک سيستم مديريت پردازش تراکنش هاي توزيع شده نيست. بلکه مديريت پردازش تراکنش ها ، تنها يکي از قابليت هاي آن است.
۳- درDDBMS توزيع شدگي داده ها (شامل پارسازي و نسخه سازي داده ها) درچندين مانه ، برکاربر نهايي پيدا نيست. در PDMS توزيع شدگي داده ها درچندين پردازنده مورد بحث است.

تکنولوژي پايگاه داده هاي موازي و توزيع شده ، مفهوم استقلال داده ها رابطور گسترده تري شامل مي شوند.
درDDBMS ها و PDBMS ها جنبه هاي استقلال از محيط فيزيکي ذخيره سازي ، نسخه سازي وپارسازي داده ها برروي ماشين هاي مختلف درشبکه اتصال نيز مطرح است.
اين استقلال داده ها با کمک گونه هايي از پنهان سازي فراهم مي شود:
پنهان سازي از شبکه توزيع داده ها ( پنهان سازي توزيع ) ، پنهان سازي تکرارداده ها ، وپنهان سازي از پارسازي داده ها .
منظور از اين پنهان سازي ها آن است که کاربران سيستم ، ديد منطقي واحدي به کل پايگاه- داده هاي توزيع شده داشته باشند . گرچه داده ها بطور فيزيکي در مانه هاي مختلف توزيع شده اند.
درحالت ايده آل ، اگر DDBMSي ، پنهان سازي را بطور کامل حمايت کند ، منطقاً نبايد بين واسط زباني درخواستهاي آن درحالت متمرکز وتوزيع شده تفاوتي وجود داشته باشد. بطور واضحتر ،منظور آن است که مثلاً اگر رابطه اي مانند R در DDBMS مذکور در سطح فيزيکي داراي پارها و نسخه هاي مختلفي است ، در درخواست هاي به آن با استفاده از نحوSQL ، نبايد اين پارسازي و نسخه سازي داده ها ديده شود.
اگر مجموعه صفات رابطه ي بالا شامل Name ، Id و CompanyId بوده و داراي پارهايي باشد که صفات Id و Name آن در يک پاره و CompanyId در ديگري باشد ، براي درخواست «نام ، شماره و کد شرکت تمام افراد را بدهيد»بايد عبارت زير را در SQL نوشت:
SELECT Id , Name, CompanyId FROM R

که اگر سيستم پنهان سازي را پشتيباني نکند بايد عبارتي به صورت زير نوشت:
SELECT R1.Id,R1.Name,R2.CompanyId
FROM R1 ,R2
که در آن R1,R2 پارهاي رابطه ي R هستند

.
نکته ديگري که در مورد DDBMS ها وجود دارد ، نحوه قراردادن فيزيکي داده ها در مانه هاي مجزا است. تکنيک هاي تخصيص داده در اين باره مطرح مي شوند. با کمک يک تخصيص داده مناسب مي توان داده ها و برنامه هاي کاربردي که از آن داده ها استفاده مي کنند را بطور محلي دريک مانه قرارداد. بامحلي سازي داده ها وبرنامه هاي کاربردي مرتبط ، مي توان نياز به دسترسي از راه دور داده ها را حذف ( يا حداقل کاهش ) داد وبا اين عمل کارايي سيستم را بالا برد.

ازسوي ديگر ، چون هرمانه تعداد برنامه هاي کاربردي کمتر و بخش کوچکتري از پايگاه داده ها را مديريت مي کند ، تلاش براي دسترسي به منابع وداده ها درمانه ها را نيز کاهش داده ايم.
درمقايسه با DDBMS ها ، مهمترين هدف DBMS هاي موازي بالا بردن

کارايي است. براي بالاتر بردن کارايي برايDBMSها راه حل هاي مختلف وجود دارد.
استفاده از سيستم عامل هاي پايگاه داده گرا ( مبتني بر پايگاه داده ) ، بکار گيري توازي ، بهينه سازي وتوازن بارگذاري ازجمله اين راه حل هاست .
بعنوان نمونه ، اگر سيستم عاملي بتواند برخي نيازهاي DBMS ها را برآورده سازد ، يا به عبارتي از نيازهاي عملياتي آنها مطلع باشد ( مثلاً اطلاعاتي در مورد نحوه مديريت بافرها) ، درآنصورت پياده سازي توابع سطح پائين پايگاه داده ها ساده تر مي شود. در اين حالت هزينه پياده سازي اين توابع کاهش مي يابد.

در اينجا با ذکر يک مثال ارتباط بين سيستم عامل و DBMSهاي توزيع شده در راستاي کاهش هزينه هاي پياده سازي را تشريح مي کنيم.
مي دانيم که DDBMSها بطور معمول براي ردوبدل داده ها و اطلاعات کنترلي بين مانه ها از مکانيزم تبادل پيام استفاده مي کنند. براي پياده سازي اين مکانيزم ، دو حالت کلي وجود دارد.( حالت مياني نيز متصور است).

در يک حالت ، سيستم عامل هيچ امکاني را براي تبادل پيام ندارد و DDBMS بايد اين مکانيزم را به تنهايي مديريت کند. که در اين وضع ، هزينه پياده سازي اين مکانيزم نيز به هزينه هاي پياده سازيDDBMS افزوده مي شود.
در حالتي ديگر ، سيستم عامل داراي امکانات اوليه اي براي تبادل پيام بين مانه ها مي باشد. در اين حالت ، تنها کافيست DDBMS به کمک اين امکاناتي که سيستم عامل فراهم آورده ، مکانيزم خود را اجرا نمايد.
حالت نخست اين مزيت را دارد که DDBMS از سيستم عاملي که روي آن اجرا مي شود مستقل است. نگفته پيداست که در ازاي اين استقلال بايد هزينه پياده سازي توابع سطح پايين DDBMSرا پرداخت.
در حالت دوم ، با قبول وابستگي DDBMS به سيستم عامل ، از هزينه هاي پياده سازي کاسته ايم.

پس اگر سيستم عامل ازپروتکل مطلوبي جهت تبادل پيام ها استفاده کند ، با کاستن تعداد پيام هاي ردوبدل شده ، هزينه ارتباط نيز کمتر مي شود.
توازي با استفاده از پردازش موازي درخواست ها ، بازده را افزايش مي دهد و با استفاده از پردازش موازي درون درخواست ، متوسط زمان پاسخگوئي به تراکنش را مي کاهد .
ايده مشترکي که درطراحي وپياده سازي DDBMS ها و PDBMS ها وجود دارد فراهم آوردن سطح بالاتري از قابليت اطمينان است.

از آنجا که در سيستم هايي که از تکرار مولفه ها استفاده نمي شود ، تنها يک نسخه از هر شيء وجود دارد ، خرابي فيزيکي محل ذخيره سازي آن شيء ، با از دست داده کامل آن همرا خواهد بود. و اين يعني کاهش ضريب قابليت اطمينان سيستم.
درهر دو گونه DBMS يادشده ، با تکرار مولفه ها خطر ازکارافتادن سيستم ، بدليل خرابي تنها محل ذخيره سازي مولفه ، برطرف مي شود.

PDBMS ها ، مولفه ها را روي پردازنده هاي مختلف تکرار مي کنند درحاليکه DDBMS ، آنها را روي مانه ها. به هر حال ، با توضيح فوق ، خرابي در يکي از مانه ها ، پردازنده ها يا خطوط ارتباطي باعث از کارافتادن تمام سيستم نخواهد شد.گرچه ممکن است دراثر خرابي دريکي از مانه ها يا پردازنده ها ، دسترسي به بخش هايي از داده هاي سيستم امکان پذير نباشد اما با يک طراحي مناسب پايگاه داده ها ، مي توان اين امکان را فراهم آورد که کاربران بتوانند از ديگرداده ها موجود درسيستم استفاده نمايند.

منظور از طراحي مناسب بکارگيري طرح کارا براي تخصيص و تکرار داده ها در مانه هاي مجزا است. واضح است که براي بکارگيري اين طرح مناسب ، سيستم بايد از تراکنش هاي توزيع شده پشتيباني نمايد.
پشتيباني از تراکنش هاي توزيع شده ، نيازمند پياده سازي کنترل همروندي توزيع شده و پروتکل هاي توزيع شده قابليت اطمينان است. منظور از اين گونه پروتکل ها ، پروتکل هايي است که با استفاده از آنها بتوان قابليت اطمينان را بين مانه هاي مجزا که داده ها درآنها توزيع شده اند بالا برد.
بعنوان نمونه براي اين گونه ي پروتکل ها مي توان پروتکل هاي تثبيت و ترميم تراکنش ها را برشمرد.
درادامه ، با تفصيل بيشتري اين پروتکل ها شرح داده مي شوند.
درمحيط هاي توزيع شده يا موازي بايد بتوان به آساني اندازه پايگاه داده ها را با افزودن تعدادي مانه يا پردازنده گسترش داد.

بطور ايده آل سيستم هاي پايگاه داده موازي ( و تا حدودي سيستم هاي پايگاه داده هاي توزيع شده ) بايد به نحوي باشند که دو مزيت زير را داشته باشند:
توسعه خطي اندازه پايگاه داده وافزايش خطي سرعت .
منظور از توسعه خطي اندازه پايگاه داده ها آن است که ، سيستم در ازاي افزايش خطي در حجم پايگاه داده ها وپردازش ها بهمراه توان ذخيره سازي بتواند کارايي خود را همچنان حفظ کند.
به بيان ديگر سيستم نبايد به ازاي افزايش حجم پايگاه داده ها يا افزايش تعداد پردازش ها وقتي که توان رسانه ذخيره سازي را خطي بالا برده ايم افت کارايي محسوس داشته باشد.

افزايش خطي سرعت ، يعني با ثابت نگه داشتن حجم پايگاه داده ها ، افزايش توان رسانه ذخيره سازي و سرعت پردازش تراکنش ها بطور خطي ، کارايي سيستم نيز خطي افزايش يابد.
منظور از افزايش توان رسانه ذخيره سازي ، بالا بردن حجم داده هاي ذخيره شده روي رسانه دريک محدوده زماني (بيست برثانيه) ، کاهش زمان دسترسي به رسانه (تأخيرهاي دستيابي) و ديگر موارد است.
دستاوردي که دو مزيت بالا مي تواند حاصل کند اين است که گسترش سيستم نيازمند حداقل سازماندهي مجدد پايگاه داده فعلي است .

مشخصه قيمت برکارايي ريز پردازنده ها ونواحي کاري باعث شده تا بتوان سيستم کامپيوتري از مجموعه کامپيوترهاي کوچک تر ساخت که توان معادلي با ماشين هاي بزرگ و ابرکامپيوترها داشته باشد. به عبارتي ديگر DDBMS ها و PDBMS ها ، همانطور که بحث شد ، ضمن فراهم آوردن قابليت اطمينان وافزايش کارايي به نوعي ما را قادر مي سازد تا توانش عملياتي معادل با ابر کامپيوتر ها داشته باشيم بي آنکه از ماشين هاي بزرگ و گران قيمت استفاده کنيم.

بر اين اساس ، بيشتر DDBMS ها از مانه هايي شامل کامپيوتر هاي کوچک ومعمولي تشکيل شده که از طريق اتصالات شبکه بهم وصل شده اند .
ساده تر آنکه نسبت هزينه هاي که براي ايجاد يک DDB مي کنيم به کارايي که از سيستم حاصل دريافت مي نماييم مقرون به صرفه تر از بکارگيري ابرکامپيوترها وماشين هاي محاسباتي بزرگ است.
ذکر اين نکته ضروري است که ، چون اکثر پايگاه داده هاي توزيع شده تجاري روي شبکه هاي محلي توزيع شده اند ، استفاده از کامپيوترهاي کوچک و ارزان در مانه ها تاثير چنداني در افت کارايي سيستم ندارد.
نياز بکار گيري ماشين هاي بزرگ زماني واضحتر مي شود که بخواهيم DDB را روي يک شبکه گسترده توزيع کنيم.

۳٫ نگاهي دقيقتر به تکنولوژي پايگاه داده هاي توزيع شده وموازي
طبق تعريف ، DDBMS و PDBMS ها تمام توانش يک DBMS تمرکز را دارند. بطور کلي ، آنچه مطرح است توزيع داده ها در يک شبکه کامپيوتري و درتعدادي مانه مجزا(در مورد DDBMSها) يا درمجموعه اي از گره هاي حاوي پردازنده ها (در مورد PDBMSها) مي باشد.
همانطور که قبلاً هم گفته شد ، کاربران از اين توزيع شدگي داده ها نامطلع اند وسيستم هاي پايگاه داده هاي مذکور براي کاربران ديد منصقاً يکپارچه اي از پايگاه داده هاي بطور فيزيکي توزيع شده فراهم مي آورند .

فراهم آوردن اين ديد منطقي ، چالش ها ومشکلات خاص خود را خواهد داشت. درادامه اين نوشتاري سعي بر آن است که به اين چالش ها در حد معرفي و مقدماتي پرداخته مي شود .
۳٫۱٫ سطح و نوع توزيع شدگي داده ها ومسئوليت ها در DDBMSهاي مختلف
مي دانيم که حالت هاي مختلفي براي توزيع شدگي وجود دارد. درساده ترين ومعمول ترين حالت ، يک خدمتگزار داريم با چند مشتري. درمعماري مشتري/خدمتگزار ، تعدادي ماشين مشتري وجود دارد که با يک ماشين خدمتگزار در ارتباطند. داده ها تنها و تماماً برروي ماشين خدمتگزار ذخيره مي شوند. دراين معماري که معماري چند مشتري/ يک خدمتگزار نيز ناميده مي شود مسائل مربوط به مديريت پايگاه داده ها تنها به پايگاه داده هاي موجود در ماشين خدمتگزار (که البته تنها DB موجود در سيستم نيز مي باشد ) محدود مي شود.

حالت ديگري از معماري مشتري / خدمتگزار وجود دارد که درآن توزيع شدگي معماري بيشتر است. در عوض انعطاف پذيري اين گونه در مقايسه با گونه ي قبلي بيشتر است.
دراين نوع معماري که چند مشتري/چندخدمتگزار ناميده مي شود ، پايگاه داده ها برروي ماشين هاي خدمتگزار توزيع شده اند. ماشين هاي خدمتگزار براي پاسخ درخواست هاي کاربران و اجراي تراکنش ها باهم در ارتباطند. اين معماري را شبهDDB نيز مي نامند.
هرماشين مشتري ، يک خدمتگزار مربوط به خود دارد ، که درخواستهايش را به آن مي فرستد. ارتباط بين ماشين هاي خدمتگزار از ديد کاربران ماشين هاي مشتري پنهان است.(در واقع درمعماري MC/MS تا حدودي پنهان سازي توزيع شدگي داريم).

ماشين هاي مشتري تنها home server خود را مي بيننند و از نحوه ارتباط بين ماشين هاي خدمتگزار مطلع نيستند. البته لازم به ذکر است که ، درعمل مجموعه اي از ماشين هاي مشتري با ماشين خدمتگزار خاص درارتباطند.
به عبارتي هر ماشين خدمتگزار ضمن اينکه بايد با ديگر ماشين هاي خدمتگزار موجود در سيستم ارتباط داشته باشد ، مسئول پاسخگوئي به درخواست هاي مجموعه اي از ماشين مشتري نيز هست.

دريک سيستم مديريت پايگاه داده هاي توزيع شده واقعي هيچ تفاوتي ميان ماشين هاي خدمتگزار وماشين هاي مشتري وجود ندارد درحالت ايده آل ، هرمانه بايد تمام قابليت ها و توانش ماشين خدمتگزار و مشتري را دارا باشد.
اين گونه معماري که معماري نظير به نظير نيز ناميده مي شود ، نيازمند بکارگيري پروتکل هاي پيچيده اي براي مديريت داده هاي توزيع شده درمانه هاي مختلف مي باشد.
سيستم هاي مديريت پايگاه داده هايي که براساس معماري موازي عمل مي کنند براساس سطح عملکرد اشتراکي بين ماشين ها ، بين دو گونه کاملاً مستقل و حافظه – مشترک قرار دارند. گونه سوم و متداولتري بنام معماري ديسک – مشترک نيز وجود دارد که در عمل بيشتر از آن استفاده مي شود.

درگونه ي کاملاً مستقل معماري موازي ، هرپردازنده دسترسي انحصاري به حافظه اصلي و واحد هاي ديسک خود را دارد. بنابراين هرگره را مي توان يک مانه محلي از يک DDBMS فرض کرد که داده ها ونرم افزارهاي خود را داراست .

سيستم هاي پايگاه داده هاي موازي ، گونه اي کاملاً مستقل ، با سيستم پايگاه داده هاي توزيع شده از نگاه محيط پياده پياده سازي ، باهم فرق دارند. در DDBMS ها داده ها درمانه هاي مجزا که بطور جغرافيايي از هم دورند ، قرار گرفته اند. ارتباط بين مانه ها از طريق اتصالات شبکه صورت مي گيرد.