نرمال سازی پایگاه داده به زبان ساده
نرمالسازی پایگاه داده فرآیندی است که با هدف بهینهسازی ساختار جداول در پایگاه دادهها انجام میشود. این فرآیند به کمک قواعدی به نام “نرمال فرمها” انجام میشود تا مشکلاتی مانند افزونگی دادهها و ناسازگاریها را کاهش داده و یکپارچگی دادهها را افزایش دهد. در این مقاله، نرمالسازی پایگاه داده را به زبان ساده توضیح میدهیم.
چرا نرمالسازی؟
- کاهش افزونگی دادهها: حذف دادههای تکراری.
- بهبود یکپارچگی دادهها: اطمینان از اینکه تغییرات دادهها در یک جدول به طور صحیح در جداول مرتبط منعکس میشود.
- سهولت نگهداری: سادهتر کردن فرآیند بهروزرسانی، حذف و درج دادهها.
مراحل نرمالسازی
نرمالسازی معمولاً در چند مرحله انجام میشود که هر مرحله به یک نرمال فرم (Normal Form) مشخص منتهی میشود. نرمال فرمهای اصلی شامل 1NF، 2NF و 3NF هستند.
1. نرمال فرم اول (1NF)
در نرمال فرم اول، هر جدول باید دارای سلولهای تک مقداری باشد. این به معنای آن است که هر سلول در جدول تنها میتواند یک مقدار واحد داشته باشد و جداول نباید شامل مجموعهها، لیستها یا آرایهها باشند.
مثال
فرض کنید جدولی به نام “دانشجویان” داریم:
شماره دانشجویی | نام | درسها |
---|---|---|
123456 | علی | ریاضی، فیزیک |
123457 | سارا | شیمی، زیستشناسی |
در نرمال فرم اول، باید جدول را به شکلی تغییر دهیم که هر سلول فقط یک مقدار داشته باشد:
شماره دانشجویی | نام | درس |
---|---|---|
123456 | علی | ریاضی |
123456 | علی | فیزیک |
123457 | سارا | شیمی |
123457 | سارا | زیستشناسی |
2. نرمال فرم دوم (2NF)
برای رسیدن به نرمال فرم دوم، جدول باید در نرمال فرم اول باشد و هر ستون غیر کلیدی باید به کل کلید اصلی وابسته باشد، نه فقط بخشی از آن. این به معنای حذف وابستگیهای جزئی است.
مثال
فرض کنید جدولی به نام “نمرات دانشجویان” داریم:
شماره دانشجویی | نام | کد درس | نام درس | نمره |
---|---|---|---|---|
123456 | علی | 101 | ریاضی | 18 |
123456 | علی | 102 | فیزیک | 17 |
123457 | سارا | 103 | شیمی | 19 |
در این جدول، “نام درس” به کلید اصلی (ترکیب “شماره دانشجویی” و “کد درس”) وابسته نیست. برای رسیدن به 2NF، باید جداول را به دو جدول جدا کنیم:
جدول دانشجویان:
شماره دانشجویی | نام |
---|---|
123456 | علی |
123457 | سارا |
جدول دروس:
کد درس | نام درس |
---|---|
101 | ریاضی |
102 | فیزیک |
103 | شیمی |
جدول نمرات:
شماره دانشجویی | کد درس | نمره |
---|---|---|
123456 | 101 | 18 |
123456 | 102 | 17 |
123457 | 103 | 19 |
3. نرمال فرم سوم (3NF)
در نرمال فرم سوم، جدول باید در نرمال فرم دوم باشد و هیچ ستون غیر کلیدی نباید به ستون غیر کلیدی دیگری وابسته باشد. این به معنای حذف وابستگیهای ترانزیتیو (انتقالی) است.
مثال
فرض کنید جدولی به نام “مشخصات دانشجویان” داریم:
شماره دانشجویی | نام | کد شهر | نام شهر |
---|---|---|---|
123456 | علی | 1 | تهران |
123457 | سارا | 2 | مشهد |
در این جدول، “نام شهر” به “کد شهر” وابسته است که خود به “شماره دانشجویی” وابسته است. برای رسیدن به 3NF، باید جداول را به دو جدول جدا کنیم:
جدول دانشجویان:
شماره دانشجویی | نام | کد شهر |
---|---|---|
123456 | علی | 1 |
123457 | سارا | 2 |
جدول شهرها:
کد شهر | نام شهر |
---|---|
1 | تهران |
2 | مشهد |
نتیجهگیری
نرمالسازی پایگاه داده یک فرآیند ضروری برای بهینهسازی ساختار دادهها و کاهش افزونگی است. با پیروی از مراحل نرمالسازی، میتوان پایگاه دادههایی ساخت که دادهها را به صورت کارآمد و یکپارچه ذخیره کنند.
منابع
- Database Normalization
- Normalization in DBMS
کلیدواژهها
- نرمالسازی پایگاه داده
- نرمال فرم اول (1NF)
- نرمال فرم دوم (2NF)
- نرمال فرم سوم (3NF)
- کاهش افزونگی دادهها
- یکپارچگی دادهها
- وابستگی ترانزیتیو