skip to Main Content
محتوای اختصاصی کاربران ویژهورود به سایت

فراموشی رمز عبور

با شبکه های اجتماعی وارد شوید

عضو نیستید؟ عضو شوید

ثبت نام سایت

با شبکه های اجتماعی وارد شوید

عضو نیستید؟ وارد شوید

فراموشی رمز عبور

وارد شوید یا عضو شوید

جشنواره نوروزی آنر

آموزش

نسرین ابوئی نویسنده میهمان

نرمال‌ سازی داده‌ها در پایگاه داده چیست؟

نسرین ابوئی
نویسنده میهمان

۱۵ آذر ۱۴۰۳

زمان مطالعه : ۱۳ دقیقه

تاریخ به‌روزرسانی: ۱۴ آذر ۱۴۰۳

نرمال ‌سازی داده‌ ها چیست

نرمال‌ سازی داده‌ها برای عملیات کسب‌وکار بسیار مهم است و درک کامل آن می‌تواند به هر شرکتی مزیت واقعی برای رشد بیشتر با داده‌های کلان بدهد. از استارت‌آپ‌های کوچک گرفته تا شرکت‌های بزرگ، بر کسی پوشیده نیست که داده‌ها به اولویت اصلی هر کسب‌وکاری تبدیل شده است. همان‌طور که شرکت‌ها داده‌ها را جمع‌آوری، ذخیره و تجزیه و تحلیل می‌کنند، پایگاه‌های داده (databases) را برای مدیریت آن‌ها می‌سازند و از آن‌ها استفاده می‌کنند. در این رشته رو به رشد داده‌های کلان (big data)، ممکن است با اصطلاحی به نام نرمال‌سازی داده (data normalization) برخورد کرده باشید.

نرمال ‌سازی داده‌‌ها چیست؟

نرمال‌ سازی داده‌ها فرآیند سازماندهی مجدد داده‌ها در یک پایگاه داده است تا کاربران بتوانند از آن برای کوئری‌ها و تجزیه و تحلیل‌های بیشتر استفاده کنند. به زبان ساده، این فرآیند توسعه داده‌های پاک‌سازی شده است. یعنی شامل حذف داده‌های اضافی و بدون ساختار و شبیه‌سازی داده‌ها در تمام رکوردها و فیلدها می‌شود.

نرمال ‌سازی داده‌ها چگونه کار می‌کند؟

سازماندهی داده‌ها در یک دیتابیس با نرمال‌سازی انجام می‌شود. این فرایند نیاز به ساخت جداول و پیوند دادن آن جداول به یکدیگر دارد. این پیوندها را باید مطابق با اصول محافظت از داده‌ها و افزایش سازگاری دیتابیس انجام دهید. به عنوان مثال باید به حذف موارد تکراری (duplication) و اتکای ناسازگار  (inconsistent reliance) اشاره کنیم.

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

روش کار نرمال ‌سازی داده ‌ها
نرمال سازی داده‌ها مستلزم ساخت جداول و پیوند دادن آن جداول به یکدیگر است.

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

کلیدها در SQL

قبل از اینکه به اشکال مختلف نرمال ‌سازی داده‌‌ها بپردازیم، ابتدا باید مفهوم کلیدها را در SQL درک کنید. یک کلید می‌تواند یک ستون یا ترکیبی از ستون‌ها باشد که ردیف‌ها یا تاپل‌ها (tuples) را به‌طور منحصربه‌فرد در جدول مشخص می‌کند. هم‌چنین به شناسایی اطلاعات تکراری و ایجاد روابط بین جداول مختلف کمک می‌کند.

در ادامه رایج‌ترین نوع کلیدها را معرفی می‌کنیم:

  • کلید اصلی (Primary key) – یک ستون واحد که برای شناسایی منحصر به فرد جدول استفاده می‌شود.
  • کلید ترکیبی (Composite key) – مجموعه‌ای از ستون‌ها که برای شناسایی منحصر به فرد ردیف‌ها در جدول استفاده می‌شود.
  • کلید خارجی (Foreign key) – کلیدی که به کلید اصلی جدول دیگر ارجاع می‌دهد.

انواع فرم‌های نرمال ‌سازی داده‌ها

نرمال ‌سازی داده‌ها را می‌توان به انواع و فرم‌های مختلفی تقسیم کرد. محبوب‌ترین آن‌ها 1NF، 2NF، 3NF و BCNF هستند. پس اجازه دهید با کمک یک مثال تمام این فرم‌های نرمال را بررسی کنیم. فرض کنید یک شرکت دارای دیتابیسی از تمام کارکنان و مهارت‌های کلیدی آن‌ها است که در جدول زیر می‌بینیم:

