DB1-Assignment2.pdf

‫مجموعه تمرینهای سری دوم درس پایگاه دادهها (‪)۱‬‬
‫نحوهی تحویل ‪ :‬نسخه کاغذی تمرین خود را (تایپشده یا دستنویس) به اتاق ‪( ۵۰۸‬آزمایشگاه دکتر میریان) تحویل دهید‪.‬‬
‫فرستادن تمرین به صورت ایمیل پذیرفته نیست‪.‬‬
‫نکات مورد توجه‬
‫در این تمرین به نکات زیر توجه کنید ‪:‬‬
‫‪ )1‬در نمودارهای ‪ ،ER‬شناسهی هر نوعموجودیت‪ ،‬صفت ممیزه نوعموجودیتهای ضعیف‪ ،‬الزامی بودن و نبودن مشارکت‬
‫نوعموجودیتها در نوعارتباطها‪ ،‬و چندی ارتباطها بایستی به درستی مشخص شوند‪.‬‬
‫‪ )2‬در تمرینهای اصلی‪ ،‬برخی پرسشها با عالمت ▲و برخی نیز با عالمت ♦ مشخص شدهاند‪ .‬پرسشها با عالمت ▲‬
‫ویژهی گروههای دو و سه نفری و پرسشها با عالمت ♦ تنها برای گروههای سه نفری هستند و دیگر گروهها نیازی به‬
‫انجام آنها ندارند‪.‬‬
‫‪ .I‬تمرینهای مدلسازی (اصلی)‬
‫‪ )1‬یک فروشگاه اینترنتی‪ ،‬برای ثبت اطالعات کاالها‪ ،‬مشتریان‪ ،‬و فروشهای خود‪ ،‬قصد ایجاد یک پایگاه داده را دارد‪ .‬در این‬
‫فروشگاه‪ ،‬هر مشتری میتواند تعدادی سفارشِ خرید داشته باشد و در هر سفارشِ خرید‪ ،‬تعدادی کاال از فروشگاه‬
‫خریداری کند (از هر کاال به تعداد مشخص)‪ .‬پس از ثبت سفارشِ خرید توسط مشتری‪ ،‬کاالهای مورد نظر مشتری در‬
‫یک تاریخ مشخص به او تحویل داده میشوند‪ .‬نحوهی پرداخت سفارش نیز میتواند نقدی (در حین تحویل) و یا اینترنتی‬
‫باشد‪ .‬کاالهای این فروشگاه در تعدادی انبار نگهداری میشوند و باید بدانیم از هر کاال و به چه میزان در هر انبار وجود‬
‫دارد‪ .‬یک نمودار ‪ ER‬مبنایی برای این محیط طراحی کنید‪.‬‬
‫‪ )2‬یک اداره قصد دارد اطالعات مربوط به ساعات و روز های کاری کارمندان خود را در یک پایگاه داده ثبت کند‪ .‬این‬
‫اطالعات شامل زمان ورود و خروج آنها در هر روز است‪ .‬همچنین این سیستم باید توانایی نگهداری اطالعات مربوط به‬
‫مرخصیهای هر کارمند را نیز داشته باشد (مرخصی روزانه و یا ساعتی)‪ .‬یک نمودار ‪ [E]ER‬برای این محیط طراحی‬
‫کنید‪ .‬آیا در این محیط نوع موجودیت ضعیف وجود دارد؟‬
‫(‪) 1‬‬
‫‪ )3‬در نمودار زیر چند نوع موجودیت ضعیف و چند نوع موجودیت قوی وجود دارد؟‬
‫‪ )4‬محیط با قواعد معنایی زیر را در نظر بگیرید ‪:‬‬
‫‪ ‬یک رستوران تنها با یک شرکت تهیه مواد غذایی قرارداد دارد و آن شرکت مواد غذایی خام را برای آن رستوران‬
‫فراهم میکند‪.‬‬
‫‪ ‬یک شرکت تهیه مواد غذایی‪ ،‬یک ماده غذایی خام را تنها برای یک رستوران فراهم میکند‪.‬‬
‫‪ ‬یک شرکت تهیه مواد غذایی میتواند برای چند رستوران مواد غذایی خام را فراهم کند‪.‬‬
‫دو نمودار ‪ ER‬برای این محیط به صورت زیر طراحی کنید ‪:‬‬
‫‪ .1‬به کمک یک نوعارتباط سهگانی بین نوعموجودیتهای «رستوران‪ ،‬شرکت‪ ،‬و ماده غذایی»‬
‫‪ .2‬به کمک یک نوعارتباط دوگانی بین رستوران و شرکت و سپس یک نوعارتباط بین این ارتباط دوگانی و مادهی‬
‫غذایی (به کمک تکنیک تجمیع)‬
‫کدامیک از این دو نمودار قواعد معنایی محیط را به درستی نمایش میدهند؟ در صورت منفی بودن پاسخ‪ ،‬یک نمودار‬
‫‪ [E]ER‬برای این محیط طراحی کنید که تمامی قواعد محیط را به درستی نمایش دهد‪.‬‬
‫‪ )۸‬در کدام یک از نمودارهای زیر دام شکاف وجود دارد؟ چرا؟ (منابع الزم برای شرح دام شکاف و یک چندی در سایت‬
‫درس گذاشته میشوند)‬
‫(‪) 2‬‬
‫‪ ]ELMA,2000[ )6‬موزهی هنرهای معاصر قصد تولید یک سیستم پایگاه دادهها را برای ثبت دادههای مورد نیاز خود دارد‪.‬‬
‫در مرحلهی "مهندسی نیازها" به اطالعات زیر رسیدهایم‪:‬‬
‫‪ ‬موزه مجموعهای از آثار هنری دارد که هر یک دارای یک شمارهی مشخصه‪ ،‬خالق (در صورت معلوم بودن)‪ ،‬سال‬
‫خلق (در صورت معلوم بودن)‪ ،‬عنوان‪ ،‬و توضیح هستند‪ .‬این آثار بر حسب نوع طبقهبندی میشوند‪ .‬سه نوع‬
‫اصلی این آثار عبارتند از‪" :‬نقاشی"‪" ،‬مجسمه"‪" ،‬تابلوی خطاطی"‪ .‬نوع چهارمی هم با عنوان "دیگر" وجود دارد‬
‫که هر اثری که در سه نوع اصلی نباشد‪ ،‬در این گروه قرار میگیرد‪.‬‬
‫‪ ‬هر "نقاشی" دارای نوع رنگ (رنگ روغن‪ ،‬آبرنگ و ‪ ،)....‬جنس مادهای که نقاشی روی آن کشیده شده است‬
‫(کاغذ‪ ،‬چوب‪ ،‬کرباس و ‪ )...‬و سبک (مدرن‪ ،‬آبستره و ‪ )...‬میباشد‪.‬‬
‫‪ ‬هر "مجسمه" دارای جنس مادهای که از آن ساخته شده است (سنگ‪ ،‬چوب و ‪ ،)...‬ارتفاع‪ ،‬وزن‪ ،‬و سبک‬
‫میباشد‪.‬‬
‫‪ ‬هر "تابلوی خطاطی" دارای سبک‪ ،‬طول‪ ،‬و عرض میباشد‪.‬‬
‫‪ ‬هر اثر دیگر دارای نوع (چاپی‪ ،‬عکس‪« ،‬ودیو آرت» و ‪ )....‬میباشد‪.‬‬
‫‪ ‬از طرف دیگر آثار هنری به دو نوع زیر هم طبقهبندی میشوند ‪:‬‬
‫‪" o‬کلکسیون دائمی" که متعلق به موزه هستند و دارای تاریخ تملک‪ ،‬قیمت و در حال نمایش بودن یا‬
‫در انبار بودن هستند و "قرضی" که دارای اطالعات صاحب اصلی‪ ،‬تاریخ دریافت و تاریخ برگشت‬
‫هستند‪.‬‬
‫‪ ‬آثار هنری همچنین شامل اطالعاتی در مورد کشور‪ /‬فرهنگ خلق شده در آن میباشد ( ایتالیایی‪ ،‬مصری‪،‬‬
‫آمریکایی‪ ،‬هندی‪ ،‬ایرانی‪.)...،‬‬
‫‪ ‬موزه همچنین اطالعاتی در مورد "هنرمندان" دارد‪ ،‬شامل نام‪ ،‬تاریخ تولد‪ ،‬تاریخ وفات‪ ،‬ملیت‪ ،‬سبک اصلی و‬
‫توضیحات‪ .‬نام را یکتا فرض کنید‪.‬‬
‫(‪) 3‬‬
‫‪ ‬نمایشگاههای مختلفی در موزه برگزار میشود که هر کدام دارای نام‪ ،‬تاریخ افتتاحیه‪ ،‬تاریخ اختتامیه‪ ،‬اعضای‬
‫هیئت داوری (در صورت وجود)‪ ،‬و اطالعات تمامی آثار هنری شرکت کننده در نمایشگاه میباشد‪.‬‬
‫‪ ‬اطالعاتی در مورد سایر موزههای مرتبط با موزه هنرهای معاصر ثبت میشود که شامل نام‪ ،‬آدرس‪ ،‬شمارهی‬
‫تلفن‪ ،‬و نام مسئول فعلی میباشد‪.‬‬
‫یک ‪ ERD‬برای این سیستم رسم کنید و در صورت نیاز مفروضات خود را با ذکر آنها در مدلسازی دخالت دهید‪.‬‬
‫‪ ▲ )7‬یک رستوران قصد تولید یک سیستم پایگاه دادهها را برای ثبت دادههای خود دارد‪ .‬در مرحلهی "مهندسی نیازها" به‬
‫اطالعات زیر رسیدهایم‪:‬‬
‫‪ ‬رستوران‪ ،‬شعب گوناگونی در سطح ایران دارد که شعب تهران مستقیما زیر نظر مدیر شعبهی اصلی اداره‬
‫میشوند و شعب شهرستان هر کدام مدیر مستقلی دارند که تحت نظر مدیر شعبهی اصلی فعالیت میکند‪.‬‬
‫‪ ‬رستوران با تأمینکنندگان مواد غذایی مختلفی قرارداد دارد که محمولههای مختلفی را بر حسب نیاز هر روز یا‬
‫هر چند روز یکبار به شعب مختلف تحویل میدهند‪.‬‬
‫‪ ‬هر شعبه چندین آشپز‪ ،‬پیشخدمت‪ ،‬کارگر‪ ،‬و راننده دارد که با توجه به ساعات کاریشان‪ ،‬دستمزد ماهانه‬
‫میگیرند‪.‬‬
‫‪ ‬غذاهای رستوران که نوع و میزان مواد غذایی هر کدام مشخص است‪ ،‬با قیمتهای مشترك توسط مشتریان‬
‫(چه موردی و چه مشترك) خریداری میشوند‪.‬‬
‫‪ ‬به جز مشتریان مشترك و موردی‪ ،‬چندین سازمان با شعب مختلف رستوران قرارداد ماهیانه دارند و غذاهای‬
‫مشخصی را هر روز دریافت میکنند‪.‬‬
‫‪ ‬شکایات مشتریان از هر نوع (غذا‪ ،‬سرویس و‪ )....‬ثبت میشود و در اختیار مدیریت کل رستوران قرار میگیرد و‬
‫از سوی او برحسب مورد‪ ،‬نمره منفی به شعبه تعلق میگیرد‪.‬‬
‫‪ ‬هر مشتری پس از صرف غذا نمرهای بین ‪ ۰‬تا ‪ 1۰‬به غذا و سرویس رستوران میدهد‪.‬‬
‫الف ) یک نمودار ‪ ER‬برای این سیستم رسم کنید و در صورت نیاز مفروضات خود را با ذکر آنها وارد کنید‪.‬‬
‫ب ) شبه برنامههایی بنویسید که به پرسوجوهای زیر پاسخ دهد‪:‬‬
‫‪ ‬درآمد روزانهی شعبهی شهر ‪ A‬را محاسبه کن‪.‬‬
‫‪ ‬هزینهی ماهیانهی شعبهی شهر ‪ B‬را محاسبه کن‪.‬‬
‫‪ ♦ ‬پردرآمدترین شعبه در ماه اخیر را بیاب‪.‬‬
‫‪ ♦ ‬بهترین شعبه در ماه اخیر را بیاب (با بیشترین میانگین امتیاز)‪.‬‬
‫(‪) 4‬‬
‫‪ .II‬تمرینهای تکمیلی مدلسازی (اختیاری)‬
‫‪ )1‬مثالی از یک نوع موجودیت ضعیف ذکر کنید که خود یک نوعموجودیت ضعیف داشته باشد‪.‬‬
‫‪ )2‬آیا میتوان مفاهیم مطرح در ‪( EER‬ارتباط «هست‪-‬یک»‪ ،‬تجمیع‪ ،‬زیرنوع اجتماع‪ ،‬و ‪ )...‬را به نحوی با مفاهیم ‪ ER‬مبنایی‬
‫شبیهسازی کرد و نمایش داد؟ چگونه؟ به طور کامل شرح دهید‪.‬‬
‫‪ )3‬همانگونه که میدانید میتوان نوعارتباط را با نوعموجودیت ضعیف هم نمایش داد‪ .‬هر کدام از نوع ارتباطهای دوگانی با‬
‫چندیهای گوناگون (‪ ،1:N ،1:1‬و ‪ )M:N‬و در صورت امکان با صفات گوناگون برای نوعارتباط (بویژه صفت ممیزهی‬
‫نوعارتباط‪ )1‬را با نوع موجودیت ضعیف مدلسازی کنید و بررسی کنید که آیا نمودار طراحی شده‪ ،‬نوع ارتباط را به‬
‫درستی نمایش میدهد یا خیر؟ (این کار را میتوانید برای نوعارتباطهای سهگانی نیز انجام دهید)‬
‫‪ )4‬تفاوتهای زیرنوع اجتماع با زیرنوع با بیش از یک زبرنوع چیست؟‬
‫‪ .III‬تمرینهای عمومی (اختیاری)‬
‫‪ )1‬یک کتاب «فلسفه علم»‪« ،‬تاریخ علم»‪ ،‬و یا «تاریخ مهندسی» را مطالعه کرده ‪ ،‬محتوای هر یک را در حدود دو صفحه‬
‫گزارش کنید (منابعی در این باره در سایت و گروه درس گذاشته خواهند شد)‬
‫‪ )2‬مطالعه و گزارش حوزهی «ساخت مدلرانهی نرمافزار‪ 3»2‬و بررسی نقش مدلسازی در این حوزه و در حالت کلیتر‪ ،‬در‬
‫حوزهی مهندسی نرمافزار (بویژه نگریستن به «نرمافزار» به عنوان یک محصول «مهندسی»)‪.‬‬
‫‪ 1‬به این مفهوم در کالسهای حل تمرین خواهیم پرداخت‪.‬‬
‫)‪Model-Driven Development (MDD‬‬
‫‪2‬‬
‫‪ 3‬این حوزه با کلید واژههایی مانند «معماری مدلرانه» (‪ )Model Driven Architecture‬یا «مهندسی مدلرانه» (‪ )Model Driven Engineering‬نیز شناخته‬
‫میشود‪.‬‬
‫(‪) ۸‬‬