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

ابهام در شرط BCNF بودن یک رابطه - هاتف - ۱۵ بهمن ۱۳۹۲ ۰۱:۰۹ ب.ظ

سلام
توی
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
درباره سطح نرمال BCNF نوشته شده:
یک جدول در این حالت نرمال است، اگر شرایط زیر را داشته باشد:
۱- در فرم اول و دوم و سوم نرمال باشد.
۲- هر دترمینان یک کلید کاندید باشد (در تشکیل کلید شرکت کند)
اما دیروز که من داشتم بخش پایگاه داده ی آزمون های آزمایشی فناوری اطلاعات یکی از موسسات رو میدیدم چندین بار صراحتا گفته بود که هر دترمینان یک سوپر کلید باشه، مواردی بود که اگر کلید کاندی میگرفتیم مشکل زا میشد!
لطفا شما بفرمائید سوپرکلید درسته یا کلید کاندید؟

RE: ابهام در شرط BCNF بودن یک رابطه - mehdi.m2 - 15 بهمن ۱۳۹۲ ۰۱:۲۰ ب.ظ

(۱۵ بهمن ۱۳۹۲ ۰۱:۰۹ ب.ظ)هاتف نوشته شده توسط:  سلام
توی
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
درباره سطح نرمال BCNF نوشته شده:
یک جدول در این حالت نرمال است، اگر شرایط زیر را داشته باشد:
۱- در فرم اول و دوم و سوم نرمال باشد.
۲- هر دترمینان یک کلید کاندید باشد (در تشکیل کلید شرکت کند)
اما دیروز که من داشتم بخش پایگاه داده ی آزمون های آزمایشی فناوری اطلاعات یکی از موسسات رو میدیدم چندین بار صراحتا گفته بود که هر دترمینان یک سوپر کلید باشه، مواردی بود که اگر کلید کاندی میگرفتیم مشکل زا میشد!
لطفا شما بفرمائید سوپرکلید درسته یا کلید کاندید؟

تا جایی که من می دونم باید کلید کاندید باشه توی مقسمی هم نوشته کلید کاندید
به آزمونهای این موسسات هم هیچ اعتباری نیست توی جواباشون چیزایی می نویسن که ادم هنگ می کنه

RE: ابهام در شرط BCNF بودن یک رابطه - pink_floyd_nsf333 - 15 بهمن ۱۳۹۲ ۰۲:۰۶ ب.ظ

توی کتاب دکتر حق جو اینطور نوشته:
...
-جدولی در BCNF هستش که ستونهای آن فقط به کلیدهای کاندیدش وابستگی تابعی داشته باشند.

یک رابطه که ۳NF هستش ممکنه BCNF باشه یا نباشه اگه این سه شرط برقرار باشن:
۱/ جدول دارای حداقل دو کلید کاندید باشه.
۲/ این کلیدها ترکیبی باشن.
۳/ این کلیدهای ترکیبی ، صفتهای مشترکی داشته باشن.
...

پس احتمالاً همون کلید کاندید باید درست باشه.

RE: ابهام در شرط BCNF بودن یک رابطه - e.shrm - 16 بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ

این دترمینان که گفتید من نمیدونم چیه. ولی شرط BCNF بود اینه :
۱- رابطه تا سطح ۳nf نرمال باشد.
۲- سمت چپ هر وابستگی ابرکلید باشد.

--------------------------------
در مورد اون چیزی که یکی از دوستان اون بالا گفتند.
رابطه ای در سطح ۳nf باشه خیلی به ندرت ممکنه BCNF نباشه.
اگر در رابطه ای شرایط زیر برقرار باشه (هر ۳ باهم) ، ممکنه ۳nf باشه ولی BCNF نباشه.
۱- تمام کلید کاندید چند خصیصه ای باشند
۲- هر دو کلید کاندید حداقل در یک خصیصه اشتراک داشته باشند.
۳- بیش ار یک کلید کاندید داشته باشیم.
-------------------------------
اگر رابطه ای در سطح ۳nf باشه و حداقل یکی از شرایط بالا رو نداشته باشه قطعا BCNF هست.
---------------------------------
یک مورد دیگه رو هم اضافه میکنم.
علت اختلاف به وجود اومده یک نکته ظریفه ، اونم اینه باید سطح نرمال رابطه رو از قواعد موجود (نه ساده شده) تعیین کرد.
و مطابق تعریف BCNF ، اگر سمت چپ هر FD *کاهش ناپذیر* کلید کاندید باشه رابطه در BCNF هست.
بنابراین اساسا هر دو دارن یک مفهوم رو بیان میکنند.

