تالار گفتمان مانشت
فرم نرمال BCNF - نسخه‌ی قابل چاپ

فرم نرمال BCNF - okok - 23 دى ۱۳۹۳ ۰۱:۱۷ ب.ظ

با سلام
در تعریف BCNF داریم:
۱- رابطه در فرم ۳NF باشد.
۲- فاقد وابستگی معکوس باشد.
وابستگی معکوس (طبق تعریف کتاب پارسه): وابستگی یک مولفه کلیدی به یک مولفه (کلیدی یا غیر کلیدی) دیگر.
در تعریف دیگری از BCNF داریم:
۱- a -->b بدیهی باشد.
یا
۲- سمت چپ وابستگی تابعی ابر کلید باشد.

حالا سوال من اینجاست ... اگر سمت چپ یک وابستگی تابعی ابر کلید باشد دلیلی بر عدم وجود وابستگی معکوس نیست.
مثلا در مثالی که خود کتاب پارسه زده:
رابطه R(a,b,c,d,e و مجموعه وابستگی های تابعی f={a-->bc , e-->da , b-->e
که دارای کلید های کاندید a و b و e هست:
در نتیجه مولفه های کلیدی a و b و e هستند و مولفه های غیر کلیدی c و d
حال بر طبق تعریف اول:
این رابطه در فرم bcnf نیست چون دارای وابستگی معکوسی مانند : b-->e هست. چون یک مولفه کلیدی یعنی e به یک مولفه دیگر ( یعنی b) وابسته است.
اما بر طبق تعریف دوم این رابطه در فرم bcnf است . چون در سمت چپ همه وابستگی های تابعی ابر کلید هسا!

RE: فرم نرمال BCNF - ardaaalan - 23 دى ۱۳۹۳ ۰۲:۳۲ ب.ظ

این سوال دقیقاً سوالیه که منم باهاش مشکل دارم . ولی تو ۹۹ % تست ها از رابطه دوم استفاده کرده و گفته که چون سمت راست همه کلیدها ابر کلید هستش پس درنتیجه BCNF میشه . منم فرض رو بر اون گذاشتم Huh

RE: فرم نرمال BCNF - Ametrine - 09 بهمن ۱۳۹۳ ۱۲:۲۰ ق.ظ

کسی نظری نداره ؟
شرط بدیهی بودن رو توضیح میدید لطفاً؟

RE: فرم نرمال BCNF - ardaaalan - 09 بهمن ۱۳۹۳ ۰۲:۵۴ ق.ظ

(۰۹ بهمن ۱۳۹۳ ۱۲:۲۰ ق.ظ)Ametrine نوشته شده توسط:  کسی نظری نداره ؟
شرط بدیهی بودن رو توضیح میدید لطفاً؟

شرط بدیهی بودن اینه که اگر [tex]a\subseteq b[/tex] باشه آنگاه [tex]b\rightarrow a[/tex] یک رابطه بدیهی هستش .

RE: فرم نرمال BCNF - Ametrine - 09 بهمن ۱۳۹۳ ۰۸:۵۱ ق.ظ

(۰۹ بهمن ۱۳۹۳ ۰۲:۵۴ ق.ظ)ardaaalan نوشته شده توسط:  شرط بدیهی بودن اینه که اگر [tex]a\subseteq b[/tex] باشه آنگاه [tex]b\rightarrow a[/tex] یک رابطه بدیهی هستش .
تعریفش رو میدونم.
تشخیص دادن این حالت چطوری هست؟
اگه میشه یه مثال بزنید که این حالت توش صدق کنه.

RE: فرم نرمال BCNF - ardaaalan - 09 بهمن ۱۳۹۳ ۰۱:۱۴ ب.ظ

(۰۹ بهمن ۱۳۹۳ ۰۸:۵۱ ق.ظ)Ametrine نوشته شده توسط:  
(09 بهمن ۱۳۹۳ ۰۲:۵۴ ق.ظ)ardaaalan نوشته شده توسط:  شرط بدیهی بودن اینه که اگر [tex]a\subseteq b[/tex] باشه آنگاه [tex]b\rightarrow a[/tex] یک رابطه بدیهی هستش .
تعریفش رو میدونم.
تشخیص دادن این حالت چطوری هست؟
اگه میشه یه مثال بزنید که این حالت توش صدق کنه.

همینه تشخیص دادنش . توی صورت مساله میگه که داریم [tex]a\subseteq b[/tex] پس تو وابستگی ها [tex]a\rightarrow b[/tex] بدیهی خواهد بود .
اکثراً توی تست هایی که نیاز به حل داره از بدیهی بودن استفاده نمیشه . مثلاً تو تشخیص BCNF که باید از این استفاده کنی که سمت راست همشون ابر کلید باشه .
بدیهی بودن معمولاً تو تست هایی میاد که میگه کدوم صحیحه
مثلاً تو گزینه میده اگر [tex]a\subseteq b[/tex] آنگاه [tex]a\rightarrow b[/tex]

RE: فرم نرمال BCNF - abji22 - 09 بهمن ۱۳۹۳ ۰۲:۰۳ ب.ظ

ب اینجاش دقت نکرده بودم
ی سوال:واسه۳nfبودن شرایطش از bcnfبودن بیشتره حالا اگه ۲ شرط اولی برقرار باشه ولی سومی برقرار نباشه یعنی تو bcnfهست ولی ۳nfنیست؟مگه میشه؟؟

RE: فرم نرمال BCNF - ardaaalan - 09 بهمن ۱۳۹۳ ۰۲:۲۲ ب.ظ

(۰۹ بهمن ۱۳۹۳ ۰۲:۰۳ ب.ظ)abji22 نوشته شده توسط:  ب اینجاش دقت نکرده بودم
ی سوال:واسه۳nfبودن شرایطش از bcnfبودن بیشتره حالا اگه ۲ شرط اولی برقرار باشه ولی سومی برقرار نباشه یعنی تو bcnfهست ولی ۳nfنیست؟مگه میشه؟؟

مگه داریم ؟؟
شما از اول شروع میکنیم به چِک کردن . اول میگیم بدیهی هستش ؟ اگه بود پس برقراره ( دیگه نیاز به ادامه بفیه نخواهد بود ). اگه نبود میریم سراغ چِک کرن اینکه سمت چپش ابر کلید هست یا نه . اگه بود که حله ( دیگه بعدی نیاز به چِک کردن نداره چون طبیعتاً درست خواهد بود ) . اگه نه تو ۳NF میریم سراع چِک کرن آخری . اگه تو ۳nf شرط دومت یعنی ابر کلید بودن سمت چپ درست باشه پس طبیعتاً این رابطه تو شرط دوم BCNF هم درست خواهد بود

RE: فرم نرمال BCNF - abji22 - 10 بهمن ۱۳۹۳ ۱۲:۴۳ ب.ظ

اها برقراری ی شرط کافیه
اعتراف میکنم س.ال اسونی بود