نرمالسازی (Normalization) یک تکنیک طراحی پایگاه داده است که ازدیاد داده را کاهش میدهد و ویژگیهای نامطلوب مانند ناهنجاریهای درج، به روزرسانی و حذف را از بین میبرد. قوانین نرمالسازی جداول بزرگتر را به جداول کوچکتر تقسیم کرده و آنها را با استفاده از روابط بهم پیوند میدهد. هدف از نرمالسازی در SQL حذف دادههای زائد (تکراری) و اطمینان از ذخیره منطقی دادهها است.
مخترع مدل رابطهای (Relational Model) ادگار کاد، تئوری نرمالسازی داده را با معرفی اولین فرم نرمال پیشنهاد داده و همچنان به گسترش نظریه با فرم نرمال دوم و سوم ادامه داد. بعداً او به ریموند اف. بویس پیوست تا نظریه فرم نرمال بویس-کاد را توسعه دهد.
فرمهای نرمال پایگاه داده
در اینجا لیستی از فرمهای نرمال آورده شده است:
- ۱NF (اولین فرم نرمال)
- ۲NF (فرم نرمال دوم)
- ۳NF (فرم نرمال سوم)
- BCNF (فرم نرمال بویس-کاد)
- ۴NF (فرم نرمال چهارم)
- ۵NF (فرم نرمال پنجم)
- ۶NF (فرم نرمال ششم)
نظریه نرمالسازی داده در سرور SQL هنوز در حال توسعه است. به عنوان مثال، حتی در مورد فرم نرمال ششم نیز بحثهایی وجود دارد. با این حال، در اکثر کاربردهای عملی، نرمالسازی در فرم نرمال سوم بهترین نتیجه را مییابد. تکامل نظریههای نرمالسازی SQL در تصویر زیر نشان داده شده است:
مشکلات عدم نرمالسازی
اگر جدولی به درستی نرمال نشده و افزونگی دادهها را داشته باشد، نه تنها فضای حافظه اضافی را اشغال میسازد بلکه مدیریت و به روزرسانی پایگاه داده را نیز دشوار میکند. در صورت نرمال نبودن پایگاه داده، ناهنجاریهای درج، به روزرسانی و حذف بسیار مکرر است.
ناهنجاری درج (Insertion Anomaly)
فرض کنید در یک جدول داده دانشجو برای پذیرش جدید، تا زمانی که دانشجو شاخهای را انتخاب نکند، داده دانشجو نمیتواند درج شود در غیر این صورت ما باید اطلاعات شاخه را NULL تنظیم کنیم.
همچنین، اگر مجبور شویم دادههای ۱۰۰ دانشجو از همان شاخه را درج کنیم، اطلاعات شاخه برای همه آن ۱۰۰ دانشجو تکرار میشود.
این سناریوها ناهنجاریهای درج هستند.
ناهنجاری بروزرسانی (Updation Anomaly)
اگر آقای X دانشکده را ترک کند چه میشود؟ یا دیگر مدیر گروه علوم کامپیوتر نباشد؟ در این صورت تمام سوابق دانشجویی باید به روز شود و اگر به اشتباه هر رکوردی را از دست بدهیم، منجر به ناسازگاری دادهها میگردد. این ناهنجاری بروزرسانی است.
ناهنجاری حذف (Deletion Anomaly)
در یک جدول دانشجویی، اطلاعات مختلف با هم نگهداری میشوند از جمله اطلاعات دانشجویی و اطلاعات شاخه. از این رو، در پایان سال تحصیلی اگر سوابق دانشجویی حذف شود، ما اطلاعات شاخه را از دست خواهیم داد. این ناهنجاری حذف است.
نرمالسازی پایگاه داده با مثال
با استفاده از مطالعه موردی به راحتی میتوان نمونه نرمالسازی پایگاه داده را درک کرد. فرض کنید یک ویدیو کلوب یک پایگاه داده از فیلمهای اجاره شده را نگهداری میکند. بدون نرمالسازی در پایگاه داده، کلیه اطلاعات در یک جدول مطابق شکل زیر ذخیره میشود. بیایید نرمالسازی در پایگاه داده را با مثال جداول درک کنیم:
در اینجا میبینید که ستون Movies Rented دارای مقادیر متعددی است. اکنون بیایید اولین فرم نرمال را بررسی کنیم:
قوانین ۱NF (اولین فرم نرمال)
- هر سلول جدول باید دارای یک مقدار واحد باشد.
- هر سابقه باید منحصر به فرد باشد.
جدول فوق در اولین فرم نرمال به شکل زیر است:
قبل از ادامه، بیایید چند چیز را درک کنیم:
کلید (KEY) چیست؟
کلید مقداری است که برای شناسایی سابقه در یک جدول به طور منحصر به فرد استفاده میشود. کلید میتواند یک ستون یا ترکیبی از چند ستون باشد.
نکته: به ستونهای جدول که برای شناسایی منحصر به فرد یک رکورد استفاده نمیشود ، ستونهای غیرکلیدی (non-key) گفته میشود.
کلید اصلی (Primary Key) چیست؟
کلید اصلی یک ستون مقدار است که برای شناسایی رکورد پایگاه داده به طور منحصر به فرد استفاده میشود.
کلید اصلی دارای ویژگیهای زیر است:
- کلید اصلی نمیتواند NULL باشد
- مقدار اصلی باید منحصر به فرد باشد
- مقادیر اصلی اولیه به ندرت باید تغییر کند
- هنگام قرار دادن سابقه جدید باید به کلید اصلی مقدار داده شود
کلید ترکیبی (Composite Key) چیست؟
کلید ترکیبی یک کلید اصلی است که از ترکیب چندین ستون ساخته و برای شناسایی منحصر به فرد یک سابقه استفاده میشود.
در پایگاه داده ما، دو نفر به نام رابرت فیل وجود دارد، اما آنها در مکانهای مختلف زندگی میکنند.
از این رو، ما به نام و نام خانوادگی و آدرس احتیاج داریم تا سابقه را به طور منحصر به فرد شناسایی کنیم. این یک کلید ترکیبی است.
بیایید فرم نرمال دوم را بررسی کنیم.
جمعبندی
- طراحی پایگاه داده برای پیادهسازی موفقیتآمیز یک سیستم مدیریت پایگاه داده که نیازهای دادههای یک سیستم سازمانی را برآورده میکند، حیاتی است.
- فرآیند نرمالسازی در DBMS به تولید سیستمهای پایگاه داده کمک میکند که مقرون به صرفه بوده و دارای مدلهای امنیتی بهتری هستند.
- وابستگیهای عملکردی یکی از مولفههای مهم فرآیند نرمالسازی داده است.
- اکثر سیستمهای پایگاه داده تا فرم نرمال سوم پایگاه داده، نرمال هستند.
- کلید اصلی به طور منحصر به فرد شناسایی میشود در یک جدول ضبط شده و نمیتواند صفر باشد.
- کلید خارجی به اتصال جدول کمک میکند و به کلید اصلی ارجاع میدهد.