RE: ابهام در شرط BCNF بودن یک رابطه - هاتف - ۱۶ بهمن ۱۳۹۲ ۰۱:۰۷ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  این دترمینان که گفتید من نمیدونم چیه. ولی شرط BCNF بود اینه :
۱- رابطه تا سطح ۳nf نرمال باشد.
۲- سمت چپ هر وابستگی ابرکلید باشد.
دترمینان همون عبارت سمت چپ توی وابستگی تابعی هست.
اینی که شما فرمودید که همون شد، اتفاقا من فکر میکنم سمت چپ هر وابستگی توی BCNF باید کلید کاندید باشه و نه سوپر کلید.
(کلید کاندید، سوپر کلیدی است که کاهش ناپذیر باشه)

(۱۶ بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  در مورد اون چیزی که یکی از دوستان اون بالا گفتند.
رابطه ای در سطح ۳nf باشه خیلی به ندرت ممکنه BCNF نباشه.
اگر در رابطه ای شرایط زیر برقرار باشه (هر ۳ باهم) ، ممکنه ۳nf باشه ولی BCNF نباشه.
۱- تمام کلید کاندید چند خصیصه ای باشند
۲- هر دو کلید کاندید حداقل در یک خصیصه اشتراک داشته باشند.
۳- بیش ار یک کلید کاندید داشته باشیم.
-------------------------------
اگر رابطه ای در سطح ۳nf باشه و حداقل یکی از شرایط بالا رو نداشته باشه قطعا BCNF هست.
---------------------------------
طبق مورد سوم پس شما میفرمائید اگر رابطه ای داشته باشیم که یک کلید کاندید داشته باشه و در سطح ۳NF باشه حتما BCNF هم هست، یعنی نمیشه فقط یک کلید کاندید داشته باشیم و توی نمودار FD فلشی داشته باشیم که از چیزی غیر اون خارج شده باشه؟!
کمی به نظرم بعیده!


(۱۶ بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  یک مورد دیگه رو هم اضافه میکنم.
علت اختلاف به وجود اومده یک نکته ظریفه ، اونم اینه باید سطح نرمال رابطه رو از قواعد موجود (نه ساده شده) تعیین کرد.
و مطابق تعریف BCNF ، اگر سمت چپ هر FD *کاهش ناپذیر* کلید کاندید باشه رابطه در BCNF هست.
بنابراین اساسا هر دو دارن یک مفهوم رو بیان میکنند.
اینی که اینجا فرمودید با اولیه تناقض داره
اگر سمت چپ یک کلید کاندید کاهش ناپذیر داشته باشیم، دیگه نمیشه بهش گفت ابرکلید، میشه همون کلید کاندید.

RE: ابهام در شرط BCNF بودن یک رابطه - e.shrm - 16 بهمن ۱۳۹۲ ۰۱:۲۶ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۱:۰۷ ب.ظ)هاتف نوشته شده توسط:  
(16 بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  این دترمینان که گفتید من نمیدونم چیه. ولی شرط BCNF بود اینه :
۱- رابطه تا سطح ۳nf نرمال باشد.
۲- سمت چپ هر وابستگی ابرکلید باشد.
دترمینان همون عبارت سمت چپ توی وابستگی تابعی هست.
اینی که شما فرمودید که همون شد، اتفاقا من فکر میکنم سمت چپ هر وابستگی توی BCNF باید کلید کاندید باشه و نه سوپر کلید.
(کلید کاندید، سوپر کلیدی است که کاهش ناپذیر باشه)
منم همون رو تایید میکنم. سمت چپ باید سوپر کلید باشه.

(۱۶ بهمن ۱۳۹۲ ۰۱:۰۷ ب.ظ)هاتف نوشته شده توسط:  
(16 بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  در مورد اون چیزی که یکی از دوستان اون بالا گفتند.
رابطه ای در سطح ۳nf باشه خیلی به ندرت ممکنه BCNF نباشه.
اگر در رابطه ای شرایط زیر برقرار باشه (هر ۳ باهم) ، ممکنه ۳nf باشه ولی BCNF نباشه.
۱- تمام کلید کاندید چند خصیصه ای باشند
۲- هر دو کلید کاندید حداقل در یک خصیصه اشتراک داشته باشند.
۳- بیش ار یک کلید کاندید داشته باشیم.
-------------------------------
اگر رابطه ای در سطح ۳nf باشه و حداقل یکی از شرایط بالا رو نداشته باشه قطعا BCNF هست.
---------------------------------
طبق مورد سوم پس شما میفرمائید اگر رابطه ای داشته باشیم که یک کلید کاندید داشته باشه و در سطح ۳NF باشه حتما BCNF هم هست، یعنی نمیشه فقط یک کلید کاندید داشته باشیم و توی نمودار FD فلشی داشته باشیم که از چیزی غیر اون خارج شده باشه؟!
کمی به نظرم بعیده!
درست منظورتون رو نفهمیدم ولی اگه منظورتون اینه که بین دو تا غیر کلید رابطه ای وجود داشته باشه ، خب این نقض حالت ۳nf هست. میشه وابستگی به غیر کلید که وابستگی انتقالیه.
(۱۶ بهمن ۱۳۹۲ ۰۱:۰۷ ب.ظ)هاتف نوشته شده توسط:  
(16 بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  یک مورد دیگه رو هم اضافه میکنم.
علت اختلاف به وجود اومده یک نکته ظریفه ، اونم اینه باید سطح نرمال رابطه رو از قواعد موجود (نه ساده شده) تعیین کرد.
و مطابق تعریف BCNF ، اگر سمت چپ هر FD *کاهش ناپذیر* کلید کاندید باشه رابطه در BCNF هست.
بنابراین اساسا هر دو دارن یک مفهوم رو بیان میکنند.
اینی که اینجا فرمودید با اولیه تناقض داره
اگر سمت چپ یک کلید کاندید کاهش ناپذیر داشته باشیم، دیگه نمیشه بهش گفت ابرکلید، میشه همون کلید کاندید.
نه ، تناقض نداره. ببینید تو تشخیص سطح نرمال نباید FD ها رو ساده کنیم ، بر اساس اون چیزی که هست قضاوت میکنیم. و مطابق این سمت چپ باید سوپر کلید باشه.
ولی اون قانونی که شما فرمودید من با کتاب رانکوهی هم چک کردم ، گفته سمت چپ کلید کاندید باشه ولی برای FD های کاهش ناپذیر. وقتی شما FD هاتون هنوز ساده شده نیست نمیتونید بر اساس کلید کاندید قضاوت کنید و معیارتون باید سوپر کلید باشه.
این چیزیه که من خوندم و البته تو تست ها هم همین بوده.
شما مثال نقضی تو تست ها براش دارید؟
[/quote]

RE: ابهام در شرط BCNF بودن یک رابطه - هاتف - ۱۶ بهمن ۱۳۹۲ ۰۴:۲۸ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۱:۲۶ ب.ظ)e.shrm نوشته شده توسط:  
(16 بهمن ۱۳۹۲ ۰۱:۰۷ ب.ظ)هاتف نوشته شده توسط:  طبق مورد سوم پس شما میفرمائید اگر رابطه ای داشته باشیم که یک کلید کاندید داشته باشه و در سطح ۳NF باشه حتما BCNF هم هست، یعنی نمیشه فقط یک کلید کاندید داشته باشیم و توی نمودار FD فلشی داشته باشیم که از چیزی غیر اون خارج شده باشه؟!
کمی به نظرم بعیده!
درست منظورتون رو نفهمیدم ولی اگه منظورتون اینه که بین دو تا غیر کلید رابطه ای وجود داشته باشه ، خب این نقض حالت ۳nf هست. میشه وابستگی به غیر کلید که وابستگی انتقالیه.
هنوز مثال نقضی برای رد این حرف شما پیدا نکردم، احتمالا حق با شماست.

(۱۶ بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  ...اون قانونی که شما فرمودید من با کتاب رانکوهی هم چک کردم ، گفته سمت چپ کلید کاندید باشه ولی برای FD های کاهش ناپذیر. وقتی شما FD هاتون هنوز ساده شده نیست نمیتونید بر اساس کلید کاندید قضاوت کنید و معیارتون باید سوپر کلید باشه.
این چیزیه که من خوندم و البته تو تست ها هم همین بوده.
شما مثال نقضی تو تست ها براش دارید؟
توی تست مثال نقض پیدا نکردم ولی شما برای اونچه بالا فرمودید مثالی دارید ارائه کنید؟
یعنی رابطه ای که در سطح نرمال BCNF باشه در حالی که سمت چپ FD هایش سوپر کلید باشه و نه کلید کاندید.
اگر دارید ممنون میشم بفرمائید.

RE: ابهام در شرط BCNF بودن یک رابطه - e.shrm - 16 بهمن ۱۳۹۲ ۰۵:۴۶ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۴:۲۸ ب.ظ)هاتف نوشته شده توسط:  
(16 بهمن ۱۳۹۲ ۱۰:۲۴ ق.ظ)e.shrm نوشته شده توسط:  ...اون قانونی که شما فرمودید من با کتاب رانکوهی هم چک کردم ، گفته سمت چپ کلید کاندید باشه ولی برای FD های کاهش ناپذیر. وقتی شما FD هاتون هنوز ساده شده نیست نمیتونید بر اساس کلید کاندید قضاوت کنید و معیارتون باید سوپر کلید باشه.
این چیزیه که من خوندم و البته تو تست ها هم همین بوده.
شما مثال نقضی تو تست ها براش دارید؟
توی تست مثال نقض پیدا نکردم ولی شما برای اونچه بالا فرمودید مثالی دارید ارائه کنید؟
یعنی رابطه ای که در سطح نرمال BCNF باشه در حالی که سمت چپ FD هایش سوپر کلید باشه و نه کلید کاندید.
اگر دارید ممنون میشم بفرمائید.
یه نگاه کلی به تست ها انداختم چیزی در تایید یا رد حرفم از تست های کنکور ندیدم. تست تالیفی زیاد دارم در تایید حرفم. که فکر میکنم خودتون توی همون نمونه سوالات که میفرمایید دیدید. ولی با توجه به شناخت من از مولف کتاب پارسه بعیید میدونم اشتباه به این فاحشی کرده باشه. اون هم با این میزان تاکید تو تمام تست ها به سوپر کلید بودن.
ولی این متن کتاب رانکوهی هم البته این موضوع رو تایید میکنه ، سه تا تعریف مختلف برای BCNF گفته دوتاش رو براتون مینویسم، :
اولی(بر اساس کتاب RAMA) :
رابطه R با مجموعه وابستگی های تابعی F در BCNF است اگر و فقط اگر برای هر وابستگی تابعی در F+ به صورت A---->B حداقل یکی از دو حالت زیر برقرار باشد:
۱- A---->B یک وابستگی نامهم باشد (همون بدیهی منظورشه! یعنی B زیر مجموعه A)
۲- A یک سوپر کلید رابطه R باشد.

دومی:
رابطه R در BCNF است اگر و تنها اگر سمت چپ هر FD مهم (غیر بدیهی) وکاهش ناپذیر ، کلید کاندید باشد (مطابق کتاب Date)

RE: ابهام در شرط BCNF بودن یک رابطه - هاتف - ۱۶ بهمن ۱۳۹۲ ۰۵:۵۹ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۵:۴۶ ب.ظ)e.shrm نوشته شده توسط:  ...با توجه به شناخت من از مولف کتاب پارسه بعیید میدونم اشتباه به این فاحشی کرده باشه. اون هم با این میزان تاکید تو تمام تست ها به سوپر کلید بودن.
ولی این متن کتاب رانکوهی هم البته این موضوع رو تایید میکنه ، سه تا تعریف مختلف برای BCNF گفته دوتاش رو براتون مینویسم، :
اولی(بر اساس کتاب RAMA) :
رابطه R با مجموعه وابستگی های تابعی F در BCNF است اگر و فقط اگر برای هر وابستگی تابعی در F+ به صورت A---->B حداقل یکی از دو حالت زیر برقرار باشد:
۱- A---->B یک وابستگی نامهم باشد (همون بدیهی منظورشه! یعنی B زیر مجموعه A)
۲- A یک سوپر کلید رابطه R باشد.

دومی:
رابطه R در BCNF است اگر و تنها اگر سمت چپ هر FD مهم (غیر بدیهی) وکاهش ناپذیر ، کلید کاندید باشد (مطابق کتاب Date)
خیــــلی متشکرم بابت وقتی که برای این مسئله گذاشتید.
بنابراین من حرف شما رو مبنی بر اینکه «در BCNF، دترمینان هر وابستگی باید یک سوپر کلید باشه» رو مبنای کار قرار میدم.

RE: ابهام در شرط BCNF بودن یک رابطه - e.shrm - 16 بهمن ۱۳۹۲ ۰۶:۰۱ ب.ظ

(۱۶ بهمن ۱۳۹۲ ۰۵:۵۹ ب.ظ)هاتف نوشته شده توسط:  خیــــلی متشکرم بابت وقتی که برای این مسئله گذاشتید.
بنابراین من حرف شما رو مبنی بر اینکه «در BCNF، دترمینان هر وابستگی باید یک سوپر کلید باشه» رو مبنای کار قرار میدم.
خواهش میکنم. امیدوار درست باشه.
موفق باشید.