مفاهیم مدل داده ای شئ گرا
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
پایان
از توجه شما سپاسگذارم