حل سوال ۷۷ از کنکور ارشد فناوری اطلاعات ۹۴

در این آموزش ضمن حل سوال ۷۷ از کنکور ارشد فناوری اطلاعات ۹۴، مروری هم بر مباحث پرس و جوی Sql و نحوه استفاده از عملگر  ALL، خواهیم داشت.

کیفیت فیلم بصورت پیش فرض بر روی حالت low تنظیم شده است و شما می توانید با استفاده از گزینه HD، این آموزش را با بالاترین کیفیت مشاهده نمایید.

شما می توانید با استفاده از گزینه “متن فیلم”، متن مربوط به حل سوال را مشاهده کنید.

//******************************************************************************************************************************************//

صورت سوال:

صورت سوال از این قرار است: شمای جداول S ،P ،J و  SPJ  داده شده است که ویژگی های S ،#P# و  J# کلید اصلی جداول S ،P و J هستند. هم چنین مجموع این سه کلید برای جدول SPJ، به عنوان کلید اصلی محسوب می شود.  می خواهیم نتیجه ی اجرای پرس و جوی Sql زیر را بر روی جداول تعریف شده، بدست آوریم.

در این مسئله SELECT داخلی، مجموع تعداد قطعات تولید شده برای هر تولید کننده به شرطی که کد پروژه  J2  باشد را به ما می دهد و جواب مسئله که در اصل حاصل اعمال SELECT بیرونی است، نام تولیدکنندگان را از پیوند دو جدول S و SPJ،  و با شرط ‘SPJ.J# = ‘j2  بدست می آورد.

//******************************************************************************************************************************************//

یادآوری مفهوم پیوند:

عملگر پیوند طبیعی که در این SELECT استفاده شده، فقط سطر هایی از جدول ها را کنار هم قرار می دهد که تمام ستون های هم نام آن دو جدول، مقادیر مساوی داشته باشند. ستون های هم نام در دو رابطه، فقط یک بار در خروجی عمل پیوند طبیعی ظاهر می شوند.

به عنوان مثال شمای جداول r و s را بصورت روبرو در نظر بگیرید. آنگاه حاصل پیوند r با s، جدولی با پنج ستون شامل A ،B ،C ،D و E است که در آن، ستون های مشترک فقط یک بار تکرار می شوند.

//******************************************************************************************************************************************//

یادآوری مفهوم عملگر ALL:

یکی از عملگرهایی که برای مقایسه ی مجموعه ای، در پرسش های فرعی داریم، عملگر ALL است که همراه با عملگر های مقایسه به کار می رود و برای مقایسه با تمامی مقادیر داخل یک لیست و یا Sub query، مورد استفاده قرار می گیرد.

برای نمونه، بزرگتر از ALL به معنای بزرگتر از تمامی مقادیر، می باشد. به عبارتی دیگر، یعنی بزرگتر از بزرگترین مقدار. به عنوان مثال، بزرگتر از یک مجموعه شامل مقادیر ۱، ۲ و ۳، به معنای بزرگتر از ۳ خواهد بود.

//******************************************************************************************************************************************//

حل سوال:

اگر برای حل سوال، جداول S و SPJ را با مقادیر دلخواه، مقدار دهی کنیم، نتیجه ی پیوند طبیعی دو جدول S و SPJ ،بصورت روبرو می شود.

SELECT بیرونی، تولید کنندگانی که پروژه ی j2 را تولید کرده اند، از جدول حاصل از پیوند طبیعی S و SPJ بر می گرداند. هم چنین SELECT داخلی، مجموع قطعات تولید شده برای پروژه  j2  را، با تفکیک هر تولیدکننده استخراج می کند.

همانطور که مشاهده می کنید شرط Having، مجموع تعداد قطعات تولید شده توسط هر تولید کننده از SELECT بیرونی را، با تمامی سطر های SELECT داخلی، با شرط کوچکتر مساوی مقایسه می کند. این مقایسه باعث می شود تنها تولید کنندگانی که کمترین تعداد قطعه را برای پروژه j2  تولید کرده اند، در خروجی آورده شوند.

در ابتدا این مقایسه برای تولید کننده ۱۲۳ صورت می گیرد که با توجه به برقراری شرط  Having، این تولید کننده باز گردانده می شود و این بار برای تولید کننده ۱۱۰ شرط بررسی می شود که شرط کوچکتر مساوی برای این تولید کننده برقرار نیست و این تولید کننده از خروجی حذف خواهد شد و در نهایت خروجی، نام تولید کنندگانی که کمترین تعداد قطعه را برای پروژه ی j2 تولید کرده اند، با حذف مقادیر تکراری به ما می دهد.

//******************************************************************************************************************************************//

پاسخ سوال:

با بررسی گزینه های سوال مشاهده می شود جواب صحیح، تنها در گزینه ی ۲ ذکر شده است.

متن فیلم

نظر خود را ثبت کنید

ایمیل شما به عموم نشان داده نخواهد شد. فیلدهای اجباری با ستاره نشان داده شده است *