جنسیتنام کاملآدرسمهارت‌ها
آقایجان دنور (John Denver)12، جاده بیتس برادرز (Bates Brothers)محتوانویسی، بازاریابی شبکه‌های اجتماعی
خانمماری آن (Mary Ann)34، شدومن درایو (Shadowman Drive)یادگیری عمیق، علم داده‌ها
خانمنانسی دریو (Nancy Drew)4، خیابان پلات اول (First Plot Street)DBMS

1NF – اولین فرم نرمال یا First Normal Form

اولین شکل نرمال ‌سازی داده‌‌ها 1NF است که تضمین می‌کند دو ورودی مشابه در یک گروه وجود ندارد. پس برای اینکه یک جدول در اولین شکل نرمال باشد، باید قوانین زیر را رعایت کند:

  • هر سلول یاcell یا باید دارای یک مقدار واحد باشد.
  • هر رکورد باید منحصر به فرد باشد.

بنابراین جدول در 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 – فرم دوم نرمال یا Second Normal Form

در یک جدول 2NF، تمام زیرمجموعه‌های داده‌ای که می‌توانند در ردیف‌های متعدد قرار بگیرند، در جداول جداگانه قرار می‌گیرند. پس برای اینکه یک جدول به صورت فرم نرمال دوم باشد، باید قوانین زیر را رعایت کند:

  • باید در 1F باشد.
  • کلید اصلی نباید از نظر عملکردی به هیچ زیرمجموعه‌ای از کلیدهای کاندید وابسته باشد.

بیایید جدول 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علم داده
3DBMS

 

ما یک ستون جدید به نام  ID کارکنان معرفی کرده‌ایم که کلید اصلی جدول ۱ است. بنابراین رکوردها را می‌توان با استفاده از این کلید اصلی شناسایی کرد.

در جدول ۲،ID  کارمند کلید خارجی محسوب می‌شود.

3NF – سومین فرم نرمال یا Third Normal Form

برای اینکه یک جدول به صورت فرم سوم نرمال باشد، باید قوانین زیر را رعایت کند:

  • باید در 2F باشد.
  • نباید هیچ‌گونه وابستگی عملکردی انتقالی داشته باشد.

یک وابستگی عملکردی انتقالی زمانی است که تغییر در یک ستون (که کلید اصلی نیست) ممکن است باعث تغییر هر یک از ستون‌های دیگر شود.

در مثال ما، اگر تغییر نام (مرد به زن) وجود داشته باشد، ممکن است تغییری در جنسیت (آقا، خانم و غیره) ایجاد شود. از این رو جدول جدیدی را معرفی خواهیم کرد که جنسیت را ذخیره می‌کند.

جدول 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علم داده‌ها
3DBMS

 

جدول 3

ID  جنسیتجنسیت
1آقا
2خانم (Ms.)
3خانم متاهل (Mrs.)

 

حالا، هیچ وابستگی عملکردی انتقالی وجود ندارد و جدول ما در 3F است. ID جنسیت درجدول 3 کلید اصلی است. ID جنسیت در جدول 1 با کلید اصلی جدول 3 خارجی محسوب می‌شود.

BCNF – فرم نرمال بویس و کد یا Boyce and Codd Normal Form

BCNF نسخه بالاتر 3NF است و با نام 3.5NF هم شناخته می‌شود. فرم  BCNF یک جدول 3NF است که دارای چندین کلید کاندید همپوشانی یا اورلپ نیست. پس برای اینکه جدول در BCNF باشد، باید قوانین زیر را رعایت کند:

  • باید در 3F باشد.
  • برای هر وابستگی عملکردی ( X → Y )، X باید یک کلید فوق‌العاده باشد.
مزایای نرمال‌ سازی داده‌ ها
نرمال سازی داده‌ها با مزایای زیادی همراه است.

مزایای نرمال‌ سازی داده‌‌ها

