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