
در اینجا ما با وبلاگ دیگری از مهندسین IT Dev برمی گردیم تا به شما کمک کنیم زندگی توسعه خود را آسان تر کنید. این وبلاگ انواع طرحوارههای انبار دادهای که امروزه مورد استفاده قرار میگیرد، از جمله طرحواره ستارهای و Snowflake Skema و تفاوتهای بین آنها را بررسی میکند. ما همچنین همین موضوع را برای Galaxy Schema پوشش خواهیم داد و در مورد نحوه استفاده از این طرح ها برای ساختار انبارهای داده بحث خواهیم کرد.
طرح انبار داده
در انبارهای داده، طرح واره تعریفی است از نحوه سازماندهی سیستم با تمام اشیاء پایگاه داده و ارتباط منطقی آنها. این شامل فرمت های داده مانند جداول واقعیت و جداول ابعاد است. در انبار داده ها، انواع طرح های زیر به طور گسترده مورد استفاده قرار می گیرند:
- طرح ستاره
- طرح دانه های برف
- طرح کهکشانی
- طرح خوشه ستاره ای
# 1. طرح ستاره
Star Schema ساده ترین و کارآمدترین نوع طرح در دسته ذخیره سازی است. این شامل یک جدول واقعیت است که توسط جداول چند بعدی به شکل ستاره ای احاطه شده است. جدول حقایق دارای روابط یک به چند با تمام جداول ابعاد است و هر یک از سطرهای آن نیز با یک سطر مربوطه در جدول ابعاد مرتبط است.
به همین دلیل، هنگام جستجوی داده های ذخیره شده، پیمایش بین جداول آسان می شود. این همچنین درک ساختار ذخیره داده های شما را برای کاربر نهایی آسان تر می کند، به همین دلیل است که مدل Star Schema در بین ابزارهای هوش تجاری بسیار رایج است. در طول فرآیند طراحی، جداول ابعاد غیرعادی میشوند تا از ویژگیهای مختلف آنها برای ذخیره دادههای متنی برای همه انواع تحلیل و گزارش استفاده شود.
مزایای طرح ستاره
- پرس و جوهای Star Schema از دستورات اتصال ساده در حین بازیابی داده ها استفاده می کنند که عملکرد پرس و جو را افزایش می دهد.
- Star Schema بازیابی داده ها را در هر زمان برای اهداف گزارش آسان می کند.
معایب طرح ستاره
- در صورت نیاز به تغییرات در مدل موجود، اصلاح و استفاده مجدد از آن توصیه نمی شود و در نتیجه عمر طولانی آن کاهش می یابد.
- پشتیبان گیری داده ها به طور قابل توجهی افزایش یافته است زیرا هیچ سلسله مراتبی در جداول وجود ندارد.
در زیر نمونه ای از طرح ستاره ای آورده شده است.

