سایت آموزشی codeinfarsi.org برای کاربران ایرانی تحریم شد
سایت آموزشی codeinfarsi.org hk دیگر در دسترس نیست و بهدلیل قرار گرفتن در سیاستهای تحریمی…
۲۷ شهریور ۱۴۰۳
۱۵ آذر ۱۴۰۳
زمان مطالعه : ۱۳ دقیقه
تاریخ بهروزرسانی: ۱۴ آذر ۱۴۰۳
نرمال سازی دادهها برای عملیات کسبوکار بسیار مهم است و درک کامل آن میتواند به هر شرکتی مزیت واقعی برای رشد بیشتر با دادههای کلان بدهد. از استارتآپهای کوچک گرفته تا شرکتهای بزرگ، بر کسی پوشیده نیست که دادهها به اولویت اصلی هر کسبوکاری تبدیل شده است. همانطور که شرکتها دادهها را جمعآوری، ذخیره و تجزیه و تحلیل میکنند، پایگاههای داده (databases) را برای مدیریت آنها میسازند و از آنها استفاده میکنند. در این رشته رو به رشد دادههای کلان (big data)، ممکن است با اصطلاحی به نام نرمالسازی داده (data normalization) برخورد کرده باشید.
نرمال سازی دادهها فرآیند سازماندهی مجدد دادهها در یک پایگاه داده است تا کاربران بتوانند از آن برای کوئریها و تجزیه و تحلیلهای بیشتر استفاده کنند. به زبان ساده، این فرآیند توسعه دادههای پاکسازی شده است. یعنی شامل حذف دادههای اضافی و بدون ساختار و شبیهسازی دادهها در تمام رکوردها و فیلدها میشود.
سازماندهی دادهها در یک دیتابیس با نرمالسازی انجام میشود. این فرایند نیاز به ساخت جداول و پیوند دادن آن جداول به یکدیگر دارد. این پیوندها را باید مطابق با اصول محافظت از دادهها و افزایش سازگاری دیتابیس انجام دهید. به عنوان مثال باید به حذف موارد تکراری (duplication) و اتکای ناسازگار (inconsistent reliance) اشاره کنیم.
فضای دیسک توسط دادههای اضافی هدر میرود و منجر به ایجاد مشکلات تعمیر و نگهداری خواهد شد. اگر دادههایی که از قبل در چندین مکان وجود دارد، نیاز به اصلاح داشته باشند، باید در همه جا به روشی یکسان بهروزرسانی شوند. اگر اطلاعات صرفاً در جدول مشتریان و نه در جای دیگر از دیتابیس نگهداری شود، تغییر آدرس مشتری بسیار سادهتر است.
در حالی که جستجوی یک کاربر در دیتابیس مشتریان برای آدرس مشتری خاص کاملاً منطقی است، ممکن است انجام این کار برای کارگری که از طرف آن مشتری تلفن میکند درست به نظر نرسد. پس دستمزد کارمند باید به جدول کارمندان منتقل شود. چون به کارمند، متصل یا به آن وابسته است. دسترسی به دادهها ممکن است در نتیجه ارتباطات یا وابستگیهای ناسازگار دشوار شود، چون ممکن است مسیر پیدا کردن دادهها ناقص شده یا آسیب دیده باشد.
قبل از اینکه به اشکال مختلف نرمال سازی دادهها بپردازیم، ابتدا باید مفهوم کلیدها را در SQL درک کنید. یک کلید میتواند یک ستون یا ترکیبی از ستونها باشد که ردیفها یا تاپلها (tuples) را بهطور منحصربهفرد در جدول مشخص میکند. همچنین به شناسایی اطلاعات تکراری و ایجاد روابط بین جداول مختلف کمک میکند.
در ادامه رایجترین نوع کلیدها را معرفی میکنیم:
نرمال سازی دادهها را میتوان به انواع و فرمهای مختلفی تقسیم کرد. محبوبترین آنها 1NF، 2NF، 3NF و BCNF هستند. پس اجازه دهید با کمک یک مثال تمام این فرمهای نرمال را بررسی کنیم. فرض کنید یک شرکت دارای دیتابیسی از تمام کارکنان و مهارتهای کلیدی آنها است که در جدول زیر میبینیم:
جنسیت | نام کامل | آدرس | مهارتها |
آقای | جان دنور (John Denver) | 12، جاده بیتس برادرز (Bates Brothers) | محتوانویسی، بازاریابی شبکههای اجتماعی |
خانم | ماری آن (Mary Ann) | 34، شدومن درایو (Shadowman Drive) | یادگیری عمیق، علم دادهها |
خانم | نانسی دریو (Nancy Drew) | 4، خیابان پلات اول (First Plot Street) | DBMS |
اولین شکل نرمال سازی دادهها 1NF است که تضمین میکند دو ورودی مشابه در یک گروه وجود ندارد. پس برای اینکه یک جدول در اولین شکل نرمال باشد، باید قوانین زیر را رعایت کند:
بنابراین جدول در 1NF به این شکل خواهد بود:
جنسیت | نام کامل | آدرس | مهارتها |
آقای | جان دنور (John Denver) | 12، جاده بیتس برادرز (Bates Brothers) | تولید محتوا |
آقای | جان دنور (John Denver) | 12، جاده بیتس برادرز (Bates Brothers) | بازاریابی شبکههای اجتماعی |
خانم | ماری آن (Mary Ann) | 34، شدومن درایو (Shadowman Drive) | یادگیری ماشینی |
خانم | ماری آن (Mary Ann) | 34، شدومن درایو (Shadowman Drive) | علم دادهها |
خانم | نانسی دریو (Nancy Drew) | 4، خیابان پلات اول (First Plot Street) | DBMS |
در یک جدول 2NF، تمام زیرمجموعههای دادهای که میتوانند در ردیفهای متعدد قرار بگیرند، در جداول جداگانه قرار میگیرند. پس برای اینکه یک جدول به صورت فرم نرمال دوم باشد، باید قوانین زیر را رعایت کند:
بیایید جدول 1NF را به دو جدول تقسیم کنیم؛ جدول 1 و جدول 2. میبینید که جدول 1 شامل تمام اطلاعات کارکنان است. به علاوه جدول 2 حاوی اطلاعاتی در مورد مهارتهای کلیدی آنهاست.
جدول ۱
آیدی کارکنان | جنسیت | نام کامل | آدرس |
1 | آقای | جان دنور (John Denver) | 12، جاده بیتس برادرز (Bates Brothers) |
2 | خانم | ماری آن (Mary Ann) | 34، شدومن درایو (Shadowman Drive) |
3 | خانم | نانسی دریو (Nancy Drew) | 4، خیابان پلات اول (First Plot Street) |
جدول ۲
کارکنان ID | مهارتهای کلیدی |
1 | بازاریابی محتوا |
1 | بازاریابی شبکههای اجتماعی |
2 | یادگیری ماشینی |
2 | علم داده |
3 | DBMS |
ما یک ستون جدید به نام ID کارکنان معرفی کردهایم که کلید اصلی جدول ۱ است. بنابراین رکوردها را میتوان با استفاده از این کلید اصلی شناسایی کرد.
در جدول ۲،ID کارمند کلید خارجی محسوب میشود.
برای اینکه یک جدول به صورت فرم سوم نرمال باشد، باید قوانین زیر را رعایت کند:
یک وابستگی عملکردی انتقالی زمانی است که تغییر در یک ستون (که کلید اصلی نیست) ممکن است باعث تغییر هر یک از ستونهای دیگر شود.
در مثال ما، اگر تغییر نام (مرد به زن) وجود داشته باشد، ممکن است تغییری در جنسیت (آقا، خانم و غیره) ایجاد شود. از این رو جدول جدیدی را معرفی خواهیم کرد که جنسیت را ذخیره میکند.
جدول 1
ID کارکنان | نام کامل | آدرس | جنسیت |
1 | جان دنور (John Denver) | 12، جاده بیتس برادرز (Bates Brothers) | 1 |
2 | ماری آن (Mary Ann) | 34، شدومن درایو (Shadowman Drive) | 2 |
3 | نانسی دریو (Nancy Drew) | 4، خیابان پلات اول (First Plot Street) | 2 |
جدول 2
کارکنان ID | مهارتهای کلیدی |
1 | بازاریابی محتوا |
1 | بازاریابی شبکههای اجتماعی |
2 | یادگیری ماشینی |
2 | علم دادهها |
3 | DBMS |
جدول 3
ID جنسیت | جنسیت |
1 | آقا |
2 | خانم (Ms.) |
3 | خانم متاهل (Mrs.) |
حالا، هیچ وابستگی عملکردی انتقالی وجود ندارد و جدول ما در 3F است. ID جنسیت درجدول 3 کلید اصلی است. ID جنسیت در جدول 1 با کلید اصلی جدول 3 خارجی محسوب میشود.
BCNF نسخه بالاتر 3NF است و با نام 3.5NF هم شناخته میشود. فرم BCNF یک جدول 3NF است که دارای چندین کلید کاندید همپوشانی یا اورلپ نیست. پس برای اینکه جدول در BCNF باشد، باید قوانین زیر را رعایت کند:
فرآیند نرمالسازی پایگاه داده دارای مزایای بیشماری است. در ادامه به چند مزیت کلیدی اشاره کردهایم:
اکنون که درک بهتری از اصطلاحات داریم، ممکن است غیرنرمالسازی (denormalization) و نرمالسازی به عنوان سیستمهای دیتابیس متمایز و مشخص شوند. نرمالسازی با حذف دادههای تکراری، استثناهای درج، حذف و به روزرسانی را کاهش میدهد. علاوه بر این، افزونگی دادهها در طول فرآیند نرمالسازی معکوس به فرایند اضافه میشود تا سرعت اپلیکیشن خاص، محرمانه بودن دادهها و یکپارچگی را افزایش دهد.
روند نرمالسازی یک دیتابیس دارای معایب متعددی است. پس در ادامه چند مشکل را مرور میکنیم:
فرآیند سازماندهی کارآمد دادهها در یک پایگاه داده، نرمالسازی نامیده میشود. این فرایند مستلزم ساخت جداول و ایجاد ارتباط بین آن جداول مطابق با اصول مشخص است. این دستورالعملها میتوانند با حذف وابستگیهای اضافی و نامنظم، آن را بسیار انعطافپذیرتر کنند.
متضاد نرمالسازی، غیرنرمالسازی است که منجر به یک نسخه پر از اطلاعات اضافی از طرح نرمالشده خواهد شد. استفاده از افزونگی (redundancy) و حفظ ثبات دادههای زائد باعث افزایش عملکرد میشود. غیرنرمالسازی به این دلیل ضروری است که یک ساختار بیش از حد نرمال، موجب سربار پردازنده کوئری میشود.
نحوه سازماندهی دادهها زمانی که در مقادیر زیاد وجود دارد، با افزایش ارزش دادهها برای انواع کسبوکارها حیاتیتر میشود. واضح است که وقتی نرمال سازی داده ها با موفقیت انجام شود؛
به این فکر کنید که اگر از سازماندهی دادههای خود غفلت کنید و شانسهای رشد مهم را از دست بدهید، به این دلیل که یک وبسایت بارگیری نمیشود یا معاون رئیس یک شرکت یادداشتهای شما را دریافت نمیکند، چه اتفاقی میافتد. هیچ کدام از اینها به موفقیت یا پیشرفت منجر نمیشود. تصمیمگیری برای استانداردسازی دادهها یکی از مهمترین کارهایی است که در حال حاضر میتوانید برای کسبوکار خود انجام دهید.
ستونها، ویژگیها و جداول یا روابط یک دیتابیس در طول نرمالسازی، مطابق با مجموعهای از قوانین فرم نرمال سازماندهی میشوند. این اشکال عادی به عنوان نوعی سیستم کنترل و تعادل (check and balance system) برای حفظ یکپارچگی ارتباطات میان ویژگیها و روابط عمل کرده و روند نرمالسازی را هدایت میکنند. فرآیند نرمالسازی از طریق مجموعهای از دستورالعملها (به نام «فرمهای نرمال»)، به دنبال تضمین این است که یکپارچگی دیتابیس بدون توجه به تغییر، افزودن یا از بین رفتن دادهها حفظ شود.
همانطور که به مرور زمان دادهها برای هر نوع کسبوکاری ارزش بیشتری پیدا میکنند، نرمال سازی دادهها چیزی بیش از سازماندهی مجدد دادهها در یک دیتابیس است. بنابراین در ادامه برخی از فواید عمده این فرایند برای کسبوکارها را آوردهایم:
یک شرکت میتواند تمام دادههایی را که میخواهد، از هر منبعی جمعآوری کند. با این حال، بدون نرمال سازی داده ها، بیشتر این دادهها به سادگی غیر قابل استفاده میشوند و به هیچ وجه برای سازمان سودی ندارند.
نتیجهگیری
نرمال سازی دادهها از اولویت بالایی برخوردار است، زیرا سازمانها همچنان از دادهها در مقیاسی استفاده میکنند که قبلاً هرگز سابقه نداشته است. حالا که درک اساسی از نرمال سازی دادهها دارید، زمان آن رسیده است که به عمق این موضوع بپردازید. با پیچیدهتر شدن دیتابیسها، فرمهای نرمال سطح بالاتری وجود دارد که باید یاد بگیرید.
منبع: simplilearn