( تعداد نمایش : 1306 )

تجربه های آقای وکیلی ( قسمت پنجم) – چگونه تحلیل اطلاعات و طراحی کنیم ۳

نرمالایز
تا این مرحله ما یاد گرفتیم که چگونه روند کار سیستم را نشان دهیم و چگونه پایگاههای موجود را از فرمها بصورت خام تهیه کنیم

قبلا گفته شد که می بایستی از پیچیدگی سیستم بکاهیم . این وظیفه را نرمالایز(Data Normalaization) انجام می دهد.
بترتیب قدمهای زیر را انجام دهید

۱) داده های تکراری را از داده های ثابت جدا کنید و در پایگاههای جداگانه بگذارید
مثال از فاکتور خرید زیر می توان ۲ پایگاه را ایجاد کرد.

v3872image001 تجربه های آقای وکيلی ( قسمت پنجم)    چگونه تحليل اطلاعات و طراحي كنيم 3

۲) کلید شناسایی تهیه کنید . تهیه کلید شناسایی رکورد دارای روشهای بسیار متنوعی است که اگر توانستم بعدا در این زمینه توضیحات بیشتری خواهم داد

اما روش کلی برای ساخت کلید را می توان بصورت زیر عنوان نمود : پیدا کردن فیلدیا ترکیبی از فیلدها که در هیچ حالتی نتواند تکرار داشته باشد . بعنوان مثال فیلد نام خریدار نمی تواند کلید باشد اما شماره فاکتور یک پیشنهاد برای کلید پایگاه اول است.و در پایگاه دوم میتوان ردیف را پیشنهاد نمود . اشکالی که در مثال وجود دارداینست که در پایگاه دوم ردیف تکراری خواهد بود برای حذف این تکرار می بایستی ترکیب این فیلد را با شماره فاکتور پایگاه اول در نظر گرفت . بنابر این یک مجموعه Master / Detail خواهیم داشت . شکل زیر این مسئله را روشن می کند/

dsfnkje32image002 تجربه های آقای وکيلی ( قسمت پنجم)    چگونه تحليل اطلاعات و طراحي كنيم 3

۳) داده های قابل استنتاج و غیر کلیدی را حذف کنید ( Calculated Fields)
این گونه داده ها داده هایی هستند که مثلا از جمع مقادیر یک فیلد ، تفاضا ۲ فیلد و یا محاسبه فرمولی یک فیلد دیگر(تاریخ تولد و سن یا تاریخ استخدام و سابقه کاری) بدست می آید .
در مثال فوق مبلغ کل فاکتور در پایگاه اول از این دسته فیلدها است . بنابر این پایگاه را بصوت زیر تکمیل می کنیم.

cdsajk3image003 تجربه های آقای وکيلی ( قسمت پنجم)    چگونه تحليل اطلاعات و طراحي كنيم 3

۴) دادههایی که در چند پایگاه تکرار میشوند را حذف کنید (LookUp Fields)
ممکن است شما برای مشخصات مشتریان خود بخواهید یک پایگاه جداگانه تعریف کنید و یا حتی بخواهید فروشندگان خود را به تفکیک مشخص کنید در این صورت لازم نیست در هر رکورد پایگاه اول تمامی مشخصات انهارا قید کنید ، بلکه کافی است کد مربوطه را به این پایگاه منتقل کنید . شکل زیر تمامی پایگاههای تشکیل شده را نشان میدهد

fdfmk23image004 تجربه های آقای وکيلی ( قسمت پنجم)    چگونه تحليل اطلاعات و طراحي كنيم 3

حال پایگاه شما در حالت کامل نرمالایز قرار دارد
گفتن چند نکته شاید بد نباشد :
۱) بهنگام طی کردن مرحله ۳ می بایستی در مورد فیلدهایی که قابل استنتاج هستند ولی استنتاج انها زمان زیادی می طلبد قدری با احتیاط رفتار کرد . این مساله به نحوه استنتاج شما ارتباط مستقیمی دارد .شاید توضیحات زیر تا حدودی قضیه را روشنتر کند :
• استنتاج زیر ۱۰۰ رکورد با حلقه While را شاید بتوان تحمل کرد، هر چند پیشنهاد نمی شود
• ولی این روش را نمی توان در مورد بالاتر از ان روش درستی نامید . بهتر است با یک دستور SQL این زمان را در مورد تعداد بالاتر کاهش داد .
• اما در برخی موارد دستورات SQL نه تنها در مورد تعداد بالا بلکه در مورد پیچیدگی دستور نیز دچار مشکل و بالطبع زمانبر می شوند در این حالت بهتر است از روشهای بهینه سازی دستورات SQL (تعریف Index ها، تودرتو کردن دستورات و… )استفاده کنید
• اگر با روشها ی فوق به نتیجه نرسیدید و یا علاقه مند به وارد شدن به این مقولات نیستید بهتر است اصلا این فیلد را حذف نکنید
۲) در مورد مرحله ۲ می بایستی تجربه و نگاه خوبی به مساله داشته باشید .
• ممکن است در برخی موارد کلیدی بظاهر یکتا باشدولی بعدا متوجه شوید که یکتا بودن فقط در یک دوره خاص است . این مساله تمامی طراحی های شما را بهم خواهد ریخت .
• ممکن است برخی موارد کلید ها را بیش از پیچیده کنید . مثلا ترکیب چند فیلد برای کلید بودن .این مساله علاوه بر احتمال کاهش سرعت در فیلدهای کلیدی بزرگ باعث خواهد شد که اگر برخی از موارد مورد نیاز شما در حالات خاص وارد نشود شما در تولید کلید دچار مشکل شوید .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن