حل سوال ۱۰۲ از کنکور ارشد کامپیوتر ۹۴

در این آموزش ضمن حل سوال ۱۰۲ از کنکور ارشد کامپیوتر ۹۴، مروری هم بر مباحث ایجاد جدول در Sql و دستور ON DELETE CASCADE خواهیم داشت.

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

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

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

صورت سوال:

صورت سوال بدین شرح می باشد: دو جدول Customers و Orders که با دستورهای زیر ایجاد شده اند را در نظر بگیرید. در صورتی که تعداد رکوردهای مشتریان برابر ۱۰ و تعداد رکوردهای سفارش ها برابر ۱۵ باشد، پس از اجرای دستور زیر، مجموع تعداد رکورد های دو جدول Customers و Orders، حداکثر و حداقل چه تعداد خواهد بود؟

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

یادآوری:

همان طور که در دستور تعریف جدول مشاهده می کنید، R نام رابطه و هر Ai  نام صفت خاصه در شمای R است و Di نوع داده ای در دامنه ی صفت خاصه ی Ai، می باشد.

با دستور CREATE TABLE Customers، جدول مشتریان با دو ستون ایجاد می شود که در این جا جدول را با مقادیر دلخواه، مقدار دهی کرده ایم. همان طور که در دستور تعریف جدول مشخص شده، کلید اصلی، ستون cid تعریف شده است.

با دستور CREATE TABLE Odrers، جدول Orders، با سه ستون ایجاد می شود که این جدول را نیز با مقادیر دلخواه، مقدار دهی کرده ایم. کلید اصلی در این جدول oid می باشد و ستون custid در این جدول، به عنوان کلید خارجی و ارجاع دهنده به ستون cid در جدول Customers تعریف شده است.

دستور ON DELETE CASCADE بدان معناست که اگر رکوردی در جدول پدر حذف شود، تمامی رکورد های مرتبط در جدول فرزند نیز، به طور خودکار حذف خواهند شد، که همان طور که در تعریف جدول Orders مشخص است، این دستور بر روی کلید خارجی  custid اعمال شده است. بدین ترتیب با حذف یک رکورد از جدول Customers تمامی رکورد های وابسته در جدول Orders نیز حذف خواهند شد.

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

حل سوال:

حال و با توجه به اطلاعات صورت سوال، به حل مسئله می پردازیم.
حداکثر تعداد رکورد، زمانی اتفاق می افتد که شرط  cid=2000 برقرار نباشد، در این صورت هیچ رکوردی از دو جدول حذف نخواهد شد و مجموع تعداد رکوردهای دو جدول برابر با تعداد اولیه، یعنی ۲۵ خواهد بود.

حداقل تعداد رکوردها زمانی به دست می آید که شرط  cid=2000 در جدول Customers برقرار و مقدار تمامی customer id ها در جدول Orders برابر ۲۰۰۰ باشد. توجه داشته باشید با توجه به تعریف جدول customers  ،cid، کلید اصلی این جدول است، پس تنها یک سطر با مقدار  cid = 2000 می تواند در این جدول وجود داشته باشد. بنابراین با توجه به شرط ON DELETE CASCADE در تعریف جدول Orders، تمامی سطرهای این جدول به اضافه یک سطر از جدول Customers حذف خواهند شد و مجموع تعداد رکوردهای باقی مانده در دو جدول، برابر ۹ خواهد بود.

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

پاسخ سوال:

بنابراین گزینه ی ۲ پاسخ صحیح این سوال می باشد.

متن فیلم

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

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