استعلام طرح ستاره
برای درخواست با مدل دادههای Star Schema، کاربر نهایی باید با استفاده از ابزارهای Business Intelligence گزارشی را درخواست کند. سپس تمامی این درخواستها با ایجاد زنجیرهای از درخواستهای «SELECT» در سیستم داخلی پردازش میشوند. این پرس و جوها با عملکرد خود بر زمان اجرا تأثیر خواهند گذاشت.
به عنوان مثال، اگر کسب و کار شما نیاز دارد که بداند در ژانویه 2022 چه تعداد کتاب در ماهاراشترا فروخته شده است، می توانید پرس و جوی زیر را برای جداول Star Schema Model خود اجرا کنید:
SELECT pdim.Name Product_Name, Sum (sfact.sales_units) Quanity_Sold FROM Product pdim, Sales sfact, Store sdim, Date ddim WHERE sfact.product_id = pdim.product_id AND sfact.store_id = sdim.store_id AND sfact.date_id = ddim.date_id AND sdim.state="Maharashtra" AND ddim.month = 1 AND ddim.year = 2022 AND pdim.Name in (‘Books’) GROUP BY pdim.Name
نتایج:
نام محصول | کیفیت_فروش |
کتاب ها | 12702 امین رایج ترین |
امیدواریم این مثال درک فرآیند درخواست در Star Schema را آسانتر کرده باشد.
# 2. طرح دانه های برف
طرح دانه های برف با استفاده از Star Schema به عنوان ورودی طراحی شده است. این امر لایه برداری برف را به یک فرآیند مهم تبدیل می کند که نمودار اندازه مدل Star Schema را به طور کامل عادی می کند.
این مدل شبیه دانههای برف به نظر میرسد، با جدول حقایق در مرکز و احاطه شده توسط سلسله مراتب جداول اندازه. هر ردیف از جدول واقعیت به دلیل ارجاع به کلید خارجی به چندین ردیف مربوطه در جداول ابعاد مرتبط است.
در طول فرآیند طراحی Snowflake، جداول ابعاد نرمال می شوند و کلیدهای خارجی به هر سطح اضافه می شود تا ویژگی والد را مرتبط کند. پیچیدگی این طرح به طور مستقیم با سلسله مراتب جداول اندازه متناسب است و این بر عملکرد پرس و جو تأثیر می گذارد.
مزایای طرح برف ریزه:
- به دلیل ساختار سلسله مراتبی، افزونگی داده ها هنگام ایجاد جداول ابعاد جدید حذف می شود.
- طرح Snowflake تمایل به استفاده از فضای ذخیره سازی کمتری نسبت به Star Schema دارد.
- به روز رسانی طرح دانه برف در طولانی مدت بسیار آسان است و این باعث افزایش عمر کلی آن می شود.
معایب طرح برف ریزه:
- به دلیل جداول اندازه نرمال شده، سیستم ETL باید تعداد جداول را بارگیری کند.
- با توجه به عادی سازی جداول اندازه، سیستم ETL باید تعداد جداول را بارگذاری کند.
- به دلیل تعداد زیاد جداول اضافه شده، ممکن است اغلب نیاز به استفاده از اتصالات پیچیده در هنگام اجرای پرس و جو داشته باشید. این باعث کاهش عملکرد برنامه در طرح دانه های برف می شود.
در زیر نمونه ای از طرح دانه های برف آورده شده است.

