3NF در مقابل BCNF
نرمالسازی فرآیندی است که برای به حداقل رساندن افزونگیهای موجود در دادهها در پایگاههای داده رابطهای انجام میشود. این فرآیند عمدتا جداول بزرگ را به جداول کوچکتر با افزونگی کمتر تقسیم می کند. این جداول کوچکتر از طریق روابط کاملاً تعریف شده با یکدیگر مرتبط خواهند بود. در یک پایگاه داده به خوبی نرمال شده، هر گونه تغییر یا تغییر در داده ها نیاز به اصلاح تنها یک جدول دارد. سومین فرم عادی (3NF) در سال 1971 توسط ادگار اف. کاد، که مخترع مدل رابطه ای و مفهوم عادی سازی نیز هست، معرفی شد. فرم عادی بویس-کاد (BCNF) در سال 1974 توسط کاد و ریموند اف معرفی شد.بویس.
3NF چیست؟
3NF سومین فرم نرمال مورد استفاده در عادی سازی پایگاه داده رابطه ای است. طبق تعریف Codd، یک جدول به 3NF گفته می شود، اگر و فقط اگر، آن جدول به شکل دوم عادی (2NF) باشد، و هر ویژگی در جدول که به یک کلید کاندید تعلق ندارد باید مستقیماً به هر کلید نامزد آن جدول در سال 1982 کارلو زانیولو تعریف متفاوتی برای 3NF ارائه کرد. جداول مطابق با 3NF معمولاً حاوی ناهنجاریهایی نیستند که هنگام درج، حذف یا بهروزرسانی رکوردها در جدول رخ میدهند.
BCNF چیست؟
BCNF (همچنین به عنوان 3.5NF شناخته می شود) یک شکل عادی دیگر است که در عادی سازی پایگاه داده رابطه ای استفاده می شود. برای ثبت برخی از ناهنجاری هایی که توسط 3NF مورد توجه قرار نمی گیرند، معرفی شد. به یک جدول در BCNF گفته می شود، اگر و فقط اگر برای هر یک از وابستگی های شکل A → B که بی اهمیت هستند، A یک کلید فوق العاده باشد. تجزیه جدولی که به شکل عادی BCNF نیست، تولید جداول در فرم BCNF را تضمین نمی کند (در حالی که وابستگی های موجود در جدول اصلی را حفظ می کند).
تفاوت بین 3NF و BCNF چیست؟
هر دو 3NF و BCNF فرم های معمولی هستند که در پایگاه داده های رابطه ای برای به حداقل رساندن افزونگی در جداول استفاده می شوند. در جدولی که به شکل عادی BCNF است، برای هر وابستگی عملکردی غیر پیش پا افتاده به شکل A → B، A یک کلید فوق العاده است در حالی که، جدولی که با 3NF مطابقت دارد باید در 2NF و هر غیر اول باشد. ویژگی باید مستقیماً به هر کلید کاندید آن جدول بستگی داشته باشد. BCNF به عنوان یک فرم نرمال قویتر از 3NF در نظر گرفته میشود و برای گرفتن برخی از ناهنجاریهایی که توسط 3NF نمیتوان ثبت کرد، ایجاد شد. به دست آوردن جدولی که با فرم BCNF مطابقت داشته باشد، مستلزم تجزیه جدولی است که در 3NF است. این تجزیه منجر به عملیات پیوستن اضافی (یا محصولات دکارتی) در هنگام اجرای پرس و جو می شود. این باعث افزایش زمان محاسبات می شود. از سوی دیگر، جداولی که با BCNF مطابقت دارند نسبت به جداولی که فقط با 3NF مطابقت دارند، افزونگی کمتری خواهند داشت. علاوه بر این، اغلب اوقات، می توان جدولی را به دست آورد که با 3NF مطابقت داشته باشد، بدون اینکه مانع حفظ وابستگی و اتصال بدون تلفات شود.اما این همیشه با BCNF امکان پذیر نیست.