پروژه طراحی و پیاده سازی پایگاه داده های توزیع شده همگن

word قابل ویرایش
103 صفحه
17700 تومان
177,000 ریال – خرید و دانلود

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

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

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

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

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

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

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

مطالعات نظری ۷
فصل اول ۸
۱٫ سیستم پایگاهی توزیع شده ۹
تعاریف ۹
۲٫ مزایا و معایب سیستم پایگاهی توزیع شده ۱۳
۲٫۱٫ مزایا: ۱۴
۲٫۲٫ معایب: ۱۴
۳٫ چند سیستم نمونه ۱۴
۴٫ یک اصل بنیادی ۱۵
۵٫ دوازده قاعده فرعی ۱۷
۵٫۱٫ خود مختاری محلی ۱۷
۵٫۲٫ عدم وابستگی به یک مانه مرکزی ۱۸
۵٫۳٫ استمرار عملیات ۱۸
۵٫۴٫ استقلال از مکان ذخیره سازی ۱۹
۵٫۵٫ استقلال از چگونگی پارسازی داده ها ۱۹
۵٫۶٫ استقلال ازچگونگی نسخه سازی داده ها ۲۲
۵٫۷٫ پردازش در خواست های توزیع شده ۲۴
۵٫۸٫ مدیریت تراکنش های توزیع شده ۲۴
۵٫۹٫ استقلال از سخت افزار ۲۵
۵٫۱۰٫ استقلال از سیستم عامل ۲۵
۵٫۱۱٫ استقلال از شبکه ۲۵
۵٫۱۲٫ استقلال از 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 ها داده ها درمانه های مجزا که بطور جغرافیایی از هم دورند ، قرار گرفته اند. ارتباط بین مانه ها از طریق اتصالات شبکه صورت می گیرد.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 17700 تومان در 103 صفحه
177,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد