نرمال سازی داده (بخش اول - تعریف ساده نرمال سازی Normalization، آشنایی با مفاهیم موجودیت و ویژگی)

1400/01/31

#نرمال_سازی
اولین قدم در #طراحی_پایگاه_داده، این است که برای شناسایی نیازهای داده ای کاربران چه اقدامی باید انجام گیرد. اینکار به نظر ساده می آید ولی اینگونه نیست زیرا کاربران، یعنی افرادی که سیستم برای آنها ساخته می شود، بندرت می توانند آنچه را که لازم دارند بصورت شفاف بیان نمایند. درست است که معمولا از سیستم موجود کاملاً آگاهی دارند، می دانند چه داده هایی وجود دارند و برنامه ها چگونه کار می کنند. ولی، آنچه بندرت انجام می شود تطبیق نیازها با سیستم آینده است. 
 آگاهی پردازش کنندگان داده بینش بهتری درخصوص نحوه عملکرد سیستم نسبت به کاربران دارند که باعث تفکر خلاق در تعیین نیازهای سیستم جدید می گردد. همچنین، تیم طراحی سیستم، متشکل از کاربران، تحلیلگران، برنامه نویسان، و راهبران پایگاه داده، نمی توانند بطور موثر با هم در ارتباط باشند.
فرایندی بنام نرمال سازی ( #normalization ) می تواند این مشکلات را حل کند. با استفاده از این روش، کاربران بدون استفاده از واژه ها و اصطلاحات رایج در بحث داده، نیازهای خود را بیان می کنند.
پردازش کنندگان و راهبران داده در بحث ها شرکت می کنند و ضمن ثبت نیازهای داده ای به عنوان مشاور در تجزیه و تحلیل ها عمل نموده و بینش خود را در مورد تشکیل سیستم جدید ارائه می نمایند.وقتی تمام نیاز های داده ای شناسایی شد، تیم فنی در مورد جزئیات طراحی فیزیکی رضایتبخش پایگاه داده تصمیم گیری می کند.
هرچند در شروع، تعاریف و مفاهیم  پایه زیادی لازم نیست با اینحال درک و بکارگیری این روش تجزیه و تحلیل برای کاربران نهایی آسان نخواهد بود ولی با آشنایی و هدایت مناسب، کاربران می توانند  به عنوان اعضای تیم طراحی به طور کامل مشارکت نمایند. وجود آنها برای این فرایند آنقدر مهم است که بسیاری از شرکت ها، جهت تبدیل نیازها به موجودیت ها و ویژگی ها، برای تیم فنی، مشاغل تمام وقت کاربری با عنوان تحلیلگر داده یا تحلیلگر پایگاه داده ایجاد نموده اند.
#موجودیت ( #entity ) عبارتست از مجموعه ای از عناصر داده ای که می تواند به صورت یک جدول پیاده سازی شود (هنگام  استفاده از یک سیستم مدیریت پایگاه داده رابطه ای) یا بصورت یک فایل (در یک سیستم فایلی). بطور مشابه، #ویژگی_ها ( #attributes ) اشاره می کنند به ستون ها در جدول (هنگام استفاده از #سیستم_مدیریت_پایگاه_داده_رابطه_ای )، یا فیلدهای درون یک ردیف هنگام استفاده از سیستم فایلی. بطور کلی در مرحله طراحی برای اجتناب از مواجهه با اصطلاحات مربوط به پیاده سازی فیزیکی، از عنوان موجودیت و ویژگی برای عناصر داده ای ( #data_elements ) استفاده می شود.  
در این فرایند، ابتدا جهت تجزیه و تحلیل عناصر داده ای مورد نیاز، یک مدل داده نرمال شده ایجاد می گردد، سپس نحوه کاربرد داده تجزیه و تحلیل شده و در نهایت تصمیمات طراحی فیزیکی جهت حصول نتیجه ای که نیازهای داده ای کاربر را در حد قابل قبول و در زمان مناسب برآورده سازد بیان می گردد. 
اما این روش چه تفاوتی با سایر روش ها دارد؟ نکته اصلی در ارتباطات است. کاربران می توانند، برای اولین بار، روی چیزهایی که می دانند و می فهمند تمرکز کنند و بدون استفاده از اصطلاحات فنی، اطلاعاتی که برای انجام کارشان لازم دارند را توصیف نمایند.
پردازش کنندگان داده هم از شنیدن شرح نیازهای داده ای کاربر با زبان نرمال سازی منتفع می گردند. در مرحله بعد در طراحی، این نیازهای داده ای توسط تیم فنی به لیستی از عناصر داده ای مورد نیاز هر فرایند یا برنامه تبدیل خواهند شد.
این روش غالباً به عنوان #مدل_سازی_موجودیتی یا #مدل_سازی_رابطه_ای (entity/relationship modeling) بیان می شود.

زبان نرمال سازی
برای بررسی داده ها و نیازهای داده ه ای کاربر، ابتدا باید اصطلاحات موجودیت و ویژگی را تعریف نماییم.
• موجودیت چیزی است که اطلاعات پیرامون آن باید دانسته می شود و چیزهای مورد علاقه کاربر را توصیف یا نشان می دهد. مانند شخص، مکان یا چیز دیگری. نمونه هایی از موجودیت عبارتند از کارمند، حقوق و دستمزد و دپارتمان.
• یک ویژگی، اطلاعاتی در مورد جزئیات موجودیت ارائه می کند و به شناسایی، توصیف و شفاف سازی موجودیت از طریق ارائه مقادیر کمی برای مشخصات، کمک می کند. مثلا برای موجودیت کارمند، ویژگی های مناسب عبارتند از : نام، آدرس، شماره تأمین اجتماعی و شماره تلفن منزل. هر یک از ویژگی ها با ارائه اطلاعات جزیی درباره آن شخص، کارمند را توصیف می کند. مانند : 

نام : جان اسمیت
آدرس : 2505 Hillcrest Drive
شماره تامین اجتماعی : SSN 111-22-3333
شماره تلفن منزل : 757-345-1234
کسانی که سابقه پردازش داده دارند احتمالاً اصطلاحات موجودیت و ویژگی را به ترتیب با اصطلاحات رکورد و فیلد قیاس می کنند و این دقیقا درست است یا حداقل نحوه پیاده سازی آنها اینگونه است. اختلاف اینجاست که موجودیت ها درنهایت از نظر ساختاری نمایانگر رکورد و محتوا می باشند اما این به معنی تصمیم گیری جهت طراحی فیزیکی آنها نیست. تصمیم گیری برای طراحی فیزیکی پس از شناسایی تمام نیازهای داده ای و تجزیه و تحلیل آنها برای تأمین نیازهای کاربر انجام می شود.
اصطلاحات موجودیت و ویژگی بر اطلاعات مورد نیاز کاربر تمرکز دارد شامل جزئیاتی که برای تجزیه و تحلیل لازم است. همزمان این اصطلاحات به تیم فنی برای حرکت به سمت طراحی فیزیکی کمک می نماید.
نرمال سازی چیست؟ فعلا می گوییم تکنیکی برای بررسی لیست موجودیت ها و ویژگی ها جهت اطمینان از قرار گرفتن ویژگی ها در مکان مناسب. تعریف جامع تر بعداً بیان خواهد شد. برای مثال، یک موجودیت کارمند باید فقط شامل ویژگی هایی باشد که اطلاعاتی پیرامون کارمند اشاره نمایند. اگر بطور تصادفی یا حین بررسی، متوجه شدید یک ویژگی به اشتباه به کارمند نسبت داده شده است، فرایند نرمال سازی شما را قادر می سازد خطا را شناسایی و اصلاح کنید.
از بسیاری جهات، نرمال سازی انجام عاقلانه کار است. نتیجه نهایی تجزیه و تحلیل نشان دهنده همان چیزی است که تحلیلگران منطقی طی سالها استفاده نموده اند. این رویکرد مجموعه ای از قوانین رسمی برای نظارت و جلوگیری از اشتباه ارائه می نماید. 

 

#Databases

 

1 261
دیدگاه کاربران
0 دیدگاه
شما هم دیدگاه خود را ارسال کنید