علیرضا
6 سال پیش توسط علیرضا مطرح شد
6 پاسخ

کلید کاندید

سلام دوستان
میشه لطفاً کلیدهای کاندید این رابطه رو مشخص کنید.

(R= (A,B,C,D,E,F,G,H
{F= { ABC -> DF , DF->G, F->B, D->B, G->H,B->C


ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 6 سال پیش مطرح شد
1

سه کلید کاندید داریم:
EAB - EAD - EAF


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 6 سال پیش مطرح شد
1

توضیحات:
E در هیچ رابطه ای موجود نیست، پس باید همواره باشد.
A در سمت راست هیچ رابطه ای نیست، پس باید همواره باشد.
هر یک از این سه (یعنی B، D، F) می توانند همدیگر رو تولید کنند و بعلاوه C, G, H رو هم تولید کنند، پس هر یک از این سه می توانند بهمراه E و A کلید خارجی را ایجاد کنند.
هر یک از این سه و یا ترکیبی از این سه (یعنی C، G، H) نمی توانند همه ی دیگر عناصر را تولید کنند، پس نمی توانند در کلید خارجی سهیم شوند. بعلاوه بودن شان در کنار B، D، F خاصیت کمینگی کلید خارجی را نقض می کند.

بنابراین جواب می شود:
EAB - EAD - EAF


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 6 سال پیش مطرح شد
1

و این هم توضیحات کمکی دیگر:

کلید کاندید وابستگی تابعی
می دونیم کلید کاندید attributeای است که همه attributeها به آن وابستگی تابعی دارند. و Attributeاضافه هم ندارد یعنی کمینه است. روش پیدا کردن:
پیدا کردن کلید کاندید:
۱-attribute ای است که سمت راست هیچ FD نیست. یعنی هیچ کس نمی تونه آن را تولید کند، این attribute حتما عضو کلید کاندید هست، نمی گوییم کلید کاندید است).
۲- اگر attributeهایی که سمت راست هیچ FD نیستند به تنهایی توانستند همه را تولید کنند، این کلید کاندید است (دیگه بررسی نکن).
۳- اگر attributeهایی که سمت راست هیچ FD نیستند به تنهایی نتوانستند همه را تولید کنند، باید attribute کمکی بیاریم.
۴- اگر همه سمت راست بودند، می بینیم کدام attribute هست که سمت چپ هیچ FD ای نیست یعنی هیچ کس را نمی تواند تولید کند پس عضو کلید کاندید نیست.
۵- هر ترکیبی از attributeها (از همدیگه به دست نیان) که بتواند کلید کاندید رو تولید کنه اون هم کلید کاندید است.


علیرضا
@ALIRZA 6 سال پیش آپدیت شد
1

@milad
خیلی ممنونم
ولی نفهمیدم B چجوری جزئی از کلید میشه؟ B سمت راست دو رابطه‌ی زیره
F->B و D->B
F و D پوشش میدن B رو


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 6 سال پیش آپدیت شد
1

خواهش میکنم، زنده باشید.

بدین طریق:
ابتدا E, A, B را داریم.
بنابراین از طریق B->C می توانیم C را هم تولید کنیم.
سپس از طریق ABC -> DF می توانیم F و D را هم تولید کنیم.
به همین ترتیب و به کمک DF->G و G->H ابتدا G و سپس H را نیز تولید می کنیم.

همانطور که می بینید ما با شروع از E, A, B توانستیم تمام مجموعه رو تولید کنیم.


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 6 سال پیش مطرح شد
1

در واقع نکته اینجاست که، B هم از طریق این دو عبارت ABC -> DF, B->C قادره تا D و F رو تولید کنه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام