DB1-Assignment3.pdf

‫مجموعه تمرینهای سری سوم درس پایگاه دادهها (‪)۱‬‬
‫نحوهی تحویل ‪ :‬نسخه کاغذی تمرین خود را (تایپشده یا دستنویس) حداکثر تا تاریخ ‪ 3‬آذر ‪ 49‬سر کالس به استاد و یا در‬
‫دفتر خدمات فناوری دانشگاه – اتاق ‪ 612‬به خانم خداداد تحویل دهید‪.‬‬
‫در این تمرین از دو محیط به شرح زیر استفاده شدهاست‪:‬‬
‫محیط نخست ‪:‬‬
‫این محیط با جدولهای زیر طراحی شدهاست‪:‬‬
‫‪CITY‬‬
‫‪STATUS‬‬
‫‪SNAME‬‬
‫‪SN‬‬
‫…‬
‫…‬
‫…‬
‫…‬
‫‪CITY‬‬
‫‪JNAME‬‬
‫‪JN‬‬
‫…‬
‫…‬
‫…‬
‫‪WEIGHT‬‬
‫‪CITY‬‬
‫‪COLOR‬‬
‫‪PNAME‬‬
‫‪PN‬‬
‫…‬
‫…‬
‫…‬
‫…‬
‫…‬
‫‪QTY‬‬
‫‪JN‬‬
‫…‬
‫…‬
‫(‪) 1‬‬
‫‪PN‬‬
‫…‬
‫‪SN‬‬
‫…‬
‫‪S:‬‬
‫‪J:‬‬
‫‪P:‬‬
‫‪SPJ:‬‬
PP:
PN
…
SUBPN
CNT
…
…
: ‫محیط دوم‬
:‫این محیط با جدولهای زیر طراحی شدهاست‬
COT:
GT:
PRT:
STT:
STG:
COPRECOT:
COID
TITLE
CREDIT
…
…
…
COID
…
GNUM
TR
YR
PRID
…
…
…
…
…
…
…
PRID
PNAME
…
…
…
…
STID
STJ
STNAME
…
…
…
…
…
STID
COID
YR
GRADE
…
…
…
…
COID
…
GNUM
…
PRECOID
…
) 6(
TR
…
‫‪ )1‬با توجه به جداول محیط نخست‪ ،‬به پرسشهای زیر در زبان ‪ SQL‬پاسخ دهید ‪.‬‬
‫‪ )a‬کل مقدار قطعات بهکاررفته در پروژه ’‪. ‘j4‬‬
‫‪ )b‬نام تهیهکنندگانی که در بیش از دو پروژه قطعه تهیه کردهاند ‪( .‬با استفاده از ‪)count‬‬
‫‪ )c‬نام تهیهکنندگانی که در بیش از دو پروژه قطعه تهیه کردهاند ‪( .‬بدون استفاده از ‪)count‬‬
‫‪ )d‬شماره هر پروژه به همراه میانگین وزن قطعات به کار رفته در آن ‪( .‬با استفاده از ‪ - group by‬دقت کنید که‬
‫اگر یک قطعه دو بار در یک پروژه تهیه شده باشد ‪ ،‬فقط یک بار در محاسبهی میانگین منظور میشود ‪).‬‬
‫‪ )e‬شماره هر پروژه به همراه میانگین وزن قطعات به کار رفته در آن ‪( .‬بدون استفاده از ‪)group by‬‬
‫‪ )f‬شمارهی هر پروژه و میانگین وزندار وزن قطعات تهیهشده در آن ‪( .‬منظور از میانگین وزندار عبارت‬
‫)𝑇𝐻𝐺𝐼𝐸𝑊×𝑌𝑇𝑄(∑‬
‫𝑌𝑇𝑄 ∑‬
‫است ‪).‬‬
‫‪ )g‬نام تهیهکنندگانی که برای تمام پروژههای همشهر خود ‪ ،‬قطعه تهیهکرده باشند ‪.‬‬
‫‪ )h‬نام تهیهکنندگانی که فقط برای پروژههای همشهر خود ‪ ،‬قطعه تهیهکرده باشند ‪.‬‬
‫‪ )i‬شماره پروژههایی که حداقل یک تهیهکننده‪ ،‬دو قطعه با رنگهای گوناگون برای آن تهیه کرده باشد (جدول‬
‫جواب دارای شماره پروژههای تکراری نباشد)‪.‬‬
‫‪ )j‬شماره زوج پروژههایی را بدهید که حداقل ‪ 9‬قطعهی مشترک در آنها تهیه شده باشند‪.‬‬
‫‪ )6‬با توجه به جداول محیط دوم‪ ،‬به پرسشهای زیر در زبان ‪ SQL‬پاسخ دهید ‪.‬‬
‫‪ )a‬شماره و نام تمام دانشجویان به همراه معدل آنها ‪( .‬دانشجویانی که درس نگرفتهاند نیز باید حضور داشتهباشند‪). 1‬‬
‫‪ )b‬نام تمام دانشجویانی که حداقل یک بار درس ’‪ ‘CE384‬را افتادهاند ‪.‬‬
‫‪ )c‬شماره جفت دانشجویانی که حداقل در ‪ 11‬درس همکالس بودهاند‪.‬‬
‫‪ )d‬شماره جفت دانشجویان هم رشته که هیچگاه همکالس نبودهاند‪.‬‬
‫‪ )e‬نام اساتیدی که میانگین تمام دروس ارائه شده توسط آنها از ‪ 12‬بیشتر است ‪.‬‬
‫‪ )f‬شماره و نام اساتیدی که حداقل در یک ترم کمتر از دو درس ارائه کردهاند ‪.‬‬
‫‪ )g‬شماره دانشجویانی که تمام درسهای گرفته شده توسط دانشجوی ’‪ ‘777‬را گرفته باشند ‪.‬‬
‫‪ )h‬شماره درسهای ترم دوم سال ‪ 1343‬را بدهید که تنها توسط دانشجویان نرمافزار گرفته شده است‪.‬‬
‫‪ )i‬برای هر درس‪ ،‬گروه درسی که میانگین نمرات آن کمینه بوده است را بدهید (شماره درس‪ ،‬ترم و سال‪ ،‬نام‬
‫استاد‪ ،‬و میانگین نمرات)‪.‬‬
‫‪ )3‬جدول )‪ T(A, B, C‬مفروض است ‪ .‬سطرهایی در این جدول وارد کنید به نحوی که پاسخ دو پرسش زیر یکسان نباشد ‪:‬‬
‫‪ 1‬برای این قسمت میتوانید از انواع ‪ OUTER JOIN‬استفاده نمایید‪.‬‬
‫(‪) 3‬‬
‫‪SELECT B, C FROM T‬‬
‫; ’‪WHERE B = ’b1’ OR C > ‘c1‬‬
‫‪‬‬
‫‪SELECT B, C FROM T‬‬
‫’‪WHERE B = ’b1‬‬
‫‪UNION‬‬
‫‪SELECT B, C FROM T‬‬
‫; ’‪WHERE C > ‘c1‬‬
‫‪‬‬
‫‪ )9‬فرض کنید در ‪ SQL‬کالز 𝐿𝐿𝐴 𝜃 (}> ‪ )𝜃 ∈ {=, <>, <=, >=, <,‬وجود نداشته باشد ‪ .‬چگونه میتوان عملکرد آنرا‬
‫شبیهسازی کرد؟‬
‫‪ )5‬دو جدول ‪ 𝑇1‬و ‪ 𝑇2‬متقابالً از طریق کلید خارجی به هم ارجاع میدهند ‪ .‬میدانیم که جداول در بدو تعریف خالی هستند‬
‫‪ .‬در وارد کردن سطرها در این دو جدول چه مشکلی بروز میکند ؟ چه راه حلی در ‪ SQL‬وجود دارد ؟‬
‫(‪) 9‬‬