فرآیند نرمال‌سازی پایگاه داده دارای مزایای بی‌شماری است. در ادامه به چند مزیت کلیدی اشاره کرده‌ایم:

  • استفاده از پایگاه داده یا افزونگی داده (data redundancy) از طریق نرمال‌سازی
  • تکرار (Duplication) ممکن است حذف شود.
  • با نرمال‌سازی، ممکن است مقادیر تهی (null) را کاهش دهیم.
  • منجر به یک دیتابیس کوچک‌تر می‌شود (چون داده‌های تکراری کمتر وجود دارد یا صفر است).
  • به حداقل رساندن/اجتناب از مشکلات مربوط به اصلاح داده‌ها (data modification)
  • کوئری‌ها را تسهیل می‌کند.
  • ساختار دیتابیس قابل درک‌تر و ساده‌تر است.
  • داده‌های موجود را می‌توان بدون تأثیرگذاری به دیتابیس اضافه کرد.
  • از آنجایی که جدول فشرده است و ردیف‌های بیشتری می‌توانند در صفحه دیتا قرار بگیرند، ممکن است پیدا کردن، مرتب‌سازی و هم‌چنین نمایه‌سازی (indexing) سریع‌تر شود.

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

معایب نرمال ‌سازی داده‌ها

روند نرمال‌سازی یک دیتابیس دارای معایب متعددی است. پس در ادامه چند مشکل را مرور می‌کنیم:

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

تفاوت بین نرمال‌سازی و غیرنرمال‌سازی

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

متضاد نرمال‌سازی، غیرنرمال‌سازی است که منجر به یک نسخه پر از اطلاعات اضافی از طرح نرمال‌شده خواهد شد. استفاده از افزونگی (redundancy) و حفظ ثبات داده‌های زائد باعث افزایش عملکرد می‌شود. غیرنرمال‌سازی به این دلیل ضروری است که یک ساختار بیش از حد نرمال، موجب سربار پردازنده کوئری می‌شود.

تفاوت بین نرمال‌ سازی داده ها و غیرنرمال‌سازی
نرمال‌ سازی داده ها و غیرنرمال‌سازی متضاد هستند.

تمایزهای مهم میان غیرنرمال‌سازی و نرمال‌سازی عبارتند از:

  1. به منظور حذف افزونگی و بی‌دقتی داده‌ها و اطمینان از یکپارچگی آن‌ها، باید از نرمال‌سازی به عنوان تکنیک جداسازی داده‌ها به جداول متعدد استفاده کرد. اما غیرنرمال‌سازی روشی برای تجمیع اطلاعات در یک جدول واحد برای تسریع در بازیابی داده‌ها به شمار می‌رود.
  2. در یک سیستم OLTP، نرمال‌سازی برای سرعت بخشیدن به درج، حذف و به‌روزرسانی ناهنجاری‌ها کاربرد دارد. در مقابل، سیستم OLAP از غیرنرمال‌سازی استفاده می‌کند که بر تسریع جستجو و تجزیه و تحلیل تمرکز دارد.
  3. در حالی که حفظ یکپارچگی داده‌ها در طول نرمال‌سازی آسان‌تر است، ولی تحقق این هدف در طول غیرنرمال‌سازی دشوارتر خواهد بود.
  4. هنگامی که نرمال‌سازی انجام می‌شود، داده‌های اضافی کاهش می‌یابد و زمانی که غیر نرمال‌سازی اجرا می‌شود، داده‌های اضافی بیش‌تر می‌شود.
  5. جداول و اتصالات در طول نرمال‌سازی اضافه می‌شوند. در مقابل، غیرنرمال‌سازی تعداد جداول و اتصالات را به حداقل می‌رساند
  6. غیر نرمال‌سازی فضای دیسک را هدر می‌دهد، چون داده‌های مشابه در چندین مکان نگهداری می‌شوند. اما یک جدول نرمال فضای دیسک را بهینه می‌کند.

نیاز به نرمال‌ سازی داده ها

نحوه سازماندهی داده‌ها زمانی که در مقادیر زیاد وجود دارد، با افزایش ارزش داده‌ها برای انواع کسب‌وکارها حیاتی‌تر می‌شود. واضح است که وقتی نرمال‌ سازی داده‌ ها با موفقیت انجام شود؛

  • منجر به بهبود عملکرد کلی کسب‌وکار می‌شود.
  • از اطمینان از تحویل ایمیل گرفته تا کاهش شماره گیری‌های اشتباه
  • تقویت تجزیه و تحلیل گروه بدون نگرانی در مورد تکرارها

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