جداول اندازه در نمودار دانه های برف در بالا به شرح زیر نرمال می شوند:
- بعد تاریخ به سه ماهه، ماهانه و هفتگی عادی می شود و کلیدهای خارجی در جدول تاریخ باقی می مانند.
- بعد فروشگاه نرمال شده است تا جدول وضعیت را نیز شامل شود.
- ابعاد محصول در برند نرمال شده است.
- در بعد Client، ویژگیهای مربوط به شهر به جدول City جدید منتقل میشوند و شناسه کلید خارجی در جدول Client باقی میماند.
به همین ترتیب، یک بعد می تواند چندین سطح از سلسله مراتب را پشتیبانی کند.
سطوح مختلف سلسله مراتب در نمودار بالا را می توان به صورت زیر نشان داد:
- شناسه سه ماهه، شناسه ماهانه و شناسه هفتگی به عنوان کلیدهای جانشینی استفاده می شوند که برای سلسله مراتب بعد تاریخ ایجاد می شوند و به عنوان کلیدهای خارجی به جدول ابعاد تاریخ اضافه می شوند.
- شناسه وضعیت، کلید جایگزین جدیدی است که برای سلسله مراتب بعد فروشگاه ایجاد شده و به عنوان یک کلید خارجی به جدول ابعاد فروشگاه اضافه شده است.
- شناسه برند، کلید جایگزین جدیدی است که برای سلسله مراتب ابعاد محصول ایجاد شده و به عنوان یک کلید خارجی به جدول ابعاد محصول اضافه شده است.
- شناسه شهر کلید جانشین جدیدی است که برای سلسله مراتب بعد مشتری ایجاد شده و به عنوان یک کلید خارجی به جدول ابعاد مشتری اضافه شده است.
درخواست طرح برف ریزه
برای ایجاد یک پرس و جو، باید گزارش های کاربر نهایی مشابهی را تولید کنیم، همانطور که در ساختارهای نمودار ستاره نشان داده شده است. با این حال، پرس و جوها در مورد طرح دانه های برف کمی پیچیده تر می شوند.
در مثال مدل طرح دانه برف در بالا، همان پرس و جوی را ایجاد می کنیم که در مثال پرس و جو نمودار ستاره طراحی شده بود. بنابراین، اگر کسبوکار میخواهد بداند در ژانویه 2022 چند کتاب در ایالت ماهاراشترا فروخته شده است، میتوانید درخواست زیر را برای جداول مدل طرحواره دانههای برف برآورده کنید:
SELECT pdim.Name Product_Name, Sum (sfact.sales_units) Quanity_Sold FROM Sales sfact INNER JOIN Product pdim ON sfact.product_id = pdim.product_id INNER JOIN Store sdim ON sfact.store_id = sdim.store_id INNER JOIN State stdim ON sdim.state_id = stdim.state_id INNER JOIN Date ddim ON sfact.date_id = ddim.date_id INNER JOIN Month mdim ON ddim.month_id = mdim.month_id WHERE stdim.state="Maharashtra" AND mdim.month = 1 AND ddim.year = 2022 AND pdim.Name in (‘Books’) GROUP BY pdim.Name
نتایج:
نام محصول | مقدار_فروخته شده |
کتاب ها | 12702 امین رایج ترین |
نکاتی که باید هنگام جستجو در جدول نمودار ستاره / یا دانه برف در نظر داشته باشید
با نکات زیر می توان اپلیکیشنی برای مدل طرح دانه های برف طراحی کرد:
بند انتخاب:
- عبارت SELECT ویژگی هایی را که در نتایج پرس و جو ظاهر می شوند را تعریف می کند.
- دستور SELECT از گروه های مختلف برای یافتن مقادیر جمع استفاده می کند. بنابراین باید از بند GROUP BY در عبارت WHERE استفاده کنید.
بند FROM:
- جداول حقایق اصلی و جداول ابعاد باید با توجه به زمینه بند FROM انتخاب شوند.
بند جایی که:
- بند WHERE ویژگی های مناسب ابعاد را با پیوند دادن آنها به ویژگی های جدول واقعیت تعریف می کند. کلیدهای جانشین در جدول ابعاد با استفاده از کلیدهای خارجی مربوطه در جداول واقعیت جمعآوری میشوند تا محدوده دادههای مورد بررسی را ثابت کنند. برای این کار می توانید به مثال بالا از فرآیند اپلیکیشن Star Schema مراجعه کنید. همچنین میتوانید در صورت داشتن اتصالات داخلی یا خارجی، دادههای موجود در بند را پر کنید، مانند مثال با طرح برفریزه.
- ویژگیهای ابعاد نیز به عنوان محدودیتهای داده در عبارت Where نامیده میشوند.
- با فیلتر کردن داده ها با تمام مراحل بالا، داده های گزارش مناسب را برمی گردانید.
بسته به نیاز کسب و کارتان، میتوانید حقایق، ابعاد، ویژگیها و محدودیتهای مختلف را با ساختاری که در بالا ذکر شد به سیستم برنامه کاربردی Star Schema یا Snowflake Schema اضافه یا حذف کنید. این همچنین به شما امکان می دهد تا پرس و جوهای فرعی را اضافه کنید یا پرس و جوهای مختلف و نتایج آنها را برای تولید داده برای گزارش های پیچیده ترکیب کنید.
# 3. طرح کهکشانی
طرحواره کهکشان یا طرح صورت فلکی واقعیت یک قالب انباری است که در آن جداول واقعیت های مختلف می توانند جداول ابعاد را با یکدیگر به اشتراک بگذارند. این طرح در نهایت شبیه یک کهکشان است که تمام جداول آن ستاره ها را نشان می دهد.
ردیف های مشترک جداول ابعاد در این مدل طرحواره، ابعاد سازگار نامیده می شوند.
طرح کهکشان برای به دست آوردن الزامات پیچیده برای جداول واقعیت جمعی استفاده می شود، که بسیار پیچیده تر هستند تا توسط مدل های Star Schema یا Snowflake Schema پشتیبانی شوند. سطح پیچیدگی بالاتر در این مدل نگهداری آن را دشوارتر از بقیه می کند.
در زیر نمونه ای از طرحواره کهکشان آورده شده است.

