DB1-Assignment5.pdf

‫مجموعه تمرینهای سری پنجم درس پایگاه دادهها (‪)۱‬‬
‫نحوهی تحویل ‪ :‬نسخه کاغذی تمرین خود را قبل از شروع امتحان پایان ترم به استاد تحویل دهید‪ .‬تحویل تمرین بعد از امتحان شامل‬
‫حداقل ‪ 50‬درصد کسر نمره خواهد بود‪.‬‬
‫تمرینات را می توانید به صورت دو نفره نیز تحویل دهید‪.‬‬
‫در این تمرین از محیط زیر استفاده شدهاست‪:‬‬
‫‪QTY‬‬
‫این محیط با جدولهای زیر طراحی شدهاست‪:‬‬
‫)𝑌𝑇𝐼𝐶 ‪𝑆(𝑆# , 𝑆𝑁𝐴𝑀𝐸, 𝑆𝑇𝐴𝑇𝑈𝑆,‬‬
‫)𝑌𝑇𝐼𝐶 ‪𝐽 (𝐽#, 𝐽𝑁𝐴𝑀𝐸,‬‬
‫)𝑇𝐻𝐺𝐼𝐸𝑊 ‪𝑃(𝑃#, 𝑃𝑁𝐴𝑀𝐸, 𝐶𝑂𝐿𝑂𝑅, 𝐶𝐼𝑇𝑌,‬‬
‫)𝑌𝑇𝑄 ‪𝑆𝑃𝐽(𝑆# , 𝑃# , 𝐽#,‬‬
‫‪ )1‬فرض کنید )𝐽𝑃𝑆(>‪ 𝑅1 = ∏<𝑃#>(𝑃) ∪ ∏<𝑃#‬و )𝐽𝑃𝑆(>‪.𝑅2 = ∏<𝑆#>(𝑆) ∩ ∏<𝑆#‬‬
‫‪ .a‬اگر )𝑃(>‪ ،𝑅1 = ∏<𝑃#‬چه میتوان گفت؟‬
‫‪ .b‬اگر )𝑆(>‪ ،𝑅2 = ∏<𝑆#‬چه میتوان گفت؟‬
‫‪ )2‬عملگر ‪ LEFT OUTER JOIN‬را در جبر رابطهای شبیهسازی کنید‪.‬‬
‫‪ )3‬در مورد عملگر تقسیم (‪ )DEVIDE‬به سواالت زیر پاسخ دهید‪:‬‬
‫‪ .a‬این عملگر را با زبان خود توصیف کنید‪.‬‬
‫(‪) 1‬‬
‫‪ .b‬این عملگر را شبیهسازی کنید و سپس عبارت شبیهسازی را برای پرسش ‪« : Q1‬شماره تهیهکنندگانی را بدهید که برای‬
‫تمام پروژهها قطعه تهیهکردهاند» بنویسید و سپس گام به گام توضیح دهید هر زیربخش از عبارت شبیهسازی‪ 1،‬پاسخ به‬
‫چه پرسشی است‪ .‬زیربخش پایانی‪ ،‬پاسخ به کدام پرسش است؟‬
‫‪ .c‬آیا همواره ‪(𝑅1 𝑫𝑬𝑽𝑰𝑫𝑬 𝑅2 ) 𝑻𝑰𝑴𝑬𝑺 𝑅2 = 𝑅1‬؟‬
‫‪ .d‬آیا همواره ‪(𝑅1 𝑻𝑰𝑴𝑬𝑺 𝑅2 ) 𝑫𝑬𝑽𝑰𝑫𝑬 𝑅2 = 𝑅1‬؟‬
‫‪ )4‬جابجایی پذیری دو عملگر 𝜎 و ‪ Π‬نسبت به یکدیگر چگونه است؟ حاالت گوناگون را به طور کامل بررسی کنید‪.‬‬
‫‪ )5‬به پرسشهای زیر در جبر رابطهای پاسخ دهید‪:‬‬
‫‪ .a‬رنگ قطعات تهیه شده توسط تهیهکنندهی ’‪.‘s1‬‬
‫‪ .b‬مجموع تعداد قطعات ’‪ ‘p1‬تهیه شده توسط ’‪.‘s1‬‬
‫‪ ³ .c‬نام تهیهکنندگانی که در بیش از یک پروژه قطعه تهیه کردهاند‪.‬‬
‫‪ .d‬نام تهیهکنندگانی که تمام قطعات تهیه شده توسط ’‪ ‘s1‬را تهیه میکنند‪.‬‬
‫‪ .e‬نام تهیهکنندگانی که برای تمام پروژههای همشهر خود قطعه تهیهکردهاند‪( .‬از عملگر دگرنامی استفاده کنید)‬
‫‪ .i‬آیا پاسخ این پرسش در جبر رابطهای شباهتی با عبارت شبیهسازی عملگر تقسیم دارد؟‬
‫‪ .f‬نام تهیهکنندگانی که فقط برای پروژههای همشهر خود قطعه تهیه کردهاند‪.‬‬
‫‪ )6‬پرسش زیر در حساب رابطهای در پاسخ به چه سوالی است؟‬
‫‪SX.S# WHERE | EXISTS PX ( FORALL JX ( EXISTS SPJY‬‬
‫‪( SPJY.S# = SX.S# AND‬‬
‫‪SPJY.P# = PX.P# AND‬‬
‫) ) ) ‪SPJY.J# = JX.J#‬‬
‫‪ )7‬برای کنترل قواعد گفته شده‪ ،‬در حساب رابطهای اظهار مناسب بنویسید‪.‬‬
‫‪ .a‬محدودیت یکتایی کلید در رابطهی 𝐽‪.‬‬
‫‪ ³ .b‬قاعدهی جامعیت ارجاعی کلید خارجی ‪ P#‬در جدول ‪.SPJ‬‬
‫‪ )8‬در رابطه )𝐺 ‪ 𝑅(𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹,‬داریم‪:‬‬
‫𝐺 → )𝐹 ‪(𝐴, 𝐸,‬‬
‫‪(𝐵, 𝐶) → (𝐷, 𝐸) ,‬‬
‫‪𝐴→𝐵 ,‬‬
‫‪ {𝐴, 𝐶}+ .a‬را محاسبه کنید‪.‬‬
‫‪ ⅔ .b‬آیا میتوان )𝐺 ‪ (𝐴, 𝐶, 𝐹) → (𝐷,‬را نتیجه گرفت؟‬
‫‪ )9‬آیا مجموعه وابستگیهای تابعی زیر برای رابطه )𝐸 ‪ 𝑅(𝐴, 𝐵, 𝐶, 𝐷,‬معادل هستند؟‬
‫𝐸 → 𝐷 ‪1) 𝐴 → 𝐵 , (𝐴, 𝐵) → 𝐶 , 𝐷 → (𝐴, 𝐶) ,‬‬
‫)𝐸 ‪2) 𝐴 → (𝐵, 𝐶) , 𝐷 → (𝐴,‬‬
‫‪ )10‬برای مجموعه وابستگیهای تابعی زیر‪ ،‬مجموعهی کاهشناپذیر وابستگیهای تابعی را بیابید‪.‬‬
‫‪.a‬‬
‫‪.b‬‬
‫})𝐷 ‪𝐹1 = {𝐴 → (𝐶, 𝐷, 𝐸), 𝐵 → (𝐶, 𝐸), (𝐴, 𝐷) → 𝐸, (𝐵, 𝐷) → 𝐴, (𝐶, 𝐷, 𝐸) → (𝐴, 𝐵,‬‬
‫}𝐴 → )𝐸 ‪𝐹2 = {𝐵 → 𝐷, 𝐸 → 𝐶, (𝐴, 𝐶) → 𝐷, (𝐶, 𝐷) → 𝐴, (𝐵,‬‬
‫‪ 1‬هر زیربخش همارز هر عملگر در عبارت جبر رابطهای به همراه عملوندهای آن است‪.‬‬
‫(‪) 2‬‬
‫‪ )11‬برای رابطه )‪ R (A,B,C,D,E‬دو مجموعه وابستگیهای تابعی زیر را در نظر بگیرید ‪:‬‬
‫‪{𝐴 → (𝐵, 𝐶) , (𝐶, 𝐷) → 𝐸 , 𝐵 → 𝐷, 𝐸 → 𝐴} .a‬‬
‫‪{(𝐴, 𝐵) → 𝐶 , (𝐶, 𝐷) → 𝐸 , (𝐷, 𝐸) → 𝐵} .b‬‬
‫با توجه به هر کدام از این دو مجموعه‪ ،‬تمامی کلیدهای کاندید این رابطه را بدست آورید‪.‬‬
‫این رابطه در هر حالت چند سوپرکلید دارد؟‬
‫‪ )12‬در رابطه )‪ R(A,B,C‬وابستگی 𝐵 →→ 𝐴 وجود دارد‪.‬‬
‫‪ .a‬اگر تاپلهای 〉‪ 〈1,2,3〉 , 〈1,4,5〉, 〈1,6,7‬را در این رابطه درج کنیم‪ ،‬چه تاپلهای دیگری باید در ‪R‬درج شوند؟‬
‫‪ .b‬بدون درنظر گرفتن ‪JD‬های نامهم‪ ،‬این رابطه چند ‪JD‬دارد و کدامند؟‬
‫‪ )13‬قسمتی از یک محیط با رابطهی زیر نمایش داده شدهاست‪.‬‬
‫)‪PROJWORK (PJNAME, PJMGRID, PJEMPID, PJEMPNAME, PJBUDGET, EMPSALARY, PJSTARTDATE, EMPRATING‬‬
‫در این محیط‪ ،‬قواعد معنایی زیر وجود دارد‪:‬‬
‫‪ ‬هر پروژه یک نام واحد دارد‪.‬‬
‫‪ ‬هر پروژه یک مدیر دارد که شناسه آن مشخص است‪.‬‬
‫‪ ‬در یک پروژه تعدادی کارمند کار میکنند و یک کارمند ممکن است در بیش از یک پروژه کار کند‪.‬‬
‫معنای صفات رابطه چنین است‪:‬‬
‫نام پروژه‬
‫شناسه مدیر پروژه‬
‫شناسه کارمند پروژه‬
‫نام کارمند پروژه‬
‫بودجه تخصیص داده شده به پروژه‬
‫حقوق کارمند در پروژه‬
‫تاریخ شروع پروژه‬
‫نمرهای که مدیر پروژه در پایان کار کارمند در پروژه به او میدهد‬
‫‪PJNAME‬‬
‫‪PJMGRID‬‬
‫‪PJEMPID‬‬
‫‪PJEMPNAME‬‬
‫‪PJBUDGET‬‬
‫‪EMPSALARY‬‬
‫‪PJSTARTDATE‬‬
‫‪EMPRATING‬‬
‫‪ .a‬نمودار وابستگیهای تابعی این رابطه را رسم کنید‪.‬‬
‫‪ .b‬این رابطه را به حداقل تعداد رابطه ‪ 3NF‬تجزیه کنید‪.‬‬
‫‪ .c‬الگوریتم زیر را بر روی رابطه اولیه اجرا کنید ‪:‬‬
‫‪ -1‬مجموعه کاهشناپذیر وابستگیهای تابعی رابطه را بدست آورید‪.‬‬
‫‪ -2‬مجموعه کاهشناپذیر وابستگیهای تابعی این رابطه را به گونهای افراز کنید که در هر زیرمجموعه‪ ،‬سمت چپ‬
‫تمام وابستگیهای تابعی یکسان باشند‪.‬‬
‫‪ -3‬مجموعه صفات هر زیرمجموعه از وابستگی های تابعی را در یک رابطه بگذارید (صفاتی که در هیچ‬
‫زیرمجموعهای نیامدهاند را در یک رابطه بگذارید)‪.‬‬
‫‪ .d‬آیا روابط بدست آمده از الگوریتم بخش ‪ c‬با روابط بخش ‪ b‬یکسان است؟‬
‫‪ .e‬آیا میتوان ادعا کرد الگوریتم بخش ‪ c‬همواره یک رابطه را به روابط حداقل ‪ 3NF‬تبدیل میکند؟ اگر خیر‪ ،‬چه تغییرات‬
‫و‪ /‬یا شرایط و محدودیتهایی را باید بر روی این الگوریتم اِعمال کنیم؟‬
‫(‪) 3‬‬
‫‪ .f‬آیا میتوانید این الگوریتم را به نحوی گسترش دهید که برای تجزیه رابطه به روابط حداقل ‪ BCNF‬نیز درست کار کند؟‬
‫(شاید بدون تغییر نیز این الگوریتم برای این منظور درست کار کند!)‬
‫‪ )14‬رابطهی )‪ S( S#, P# , CITY, STATUS, QTY‬مفروض است‪.‬‬
‫در این رابطه داریم 𝑆𝑈𝑇𝐴𝑇𝑆 → ‪ ،𝑆# → 𝐶𝐼𝑇𝑌 ،𝑆#‬و 𝑆𝑈𝑇𝐴𝑇𝑆 → 𝑌𝑇𝐼𝐶‪.‬‬
‫‪ .a‬این رابطه حداکثر در کدام سطح نرمال است؟‬
‫‪ .b‬آن را به نرمالترین رابطهها تجزیه کنید‪.‬‬
‫‪ )15‬رابطه ) ‪ STCOPR (STID , COID , PRID , COSEC# , TERM‬را در نظر میگیریم‪ .‬معنای رابطه چنین است ‪:‬‬
‫«دانشجو درس را در یک گروه درسی با استاد انتخاب میکند»‪ .‬قواعد معنایی عبارتند از ‪:‬‬
‫‪ -1‬یک دانشجو یک درس را در یک ترم با یک استاد انتخاب میکند‪.‬‬
‫‪ -2‬یک استاد در یک ترم بیش از یک درس تدریس میکند‪.‬‬
‫‪ -3‬یک درس ممکن است در چند گروه درسی ارائه شود‪.‬‬
‫‪ -4‬یک درس در یک ترم توسط چند استاد ارائه میشود‪.‬‬
‫اوالً ‪ :‬به کمک مجموعه وابستگیهای تابعی‪ ،‬کلید(های) کاندید این رابطه را مشخص کنید‪.‬‬
‫ثانیاً ‪ :‬رابطه در کدام سطح نرمال است؟‬
‫ثالث ًا ‪ :‬آیا باید تجزیه شود؟ اگر بله‪ ،‬چگونه؟‬
‫‪ )16‬محیط تورهای مسافرتی یک آژانس مسافرتی با قواعد معنایی زیر را در نظر بگیرید ‪:‬‬
‫‪ .a‬یک تور تعدادی مسئول از کارمندان آژانس دارد‪.‬‬
‫‪ .b‬یک کارمند میتواند در بیش از یک تور مسئول باشد‪.‬‬
‫‪ .c‬هر تعداد از مسافران یک تور‪ ،‬زیر نظر یک مسئول از تور هستند‪.‬‬
‫‪ .d‬هر مسافر در یک تور میتواند تعدادی مسئولیت فرعی داشته باشد (کمک به مسئول تور خود)‪.‬‬
‫نمودار مدلسازی زیر برای این محیط ارائه شده است ‪:‬‬
‫اوالً ‪ :‬رابطههای الزم برای این نمودار را به روش باال به پایین طراحی کنید و کلیدهای هر رابطه را نیز مشخص کنید‪.‬‬
‫(‪) 4‬‬
‫ثانیاً ‪ :‬مجموعه وابستگی های این محیط را بنویسید و سپس بر اساس آن‪ ،‬کلید های کاندید هر کدام از روابط را مشخص کنید و‬
‫بگویید هر رابطه در کدام سطح نرمال است؟ آیا کلیدهای بدست آمده از طراحی با روش باال به پایین برای روابط درست هستند؟‬
‫اگر خیر‪ ،‬چرا؟‬
‫‪ )17‬رابطه )‪ R (A,B,C,D,E,G‬با مجموعه وابستگیهای تابعی زیر مفروض است ‪:‬‬
‫}𝐺 → 𝐸 ‪𝐹 = {(𝐴, 𝐵) → 𝐶, (𝐴, 𝐶) → 𝐵, (𝐴, 𝐷) → 𝐸, 𝐵 → 𝐷, (𝐵, 𝐶) → 𝐴,‬‬
‫اوالً ‪ :‬طبق قضیه هیث‪ ،‬این رابطه را به دو رابطه تجزیه کنید‪.‬‬
‫ثانیاً ‪ :‬آیا میتوانید این رابطه را به گونهای تجزیه کنید که حافظ وابستگیها باشد و تمامی روابط حاصل‪ ،‬حداقل در ‪ 3NF‬باشند؟‬
‫اگر بله‪ ،‬آیا پرتوهای حاصل از این تجزیه‪ ،‬مستقل از هم هستند؟ آیا این تجزیه بیحشو است؟‬
‫(‪) 5‬‬