MIDOONY Logo

مدل سازی ابعادی (بخش اول - نمای کلی و factها) Dimensional Modeling

1400/08/15
مدل سازی ابعادی (بخش اول - نمای کلی و factها)     Dimensional Modeling

#مدل_سازی_ابعادی ( #dimensional_modeling ) هم مانند مدل سازی  ER، روشی برای  #طراحی_منطقی داده ها است. مدل سازی ابعادی برای نرم افزارهای #هوش_کسب_و_کار (BI) و #انبار_داده (DW) بسیار مناسب‌تر است. این روش، #فرایندهای_کسب_و_کار را به تصویر کشیده و  داده های آنها را سازماندهی می کند.
هدف مدل سازی ابعادی فراهم کردن امکان تحلیل ها، پرس و جوها و گزارشگیری های BI است. مدل ابعادی نرمال شده ترکیبی (hybrid dimensional-normalized model) جهت امور یکپارچه سازی (integration)  انبار داده (Data Warehouse) بهترین روش می باشد.
مفاهیم کلیدی مدل سازی ابعادی عبارتند از fact، dimension و  attribute. انواع مختلفی fact، بسته به نحوه ترکیب آنها وجود دارد. Dimensionها سلسله مراتب متفاوتی دارند و دارای ویژگی هایی هستند که چه کسی، چه چیزی، کجا و چرای مدل ابعادی را تعریف می کنند. سطح تفکیک پذیری (granularity)، یکی دیگر از مفاهیم کلیدی مدل سازی ابعادی است که سطح جزئیات را معین می کند.
factها،  dimensionها و attributeها را می توان به روش های مختلفی سازماندهی کرد که شما  (schema) نامیده می شود. نتخاب شما به پارامترهایی مانند نوع گزارشی که مدل باید توید کند و نوع ابزار BI استفاده شده بستگی دارد. 

نمای سطح بالای مدل ابعادی
همانطور که در شکل زیر نشان داده شده است، دو موجودیت کلیدی در مدل ابعادی وجود دارد: factها شامل سنجه ها (measures) و dimensionها شامل موضوع (context). مثال فوق شامل این موارد است:
• جدول Tbl_Fact_Store_Sales در مرکز، fact مدل را بیان می کند.
• چهار جدول پیرامون موضوع فروش، dimensionهای مدل را تعریف می کند:
o    در گوشه بالا سمت راست جدول Tbl_Dim_Item شامل اطلاعات محصولات فروخته شده است
o    در زیر آن جدول Tbl_Dim_Date، شامل اطلاعات تاریخ و زمان فروش محصولات است.
o    در گوشه پایین سمت چپ جدول Tbl_Dim_Customer شامل اطلاعات خریداران محصولات است.
o    در گوشه سمت چپ بالا جدول Tbl_Dim_Buyer شامل اطلاعات فروشندگان است.
 

مثال فوق نشان می‌دهد که وقتی شخصی محصولی را می‌خرد، می‌توان از این مدل برای رصد اطلاعات مربوط به آن در فرایندهای  کسب و کار استفاده کرد.

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

کلیدهای Fact Tables
Fact Tableها دارای دو نوع ستون کلید و سنجه هستند. اولین نوع ستون، کلیدهای خارجی (foreign keys) هستند که به کلیدهای اصلی (primary keys) درdimensional table ها اشاره می کنند تا امکان تحلیل های کسب و کاری را فراهم نمایند. روابط بین Fact Tableها و dimensional table ها طبق مدل سازی ER بصورت یک به چند هستند.
شکل زیر کلیدهای جدول fact فروش (Fact_OnlineSales) را نشان می دهد:
• DateKey — تاریخ و زمان خرید
• StoreKey - فروشگاهی که خرید در آن انجام شده
• ProductKey - محصولی که خریداری شده
• CustomerKey - مشتری که خرید کرده
• PromotionKey — آگهی فروش
• CurrencyKey – واحد پولی مورد استفاده برای خرید
 

کلید اصلی جدول fact معمولاً یک کلید چند بخشی است که از ترکیب کلیدهای خارجی (FK) تشکیل شده و می تواند یک سطر جدول fact را بطور واحد نشان دهد. کلید چند بخشی می تواند زیرمجموعه ای از کلیدهای خارجی باشد مانند آنچه در این مثال است شامل کلیدهای DateKey، StoreKey، ProductKey، و CustomerKey.
اگر ترکیبی از کلیدهای خارجی با خاصیت منحصر به فرد بودن یافت نشود، دو گزینه برای ایجاد کلید اصلی وجود خواهد داشت:
• اول، سیستم های عملیاتی که تراکنش ها یا رویدادهای کسب و کاری را ثبت می کنند برای تکمیل جداول fact معمولاً شناسه های منحصر به فردی مرتبط با آن تراکنش ها ایجاد می کنند. مانند شماره سفارش فروش، شماره فاکتور و شماره پیگیری حمل و نقل. این شناسه ها degenerative dimensions نامیده می شوند. اگر ترکیب این شناسه با زیرمجموعه ای از کلیدهای خارجی منحصر به فرد شود، پس این کلید چند بخشی، کلید اصلی می باشد. شکل زیر این نوع کلید اصلی را که از ترکیب کلیدهای خارجی DateKey، StoreKey، ProductKey و CustomerKey با شناسه SalesOrderNumber ایجاد شده نشان می دهد.
 

