در این مقاله در مورد نرمال سازی پایگاه داده می خوانید و و با نیازهای کاربر در نرمال سازی در پایگاه داده آشنا می شوید.
نرمال سازی پایگاه داده چیست؟
نرمال سازی فرآنید و یا تیکنیکی است در طراحی یا طراحی مجدد یک پایگاه داده، جهت بهینه سازی و حذف افزونگی داده ها و تضمین این امر در فرم های مختلف نرمال سازی.
پایگاه داده ای که نرمال سازی نشده است، ممکن است شامل داده ای باشد که بدون دلیل خاصی در جداول بانک اطلاعاتی آن به صورت تکراری موجود و ذخیره سازی شده است، که این امر میتواند بانک اطلاعاتی را در مواردی چون : مصرف حافظه بانک اطلاعاتی، سرعت اجرای پرس و جو ها، بازدهی بروزرسانی پایگاه داده و مهم تر از همه تمامیت و درستی داده ها را دچار مشکل سازد.
بانک اطلاعاتی قبل از نرمال سازی متشکل از واحد های غیر منطقی و جداول مدیریت نشده ای است که در اصطلاح آن را پایگاه داده خام می نامند.
طراحی منطقی
هر پایگاه داده باید طبق مدلی منطقی بر اساس ساختاری گروهی از داده ها و اشیاء پایگاه داده که بتوان به آسانی آنها را مدیریت کرد، طراحی گردد.
طراحی منطقی پایگاه داده باید از تکرار داده ها در حد امکان جلوگیری بعمل آورد و یا به طور کلی این عامل را از ببین ببرد و در انتها در فرم های منطقی و نرمال این طراحی ارائه شود.
طراحی و نرمال سازی بر اساس نیاز های کاربر
فراموش نکنید که نیاز های کاربر باید همواره محور اصلی طراحی یک پایگاه داده واقع شود و نباید این نکته را نیز فراموش کرد که کاربر پایگاه داده بیشترین استفاده را از این سیستم داراست پس باید در نهایت در رابط کاربری برای وی بیشترین سادگی و راحتی فراهم و مهیا شود و این امر تحقق نخواهد یافت مگر آنکه در کنار طراحی نرمال سازی و بهینه شده ، نیاز های کاربر مورد بررسی قرار گرفته باشند.(در زیر برخی از نیاز های کاربر که باید در نظر گرفته شوند به اختصار بیان شده است)
- چه داده هایی باید در جهت نیاز های کاربر در بانک اطلاعاتی ذخیره گردند؟
- چگونه کاربر به بانک اطلاعاتی دسترسی دارد؟
- چه دسترسی هایی کاربر نیاز دارد؟
- چگونه داده های را در پایگاه داده باید گروه بندی کرد؟
- چه داده ای بیشتر مورد دسترسی قرار میگیرد؟
- نحوه ارتباط داده ها در بانک اطلاعاتی چگونه است؟
- چه محاسباتی جهت ارائه دقیق داده باید انجام گیرد؟
افزونگی داده ها
افزونگی داده های مبحثی است که نباید در طراحی پایگاه داده ها به چشم بخورد ، این بدان معناست که تشابه داده ای باید تا حد امکان کاهش پیدا نماید. برای مثال لازم نیست که آدرس یک کارمند در بیش از چند جدول بانک اطلاعاتی ذخیره گردد ، با داشتن این داده های مشابه ، فضای مصرفی توسط پایگاه داده بیشتر مصرف خواهد شد.
فرم های نرمال
در بحث نرمال سازی ، محاسبه سطوح نرمال سازی با فرم های نرمال بیان می شود . در زیر میتوان انواع متداول فرم های نرمال را به شرح ذیل بیان نمود:
- فرم نرمال اول ۱NF
- فرم نرمال دوم ۲NF
- فرم نرمال سوم ۳NF
فرم نرمال اول
در فرم نرمال اول هدف ، سازمان دهی داده در فرم منطقی از جداول است ، که هر یک از جداول توسط یک کلید اصلی اختصاص داده شده مشخص می شوند.(در شکل زیر میتوان پایگاه داده خام موجود در شکل قبل را به صورت فرم نرمال اول مشاهده نمود).
در شکل بالا مشاهده می نمایید که برای بدست آوردن فرم نرمال اولیه ، داده ها باید به به واحد های منطقی مرتبطی شکسته شوند و هر یک دارای یک کلید اصلی بوده که مشخص مینماید که هیچ گروه تکراری در جداول موجود نمی باشد.(کلید های اصلی در جدول بالا : EMP_ID, CUST_ID, and PROD_ID )
فرم نرمال دوم
در فرم نرمال دوم هدف ، سازمان دهی داده ها در جداول دیگر است که معمولا این داده ها وابستگی کمتری به کلید اصلی دارند.(همانند شکل زیر که فرم نرمال دوم شکل قبل می باشد)
همانطور که مشاهده مینمایید فرم نرمال دوم از فرم نرمال اول در دو جدول مشتق شده است. فیلد EMP_ID در جدول مربوط وابستگی کمتری به کلید اصلی داشته و به عنوان کلید اصلی(primary key) دو جدول جدید (EMPLOYEE_TBL ، EMPLOYEE_PAY_TBL )در فرم نرمال دوم تعریف میگردد.همچنین فیلد CUSTOMER_TBL در جدول دیگر همانند فیلد قبلی وابستگی کمتری به کلید اصلی داشته و به عنوان کلید اصلی دو جدول دیگر (CUSTOMER_TBL، ORDERS_TBL)در فرم نرمال دوم تعریف خواهد شد.
فرم نرمال سوم
در فرم نرمال سوم هدف حذف و یا سازماندهی داده هایی است که معمولا این داده ها وابستگی کمتری به کلید اصلی دارند.(همانند شکل زیر که فرم نرمال سوم شکل قبل می باشد)
همانطور که در شکل بالا مشاهده می نمایید جدول EMPLOYEE_PAY_TBL به دو جدول دیگر که یکی شامل مشخصات خرید و دیگر توضیحات تکمیلی که نیازی نیست در جدول مذکور قرار بگیرند . فیلد (ThePOSITION_DESC کاملا مستقل از کلید اصلی EMP_ID است)
فواید نرمال سازی
فرآیند نرمال سازی فواید بسیاری را برای پایگاه داده در بر خواهد داشت که از جمله این فواید میتوان موارد زیر را نام برد:
- سازمان دهی یکپارچه بانک اطلاعاتی
- سازگاری داده در پایگاه داده
- طراحی منعطف تر پایگاه داده
- مدیریت بهتر پایگاه داده از لحاظ امنیتی
سازمان دهی و بهینه سازی پایگاه داده توسط فرآیند نرمال سازی صورت میگیرد و از کاربری که به جداول اطلاعاتی پایگاه داده دسترسی دارد (مدیر پایگاه داده) تا کاربر عادی در این سازمان دهی سهیم خواهند بود.
افزونگی داده ها و بدنبال آن مقدار فضای حافظه اختصاص یافته به علت کاهش یا حذف داده های تکراری به شدت کاهش پیدا خواهد کرد. طراحی منعطف پذیر تری در اختیار خواهید داشت چون همواره ویرایش یک جدول کوچک سازمان یافته و بهینه شده از ویرایش یک جدول بزرگ با پیچیدگی داده های بیشمار راحت تر خواهد بود. در آخر شما برای دسترسی به پایگاه داده امنیت خواهید داشت چون مدیر پایگاه داده میتواند سطوح دسترسی مختلفی را به جداول محدود شده تعریف نماید .
فرآیند Denormalization چیست؟
در سطوح بالای نرمال سازی، گاهی کاهش افزونگی داده ها معایبی را نیز به دنبال خواهند داشت. مثلا فرآیند نرمال سازی باعث کاهش زمان پاسخگویی می شود و یا در پرس و جو های مختلف اغلب باید همه ی جداول بوجود آمده در فرم نرمال با یکدیگر الحاق شوند تا پرس و جو صورت گیرد، که زمان زیادی را سپری خواهد کرد و در سرویس های پایگاه داده وب که زمان پاسخ گویی از فاکتور های مهم است، اصلا مناسب نیست. در این نوع پایگاه داده ها که در آنها افزونگی داده اهمیت چندانی ندارد میتوان سطح نرمال سازی را کاهش داد که این فرآیند را Denormalization گویند.