نرمال‌سازی (پایگاه داده‌ها)

نرمال‌سازی پایگاه داده‌ها  یکی از اصول علم پایگاه داده‌ها از بین بردن افزونگی است. افزونگی به این معناست یک داده خاص در چند محل مختلف پایگاه ذخیره شود. این امر موجب می‌شود که این خطر بالقوه به وجود آید که داده‌ها هر لحظه با هم در تضاد قرار گیرند و استخراج واقعیت از آن‌ها غیرممکن شود به بیان دیگر فرایندی است که بر اساس آن داده‌ها و اطلاعات در واحدهای منطقی به نام جدول به شکلی توزیع می‌شود که علاوه بر حفظ موجودیت داده‌ها از ایجاد پدیدهٔ افزونگی جلوگیری به عمل می‌آورد به این منظور فرم‌های نرمال متعددی تعریف و مورد استفاده قرار می‌گیرد، برای نرمال‌سازی یک جدول لازم است ابتدا در فرم اول نرمال شده سپس در فرم فرم‌های بعدی بررسی گردد، در هنگام نرمال‌سازی جداول تعداد جداول در پایگاه داده افزایش می‌یابد.

نرمال‌سازی مجموعه قوانینی است که رعایت آن‌ها حذف افزونگی (یا در مواردی نادر به حداقل رساندن آن) را تضمین می‌کند.

 شکل‌های نرمال‌سازی 
شکل 1NF
اولین فرم نرمال‌سازی می‌باشد که در آن سعی می‌شود داده‌ها و اطلاعات مربوط به موجودیت‌های مستقل در واحدهای مستقل در واحدهای مستقل موسوم به جدول ذخیره گردد در این حالت جدول زمانی نرمال خواهد بود که شرایط زیر را داشته باشد،
 نوع داده‌ها و اطلاعات در هر ستون یکسان باشد.
 محتویات هر ستون یک مقدار مشخص باشد اتمیک باشد.
 هر سطر از جدول منحصربه‌فرد باشد به این منظور می‌توان از قید کلید اصلی یا PK استفاده نمود.
شکل 2nf
یک جدول در فرم دوم نرمال است اگر شرایط زیر را داشته باشد:
 در فرم اول نرمال باشد.
 کلیه ستون‌های غیر کلید وابستگی تابعی کامل به کلیه ستون‌های کلید داشته باشد.
شکل 3nf
یک رابطه در فرم سوم نرمال است اگر شرایط زیر را داشته باشد
 در فرم اول و دوم نرمال باشد
 فاقد وابستگی‌های با واسطه باشد
شکل Bcnf
یک جدول در این حالت نرمال است، اگر شرایط زیر را داشته باشد:
 در فرم اول و دوم و سوم نرمال باشد.
 هر دترمینان یک کلید کاندید باشد (در تشکیل کلید شرکت کند)
شکل 4nf
در فرم چهارم نرمال است اگر شرایط زیر را داشته باشد:
 در فرم اول دوم سوم و bcnf نرمال باشد.
 فاقد وابستگی‌های چند مقداره باشد.

 منابع 

رده:پایگاه داده‌ها
رده:پایگاه داده‌های رابطه‌ای
رده:جبر رابطه‌ای
رده:سامانه‌های مدیریت پایگاه داده‌ها
رده:مدل رابطه‌ای
رده:مدل‌سازی در داده‌ها
رده:نرمال‌سازی پایگاه داده‌ها