# 4. طرح خوشه ستاره ای
گاهی اوقات ممکن است در نهایت یک طرح برف ریزه ایجاد کنید که جداول ابعاد زیادی دارد که ممکن است در طول فرآیند پرس و جو نیاز به اتصالات پیچیده تری داشته باشد. از سوی دیگر، طرح ستاره ای با ابعاد کمتر پیچیده تر خواهد بود، اما بیشتر مستعد ابتلا به داده های اضافی است. در نتیجه، یک طرح خوشه ستاره ای با ترکیب این دو در یک ایجاد می شود.
مدل Star Schema اساس طرح خوشه ستاره ای را تشکیل می دهد و جداول ابعاد اصلی آن دانه های برف هستند که ساختار پایدارتری را با مزایای هر دو تشکیل می دهد.
در زیر نمونه ای از طرح خوشه ستاره ای آورده شده است.

کدام یک طرح دانه برف بهتر است یا یک طرح ستاره؟
پلتفرم های ذخیره سازی و ابزارهای هوش تجاری مورد استفاده در سیستم DW شما در نهایت نقشی حیاتی در تصمیم گیری برای طراحی ایفا می کنند. در نتیجه، روشهای Star و Snowflake Schema بیشترین استفاده را در فرآیند ذخیرهسازی دادهها دارند.
اگر ابزارهای هوش تجاری به کاربران اجازه دهند با استفاده از پرس و جوهای ساده با ساختارهای جدول تعامل داشته باشند، روش Star Schema ترجیح داده می شود. با این حال، اگر ابزارهای BI برای کاربران تجاری پیچیدهتر باشد، مدل طرحواره برفریزه ترجیح داده میشود.
بسته به اینکه میخواهید با طرح برفریزه فضای ذخیرهسازی را ذخیره کنید یا با Star Schema یک پرسوجو آسانتر ارائه کنید، میتوانید از هر مدل طرحی استفاده کنید.
تفاوت بین طرح ستاره و طرح دانه برف
در زیر تفاوت های اصلی بین طرح ستاره و طرح دانه برف آورده شده است.
شماره S | طرح ستاره | طرح دانه های برف |
1 | پشتیبان گیری اطلاعات بیشتر است | پشتیبان گیری از داده ها کمتر است |
2 | فضای قوی برای نمودار اندازه بیشتر است | فضای قوی برای نمودار اندازه نسبتا کمتر است |
3 | شامل جداول اندازه غیرعادی شده است. | شامل جداول اندازه نرمال شده است. |
4 | یک جدول واقعیت واحد توسط جداول با ابعاد چندگانه احاطه شده است. | جدول تک فاکت توسط سلسله مراتب جداول ابعادی احاطه شده است. |
5 | کوئری ها از ارتباط مستقیم بین واقعیت و ابعاد برای بازیابی داده ها استفاده می کنند. | پرس و جوها از روابط پیچیده بین حقایق و ابعاد برای بازیابی داده ها استفاده می کنند. |
6 | زمان اجرای درخواست کمتر است. | زمان اجرای درخواست بیشتر است. |
7 | هر کسی می تواند به راحتی این طرح را درک و طراحی کند. | درک و طراحی طرح مشکل است. |
8 | از رویکرد بالا به پایین استفاده می کند. | از رویکرد پایین به بالا استفاده می کند. |
نتیجه
امیدواریم از وبلاگ توضیحی دیگر مهندسان ما لذت برده باشید. اگر این وبلاگ به شما کمک کرده است تفاوت بین مدلهای طرح را درک کنید و مدل مناسب را برای سازمان خود انتخاب کنید، در جستجوی سایت ما برای کسب دانش شگفتانگیزتر برای آسانتر کردن زندگی توسعه خود تردید نکنید.
نشریه مقدمه ای بر طرح ستاره در برابر طرح دانه های برف در برابر طرح کهکشان برای اولین بار در مجله DEV IT ظاهر شد.