راکت

کلید کاندید

6 پاسخ

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

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

ثبت پرسش جدید

پاسخ‌ها

6
میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

شاید پاسخ شما همین‌جا باشد

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

علیرضا
علیرضا
@ALIRZA

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

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