چرا Data Modeling اهمیت دارد؟
برخورداری از یک دیتا مدل خوب به منظور تحلیل کسب و کار از اهمیت بسیاری برخوردار است. هدف یک پایگاه داده تراکنشی (transactional) با هدف یک پایگاه داده تحلیلی کاملا متفاوت است. اگر به طور مثال، هدف ذخیره ی اطلاعات فروش باشد، نیاز به وجود یک پایگاه داده که برای مقاصد جمع آوری اطلاعات با هدف دقت، صحت و امنیت بهینه سازی شده است، امری ضروری به نظر می رسد، در حالیکه برای تحلیل داده های فروش به یک مدل داده مناسب که برای مقاصد گزارش گیری و تجمیع داده بهینه سازی شده است نیازمندیم. این 2 نیاز کاملا با هم متفاوت هستند و تفاوت آن ها فراتر از مباحث عملکردی (Performance) است.
استفاده از یک مدل نرمال شده (Normalized) که در آن تراکنش های روزانه ذخیره می شوند، برای مقاصد تحلیلی چالش های بسیاری به همراه می آورد. به عبارت دیگر نمی توان برای مقاصد تحلیلی از پایگاه داده نرمال شده ی تراکنشی استفاده نمود. یک دیتا مدل خوب برای مقاصد تحلیلی بسیار ساده تر از یک پایگاه داده ی نرمال شده تراکنشی است.
مدلسازی در اکسل و Power BI
Power BI از تجربه مدل سازی Power Pivot و Tabular Analysis Services استفاده می کند. اگر چه ساده ترین راه حل برای کاربران، واکشی داده به همان صورتی که در مبدا (Data Source) ذخیره شده و برقراری ارتباط و طراحی گزارشات مورد نظر می باشد، اما این رویکرد چالش های بسیاری به همراه دارد. اگر کاربر خوش اقبال باشد و داده را از انبار داده ای با طراحی مناسب که از اصول طراحی استاندارد) مانند مدل طراحی ستاره ای (Star Schema) پیروی می کند، واکشی کند به تغییرات زیادی در مدل سازی خود نیاز نخواهد داشت اما در غیر این صورت با چالش های بسیاری روبرو خواهد بود.
یک سوال بسیار مهم که در ذهن هر کابر هوش تجاری ایجاد می شود این است که یک دیتا مدل (Data Model) خوب برای مقاصد تحلیلی چگونه است؟ در پاسخ باید گفت که یک مدل باید طوری طراحی شود که به سوالات کسب و کار شما پاسخ دهد و اطلاعات حاصل از آن به سادگی داده ها و اطلاعاتی که در جداول پایگاه داده ذخیره می شوند، نباشد. اما اگر بخواهیم یک روش عملی در پاسخ به این سوال ارائه دهیم این است که در طراحی مدل هر موجودیت (Entity) باید یک جدول به خود اختصاص دهد که بهترین روش برای دستیابی به طراحی ستاره ای (Star Schema) است.
Dimension و Fact
مجموعه ویژگی هایی (Attributes) که یک موجودیت را توصیف می کنند باید در قالب یک جدول جمع آوری و به عنوان Dimension معرفی شود و همچنین مجموعه اعداد و ارقامی که یک رویداد(event) را توصیف می کنند در جدولی تحت عنوان جدول Fact ذخیره می شوند.
به طور مثال کالا یک موجودیت از کسب و کار است و باید در قالب یک جدول ذخیره شود. قیمت، رنگ، سایز، گروه کالا، برند و دیگر اطلاعات کالا، ویژگی های (Attributes) کالا محسوب می شوند. لازم نیست تعداد زیادی جدول برای گروه کالا، برند یا اطلاعات دیگر کالا در نظر گرفته شود. همه ی این ویژگی ها باید تحت یک جدول واحد به عنوان کالا ذخیره و نگهداری شوند.
مشتری یک جدول را به خود اختصاص می دهد چرا که یکی از موجودیت های کسب و کار به شمار می رود. کشور، آدرس، شهر همگی ویژگی های مشتری به شمار می روند که باید در همان جدول مشتری ذخیره شوند. به هیچ وجه نباید جداول جداگانه برای شهر، کشور و ویژگی های دیگر یک مشتری در نظر گرفت مگر اینکه تشخیص دهیم به طور مثال کشور یک موجودیت از کسب و کار ما است. به طور مثال اگر تحلیل های دموگرافیک انجام می دهیم کشور یک موجودیت از کسب و کار ما به شمار می رود و اختصاص جدول جدا به آن منطقی به نظر می رسد.
فاکتور یک موجودیت است و یک جدول به خود اختصاص می دهد. تمام اطلاعاتی مانند تعداد فروش در هر فاکتور، تاریخ فاکتور، هزینه حمل و دیگر اطلاعاتی که یک رویداد فروش را شرح می دهند در یک جدول تحت عنوان Fact ذخیره می شوند.
در حقیقت مدل نهایی مجموعه ای از رویداد هایی که در قالب یک جدول Fact و جداول Dimension که آن رویداد را توصیف می کنند گردآوری می شوند. به طور مثال رویداد فروش شامل یک جدول فروش تحت عنوان Fact Sales (فکت فروش) و توصیف کننده های آن شامل مشتری، کارمند، کالا و زمان در جداول Dimension ذخیره می شوند.
[مطلب مدلسازی داده در اکسل را مطالعه کنید.]
همان طور که در تصویر زیر مشاهده می کنید، جداول به صورت Star مدل (Star Schema) شده اند. مدل ستاره ای مدلی است که در آن جدول Fact در وسط قرار گرفته و Dimension ها آن را احاطه می کنند. در این نوع از مدل سازی که بسیار قابل فهم و دارای عملکرد بسیار خوب است، Dimension ها با یکدیگر ارتباط ندارند. یک مثال از این نوع مدل سازی (Data Modeling) در تصویر زیر قابل مشاهده است.
با مدل کردن داده به صورت مناسب و بهینه و پیروی از اصول طراحی استاندارد و استفاده از زبان قدرتمند DAX می توانیم به راه حل های بهتر، سریع تر و آسان تری دست یابیم.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقیمطالب زیر را حتما بخوانید
-
نمونه پروژه داده های اقتصادی با Power BI
429 بازدید
-
نمونه پروژه قند مواد غذایی با Power BI
542 بازدید
-
اولین مسابقه طراحی داشبورد با Power BI
1.04k بازدید
-
همه چیز در باره اسلایسر Slicer در Power BI
606 بازدید
-
دوره رایگان آموزش Power BI پاوربی آی
2.12k بازدید
-
پروژه مدیریت مواد اولیه و تولید با Power BI
5.73k بازدید
سلام
دست شما درد نکنه مطالب خوب و آموزنده ای بود استفاده کردیم.
خواهش می کنم …ممنون از لطف شما
اطلاعات مفیدی بود. ممنون
[…] چرا مدل سازی داده… پیش به سوی مدل ستاره ای مدل سازی داده: آماده سازی داده در Power BI […]
[…] مدل سازی داده […]
خیلی مفید بود ممنون