پروژه دوره کارشناسی
در رشته مهندسی کامپیوتر گرایش نرم افزار
پیشگفتار
پیشرفت تکنولوژی سیستم های مدیریت پایگاه داده ها ، با توسعه تکنولوژی های محاسبات توزیع شده وپردازش های موازی همگام شده است. نتیجه این همگامی ، سیستم های مدیریت پایگاه داده های توزیع شده و موازی است .سیستم های پایگاهی توزیع شده ، مجموعه ای از چندین پایگاه داده های منطقاً مرتبط است که دریک شبکه کامپیوتری گسترده شده اند .
اینگونه از سیستم های پایگاهی در عین دارا بودن مزایایی همچون :
سازگاری و هماهنگی با ماهیت سازمان های نوین
کارایی بیشتر در پردازش داده ها به ویژه در پایگاه داده های بزرگ
دستیابی بهتر به داده ها
اشتراک داده ها
افزایش پردازش موازی
کاهش هزینه ارتباطات
تسهیل گسترش سیستم
استفاده از پایگاه داده های از قبل موجود.
دارای معایبی نیز می باشد. از جمله معایب آن می توان به موارد ذیل اشاره نمود :
پیچیدگی طراحی سیستم
پیچیدگی پیاده سازی
کاهش کارایی در برخی موارد
هزینه بیشتر
مصرف حافظه بیشتر
معماری توزیع شده برای پایگاه داده ها ، با وجود اینکه مزایای سیستم های پایگاهی را با مزایای سیستم های توزیع شده یکجا می کند ، ولی مسائل و مشکلات خاص خود را دارد. آنچه قابل یادآوری است این که ، انتخاب نوع معماری برای ایجاد نرم افزار کاربردی ،باید کاملاً حساب شده باشد. این انتخاب باید بهترین حالت ممکن برای پاسخگویی به نیاز های کاربران را داشته و در عین حال از نظر کارایی در حد مطلوبی قرار داشته باشد.
بخش اول
مطالعات نظری
فصل اول
1.سیستم پایگاهی توزیع شده[1]
تعاریف
پایگاه داده: مجموعه ای است از داده های ذخیره شده و پایا، بصورت مجتمع (یکپارچه) (نه لزوماً همیشه بطور فیزیکی، بلکه حداقل بطورمنطقی)، بهم مرتبط، حتی الامکان با کمترین افزونگی، (دارای یک ساختار منطقی مبتنی بر یک مدل داده ای و توصیف شده بویژه در محیط انتزاعی یعنی در چارچوب همان مدل داده ای )، تحت مدیریت یک سیستم کنترل متمرکز، مورد استفاده یک یا چند کاربر از یک(یا بیش از یک)«سیستم کاربردی»،بطور همزمان و اشتراکی.]روحا83[
شبکه کامپیوتری: مجموعه ای از کامپیوتر ها، مسیر یاب ها، ماهواره ها،اتصالات ارتباطی، که از طریق آن می توان به اطلاعات موجود در کامپیوترهای مختلف عضو این سیستم دسترسی پیدا کرد.
به زبان ساده سیستم پایگاه داده توزیع شده ، مزایای تکنولوژی پایگاه داده و تکنولوژی شبکه را در خود جمع کرده است.البته این یکپارچه سازی[2] ، با تمرکز[3] تفاوت دارد.شکل زیر گویای این مطلب است:
شکل 1- معماری توزیع شده پایگاهی،ترکیبی از تکنولوژی های شبکه و پایگاه داده ها[TAMER99]
تعریف اول:
یک سیستم توزیع شده پایگاهی، شامل مجموعه ای از مانه هاست[4] که از طریق برخی المانهای اتصال، بهم متصل می باشد بطوریکه :
هر مانه خود یک سیستم پایگاه داده ها به معنای کامل می باشد.
مانه ها به نحوی بهم متصل هستند که کاربر هر مانه می تواند به داده های هر مانه دیگر طوری دسترسی یابد که منطقاً با حالتی که تمام داده ها در مانه کاربر مربوطه قرار دارند، فرقی نداشته باشد.
با تعریف ارائه شده فوق از سیستم های پایگاه داده های توزیع شده ،می توان فهمید که سیستم پایگاه داده های توزیع شده، در واقع نوعی شیء مجازی[5] می باشد که مولفه[6]های آن بطور فیزیکی در تعدادی پایگاه داده های واقعی[7] مختلف در تعدادی مانه مجزا قرار دارد . ( در اصل DDB[8] ، اجتماع منطقی این چند پایگاه داده واقعی می باشد ).] [DATE2000
تعریف دوم:
سیستم توزیع شده پایگاهی، مجموعه ای از داده های ذخیره شده ( با ویژگی های بر شمرده در تعریف پایگاه داده ها)، که منطقاً به یک سیستم تعلق دارند ، ولی در مانه ها ی مختلف یک یا بیش از یک شبکه توزیع شده اند. به عبارتی دیگر، می توان گفت که تعدادی پایگاه داده های ذخیره شده روی کامپیوتر های مختلف داریم که از نظر کابران، پایگاه واحدی هستند. به بیان دیگر، مجموعه ای است از چند پایگاه داده منطقاً یکپارچه(مجتمع)،ولی بطور فیزیکی توزیع شده روی یک شبکه کامپیوتری.]روحا83[
تعریف سوم:
یک سیستم پایگاهی توزیع شده (DDB) ،مجموعه ای است از چندین پایگاه داده های منطقاً بهم مرتبط از طریق یک شبکه کامپیوتری. سیستم مدیریت پایگاه داده های توزیع شده(DDBMS)،نرم افزاری که مدیریت پایگاه داده های توزیع شده را فراهم می آورد و«توزیع شدگی» را از دید کاربران پنهان می
سازد.[TAMER99]
طبق تعریف فوق، سیستم پایگاه داده های توزیع شده، از مجموعه ای مانه در خواست کننده[9] ( با صفر یا بیشتر عضو فعال ) و یک مجموعه ناتهی از مانه داده[10] ها تشکیل شده است.
مانه های داده ای، قابلیت نگهداری فیزیکی داده های سیستم را دارند در حالیکه مانه های درخواست کننده فاقد این امکان هستند. در مانه های درخواست کننده تنها واسط[11] هایی وجود دارد که با اجرای آنها، داده های ذخیره شده در مانه های داده ها بهتر و راحتتر بدست می آیند.
همانطور که از شکل بالا مشخص است، بجز مانه1 که از نوع مانه درخواست کننده است، بقیه از نوع داده هستند.
اما حالت فوق، تنها حالت ممکن برای پایگاه داده های توزیع شده نیست. در نوع دیگری از معماری توزیع شده پایگاه داده ها، فرض می شود هر مانه(مانه های «درخواست کننده» و «داده ها») بطور منطقی حاوی ]حداقل[یک ماشین مستقل است. بنابراین هر کدام از مانه ها دارای مخزن ذخیره سازی اولیه و ثانویه مستقل خود می باشند. مانه ها، سیستم عامل های مستقل خود را (که می توانند همگن یا ناهمگن باشند)دارند و هر یک قادر خواهند بود برنامه های کاربردی خود را بطور محلی احرا نمایند. مانه ها بوسیله یک شبکه کامپیوتری بهم متصل شده اند. تاکید می شود که اتصال بین مانه ها در این نوع سیستم های توزیع شده، از نوع «اتصال ضعیف»[13] بین پردازنده ها است. منظور از اتصال ضعیف بین پردازنده آن است که هر پردازنده کلاک اختصاصی ، حافظه اولیه و ثانویه و سیستم عامل خود را دارد. در مقابل این نوع اتصال، «اتصال قوی» بین پردازنده ها وجود دارد که در آن پردازنده ها از یک حافظه مشترک[14] و یک کلاک همگام استفاده می کنند. سیستم عامل واحدی پردازنده ها و حافظه را مدیریت می کند. اتصال بین پردازنده از نوع مستقیم است نه از طریق یک شبکه ارتباطی.
گونه دیگری از سیستم های پایگاه داده ها وجود دارد که از جهاتی شبیه سیستم های پایگاه داده های موازی است. این نوع DBMS ها DBMS های موازی کاملاً مستقل[15] نامیده می شوند. در از DBMS های موازی، با بکارگیری معماری چند پردازنده ای، کارایی بالاتر و دسترس پذیری بیشتر را همراه با هزینه کمتر در مقایسه با ابر کامپیوترها خواهیم داشت.
معماری سیستم های پایگاه داده های موازی، جزئیات خاص خود را دارد که در محدوده این نوشتار نمی گنجد.
تعریف چهارم:
یک سیستم محاسبات توزیع شده[16]،شامل تعدادی عناصر پردازشگر- نه لزوماً همگن- است که از طریق یک شبکه کامپیوتری با هم در ارتباطند. یک سیستم توزیع شده پایگاه داده را می توان منطقاً مجموعه ای چندگانه از پایگاه داده ها دانست که روی یک شبکه کامپیوتری توزیع شده اند و DDBMS نرم افزار مدیریت این پایگاه داده توزیع شده است به نحوی که توزیع شدگی سیستم را از دید کاربر پنهان می سازد.[CONN2002]
تعریف پنجم:
برخلاف سیستم های پایگاهی موازی[17] که در آنها پردازشگرها کاملاً بهم متصل شده و یک پایگاه داده واحد را تحت کنترل دارند، سیستم های پایگاهی توزیع شده از اتصال نسبتاً ضعیف مانه هایی که هرکدام بطور انحصاری میتوانند عمل کنند تشکیل شده است.
هر مانه ممکن است در پردازش یک تراکنشی که داده مورد نیاز خود را از مانه(های) دیگر دریافت می کند، شرکت کند.
تفاوت اصلی معماری سیستم پایگاهی متمرکز با معماری سیستم پایگاهی توزیع شده در محل استقرار داده ها است. در معماری متمرکز، داده ها بطور فیزیکی در یک رسانه ذخیره سازی قرار دارند در حالیکه داده های معماری توزیع شده در مانه های مختلف توزیع شده اند. همین توزیع داده ها در مانه های مختلف ، باعث تفاوت های زیادی در پردازش تراکنش ها و درخواست ها با معماری متمرکز ایجاد نموده است.[SILB2002]
منظور از اینکه هر مانه دارای سیستم پایگاه داده کامل و مستقلی است این است که : هر مانه پایگاه- داده های واقعیِ محلی[18] خود، کاربران، DBMS و نرم افزارها ی مدیریت تراکنش ها[19] و مدیریت ارتباط داده های[20] خود را دارد. خصوصاً، یک کاربر می تواند عملیات روی داده های مانه خود را مانند حالتی که مانه آن اصلاً عضو یک شبکه توزیع شده پایگاه داده ها نباشد، به همان شکل محلی و متمرکز انجام دهد. ( حداقل مطلوب این است. )] DATE2000 [ .
مولفه نرم افزاری [21] جدید در هر مانه (بطور منطقی)،گسترده ای از همان DBMS محلی و سیستم جدید که ترکیبی از مولفه های نرم افزاری و DBMS موجود است،همان سیستم مدیریت پایگاه داده توزیع شده به حساب می آید] DATE2000 [.
درتعریف سیستم پایگاه داده های توزیع شده،فرض می شود که مانه های سازنده سیستم، بطور فیزیکی از هم مجزا هستند، گرچه در اساس، مجزا بودن از نظر منطقی نیز کافی است(معمولا ًدر دنیای واقع چنین است که مانه ها از نظر جغرافیایی از هم جدا هستند).
مثلاً ممکن است دو مانه، کنار هم بر روی یک ماشین فیزیکی[22] قرار گرفته باشند.
در بیشتر تحقیقات اولیه فرض بر توزیع جغرافیایی مانه ها بود، درحالی که بیشتر سازمانهای تجاری اخیر در راستای توزیع محلی[23] فعالیت می کنند که در آن تعدادی مانه همگی در یک ساختمان و از طریق شبکه محلی بهم متصل شده اند.
2.
پیشرفت تکنولوژی سیستم های مدیریت پایگاه داده ها، با توسعه تکنولوژی محاسبات توزیع شده و پردازش های موازی همگام شده است. نتیجه نهایی این دو سیستم های مدیریت پایگاه داده های توزیع شده و موازی است. سازمانها بطور معمول، دارای ماهیت توزیع شده[24] هستند. این توزیع بطور منطقی و بصورت زیر بخش ها، دپارتمان ها[25] و گروه های کاری[26] و در اکثر مواقع بطور فیزیکی می باشد. در نتیجه سیستم توزیع شده ، ما را قادر می سازد تا ساختار پایگاه داده های مورد نیاز سازمانها را شبیه ساختار واقعی آنها ایجاد کنیم. بدین صورت که، داده محلی را می توان همانطور محلی نگه داری کرد در حالیکه در صورت نیاز امکان دسترسی به داده های دور[27] بطور همزمان نیز وجود داشته باشد .
بعنوان مثال، فرض کنید تنها دو مانه داریم: یکی در شهر A ودیگری در شهر B. فرض کنید هدف طراحی و پیاده سازی پایگاه داده اطلاعاتی برای حساب افراد در بانک باشد . این سیستم افزایش کارایی پردازش[28] را ازطریق نگه داری داده مورد نیاز هر مانه در نزدیک ترین محل به آن، و افزایش دسترس پذیری[29] را بوسیله دسترسی به داده های غیر محلی از دیگر مانه ها، بهمراه دارد. سیستم پایگاه داده های توزیع شده، با وجود داشتن مزایا خالی از عیب نیست ]حداقل[ از دیدگاه تکنیکی عیب آنها این است که سیستم های توزیع شده پیچیدگی[30]خاص خود را دارند.
در حالت ایده آل(حداقل از نظر تئوری)، این پیچیدگی فقط مسئله ای برای پیاده ساز پایگاه داده است نه کاربرپایگاهی[31]. البته در عمل تمام پیچیدگی ها و مشکلات سیستم های پایگاه داده های توزیع شده را نمی توان از کاربر پایانی پنهان ساخت.
در زیر برخی از مزایا و معایب این نوع سیستم ها بیان شده است:
2.1.:
سازگاری و هماهنگی با ماهیت سازمان های نوین
کارایی بیشتر در پردازش داده ها به ویژه در پایگاه داده های بزرگ
دستیابی بهتر به داده ها
اشتراک داده ها
افزایش پردازش موازی
کاهش هزینه ارتباطات
تسهیل گسترش سیستم
استفاده از پایگاه داده های از قبل موجود.
معایب:
پیچیدگی طراحی سیستم
پیچیدگی پیاده سازی
کاهش کارایی در برخی موارد
هزینه بیشتر
مصرف حافظه بیشتر.]روحا83[
3.
در اینجا سه نمونه سیستم توزیع شده پایگاهی در سطح نمونه اولیه[32] و سه نمونه تجاری آن رابیان می کنیم :
سیستم های پایگاه داده توزیع شده نمونه اولیه:
1 - سیستمSDD-1 که در یک تحقیق در یک کمپانی کامپیوتر در اواخر سال 1970 و اوایل 1980 در امریکا ایجاد شد.
2 - سیستم یک نسخه [33] توزیع شده از سیستم پایگاهی Rکه در تحقیقات IBM در اوایل 1980 ساخته شد.
3 - سیستم Distributed INGRES که در اوایل 1980 در دانشگاه برکلی امریکا ایجاد شد.
سیستم های پایگاه داده توزیع شده در سطح تجاری : اکثر سیستم های پایگاهی رابطه ای امروز انواعی از امکانات توزیع شده را پشتیبانی می کنند که البته درجه توانش [34] آنها متفاوت است.
a ) سیستم INGRES/STAR از گروه ASK.
b )نسخه توزیع شده[35] سیستم پایگاهی ORACLE 7 از کمپانی oracle.
c ) سیستم DB2 با قابلیت توزیع داده از IBM.
4.[36]
«از دید کاربر، یک سیستم توزیع شده باید دقیقاً شبیه یک سیستم متمرکز[37] باشد.» به بیانی دیگر کاربران یک سیستم توزیع شده باید درست مانند حالت سیستم متمرکز، عمل نمایند. تمام مشکلات سیستم های توزیع شده باید داخلی[38] و در سطح پیاده سازی [39] باشد نه در سطح خارجی یا در سطح کاربر. ] DATE2000 [
شکل 4– سیستم پایگاه داده توزیع شده از دید کاربر سیستم
شکل 5– سیستم پایگاه داده توزیع شده در دنیای واقع
عملگرهای عملیاتی داده ها مانند گزینش و پرتو، باید بطور منطقی بدون تغییر باقی بمانند. روشن است عملگرهای تعریف داده ، نیاز به گسترش هایی[40] برای سیستم های توزیع شده دارد. بعنوان مثال کاربر واقع در مانه ای باید بتواند یک رابطه ذخیره شده را به پاره هایی تقسیم و در مانه های دیگر ذخیره نماید.
قاعده مهم بالا، چند اصل فرعی[41] را در پی دارد:
1- خودمختاری محلی [42] .
2- عدم وابستگی به مانه مرکزی[43].
3- تداوم عملیات[44].
4- استقلال از مکان[45] و عدم وابستگی جغرافیایی.
5- استقلال از چگونگی پارسازی[46].
6- استقلال از چگونگی نسخه سازی[47].
7- پردازش در خواستهای توزیع شده[48].
8- مدیریت تراکنش های توزیع شده[49].
9- استقلال سخت افزاری[50]
10 - استقلال از سیستم عامل[51]
11- استقلال از شبکه[52]
12- استقلال از DBMS.
دوازده مورد ذکر شده بالا بطور کامل نسبت به هم مسقل نیستند و از نظر درجه اهمیت در یک سطح قرار ندارند. مهم این است که موارد ذکر شده به عنوان اصولی برای فهم تکنولوژی توزیع[53] بوده وچارچوبی[54] برای مشخص کردن توانش یک سیستم توزیع شده خاص به حساب می آید.
نکته آنکه، بین سیستم های توزیع شده پایگاهی و سیستم هایی که دارای قابلیت هایی برای دسترسی داده از راه دور[55] ( مانند سیستم های مشتری / خدمتگذار ) هستند ، تفاوت قائل شد.
در سیستم های دسترسی داده از راه دور، کاربر ممکن است قادر باشد به داده ای که در مانه دوری قرار دارد دستیابی کند و روی آن عملیات پردازش انجام دهد، یا به چند داده واقع در چند مانه جدا بطور همزمان دسترسی داشته باشد ، اما کاربر از عملکرد سیستم آگاه است، یعنی می داند که کدام داده محلی و کدام داده از دوردست است. در یک سیستم پایگاهی توزیع شده واقعی[56]عملکرد سیستم مخفی است. بر طبق آنچه گفته شد ، اصطلاح سیستم توزیع شده[57] به یک سیستم پایگاهی توزیع شده واقعی گفته می شود که درست در مقابل یک سیستم ساده دسترسی داده از راه دور[58] می باشد.
5.دوازده قاعده فرعی
خود مختاری محلی
مانه ها در سیستم توزیع شده پایگاهی باید خود مختار باشند. خود مختاری محلی یعنی تمام عملیات داده شده به یک مانه باید توسط همان مانه کنترل شود. هیچ مانه ای نباید برای انجام درست عملیاتش به مانه ای دیگر وابسته باشد ( در غیر اینصورت اگر یک مانه از کار بیافتد عملیات مانه دیگر بطور مستقل و بدرستی انجام نمی شود ).
برای پشتیبانی از خودمختاری محلی، نگهداری داده ها ومدیریت آنها باید بطور محلی انجام گیرد: تمام داده های محلی بطور واقعی متعلق به پایگاه داده های محلی هستند، مگر اینکه از طریق مانه های دور مورد دسترسی قرار گیرند. امنیت[59]، جامعیت[60] و نمایش حافظه داده های محلی تحت کنترل مانه محلی قرار دارند.
در حقیقت خود مختاری محلی بطور کامل قابل تحقق نیست. در مواردی یک مانه برای کنترل یا انجام عملیات تا حدی به مانه دیگری وابسته است. در عمل، یک مانه هدایت کننده[61] وجود دارد که مانه های دیگر به نوعی با آن در ارتباطند. البته وجود این مانه هدایت کننده از میزان «عدم وابستگی به یک مانه مرکزی» می کاهد.مطلوب آن است که مانه ها تا حداکثر ممکن خودمختار باشند و کمترین وابستگی را به مانه ای خاص داشته باشند.
عدم وابستگی به یک مانه مرکزی
بر اساس خودمختاری محلی، تمام مانه ها از نظر توانش عملیاتی باید در یک سطح باشند. بنابراین هیچ وابستگی به یک مانه مرکزی برای سرویس های مرکزی - مانند پردازش درخواست متمرکزشده[62] ، مدیریت تراکنش متمرکز شده[63] - وجود ندارد بطوریکه همه سیستم به آن مانه وابسته باشند. این عدم وابستگی به مانه مرکزی از خود مختاری محلی تاثیر می پذیرد.
چون خودمختاری محلی بطور کامل امکان پذیر نیست پس عدم وابستگی به مانه مرکزی هم صد در صد امکان نمی پذیرد.
وابستگی به مانه مرکزی حداقل به دو دلیل نامطلوب است: اول آنکه، ممکن است توانش عملیاتی و قدرت پردازش مانه مرکزی محدود باشد[64]، دوم و مهمتر اینکه ، امکان آسیب پذیری سیستم بیشتر می شود. آسیب پذیری بیشتر سیستم بدان جهت است که اگر مانه مرکزی از کار بیافتد، تمام سیستم از کار می افتد.