HW2.pdf

‫به نام یگانه خالق هستی بخش‬
‫تمرین دوم درس طراحی پایگاه داده‬
‫اهداف‪:‬‬
‫‪ ‬آشنایی با زبان جستار ساختاریافته (‪)SQL‬‬
‫‪ ‬آشنایی با معماری سه الیه پایگاه داده‬
‫‪ ‬آشنایی با انواع دید‬
‫دانشکده مهندسی کامپیوتر‬
‫دانشگاه صنعتی شریف‬
‫بهار ‪۱۹‬‬
‫‪0‬‬
‫بخش اول‪ :‬سواالت تشریحی‬
‫پاسخ سواالت زیر را بصورت تشریحی و تا جای ممکن شامل‪ ،‬جامع‪ ،‬مانع و موجز بنویسید‪.‬‬
‫‪.۹‬‬
‫نمای سادهشدهی معماری سه سطحی را در نظر بگیرید‪ .‬یک مدلسازی حداقل دو موجودیتی را در نظر بگیرید‬
‫سپس در هر الیه از معماری‪ ،‬چگونگی آن را توصیف کنید‪.‬‬
‫‪.2‬‬
‫مدلسازی سوال ‪ 2‬تمرین اول (بانک) را در نظر بگیرید‪ .‬آن را با استفاده از دستورات توصیف دادهای (کلیدها و‬
‫محدودیتها و دامنهها تا جای ممکن معلوم باشد) توصیف کنید‪.‬‬
‫‪.3‬‬
‫آیا مدل دادهی شیگرا (به معنای دقیق مدل داده) وجود دارد؟‬
‫‪.4‬‬
‫کدامیک از تبدیلهای ‪ E/C ، E/E‬و ‪ C/I‬در چه وضعی الزم نیست انجام شود؟‬
‫‪.5‬‬
‫استقالل دادهای چیست؟ دستهبندی آن کدام است؟ در مورد هر کدام توضیح دهید‪.‬‬
‫‪.6‬‬
‫آنومالی در مباحث پایگاهی به چه معناست؟‬
‫‪.7‬‬
‫با توجه به پایگاه رابطهای درس‪ ،‬دانشجو و اخذ‪ ،‬در امکان انجام عملیات ذخیرهسازی در دیدهای پیوندی ‪،CK-CK‬‬
‫‪ CK-FK‬و ‪ FK-FK‬با مثال بحث کنید‪.‬‬
‫بخش دوم‪ :‬سواالت تحلیلی‬
‫دقت کنید در این بخش از موجودیتهای ‪( S P J‬تامینکننده‪ ،‬محصول و کار) و رابطهی بین آنها و یا موجودیتهای مربوط‬
‫به محیط آموزشی استفاده شده است‪.‬‬
‫‪.۹‬‬
‫جداول زیر که یکی بیانگر اطالعات هر درس و دیگری نمایش دهنده ارتباط پیشنیازی درس (پیشنیازی مستقیم) است‬
‫را در نظر بگیرید ‪:‬‬
‫‪...‬‬
‫تعداد واحد‬
‫عنوان درس‬
‫شماره درس‬
‫‪...‬‬
‫‪3‬‬
‫‪A‬‬
‫‪C01‬‬
‫…‬
‫…‬
‫…‬
‫…‬
‫…‬
‫…‬
‫…‬
‫…‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫…‬
‫‪B‬‬
‫‪C‬‬
‫‪D‬‬
‫‪E‬‬
‫‪F‬‬
‫‪G‬‬
‫‪H‬‬
‫…‬
‫‪C02‬‬
‫‪C12‬‬
‫‪C13‬‬
‫‪C14‬‬
‫‪C15‬‬
‫‪C19‬‬
‫‪C20‬‬
‫…‬
‫شماره درس پیشنیاز‬
‫شماره درس‬
‫‪C12‬‬
‫‪C19‬‬
‫‪C15‬‬
‫‪C15‬‬
‫‪C13‬‬
‫‪C14‬‬
‫‪C01‬‬
‫‪C01‬‬
‫‪C12‬‬
‫‪C19‬‬
‫‪C19‬‬
‫‪C02‬‬
‫‪۹‬‬
‫‪C02‬‬
‫‪C15‬‬
‫…‬
‫‪C20‬‬
‫‪C14‬‬
‫…‬
‫الف ) دیدی به نام ‪ COPRECO_VIEW‬تعریف کنید که کاربر بتواند عنوان تمام پیشنیازی های یک درس (مستقیم و غیر‬
‫مستقیم) را به همراه عمق پیشنیازی مشاهده کند ‪ .‬با توجه به جداول باال ‪ ،‬دید مورد نظر برای کاربر بایستی به صورت زیر‬
‫باشد ‪:‬‬
‫عمق پیشنیازی‬
‫عنوان درس پیشنیازی‬
‫عنوان درس‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪3‬‬
‫‪3‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫…‬
‫‪C‬‬
‫‪F‬‬
‫‪G‬‬
‫‪E‬‬
‫‪D‬‬
‫‪F‬‬
‫‪E‬‬
‫‪H‬‬
‫…‬
‫‪A‬‬
‫‪A‬‬
‫‪A‬‬
‫‪A‬‬
‫‪A‬‬
‫‪C‬‬
‫‪B‬‬
‫‪B‬‬
‫…‬
‫ب ) کدام یک از درج های زیر در این دید امکانپذیر است ؟ مشکالت هر یک را (در صورت وجود) بیان کنید ‪:‬‬
‫) ‪1- Insert into COPRECO_VIEW values ( A , B , 1‬‬
‫) ‪2- Insert into COPRECO_VIEW values ( A , H , 3‬‬
‫پ ) با توجه به داده های قرار داده شده در جداول باال ‪ ،‬کدام یک از حذف های زیر امکان پذیر است ؟ مشکالت هر یک را در‬
‫صورت وجود بیان کنید‪.‬‬
‫’‪1- delete from COPRECO_VIEW where COTITLE = ’A’ and PRECOTITLE = ’C‬‬
‫’‪2- delete from COPRECO_VEW where COTITLE = ’A’ and PRECOTITLE = ‘G‬‬
‫ت ) بهنگام سازی زیر چه مشکالتی دارد ؟‬
‫’‪UPDATE COPRECO_VIEW SET DEPTH = 1 WHERE COTITLE = ‘A‬‬
‫‪2‬‬
‫‪.2‬‬
‫در هر مورد پذیرا یا ناپذیرا بودن دید را با قید دلیل‪/‬مثال بیان کنید‪.‬‬
‫‪V1 = S JOIN SP‬‬
‫‪V2 = S JOIN P‬‬
‫‪V3 = SELECT S# FROM S‬‬
‫‪EXCEPT | UNION | INTERSECT‬‬
‫‪SELECT DISTINCT S# FROM SP‬‬
‫‪V4 = SELECT COTITLE, COCRED FROM COT‬‬
‫‪.3‬‬
‫برای هر مورد زیر ‪ SQL‬جستجویی بنویسید که معادل متن زبان طبیعی آن است‪.‬‬
‫) ‪S ( SID, SNAME , City‬‬
‫) ‪P ( PID , PNAME, City , Color‬‬
‫) ‪J ( JID , JNAME, City‬‬
‫) ‪SPJ ( SID , PID , JID , QTY‬‬
‫‪-‬‬
‫شماره تامینکنندگانی را بدهید که حداقل در دو پروژه مجزا دو قطعه مجزا تامین کردهاند‪.‬‬
‫‪-‬‬
‫زوج مرتبهای اسم شهرهایی را بدهید که حداقل یک تامینکننده در شهر اول پروژهای در شهر دوم را تامین‬
‫میکند‪.‬‬
‫‪-‬‬
‫تمام شماره تامینکننده‪ ،‬قطعه و شهرهایی را بدهید که هیچ دوتایی در یک شهر نباشند‪.‬‬
‫‪-‬‬
‫شماره پروژههایی را بدهید که با قطعه شماره یک تامین شدهاند در حالی که میانگین تعداد تامینشدهی آنها از‬
‫بیشترین تعداد قطعه تامین شده (نه مجموع قطعات) برای پروژهی شماره یک بیشتر است‪.‬‬
‫‪.4‬‬
‫‪-‬‬
‫شماره پروژههایی را بدهید که با حداقل همهی قطعاتی که تامینکننده شماره ‪ ۹‬تامین میکند تامین شدهاند‪.‬‬
‫‪-‬‬
‫شماره قطعههایی را بدهید که برای همهی پروژههای تهران تامین شدهاند‪.‬‬
‫جدولهای فیلم (کلید‪ ،‬نام فیلم)‪ ،‬سینما (کلید‪ ،‬نام سینما) و سانس (کلید‪ ،‬کلید خارجی سینما‪ ،‬کلید خارجی فیلم و‬
‫تاریخ و ساعت) را در نظر بگیرید‪ .‬تمام فیلمهایی را بدهید که اسمی شبیه «آب» دارند و در سینماهایی با نامهای مشابه‬
‫«تارا» در بین روزهای دوشنبه تا پنجشنبه و ساعات ‪ ۹0‬صبح تا ‪ 6‬بعد از ظهر اکران میشوند (جستار معادل آن را‬
‫بنویسید‪ -‬از دستور ‪ LIKE‬استفاده کنید)‪.‬‬
‫بخش سوم‪ :‬سواالت تحقیقی‬
‫این بخش به عنوان نمرهی اضافی میباشد‪ .‬در مورد یکی از موضوعات زیر گزارشی یک یا دو صفحهای تهیه کنید‪.‬‬
‫‪-‬‬
‫سیستم مدیریت ‪ ADABAS‬بر اساس ساختار دادهی لیستهای وارون طراحی شده است‪ .‬در مورد آن تحقیق کنید‪.‬‬
‫‪-‬‬
‫چگونگی استفاده از سیستمهای ‪ ORM‬و پایگاه دادههای شیگرا‪.‬‬
‫‪-‬‬
‫بهبود جستار (‪.)query optimization‬‬
‫‪3‬‬