• دوم، اگر امکان تعیین منحصر به فرد سطرها با هیچ یک از روش های فوق وجود نداشت، یک کلید اصلی بر مبنای surrogate key ایجاد می شود. surrogate key معمولا توسط سیستم پایگاه داده با استفاده از نوع داده IDENTITY در فرمت عدد صحیح تولید می شود. شکل زیر این روش را نشان می دهد. ستون OnlineSalesKey یک surrogate key است که بعنوان کلید اصلی است. بهترین روش این است که کلیدهای خارجی در جدول fact بصورت index تعریف شوند زیرا این کار سرعت عملکرد پرس و جوها را بهبود می بخشد.
کلیدهای خارجی هرگز نباید خالی باشند. انجام تحلیل ها مستلزم پیوستن جداول dimension مختلف به جدول fact است و جهت حصول نتایج معتبر باید این کلیدها دارای مقدار باشند. هر کلید خارجی به بعد (dimension) متناظر با آن اشاره می کند، که ویژگی های مرتبط با رویداد فروش را بیان می کنند، مانند اینکه مشتری چه کسی است، کجا زندگی می کند، سن او چقدر است.

سنجه های Fact Tables
دومین نوع ستون، سنجه های واقعی فعالیت کسب و کاری مانند میزان درآمد فروش و مقدار سفارش است. هر سنجه دارای جزئیاتی برای سنجش یک رویداد است از قبیل واحد اندازه گیری، واحد پولی، یا مانده حساب روزانه. برای مثال، واحد پولی شامل اجزای آن می باشد. تفکیک پذیری (Granularity) توسط منبع داده مرتبط با آن تعیین می شود.
قسمت مشخص شده با کادر قرمز در شکل زیر چندین سنجه  برای فروش اینترنتی را نشان می دهد، شامل SalesQuantity،
SalesAmount، ReturnAmount، ReturnQuantity، DiscountAmount، DiscountQuantity و TotalCost که به یک مشتری درخصوص محصول خریداری شده در یک زمان خاص اعمال می شوند. تمام این سنجه ها مرتبط با رویداد کسب و کاری فروش و سطح تفکیک پذیری مربوط به آن هستند.
با ایجاد و تعریف ستون‌ها و سنجه ها، اطمینان حاصل می شود که همه سطرها دارای جزئیات واحد و یکنواختی هستند. بعبارت دیگر، آنها باید مرتبط به هم باشند. بعنوان مثال درخصوص خرید یک محصول، باید سنجه های مرتبط با آن خرید خاص وجود داشته باشند تا پرس و جو و گزارش منطقی شود.
بهترین روش برای ذخیره کردن اطلاعات عبارت است از ذخیره جزیی ترین اطلاعات مرتبط به فرایند کسب و کار مد نظر. قبلا انبار داده و هوش کسب و کار از داده های سرجمع استفاده می کردند، بنابراین پرس و جوها و گزارشات، جزییات کمتری داشتند. امروزه، ذخیره کردن جزیی ترین اطلاعات تراکنش ها از سیستم های تراکنشی یا عملیاتی امکان پذیر می باشد. تفکیک پذیری باعث توسعه پذیری شده، داشتن اطلاعات جزیی امکان عملیات تجمیعی و تغییر factها یا سنجه ها را فراهم می نماید.
 

انواع Fact Table
پس از اینکه سنجه ها و سطح تفکیک پذیری آنها در جدول fact تعریف گردید، باید ویژگی های عددی هر نوع سنجه تعیین شود. سه نوع سنجه وجود دارد: افزودنی (additive)، نیمه افزودنی (semiadditive) و غیرافزودنی (nonadditive).

fact افزودنی
ساده ترین fact از لحاظ تعریف و مدیریت می باشد. این سنجه ها می توانند در عملیات تجمیعی (aggregate) برای همه ابعاد استفاده گردند. مانند تعداد اقلام خریداری شده از یک فروشگاه آنلاین. در مثال قبلی سنجه برای عملیات تجمیعی در ابعاد مشتری، فروشگاه، محصول و تاریخ قابل اعمال است.

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

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

#Business_Intelligence

#Data_Warehouse

 

 

 

نرم افزار همسو

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