۰
subtitle
ارسال: #۱
  
پایگاه داده مهندسی کامپیوتر ازاد ۸۹
با سلام به دوستان
سوال من اینه که تعداد ابرکلیدهای یک رابطه چطور به دست میاد؟
سوال من اینه که تعداد ابرکلیدهای یک رابطه چطور به دست میاد؟
۱
ارسال: #۲
  
RE: پایگاه داده مهندسی کامپیوتر ازاد ۸۹
سلام
اولین مرحله در پیدا کردن تعداد ابرکلیدها اینه که بتونیم کلید یا کلیدهای کاندید رو پیدا کنیم. در مرحله دوم باید توسط کلید کاندیدی که به دست آوردیم ابرکلیدهارو پیدا کنیم، ابرکلید یعنی ترکیبی از صفات با خاصیت کلید که لزوما کمینه نیستند، بنابراین هر ابرکلیدی لزوما شامل کلید یا کلیدهای کاندید ماست. با توجه به همین امر ما میتونیم با در اختیار داشتن کلید یا کلیدهای کاندید و اضافه کردن صفر، یک، دو و... صفت باقی مونده به کلید یا کلیدهای کاندید نسبت به پیدا کردن ابرکلیدها اقدام کنیم. این کار میتونه با توجه به نوع تست به صورت دستی و تک تک صورت بگیره یا از قواعد شمارش در ساختمانهای گسسته استفاده کنیم.
توی حل تستهای مرتبط توجه ویژه داشته باشید که در نظریه مجموعهها عضو تکراری نداریم و رابطهها هم بر اساس نظریه مجموعهها عمل میکنند، بنابراین باید مواظب باشیم تا یک ابرکلید رو فقط یک بار بشماریم.
در تستی که بهش اشاره داشتید، ما یک رابطه ۵ عضوی داریم. در مرحله اول قصد داریم کلید یا کلیدهای کاندید رو به دست بیاریم، خب اینجا هر ۵ صفت ما در سمت راست وابستگیها وجود دارن و با توجه به همین امر تعداد کلیدهای کاندید بیش از یکی هست. دقت کنید که ما این جا با توجه به وابستگیهای داده شده میتونیم صفات رو به دو دسته تقسیم کنیم. سه وابستگی اول به ما ثابت میکنن که با داشتن هر کدوم از صفتهای A یا B یا C میتونیم دو صفت دیگه رو به دست بیاریم و وابستگیهای چهارم و پنجم به ما ثابت میکنن که با داشتن هر یک از صفتهای E یا D میتونیم دیگری رو نتیجه بگیریم. بنابراین تعداد کلیدهای کاندید ما بر اساس ضرب کارتزین اعضای دو مجموعه ۶=۳*۲ خواهد بود: CD, CE, BD, BE, AD, AE
حالا اگه هر کدوم از این حالتهای دو صفتی رو در نظر بگیریم، سه صفت دیگه باقی میمونه که میتونه بهش پیوست بشه و حالتهای جدید و در واقع ابرکلید رو به وجود بیاره، مثلا با فرض کلید کاندید CD سه صفت A, B , E قابلیت پیوست شدن به این کلید کاندید و پیدایش ابرکلیدهایی مثل CDA و CDE وجود داره. پس ما باید کل این ابرکلیدها رو به دست بیاریم.
اینجا دو راه داریم، یکی اینکه دستی و تک تک بشمریم (برای افرادی که بلد نیستن یا نمیخوان از فرمولهای شمارش استفاده کنن) که در این صورت باید خیلی دقت کنیم که کم یا زیاد نشمریم (توصیه نمیشه) و راه حل صحیحتر این هست که با استفاده از اصول شمارش جلو بریم:
برای ایجاد ابرکلید باید حداقل یک صفت از مجموعه دو عضوی و یک صفت از مجموعه سه عضوی انتخاب کنیم. که به ترتیب برای مجموعه اول و دوم داریم:
و نهایتا تعداد ابرکلیدها از ضرب حالات مجموعه اول و دوم به دست میاد:
بنابراین ما در این تست مجموعا ۶ کلید کاندید و ۲۱ ابرکلید رو خواهیم داشت.
اولین مرحله در پیدا کردن تعداد ابرکلیدها اینه که بتونیم کلید یا کلیدهای کاندید رو پیدا کنیم. در مرحله دوم باید توسط کلید کاندیدی که به دست آوردیم ابرکلیدهارو پیدا کنیم، ابرکلید یعنی ترکیبی از صفات با خاصیت کلید که لزوما کمینه نیستند، بنابراین هر ابرکلیدی لزوما شامل کلید یا کلیدهای کاندید ماست. با توجه به همین امر ما میتونیم با در اختیار داشتن کلید یا کلیدهای کاندید و اضافه کردن صفر، یک، دو و... صفت باقی مونده به کلید یا کلیدهای کاندید نسبت به پیدا کردن ابرکلیدها اقدام کنیم. این کار میتونه با توجه به نوع تست به صورت دستی و تک تک صورت بگیره یا از قواعد شمارش در ساختمانهای گسسته استفاده کنیم.
توی حل تستهای مرتبط توجه ویژه داشته باشید که در نظریه مجموعهها عضو تکراری نداریم و رابطهها هم بر اساس نظریه مجموعهها عمل میکنند، بنابراین باید مواظب باشیم تا یک ابرکلید رو فقط یک بار بشماریم.
در تستی که بهش اشاره داشتید، ما یک رابطه ۵ عضوی داریم. در مرحله اول قصد داریم کلید یا کلیدهای کاندید رو به دست بیاریم، خب اینجا هر ۵ صفت ما در سمت راست وابستگیها وجود دارن و با توجه به همین امر تعداد کلیدهای کاندید بیش از یکی هست. دقت کنید که ما این جا با توجه به وابستگیهای داده شده میتونیم صفات رو به دو دسته تقسیم کنیم. سه وابستگی اول به ما ثابت میکنن که با داشتن هر کدوم از صفتهای A یا B یا C میتونیم دو صفت دیگه رو به دست بیاریم و وابستگیهای چهارم و پنجم به ما ثابت میکنن که با داشتن هر یک از صفتهای E یا D میتونیم دیگری رو نتیجه بگیریم. بنابراین تعداد کلیدهای کاندید ما بر اساس ضرب کارتزین اعضای دو مجموعه ۶=۳*۲ خواهد بود: CD, CE, BD, BE, AD, AE
حالا اگه هر کدوم از این حالتهای دو صفتی رو در نظر بگیریم، سه صفت دیگه باقی میمونه که میتونه بهش پیوست بشه و حالتهای جدید و در واقع ابرکلید رو به وجود بیاره، مثلا با فرض کلید کاندید CD سه صفت A, B , E قابلیت پیوست شدن به این کلید کاندید و پیدایش ابرکلیدهایی مثل CDA و CDE وجود داره. پس ما باید کل این ابرکلیدها رو به دست بیاریم.
اینجا دو راه داریم، یکی اینکه دستی و تک تک بشمریم (برای افرادی که بلد نیستن یا نمیخوان از فرمولهای شمارش استفاده کنن) که در این صورت باید خیلی دقت کنیم که کم یا زیاد نشمریم (توصیه نمیشه) و راه حل صحیحتر این هست که با استفاده از اصول شمارش جلو بریم:
برای ایجاد ابرکلید باید حداقل یک صفت از مجموعه دو عضوی و یک صفت از مجموعه سه عضوی انتخاب کنیم. که به ترتیب برای مجموعه اول و دوم داریم:
[tex]\binom{3}{1} \binom{3}{2} \binom{3}{3}=\frac{3!}{1!2!} \frac{3!}{2!1!} \frac{3!}{3!}=3 3 1=7[/tex]
[tex]\binom{2}{1} \binom{2}{2}=\frac{2!}{1!1!} \frac{2!}{2!}=2 1=3[/tex]
[tex]\binom{2}{1} \binom{2}{2}=\frac{2!}{1!1!} \frac{2!}{2!}=2 1=3[/tex]
و نهایتا تعداد ابرکلیدها از ضرب حالات مجموعه اول و دوم به دست میاد:
Total S.K = 7*3=21
بنابراین ما در این تست مجموعا ۶ کلید کاندید و ۲۱ ابرکلید رو خواهیم داشت.
۰
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close