DB1-Assignment4.pdf

‫مجموعه تمرینهای سری چهارم درس پایگاه دادهها (‪)۱‬‬
‫نحوهی تحویل ‪ً :‬غخِ واغذی توزیي خَد را (تایپؽذُ یا دعتًَیظ) بِ اتاق ‪( 8۰5‬آسهایؾگاُ دوتز هیزیاى) تحَیل دّیذ‪.‬‬
‫فزعتادى توزیي بِصَرت ایویل پذیزفتِ ًیغت‪.‬‬
‫نکات مورد توجه‬
‫بخؼّای هؾخصؽذُ با عالهت ⅔ ٍیضُی گزٍُّای دٍ یا عًِفزی ٍ بخؼّای هؾخصؽذُ با عالهت ‪ٍ ³‬یضُی گزٍُّای‬
‫عًِفزی ّغتٌذ ‪.‬‬
‫در پزعؼّای با عالهت ⌘ هیتَاًیذ با اعتفادُ اس ‪ db1.amira.li/SQL4STUDENTS‬تا حذٍدی اس صحت پاعخ خَد‬
‫اعویٌاى یابیذ ‪ .‬تَضیحات السم در گزٍُ دادُ هیؽَد ‪.‬‬
‫در ایي توزیي اس دٍ هحیظ بِ ؽزح سیز اعتفادُ ؽذُاعت‪:‬‬
‫هحیظ ًخغت ‪:‬‬
‫(‪) 1‬‬
:‫ایي هحیظ با جذٍلّای سیز عزاحی ؽذُاعت‬
S:
J:
P:
SPJ:
SN
SNAME
STATUS
CITY
…
…
…
…
JN
JNAME
CITY
…
…
…
PN
PNAME
COLOR
CITY
WEIGHT
…
…
…
…
…
SN
…
PP:
PN
…
PN
JN
QTY
…
…
…
SUBPN
CNT
…
…
: ‫هحیظ دٍم‬
:‫ایي هحیظ با جذٍلّای سیز عزاحی ؽذُاعت‬
COT:
GT:
PRT:
STT:
STG:
COPRECOT:
COID
TITLE
…
…
…
…
COID
GNUM
TR
YR
…
…
…
…
PRID
PNAME
…
…
…
…
STID
STJ
STNAME
…
…
…
…
…
STID
COID
…
…
COID
…
GNUM
…
PRECOID
…
) 2(
TR
…
PRID
…
…
…
YR
GRADE
…
…
‫تمرینهای ‪SQL‬‬
‫‪‎‬‬
‫‪.I‬‬
‫‪ ⌘ )1‬با تَجِ بِ جذاٍل هحیظ ًخغت‪ ،‬بِ پزعؼّای سیز در سباى ‪ SQL‬پاعخ دّیذ ‪.‬‬
‫‪ ⅔ )a‬ول همذار لغعات بِواررفتِ در پزٍصُ ’‪. ‘j4‬‬
‫‪ً )b‬ام تْیِوٌٌذگاًی وِ در بیؼ اس دٍ پزٍصُ لغعِ تْیِ وزدُاًذ ‪( .‬با اعتفادُ اس ‪)count‬‬
‫‪ً )c‬ام تْیِوٌٌذگاًی وِ در بیؼ اس دٍ پزٍصُ لغعِ تْیِ وزدُاًذ ‪( .‬بذٍى اعتفادُ اس ‪)count‬‬
‫‪ )d‬ؽوارُ ّز لغعِ بِ ّوزاُ هیاًگیي ٍسى لغعات بِ وار رفتِ در آى ‪( .‬با اعتفادُ اس ‪ - group by‬دلت وٌیذ وِ‬
‫اگز یه لغعِ دٍ بار در یه پزٍصُ تْیِ ؽذُ باؽذ ‪ ،‬فمظ یه بار در هحاعبِی هیاًگیي هٌظَر هیؽَد ‪).‬‬
‫‪ )e‬ؽوارُ ّز لغعِ بِ ّوزاُ هیاًگیي ٍسى لغعات بِ وار رفتِ در آى ‪( .‬بذٍى اعتفادُ اس ‪)group by‬‬
‫‪ ⅔ )f‬ؽوارُی ّز پزٍصُ ٍ هیاًگیي ٍسىدار ٍسى لغعات تْیِؽذُ در آى ‪( .‬هٌظَر اس هیاًگیي ٍسىدار عبارت‬
‫)‬
‫(∑‬
‫∑‬
‫اعت‪).‬‬
‫‪ً )g‬ام تْیِوٌٌذگاًی وِ بزای توام پزٍصُّای ّوؾْز خَد ‪ ،‬لغعِ تْیِوزدُ باؽٌذ ‪.‬‬
‫‪ً ⅔ )h‬ام تْیِوٌٌذگاًی وِ فمظ بزای پزٍصُّای ّوؾْز خَد ‪ ،‬لغعِ تْیِوزدُ باؽٌذ ‪.‬‬
‫‪ ³ )i‬ؽوارُ پزٍصُّایی وِ حذالل یه تْیِوٌٌذُ‪ ،‬دٍ لغعِ با رًگّای گًَاگَى بزای آى تْیِ وزدُ باؽذ (جذٍل‬
‫جَاب دارای ؽوارُ پزٍصُّای تىزاری ًباؽذ)‪.‬‬
‫‪ ³ )j‬ؽوارُ سٍج پزٍصُّایی را بذّیذ وِ حذالل ‪ 4‬لغعِی هؾتزن در آىّا تْیِ ؽذُ باؽٌذ ( بِ دٍ رٍػ)‪.‬‬
‫‪ ⌘ ‬جْت یادگیزی بیؾتز هیتَاًیذ دیگز پزعؼّای ‪ SPJ‬وتاب آلای ‪( DATE‬ایي پزعؼّا بِ ّوزاُ پاعخؾاى در‬
‫یادداؽتّای تىویلی ‪ 2‬هَجَد ّغتٌذ‪ ).‬را ًیش در عاهاًِ پاعخ دّیذ ٍ جْت اعویٌال اس پاعخ‪ hash ،‬پاعخ خَد را‬
‫با ‪ hash‬پاعخ وتاب همایغِ فزهاییذ‪.‬‬
‫‪ )2‬با تَجِ بِ جذاٍل هحیظ دٍم‪ ،‬بِ پزعؼّای سیز در سباى ‪ SQL‬پاعخ دّیذ ‪.‬‬
‫‪ )a‬ؽوارُ ٍ ًام توام داًؾجَیاى بِ ّوزاُ هعذل آىّا ‪( .‬داًؾجَیاًی وِ درط ًگزفتِاًذ ًیش بایذ حضَر داؽتِباؽٌذ‪). 1‬‬
‫‪ً ⅔ )b‬ام توام داًؾجَیاًی وِ حذالل یه بار درط ’‪ ‘CE384‬را افتادُاًذ ‪.‬‬
‫‪ )c‬ؽوارُ جفت داًؾجَیاًی وِ حذالل در ‪ 1۰‬درط ّوىالط بَدُاًذ‪.‬‬
‫‪ ³ )d‬ؽوارُ جفت داًؾجَیاى ّن رؽتِ وِ ّیچگاُ ّوىالط ًبَدُاًذ‪.‬‬
‫‪ً )e‬ام اعاتیذی وِ هیاًگیي توام درٍط ارائِ ؽذُ تَعظ آًْا اس ‪ 16‬بیؾتز اعت ‪.‬‬
‫‪ ³ )f‬ؽوارُ ٍ ًام اعاتیذی وِ حذالل در یه تزم ووتز اس دٍ درط ارائِ وزدُاًذ ‪.‬‬
‫‪ )g‬ؽوارُ داًؾجَیاًی وِ توام درطّای گزفتِ ؽذُ تَعظ داًؾجَی ’‪ ‘777‬را گزفتِ باؽٌذ ‪.‬‬
‫‪ 1‬بزای ایي لغوت هیتَاًیذ اس اًَاع ‪ OUTER JOIN‬اعتفادُ ًواییذ‪.‬‬
‫(‪) 3‬‬
‫‪ ⅔ )h‬ؽوارُ درطّای تزم دٍم عال ‪ 1393‬را بذّیذ وِ تٌْا تَعظ داًؾجَیاى ًزمافشار گزفتِ ؽذُ اعت‪.‬‬
‫‪ )i‬بزای ّز درط‪ ،‬گزٍُ درعی وِ هیاًگیي ًوزات آى وویٌِ بَدُ اعت را بذّیذ (ؽوارُ درط‪ ،‬تزم ٍ عال‪ً ،‬ام‬
‫اعتاد‪ ٍ ،‬هیاًگیي ًوزات)‪.‬‬
‫( هفزٍض اعت ‪ .‬عغزّایی در ایي جذٍل ٍارد وٌیذ بِ ًحَی وِ پاعخ دٍ پزعؼ سیز یىغاى ًباؽذ ‪:‬‬
‫‪ )3‬جذٍل )‬
‫‪ ⅔ )4‬فزض وٌیذ در ‪ SQL‬والس‬
‫(‪+‬‬
‫‪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‬‬
‫‪‬‬
‫*‬
‫) ٍجَد ًذاؽتِ باؽذ ‪ .‬چگًَِ هیتَاى عولىزد‬
‫آًزا ؽبیِعاسی وزد؟‬
‫‪ )5‬با اعتفادُ اس لابلیت ‪ RECURSIVE‬در ‪ SQL‬بِ پزعؼّای سیز پاعخ دّیذ ‪.‬‬
‫⌘ در هحیظ ًخغت ‪:‬‬
‫‪( )a‬اختیاری ‪ -‬بزای آهَسػ) ًام توام لغعات بِ وار رفتِ در لغعِی ’‪. ‘p102‬‬
‫‪( )b‬اختیاری ‪ -‬بزای آهَسػ) ؽوارُ لغعِ (ّایی) وِ بیؾتزیي تعذاد لغعات هتوایش در عاخت آى بِ وار رفتِاعت‪.‬‬
‫در هحیظ دٍم ‪:‬‬
‫‪ ⅔ )c‬درطّایی وِ داًؾجَی ’‪ ‘777‬توام پیؼًیاسّای آى (هغتمین یا غیز هغتمین) را گذراًذُاعت ‪.‬‬
‫‪ )d‬درط (ّایی) وِ بلٌذتزیي هغیز (ّای) پیؾٌیاسی اس آى (ّا) ؽزٍع هیؽَد ‪.‬‬
‫راٌّوایی‪ :‬ابتذا جذٍلی بغاسیذ ؽاهل جفت درٍط هٌغماً پیؾٌیاس بِ ّوزاُ فاصلِیؾاى‪.‬‬
‫‪ ³ )6‬بزای هحیظ دٍم ‪ ،‬بزًاهِای بِ ‪ SQL‬ادغام ؽذُ (در یه سباى بزًاهِعاسی دلخَاُ) بٌَیغیذ وِ فْزعت داًؾجَیاًی وِ‬
‫در دٍ تزم هتَالی هؾزٍط ؽذُاًذ را تَلیذ وٌذ‪.‬‬
‫‪ )7‬دٍ جذٍل‬
‫ٍ‬
‫هتمابالً اس عزیك ولیذ خارجی بِ ّن ارجاع هیدٌّذ ‪ .‬هیداًین وِ جذاٍل در بذٍ تعزیف خالی ّغتٌذ‬
‫‪ .‬در ٍارد وزدى عغزّا در ایي دٍ جذٍل چِ هؾىلی بزٍس هیوٌذ ؟ چِ راُ حلی در ‪ٍ SQL‬جَد دارد ؟‬
‫(‪) 4‬‬
‫‪ )8‬دعتَر ‪ CASE‬را هغالعِ وزدُ ٍ بِ پزعؼّای سیز پاعخ دّیذ ‪:‬‬
‫‪ ⅔ )a‬عبارتی بِ سباى ‪ SQL‬بٌَیغیذ وِ خزٍجی آى ‪ّ ،‬واى جذٍل ‪ STG‬اهّا با ًوزات ویفی (… ‪ )A , B ,‬باؽذ ‪.‬‬
‫‪ )b‬با تَجِ بِ جذٍل رٍبزٍ ‪ ،‬جذٍل پاعخ پزعؼ سیز را بِ دعت آٍریذ ‪:‬‬
‫‪SELECT NX, Y, Z FROM (SELECT T.Y, T.Z,‬‬
‫‪(CASE WHEN T.X > 50‬‬
‫‪THEN T.X – 40‬‬
‫‪ELSE T.X + 10‬‬
‫‪END) AS NX FROM T) AS TT‬‬
‫;)‪WHERE NX BETWEEN (10, 20‬‬
‫‪Z‬‬
‫‪z1‬‬
‫‪z1‬‬
‫‪z1‬‬
‫‪z3‬‬
‫‪z4‬‬
‫‪z2‬‬
‫‪z4‬‬
‫‪Y‬‬
‫‪y1‬‬
‫‪y2‬‬
‫‪y1‬‬
‫‪y2‬‬
‫‪y3‬‬
‫‪y3‬‬
‫‪y3‬‬
‫‪X‬‬
‫‪10‬‬
‫‪20‬‬
‫‪3‬‬
‫‪15‬‬
‫‪1000‬‬
‫‪60‬‬
‫‪16‬‬
‫‪T:‬‬
‫‪ .II‬تمرینهای تکمیلی (اختیاری)‬
‫‪ )1‬رفتار یه عیغتن جذٍلی با ‪ NULL‬را بزرعی ٍ گشارػ وٌیذ ‪.‬‬
‫‪ )2‬عبارت هٌغمی )ؽزط هعتبز( را چگًَِ هیتَاى با سباى ‪ SQL‬پیادُ عاسی وزد ؟‬
‫‪ )3‬در هحیظ دٍم ‪ ،‬بِ سباى ‪ SQL‬عبارتی بٌَیغیذ وِ ‪:‬‬
‫‪ 1۰ )a‬داًؾجَی با هعذل ووتز را خزٍجی دّذ ‪.‬‬
‫‪ )b‬فْزعت درٍط داًؾىذُ واهپیَتز را خزٍجی دّذ (دٍ حزف اٍل ؽٌاعِ درٍط داًؾىذُ واهپیَتز ‪ CE‬اعت ٍ‬
‫پظ اس آى یه عذد ‪ 5‬رلوی اعت وِ دٍ رلن اٍل آى ‪ 4۰‬اعت)‪.‬‬
‫‪.III‬‬
‫تمرینهای عمومی (اختیاری)‬
‫‪ )1‬عیغتنّای ‪ NoSQL‬چِ عیغتنّایی ّغتٌذ ؟ دعتَرات ولیذی آًْا را ؽزح دّیذ ‪.‬‬
‫‪ )2‬هغالعِی وتابخاًِّای «ًگاؽت ؽیء‪-‬رابغِای‪ »2‬هاًٌذ ‪ ٍ (2)(1) Hibernate ORM‬بزرعی اهىاًات ٍ آؽٌایی با ؽیَُی‬
‫وار با آىّا‪.‬‬
‫منابع‬
‫‪1. [Online] [Cited: 3 24, 2015.] http://en.wikipedia.org/wiki/Hibernate_%28Java%29.‬‬
‫‪2. [Online] [Cited: 3 24, 2015.] http://hibernate.org/.‬‬
‫‪Object-Relational Mapping‬‬
‫(‪) 5‬‬
‫‪2‬‬