چه کسی به داده‌های نرمال نیاز دارد؟

  • هر کسب‌وکاری که می‌خواهد رشد کند باید به طور منظم نرمال ‌سازی داده‌‌ها را اجرا کند. حذف خطاها یکی از مهم‌ترین کارهایی است که می‌توانید انجام دهید تا تجزیه و تحلیل داده‌ها کمتر پیچیده و زمان‌بر باشد.
  • این مشکلات اغلب هنگام تغییر، افزودن یا حذف اطلاعات سیستم رخ می‌دهد. هنگامی که خطای ورودی داده حذف شود، سازمان دارای یک سیستم خوب در حال اجرا، پر از داده‌های مفید و قابل استفاده است.
  • با نرمال‌سازی، یک شرکت ممکن است داده‌های خود را به حداکثر برساند و در جمع‌آوری داده‌ها در سطح بالاتر و موثرتر شرکت کند. پس در این صورت بررسی داده‌ها برای بهبود عملکرد یک شرکت، به‌ویژه هنگام بررسی متقابل، ساده‌تر می‌شود.
  • علاوه بر افرادی که داده‌ها را از منابع مختلف مانند شبکه‌های اجتماعی، سایت‌های اینترنتی و غیره جمع‌آوری می‌کنند، برای افرادی که مرتباً اطلاعات برنامه‌های نرم‌افزار به عنوان سرویس (SaaS) یا Software-as-a-Service را ترکیب می‌کنند و به آن‌ها دسترسی دارند هم، نرمال‌ سازی داده‌ها به یک ابزار ارزشمند تبدیل می‌شود.
  • در فرآیند ایجاد سیستم‌های هوش مصنوعی، از داده‌ها به یکی از رایج‌ترین و قابل توجه‌ترین روش‌ها استفاده می‌شود. سیستم‌های هوش مصنوعی این دوره، از شبکه‌های عصبی مصنوعی برای تولید خروجی‌شان استفاده می‌کنند. این شبکه‌های عصبی هم مانند مغز انسان از داده‌ها یاد می‌گیرند.
  • کسب‌وکارهایی که از زنجیره تامین (supply chain)، لجستیک (logistics)، اینترنت اشیا (IoT)، اتوماسیون یا خودکارسازی (automation)، تعمیر و نگهداری پیشگیرانه (proactive maintenance)، سیستم‌های موجودی (inventory systems) و سایر راه حل‌ها استفاده می‌کنند، همگی هر روز با داده‌های زیادی سروکار دارند. این شرکت‌ها با استفاده از روش‌های نرمال ‌سازی داده‌‌ها و استانداردسازی داده‌های آن‌ها، سود زیادی خواهند داشت.
فرآیند نرمال ‌سازی داده‌ ها
سازماندهی ستون‌ها، ویژگی‌ها و جداول در طول نرمال‌ سازی داده ها

فرآیند نرمال ‌سازی داده‌ ها

ستون‌ها، ویژگی‌ها و جداول یا روابط یک دیتابیس در طول نرمال‌سازی، مطابق با مجموعه‌ای از قوانین فرم نرمال سازماندهی می‌شوند. این اشکال عادی به عنوان نوعی سیستم کنترل و تعادل (check and balance system) برای حفظ یکپارچگی ارتباطات میان ویژگی‌ها و روابط عمل کرده و روند نرمال‌سازی را هدایت می‌کنند. فرآیند نرمال‌سازی از طریق مجموعه‌ای از دستورالعمل‌ها (به نام «فرم‌های نرمال»)، به دنبال تضمین این است که یکپارچگی دیتابیس بدون توجه به تغییر، افزودن یا از بین رفتن داده‌ها حفظ ‌شود.

فواید نرمال ‌سازی داده‌‌ها برای کسب‌وکارها

همان‌طور که به مرور زمان داده‌ها برای هر نوع کسب‌و‌کاری ارزش بیشتری پیدا می‌کنند، نرمال ‌سازی داده‌‌ها چیزی بیش از سازماندهی مجدد داده‌ها در یک دیتابیس است. بنابراین در ادامه برخی از فواید عمده این فرایند برای کسب‌وکارها را آورده‌ایم:

  • داده‌های اضافی را کاهش می‌دهد.
  • سازگاری داده‌ها را در دیتابیس فراهم می‌کند.
  • طراحی دیتابیس انعطاف‌پذیرتر
  • امنیت بالاتر دیتابیس
  • اجرای بهتر و سریع‌تر
  • سازماندهی بهتر دیتابیس

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

نتیجه‌گیری

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

 

منبع: simplilearn

 

https://pvst.ir/jp1

0 نظر

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

برای بوکمارک این نوشته
Back To Top
جستجو