دربخش دوم آموزش طراحی و پیاده سازی انبارداده سازمانی به چند تعریف و چند نکته کاربردی مهم در طراحی هرچه صحیح تر میپردازم:

Attribute:

در هر Dimension Table برای هر Member یک نام مشخص وجود داشته باشد که به آن Attribute می گوییم.

Groupable:

به مجموعه ای از Attribute ها که از یک Dimaension Tabel  باشند و بتوانند با هم تشکیل یک گروه بدهند گفته میشود. مثل(سال و ماه و روز) یا (سال، فصل ماه، هفته روز).

نکته: این گروه بندی میتواند طبیعی یا غیرطبیعی باشد. به عنوان مثالی از غیر طبیعی ها مثل رنگ ها و سایزها.

Hirarchy:

مجموعه Attribute  های Groupable میتوانند یک Hirarchy بسازند که Measure ها را از بالا به پایین ریز کند. (Slice & Dice | DrillDown )

 

نکته یک:

در هنگام طراحی جداول Dimension بهتر است از یک ستون مجزا و Auto Incriment  استفاده کنیم. ۲ دلیل مهم برای اینکار وجود دارد:

دلیل یک: در گردآوری اطلاعات از بانک های اطلاعاتی مختلف اگر کلید های آنها متفاوت باشند ما دچار مشکل نخواهیم شد و تنها در ETL  یک Mapping نیاز خواهیم داشت.

دلیل دو: برای نگه داشتن تاریخچه تغییرات اطلاعات پایه بسیار مهم است.

مثال: تغییر کد محل زندگی یک شخص در بانک اطلاعات عملیاتی بعد از مدتی یک امر طبیعیست. با این فرض که قبلا این اطلاعات وارد انبار داده ما شده باشد در صورت این تغییر صحیحی نیست که اطلاعات در انبار داده Update  شود بلکه باید کد جدیدی Insert شود. همانطور که میدانید این تفکر در OLTP در حالت طبیعی غلط است ولی در OLAP ته تنها صحیح است بلکه لازم است. باید گفت در مجموع ممکن است تغییر اطلاعات بر مبنای کلید اصلی در جدول Source  ایجاد شود که نباید در جدول Dimension  اعمال شود.

نکته دو:

در Dimension Table  ها عملیات Update  انجام نمیشود بلکه Insert انجام میشود و اطلاعات هر چند تکراری با  ID جدید ایجاد میشوند.(البته برای موارد استثنا باید Tools  های مخصوص و جداگانه برای مرحله ETL ایجاد شود )

نکته سه:

کلیدهای اصلی جداول Dim بهتر است از نوع int  انتخاب شوند. دلیل اصلی این کار کم حجم تر شدن جداول Fact Table  میباشد و افزایش سرعت میباشد.

 

مدل های طراحی انبا داده:

ü       طراحی ستاره ای یا STAR :

 

ü       طراحی دانه برفی یا Snowflake:

 

نکته یک:

بهتر است تا جایی که  ممکن است مدل طراحی ستاره ای باشد. دلیل این توصیه پیش گیری از انفجار اطلاعاتی بواسطه ضرب دکارتی اطلاعات جداول در یکدیگر است.