مفاهیم مدل داده ای شئ گرا

Download Report

Transcript مفاهیم مدل داده ای شئ گرا

‫بانکهای اطالعات ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪1‬‬
‫به نام خدا‬
‫موضوع‪:‬‬
‫بانکهای اطالعاتی ش ئ گرا‬
‫زمان ‪ 60:‬دقیقه‬
‫مدرس ‪ :‬مهندس محمد فرجیزاده‬
‫سرگروه کامپیوتر استان کهگیلویه و بویراحمد‬
‫دستور کار‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪2‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫مقدمه‬
‫مدل داده ش ئ گرا‬
‫طراحی بانک اطالعات ش ئ گرا‬
‫• اشیاء و روابط‬
‫• طراحی با ‪ODL‬‬
‫معایب مدل داده ش ئ گرا‬
‫مقدمه‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪3‬‬
‫• برای طراحی و پیاده سازی یک پایگاه داده ما نیاز داریم‪:‬‬
‫• تصویر ادراکی عام‬
‫‪‬با استفاده از مدل ‪ ER‬یا ‪UML‬‬
‫‪‬مشابه الگوریتم و فلوچارت در زمینه برنامه نویس ی‬
‫• تصویر ادراکی خاص‬
‫• پیاده سازی با استفاده از مدلهای داده ای از قبیل مدلهای رابطه ای‪ ،‬ش ئ گرا‪ ،‬ش ئ‬
‫ رابطه ای‪ ،‬شبکه ای‪ ،‬سلسله مراتبی‪ ،‬منطقی‪ ،‬تابعی و ‪...‬‬‫• مشابه روش های برنامه نویس ی (ساخت یافته‪ ،‬ماژوالر‪) … ،OOP ،‬‬
‫• مدل رابطه ای یکی از معروف ترین روشها میباشد‪.‬‬
‫مقدمه ( ادامه)‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪4‬‬
‫• مزایای مدل رابطه ای‪:‬‬
‫• سادگی و سهولت در درک و فهم‪:‬‬
‫• مفهوم ارتباط به آسانی با آن قابل درک است‬
‫• در زمینه تئوریک قدرتمند است ‪:‬‬
‫• استفاده از مفاهیم ریاضیات در بیان رابطه ها (جبر رابطه ای‪ ،‬حساب رابطه‬
‫ای تاپل‪ ،‬حساب رابطه ای دامنه)‬
‫• ابزار نرم افزاری قدرتمند‪:‬‬
‫• زبان ‪ DBMS ،SQL‬های رابطه ای فراوان‬
‫• پشتیبانی از‪:‬‬
‫• امنیت‪ ،‬جامعیت‪ ،‬نرمال سازی و بهینه سازی پرس و جو‬
‫مقدمه ( ادامه)‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪5‬‬
‫• معایب مدل رابطه ای‪:‬‬
‫• ناکارآمدی در برنامه های کاربردی مانند ‪... ،CAM ،CAD‬‬
‫• عدم پشتیبانی از انواع داده ها مانند صدا و یا تصویری‬
‫• عدم حمایت از روابط تو در تو‪ ،‬پرس و جو های بازگشتی‪ ،‬آپدیت نمایش ها‬
‫• ناکارآمدی در مدیریت بلند مدت تراکنش ها‬
‫• عدم انطباق بین زبان غیر رویه ای ‪SQL‬و زبان های برنامه نویس ی رویه ای‬
‫• تفکیک داده ها و متدهای مرتبط‬
‫مقدمه ( ادامه)‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪6‬‬
‫• مدلهای جدید‪( :‬برای رفع معایب مدل رابطه ای)‬
‫• مدل ش ئ گرا‬
‫• مدل ش ئ – رابطه ای‬
‫• مدل ‪XML‬‬
‫بانکهای اطالعات ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫بانکهای اطالعاتی ش ئ گرا‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪7‬‬
‫تاريخچه ش يگرايي‬
‫پایگاه داده پیشرفته‬
‫‪ ‬اولین بار در اواخر دهة ‪ ۱۹۶۰‬براي توسعة نرمافزار بهكار گرفته شد‬
‫‪ ‬در دهه ‪ 1990‬ش يگرا مورد توجه توسعهدهندگان قرار گرفت و جايگزين روشهاي کالسيک شد‬
‫‪ ‬ش يگرايي منجر به استفاده مجدد ميشود‬
‫‪‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪8‬‬
‫‪8‬‬
‫استفاده مجدد منجر به توسعه سريعتر نرمافزارهاي با كيفيت باالتر ميشود‬
‫‪ ‬نگهدراي نرمافزارهاي ش يگرا آسانتر است‬
‫ً‬
‫‪ ‬ساختار آن ذاتا فاقد پيوستگي است‬
‫‪ ‬تطبيق و تغيیر دادن اندازة سيستمهاي ش يگرا آسانتر است‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪9‬‬
‫• مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• شئ‬
‫•‬
‫•‬
‫•‬
‫(‪)OBJECT‬‬
‫مجموعه مقادیر داده ای که یک پدیده دنیای واقعی را معرفی میکند‬
‫معادل یک نمونه از موجودیت در مدل ‪ER‬‬
‫معادل ’‪‘instance‬‬
‫شي‬
‫حوزه مسئله‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪10‬‬
‫به عبارت دیگر‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪11‬‬
‫ش ئ نرم افزاری چیست؟‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪12‬‬
‫وضعیت ‪ /‬خصوصیت ش ئ ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪13‬‬
‫وضعیت ‪ /‬خصوصیت ش ئ (ادامه)‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪14‬‬
‫رفتار‪ /‬عملیات ش ئ ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪15‬‬
‫رفتار‪ /‬عملیات ش ئ ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪16‬‬
‫• مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• کالس (‪)CLASS‬‬
‫• قالب اطالعاتی که ویژگیهای مورد نظر برای مجموعه همسان از اشیاء‬
‫دنیای واقعی را بیان میکند (مثال کالس دانشجو یا استاد)‬
‫• معادل موجودیت در مدل ‪ER‬‬
‫• معادل“‪”SCHEMA‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪17‬‬
‫مفهوم کالس ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪18‬‬
‫مفهوم کالس ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪19‬‬
‫• مفاهیم مدل داده ای ش ئ گرا (ادامه) ‪:‬‬
‫• هر کالس شامل موارد زیر است‪:‬‬
‫• مجموعه متغیرها که قالب داده های مربوط به آن کالس را نگهداری‬
‫میکنند‪.‬‬
‫• مجموعه متدها که هریک کدی است که برای پیاده سازی یک رفتار نوشته‬
‫شده است‪.‬‬
‫• در هر متد فقط میتوان به متغیرهای همان ش ئ به طور مستقیم‬
‫دسترس ی داشت ‪ .‬برای دسترس ی به داده های اشیاء دیگر نیاز به ارسال‬
‫پیام میباشد‪.‬‬
‫• پیام به معنی فراخوانی یک رویه میباشد‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪20‬‬
‫پیاده سازی کالس ‪:‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪21‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪22‬‬
‫• مفاهیم مدل داده ای ش ئ گرا (ادامه) ‪:‬‬
‫• شناسه ش ئ (‪:)Object ID‬‬
‫• برای برقراری تناظر یک به یک بین هر پدیده در دنیای واقعی یا هر ش ئ‬
‫ذخیره شده در بانک اطالعات میباشد‬
‫• ‪ Id‬میتواند توسط کاربر تعریف شده باشد یا توسط سیستم ایجاد شده‬
‫باشد‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪23‬‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• وراثت‪:‬‬
‫• یعنی اشتقاق کالسها از یکدیگر و استفاده از کالسها در تعریف کالسهای دیگر‪ .‬بدین‬
‫ترتیب سلسله مراتبی از کالسها ایجاد میشود که قدرت و انعطاف پذیری زیادی به‬
‫برنامه ساز میدهند‪.‬‬
‫)‪Piece of Furniture (superclass‬‬
‫"‪”Chable‬‬
‫‪Desk‬‬
‫‪Chair‬‬
‫‪subclasses of the furniture‬‬
‫‪superclass‬‬
‫‪instances of Chair‬‬
‫‪Table‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪24‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪25‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪26‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪27‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪28‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪29‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪30‬‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• وراثت‪:‬‬
‫• وراثت چند گانه‬
‫• علل مشکالت وراثت چندگانه‪:‬‬
‫• برخورد نام‬
‫• وراثت تکراری‬
‫• محصور سازی (کپسوله سازی)‬
‫• استقالل موجودیت ‪ ‬پنهان کردن اطالعات‬
‫• چند ریختی‬
‫• یک پیام می تواند به رفتارهای مختلف بر روی اشیاء مختلف منجر شود‪:‬‬
‫به عنوان مثال‪ ،‬پیام "‪ “run‬برای خرگوش و الک پشت‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪31‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪32‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• انتقال پیام‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪33‬‬
‫• به معنی فراخوانی یک متد از یک ش ئ است‬
‫• می توانید پیش شرط‪ ،‬پس شرط و استثنا داشته باشد‬
‫• مشکل پیام رسانی در سیستم های بزرگ‪:‬‬
‫• بیاد آوردن رفتار اشیاء گوناگون‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪34‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪35‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪36‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪37‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪38‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• انواع مختلف پیام ها (عمدتا در بانک اطالعات ش ئ گرا استفاده می شوند)‪:‬‬
‫• همزمان‪ :‬فرستنده منتظر پاسخ میماند و کار دیگری انجام نمیدهد‪.‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪39‬‬
‫• پیام نا همزمان‪ :‬فرستنده منتظر پاسخ نمیماند و مشغول کار دیگری میشود‪.‬‬
‫• پیام آینده (‪ :)future‬فرستنده پیامی میفرستد ومشغول کار دیگری میشود و در‬
‫مواقع لزوم یا در فواصل زمانی ‪،‬دریافت پاسخ را بررس ی میکند یا منتظر میماند‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• انتقال پیام‪:‬‬
‫• انواع مختلف پیام ها (عمدتا در بانک اطالعات ش ئ گرا استفاده می شوند)‪:‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪40‬‬
‫• پیام فرصتی (‪ :)timeout‬فرستنده مدتی مشخص منتظر گیرنده میماند که یا‬
‫آماده دریافت شود یا پاسخ دهد‪.‬پس از انقضاء مدت ارتباط قطع میشود‪..‬‬
‫• پیام فوری ( ‪ :)balking‬فرصت این نوع پیام نزدیک به صفر است یعنی اگر‬
‫گیرنده بال فاصله آماده دریافت یا پاسخگویی نباشد فرستنده ارتباط را قطع‬
‫میکند‪.‬‬
‫‪‬پر کاربرد ترین آنها پیام ناهماهنگ و پیام آینده میباشد‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪41‬‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• پیوند پویا (کالس الگو)‬
‫• مفهوم پیوند پویا ارتباط تنگاتنگی با مفهوم کالس پارامتر دار دارد مثل پیاده سازی کالس ی‬
‫به نام صف‪ .‬اعضای این کالس اشیاء مختلفی هستند که در صف قرار میگیرند ولی‬
‫یکسان نیستند‪.‬‬
‫• راه حل؟‬
‫• جواب ‪ :‬استفاده از کالس پارامتر دار‬
‫• پارامترهای این نوع کالس در زمان اجرا مشخص میشوند‪ .‬به همین خاطر به آن پیوند پویا‬
‫گویند‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪42‬‬
‫• ادامه مفاهیم مدل داده ای ش ئ گرا‪:‬‬
‫• پیمانه (‪:)Module‬‬
‫• زیر برنامه های مربوط به یک پدیده در درون واحد بزرگتری به نام پیمانه قرار میگیرند‪.‬‬
‫• دنیای ش ئ گرایی ذاتا پیمانه ای میباشد زیرا اشیاء بزرگ و مرکب در درون خود اشیاء‬
‫کوچکتر را جای میدهند‪.‬‬
‫• هر سیستم نرم افزاری مجموعه ای از پیمانه هاست و پیمانه ها از اجزاء هم بی خبرند‪.‬‬
‫• در تعمیر و نگهداری سیستم اهمیت دارد‪.‬زیرا تغییر ساختار درونی پیمانه ها تاثیری روی‬
‫قسمتهای دیگر سیستم نمیگذارد‪.‬‬
‫• پیمانه دو چهره دارد‪ ،‬چهره رابط که به پیمانه های دیگر مربوط میشود و چهره داخلی یا‬
‫اجرائی که به خود پیمانه مربوط میشود‪.‬‬
‫• در زبانهایی مانند ‪ ADA‬و ‪ Modula2‬تبلور میابد‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• معیارهای سنجش کیفیت کالسهای طراحی شده‪:‬‬
‫• همبستگی (‪:)Coupling‬‬
‫• اجتناب از وابستگی های غیر منطقی بین کالس ها به این دلیل که تغییر یک کالس باعث تغییر‬
‫کالسهای وابسته به آن میشود‪(.‬در ارث بری و تعریف پیمانه)‬
‫• پیوستگی )‪:(Cohesion‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫• اجتناب از قرار دادن مفاهیم نامربوط در قالب یک کالس( مانند مخلوط کردن مصالح ساختمانی‬
‫ناهمگون که باعث فرو ریختن بنای ساخته شده میشوند)‪ .‬بحرانهای نرم افزاری از چنین نقطه هایی‬
‫شروع میشوند‪.‬‬
‫• کامل بودن (‪:)Completeness‬‬
‫• چهره رابط باید کالس باید تمامی خصوصیات آن را در رابطه با کاربرد مورد نظر در بر بگیرد‪(.‬کالس‬
‫حتی االمکان از رابط های اضافی در آینده بی نیاز باشد یعنی طراح کالس باید آینده نگری داشته‬
‫باشد)‬
‫• کفایت ( ‪ )Sufficiency‬و بی پیرایگی (‪:)primitiveness‬‬
‫‪43‬‬
‫• اجتناب از داده ها و متدهای غیر ضروری یعنی اینکه طراح کالس نباید هر چه به ذهنش میرسد هر‬
‫چند مربوطه موضوع باشد در آن قرار دهد‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪44‬‬
‫• مانایی داده (‪:)Data Persistence‬‬
‫‪‬داده ای که طول عمرش بیشتر از برنامه یا برنامه های مربوطه میباشد داده مانا نامیده‬
‫میشود‪.‬‬
‫• بانک اطالعات به داده بیشتر از برنامه اهمیت میدهد‪.‬‬
‫• در بانک اطالعات داده ها اصالت دارند و برنامه ها می آیند و میروند و از آنها‬
‫استفاده میکنند ولی داده ها همچنان میمانند و محافظت میشوند‪.‬‬
‫• اکثر زبانهای ش ئ گرا از خاصیت مانائی بی بهره اند (محصوالت جدید سعی دارند این‬
‫خاصیت را پشتیبانی کنند مثل ‪)c++‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪45‬‬
‫• جنبه های مختلف مانایی‪:‬‬
‫• مانائی اشیاء‪:‬‬
‫• داده ها در قالب اشیاء نگهداری و بروز میشوند‪.‬‬
‫• مانائی کالسها‪:‬‬
‫• کالسها مداوم در حال تغییر هستند به عبارت دیگر کالسها هم نسخه های گوناگونی دارند و‬
‫نسخه امروزی با نسخه دیروزی ممکن است متفاوت باشد‪.‬‬
‫• مثال در بانک اطالعاتی دانشگاه کالس ی مانند “دانشجو” مرتبا در حال تغییر است زیرا‬
‫درس ها‪ ،‬اساتید ‪ ،‬تعداد واحدها و غیره تغییر میکنند‪.‬‬
‫• به عنوان مثال‪ ،‬نسخه های مختلف دانشجو (تعاریف مختلف از دانشجوی ممتاز)‬
‫• نسخه های مختلف کالس تا زمانی که حتی یک نمونه از آن نسخه در بانک وجود دارد‬
‫باید نگهداری شود به این خاصیت مانایی کالس گویند‪.‬‬
‫مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪46‬‬
‫• جنبه های مختلف مانایی(ادامه) ‪:‬‬
‫• مانائی مکانی‪:‬‬
‫• نسخه های مختلف از یک کالس می تواند در مکان های مختلف در ‪DB‬توزیع می شود‬
‫• اشیاء قابلیت مهاجرت داشته باشند یعنی یک ش ئ بتواند از محلی به محل دیگر منتقل‬
‫شود‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪47‬‬
‫• مفهوم بانک اطالعات در مدلهای مختلف ارائه شده که هریک می کوشند انتزاعی از دنیای‬
‫خارج بسازند‪ .‬مثال در مدل سلسله مراتبی پدیده های دنیای واقعی به شکل درخت‪ ،‬در مدل‬
‫رابطه ای به شکل جدول و در مدل ش ئ گرا به شکل کالس و ‪ ...‬میباشند‪.‬‬
‫‪‬پس کار اصلی هر مدل داده ای ‪ ،‬انتزاع دنیای خارج است که شامل «داده ها» و «ارتباط بین‬
‫داده ها» میباشد‪.‬‬
‫• مدل سازی داده ها در بانک اطالعات ش ئ گرا‪:‬‬
‫• داده ها تنها به یک شکل ذخیره میشوند‪ ( .‬داده ها به عنوان اشیاء ذخیره میشوند)‬
‫• هر ش ی باید یک نمونه از یک کالس از پیش تعریف شده باشد‪.‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• مدلسازی ارتباط بین داده ها در بانک اطالعات ش ئ گرا‪:‬‬
‫• ارتباط بین داده ها بصورت ارتباط بین کالس ها مدل سازی میشود‪:‬‬
‫• گروه بندی (‪ Aggregation‬یا ‪: )Grouping‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫• از مجموعه چند ش ئ یک ش ئ بزرگتر بوجود می آورد‪.‬مثال ‪:‬‬
‫)‪Address=(country,city,street,no,zip‬‬
‫• این انتزاع با عنوان ”‪ “belongs-to‬و نوع ش ئ مرکب با عنوان ‪“is-‬‬
‫”‪ part-of‬شناخته میشود‪.‬‬
‫• وراثت (‪:)Inheritance‬‬
‫‪48‬‬
‫• ارث بری با عنوان ”‪ “is-a‬شناخته میشود‪.‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪49‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪50‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• مدلسازی ارتباط بین داده ها در بانک اطالعات ش ئ گرا (ادامه) ‪:‬‬
‫• ارتباط بین داده ها بصورت ارتباط بین کالس مدل سازی میشود‪:‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪51‬‬
‫• ارتباط (‪:)Assosiation‬‬
‫• این نوع انتزاع ‪،‬ارتباط بین اشیاء مختلف را نشان میدهد‪ .‬این ارتباط‬
‫میتواند ش ئ دیگری باشد درست مشابه مدل رابطه ای که ارتباط بین‬
‫جداول را با جداول دیگر نشان میدهد‪.‬‬
‫• این ارتباط با عنوان «‪ » member-of‬شناخته میشود‪.‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪52‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪53‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪54‬‬
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪55‬‬
‫• زبان اعالنی برای مدل سازی و طراحی پایگاه داده ش ئ گرا‬
‫ هیچ تسهیالت برای پرس و جو داده ندارد‬ DB ‫• مورد استفاده برای طراحی یک شمایی از‬
: ‫• مثال‬
Interface stud{
attribute integer s#;
attribute string sname;
attribute string city;
attribute float
avg;
attribute integer clg#;
/* methods */
pass( in crs#, out score);
/* relationships */
relationship set <sec> enroll
inverse stud::enroll;
relationship loan get-loan
inverse loan::give-loan;
};
‫ محمد فرجیزاده‬:‫مدرس‬
‫ زبان تعریف ش یء‬: ODL •
‫پایگاه داده پیشرفته‬
‫طراحی مدل داده ای ش ئ گرا‬
56
‫طراحی مدل داده ای ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫• ‪ : ODL‬زبان تعریف ش یء (ادامه)‬
‫• انواع داده ها ‪:‬‬
‫• انواع داده های تجزیه ناپذیر ‪:‬‬
‫• ‪float, character, string, bool, enum, integer‬‬
‫• انواع داده های مرکب ‪:‬‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫• ‪set, bag, list, array, struct‬‬
‫• پشتیبانی از وراثت چندگانه‬
‫• بدنه متدها مشخص نشده! آنها با زبان های میزبان پیاده سازی میشوند‬
‫(‪ ،C + + ،Smaltalk‬جاوا)‬
‫• )‪languages (Smaltalk, C++, Java‬‬
‫‪57‬‬
Interface gradstud : stud{
attribute struct thesis {date start, finish; string title } mythesis;
pass( in crs#, out score);
relationship set <sec> courses
inverse set::gets;
instructors( out set<prof> )
raises( no-instructor);
classmates( in c#, out set<stud>)
raises( no-classmate);
};
‫ محمد فرجیزاده‬:‫مدرس‬
: ‫یک مثال‬
‫پایگاه داده پیشرفته‬
‫طراحی مدل داده ای ش ئ گرا‬
58
‫معایب مدل داده ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪59‬‬
‫• معایب‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫فقدان تجربه کافی‬
‫فقدان استانداردهای مورد نیاز‬
‫فقدان مبانی نظری قوی‬
‫ضعف در جنبه های امنیتی‬
‫پشتیبانی ضعیف از نمایش ها‬
‫پیچیدگی باال‬
‫• معایب فوق باعث شد پژوهشگران مدلهای داده ای دیگری را در نظر بگیرند از جمله ‪:‬‬
‫• مدل داده ای ش ئ – رابطه ای‬
‫بانک اطالعاتی ش ئ گرا‬
‫پایگاه داده پیشرفته‬
‫مدرس‪ :‬محمد فرجیزاده‬
‫‪60‬‬
‫پایان‬
‫از توجه شما سپاسگذارم‬