مبحث ۲: انبار داده
Data Warehouse (DW)
۱. این مبحث دقیقاً درباره چیست؟
انبار داده (Data Warehouse - DW) ستون فقرات هوش تجاری (BI) و سامانههای تصمیمیار سازمانی است. در هر سازمان مدرن، دادههای روزمره در سامانههای عملیاتی گوناگون (مانند CRM، ERP، درگاههای پرداخت، دیتابیسهای فروش) با فرمتها و ساختارهای ناهمگن ذخیره میشوند. این سامانهها برای ثبت سریع تراکنشها (OLTP) بهینهسازی شدهاند و پاسخگوی کوئریهای تحلیلی پیچیده و سنگین نیستند.
انبار داده محیطی یکپارچه، متمرکز و پالایششده است که دادههای تاریخی تمام بخشهای سازمان را جمعآوری، پاکسازی و استانداردسازی کرده و در ساختارهای تحلیلی (مدلهای ابعادی) نگهداری میکند.
برای پروژههای هوش مصنوعی و تحلیل داده، انبار داده نقش «منبع حقیقت قابل اتکا» (Single Source of Truth) را بازی میکند؛ جایی که ویژگیهای کسبوکاری معتبر برای آموزش مدلها یا ارزیابی روندهای سازمانی فراهم میشود.
۲. تعریف ساده
تعریف ساده: انبار داده مثل بایگانی مرکزی و مرتب یک شرکت بزرگ است که اسناد پراکنده تمام شعب و بخشها را با زبانی یکدست، تاریخدار و بدون تغییر جمعآوری کرده تا مدیران بتوانند با یک نگاه وضعیت کل شرکت را در گذر زمان تحلیل کنند.
۳. تعریف تخصصی
تعریف تخصصی (بیل اینمون - Father of Data Warehousing): انبار داده مجموعهای از دادههای موضوعگرا (Subject-Oriented)، یکپارچه (Integrated)، متغیر با زمان (Time-Variant) و غیرفرار / پایدار (Non-Volatile) است که برای پشتیبانی از فرآیند تصمیمگیری مدیریتی طراحی و سازماندهی میشود.
همچنین از نگاه رالف کیمبال (Ralph Kimball): «انبار داده نسخهای کپیشده از دادههای تراکنشی است که به شکل ساختاریافته به منظور ایجاد قابلیت کوئریگیری شهودی و تحلیل کارآمد با بالاترین کارایی بازآرایی شده است.»
۴. مفاهیم کلیدی
۴.۱. چهار ویژگی بنیادین اینمون 🔴
| ویژگی | توضیح تخصصی | مثال عینی |
|---|---|---|
| موضوعگرا (Subject-Oriented) | سازماندهی دادهها حول موضوعات اصلی کسبوکار (نه فرآیندهای عملیاتی نرمافزار) | دادهها حول «مشتری»، «محصول» یا «فروش» چیده میشوند، نه صفحات وبسایت |
| یکپارچه (Integrated) | رفع ناهمگونیها و اعمال نامگذاری، واحدها، کدهای وضعیت و ساختار یکپارچه از میان منابع مختلف | تبدیل فرمتهای تاریخ شمسی/میلادی و ارزها (ریال/تومان/دلار) به یک استاندارد ثابت |
| متغیر با زمان (Time-Variant) | هر رکورد با برچسب یا بعد زمانی ثبت شده و تاریخچه تغییرات در دورههای ۵ تا ۱۰ ساله حفظ میشود | ثبت روند تغییر درآمد ماهانه و تغییرات استانی مشتریان طی چند سال |
| غیرفرار / پایدار (Non-Volatile) | دادهها پس از ورود، ویرایش یا حذف (Update/Delete) نمیشوند؛ فقط خواندنی (Read-Only) هستند | رکوردهای فروش سال گذشته هرگز دستکاری نمیشوند، بلکه سوابق جدید افزوده میشوند |
۴.۲. مدلسازی ابعادی (Dimensional Modeling) 🔴
مدلسازی ابعادی متدولوژی ساختاری انبار داده است که پایگاه داده را به دو بخش اصلی تقسیم میکند:
۱. جدول واقعیت (Fact Table)
- محتوا: شامل معیارهای عددی، کمی و قابل اندازهگیری کسبوکار (Measures) و کلیدهای خارجی (Foreign Keys) به جداول بعد.
- ویژگیها: حجیمترین جدول سیستم، معمولاً دارای سطرهای بسیار زیاد و ستونهای نسبتاً محدود و عددی، با کلید اصلی ترکیبی (Composite Primary Key).
- مثال: جدول واقعیت فروش با ستونهای:
Customer_Key,Product_Key,Date_Key,Quantity_Sold,Total_Price,Discount_Amount.
۲. جداول بعد (Dimension Tables)
- محتوا: حاوی توصیفها، بافتارها، ویژگیهای متنی و فیلترهای تحلیلی مربوط به یک موجودیت.
- ویژگیها: تعداد سطرهای کمتر، ستونهای توصیفی عریض و متنی، غیرنرمالسازیشده (Denormalized) جهت افزایش سرعت کوئری.
- مثال: بعد مشتری شامل:
Customer_Key,Full_Name,National_ID,City,Province,Age_Group,Income_Bracket.
۴.۳. انواع طرحوارهها (Schemas) 🔴
[Star Schema] [Snowflake Schema]
+---------+ +---------+
| Dim_Time| | Dim_Time|
+----+----+ +----+----+
| |
+---------+ | +---------+ +---------+ | +---------+
|Dim_Cust +-+ |Dim_Prod | |Dim_Cust +-+ |Dim_Prod |
+---------+ | +---------+ +----+----+ | +----+----+
+----+----+ | +----+----+ |
|Fact_Sale| +----+ |Fact_Sale| +----+
+----+----+ |Sub | +----+----+ |Sub |
| |City| | |Cat |
+----+----+ +----+ +----+----+ +----+
|Dim_Store| |Dim_Store|
+---------+ +---------+
| مشخصه | طرحواره ستارهای (Star Schema) | طرحواره دانهبرفی (Snowflake Schema) | طرحواره صورت فلکی (Galaxy / Constellation) |
|---|---|---|---|
| ساختار | جدول Fact در مرکز، مستقیماً متصل به ابعاد غیرنرمال | ابعاد نرمالسازی شده و به جداول زیربعد شکسته شدهاند | چندین جدول Fact متصل به ابعاد مشترک (Conformed Dimensions) |
| نرمالسازی | غیرنرمال (Denormalized) | نرمالسازیشده (Normalized) | ترکیبی |
| تعداد JOIN | بسیار کم (۱ سطح Join) | زیاد (چندین سطح Join تو در تو) | بسته به کوئری متغیر |
| سرعت کوئری | فوقالعاده سریع و بهینهسازیشده | کندتر به دلیل فراوانی Joinها | سریع برای فرآیندهای مرتبط |
| سادگی فهم | برای تحلیلگران و ابزارهای BI بسیار ساده | پیچیدهتر و با دیاگرامهای شلوغ | نیازمند حاکمیت دقیق ابعاد |
| افزونگی داده | دارد (برای دستیابی به سرعت) | ندارد (صرفهجویی در حجم) | کنترلشده |
۴.۴. ابعاد بهآرامی تغییرپذیر (Slowly Changing Dimensions - SCD) 🔴
یکی از چالشهای اصلی انبار داده، مدیریت تغییر صفات موجودیتها در گذر زمان است (مثلاً تغییر شهر سکونت یا شغل مشتری):
- SCD نوع ۰ (Fixed): صفات هرگز تغییر نمیکنند (مانند تاریخ تولد).
- SCD نوع ۱ (Overwrite): مقدار جدید روی مقدار قبلی رونویسی میشود. تاریخچه قبلی کاملاً نابود میشود. مناسب برای اصلاح خطاهای املایی.
- SCD نوع ۲ (Add Row): به ازای هر تغییر، یک رکورد جدید با کلید جانشین (Surrogate Key) جدید اضافه میشود. فیلدهای
Start_Date،End_DateوIs_Current_Flagمشخصکننده بازه اعتبار هر رکورد هستند. (استاندارد طلایی آزمون برای حفظ تاریخچه کامل). - SCD نوع ۳ (Add Column): افزودن یک ستون جدید به همان سطر (مثلاً ستون
Previous_City). فقط آخرین تغییر را نگه میدارد و تاریخچههای قدیمیتر از دست میروند. - SCD نوع ۴ (Mini-Dimension / History Table): نگهداری مقادیر جاری در جدول اصلی و انتقال تاریخچه کامل تغییرات به یک جدول سوابق جداگانه.
۴.۵. بازارچه داده (Data Mart) 🟠
- تعریف: زیرمجموعهای متمرکز و سفارشیشده از انبار داده که برای پاسخ به نیازهای تحلیلی یک واحد یا خط کسبوکار خاص (مانند واحد بازاریابی، امور مالی یا زنجیره تامین) طراحی میشود.
- انواع:
- Dependent Data Mart: دادهها را مستقیماً از انبار داده مرکزی سازمانی دریافت میکند (معماری Inmon).
- Independent Data Mart: مستقیماً از سیستمهای منبع تغذیه میشود بدون اینکه انبار داده مرکزی وجود داشته باشد (پرریسک و جزیرهای).
- رابطه:
Data Mart ⊂ Data Warehouse
۴.۶. مکتب اینمون در برابر مکتب کیمبال (Inmon vs. Kimball) 🔴
| بعد مقایسه | مکتب اینمون (Corporate Information Factory) | مکتب کیمبال (Dimensional Data Warehouse) |
|---|---|---|
| فلسفه طراحی | بالا به پایین (Top-Down) | پایین به بالا (Bottom-Up) |
| مدل داده انبار مرکزی | نرمالسازی سطح سوم (3NF) | مدل ابعادی (Dimensional / Star Schema) |
| نقش Data Mart | لایه مصرف مشتقشده از انبار داده مرکزی | تجمیع Data Martهای ابعادی تشکیلدهنده کل انبار داده |
| هزینه و زمان اولیه | زمان طولانی و هزینه سرمایهگذاری اولیه بسیار بالا | فازبندی سریع، ارزشآفرینی اولیه و هزینه کمتر |
| مهارت مورد نیاز | تسلط عمیق بر مدلسازی داده سازمانی | تسلط بر نیازمندیهای کسبوکار و مدلهای ابعادی |
| یکپارچگی سازمانی | انطباق فوقالعاده با مدل فراگیر سازمانی | نیازمند طراحی ابعاد همساز (Conformed Dimensions) |
۵. چگونه کار میکند؟
فرآیند گامبهگام تغذیه و بهرهبرداری از انبار داده:
[سیستمهای عملیاتی (OLTP)]
(CRM, ERP, Files, APIs)
│
▼ (Extract)
[ناحیه میانی (Staging Area)] ────► پاکسازی، اعتبارسنجی و تبدیل ساختار (Transform)
│
▼ (Load)
[انبار داده سازمانی (EDW)] ────► پایگاه داده مرکزی حاوی جداول Fact و Dim
│
┌─────┴─────┐
▼ ▼
[Data Mart مالی] [Data Mart فروش]
│ │
▼ ▼
[ابزارهای BI، گزارشهای تحلیلی و ورودی مدلهای یادگیری ماشین]
مراحل اجرای پروژه انبار داده:
- نیازمندیسنجی کسبوکار: شناسایی تصمیمگیران، KPIها و فرآیندهای تجاری نیازمند سنجش.
- شناسایی و پروفایلینگ منابع: تحلیل کیفیت و ساختار جداول دیتابیسهای منبع.
- طراحی معماری ابعادی: انتخاب دانهبندی (Granularity)، مشخصسازی جداول Fact و Dimension و انتخاب نوع SCD.
- پیادهسازی خط لوله ETL/ELT: استخراج، پاکسازی، تطبیق کلیدهای جانشین (Surrogate Keys) و بارگذاری برنامهریزیشده.
- ساخت لایه دسترسی (Data Marts/Cubes): بهینهسازی نماها (Materialized Views) و اتصال به ابزارهای هوش تجاری (مانند Power BI, Tableau).
۶. مثال واقعی
استقرار انبار داده در فروشگاههای زنجیرهای سراسری (کیس استادی خردهفروشی)
- مسئله: یک شرکت خردهفروشی با بیش از ۲۰۰ شعبه در کشور، دارای پایگاههای داده محلی فروشگاهی (OLTP) با سیستمهای متفرقه بود. مدیران قادر به بررسی سودآوری لحظهای شعب در کمپینهای تخفیفی و تحلیل سبد خرید مشتریان وفادار در بازههای چندساله نبودند؛ زیرا اجرای گزارش روی دیتابیس عملیاتی باعث قفل شدن صندوقهای فروش میشد.
- راهکار پیادهسازی انبار داده:
- پیادهسازی طرحواره ستارهای با جدول واقعیت
Fact_Daily_Salesبا دانه (Grain) مشخص به ازای «فروش هر قلم کالا در هر تراکنش، در هر شعبه، در هر ساعت». - ابعاد: بعد محصول، بعد شعبه (جغرافیایی)، بعد زمان و تقویم (شمسی و تعطیلات)، و بعد مشتری با SCD نوع ۲.
- استقرار فرآیند شبانه ELT با استفاده از پایگاه داده ستونی ابری.
- نتیجه: کاهش زمان صدور گزارشهای تحلیل رفتار فصلی از ۳ روز کاری به ۴ ثانیه، کشف الگوهای فصلی خرید در استانهای مختلف و افزایش ۸.۵ درصدی حاشیه سود با توقف کمپینهای زیانده.
۷. مثال خیلی ساده
فرض کنید در خانه یک دفترچه یادداشت روزانه خرید دارید که هر بار سوپرمارکت میروید بلافاصله خریدها را سریع در آن یادداشت میکنید تا حساب دخل و خرج همان لحظه ثبت شود (این سیستم عملیاتی یا OLTP شماست).
در پایان هر سال، اگر بخواهید بفهمید در کدام ماهها بیشترین پول را خرج گوشت، پوشاک یا تفریح کردهاید، خواندن و ورق زدن ۳۶۵ صفحه دفترچه روزانه سردردآور و زمانبر است.
بنابراین دفتری مجزا، تمیز و جدولبندیشده بر اساس «موضوع» (خوراک، مسکن، سفر) و «ماه» درست میکنید که خلاصه و دستهبندیشده همه چیز را نشان دهد (این دفتر تمیز و سالانه، انبار داده یا Data Warehouse شماست).
۸. تفاوت مفاهیم مشابه
انبار داده vs پایگاه داده عملیاتی vs دریاچه داده vs بازارچه داده 🔴
| شاخص مقایسه | پایگاه داده عملیاتی (OLTP) | انبار داده (Data Warehouse) | بازارچه داده (Data Mart) | دریاچه داده (Data Lake) |
|---|---|---|---|---|
| هدف | مدیریت امور جاری و ثبت تراکنشها | تحلیل کلان، گزارشگیری و هوش تجاری | گزارشگیری تخصصی یک واحد | کاوش دادههای خام، یادگیری ماشین |
| نوع پردازش | تراکنشی آنلاین (OLTP) | تحلیلی آنلاین (OLAP) | تحلیلی آنلاین (OLAP) | ترکیبی (Batch / Stream / ML) |
| ساختار داده | ساختاریافته (کاملاً نرمال 3NF) | ساختاریافته (مدل ابعادی Star/Snowflake) | ساختاریافته (مدل ابعادی محدود) | ساختاریافته، نیمهساختاریافته و بدونساختار |
| رویکرد اسکیما | Schema-on-Write | Schema-on-Write | Schema-on-Write | Schema-on-Read |
| افق زمانی داده | دادههای جاری (چند روز یا ماه اخیر) | دادههای تاریخی (۵ تا ۱۰ سال) | دادههای تاریخی محدود به یک حوزه | دادههای تاریخی با تمام جزئیات خام |
| عملیات داده | Read / Write مداوم | Bulk Load در بازههای معین و Read سنگین | Bulk Load دورهای و Read متمرکز | Write مستمر و Read به تناسب سناریو |
| کاربران اصلی | کارمندان، مشتریان، نرمافزارها | مدیران ارشد، تحلیلگران هوش تجاری | کارشناسان یک دپارتمان خاص | دانشمندان داده، مهندسان یادگیری ماشین |
۹. مزایا و محدودیتها
مزایا ✅
- ایجاد منبع واحد حقیقت (Single Source of Truth): حذف تناقضهای آماری بین دپارتمانهای مختلف شرکت.
- عملکرد تحلیلی بالا: افزایش چشمگیر سرعت کوئریهای تحلیلی و عدم اختلال در سیستمهای کاری روزمره.
- حفظ تاریخچه غنی سازمانی: امکان ردیابی گذشته و انجام تحلیلهای مقایسهای بلندمدت.
- افزایش کیفیت و پالایش داده: اعمال قوانین اعتبارسنجی سختگیرانه در لایه ETL.
- تسهیل کاربری ابزارهای هوش تجاری: توانمندسازی مدیران غیرفنی برای ساخت داشبوردهای سلفسرویس.
محدودیتها و چالشها ⛔
- انعطافناپذیری در برابر دادههای نامنظم: ناتوانی ذاتی در ذخیره و تحلیل تصاویر، ویدیوها و فایلهای صوتی خام.
- هزینه و زمان استقرار بالا: پروژههای انبار داده سنتی ماهها تا سالها زمان برده و سرمایهگذاری اولیه بالایی میطلبند.
- سختی اعمال تغییرات اسکیما: تغییر مدل کسبوکار نیازمند تغییرات پرهزینه در پایپلاینهای داده و جداول است.
- تاخیر زمانی داده (Latency): عموماً بهصورت دستهای (Batch - مثلاً شبانه) بارگذاری میشوند و فاقد قابلیت گزارشگیری بلادرنگ (Real-Time) ثانیهای هستند.
۱۰. کاربردهای مهم در صنایع
| صنعت | سناریوی کاربردی | جدول Fact | ابعاد تحلیلی کلیدی |
|---|---|---|---|
| بانکداری و فینتک | تحلیل سودآوری مشتریان و ریسک اعتباری | تراکنشهای مالی حسابها | بعد مشتری، بعد شعبه، بعد نوع تراکنش، بعد تاریخ |
| بیمه | تحلیل نسبت خسارت به حق بیمه دریافتی | پروندههای اعلام خسارت و صدور بیمهنامه | بعد رشته بیمه، بعد عامل صدور، بعد منطقه، بعد بیمهگذار |
| خردهفروشی و ایکامرس | سنجش عملکرد سبد کالا و ارزیابی کمپینها | رخداد سفارش و فاکتور فروش | بعد کالا، بعد دستهبندی، بعد کوپن تخفیف، بعد درگاه پرداخت |
| بهداشت و درمان | پایش ظرفیت اشغال تخت و هزینه درمان | پذیرش و بستری بیمار | بعد بخش، بعد پزشک معالج، بعد بیماری، بعد نوع بیمه پایه |
| مخابرات و تلکام | سنجش ریزش مشتریان (Churn Rate) و مصرف دیتا | ریز مکالمات و مصرف بستهها (CDR) | بعد دکل آنتن، بعد طرح تشویقی، بعد مدل دستگاه مشترک |
۱۱. دیدگاه مشاورهای
چه زمانی احداث انبار داده ضروری است؟
- وقتی گزارشهای تحلیلی دیتابیسهای عملیاتی را کند یا متوقف میکنند.
- وقتی مدیران بخشهای مختلف در جلسات برای یک شاخص واحد (مثلاً «تعداد مشتریان فعال») اعدادی متفاوت و متناقض ارائه میدهند.
- وقتی سازمان نیازمند گزارشهای ترند چندساله برای برنامهریزی استراتژیک است.
- وقتی سامانههای گزارشگیری تجاری مانند Power BI یا Metabase قصد اتصال به دیتابیس دارند.
چه زمانی انبار داده گزینه مناسبی نیست؟
- پروژههایی که ورودی آنها متون بدونساختار، صوت، تصویر یا استریم خام اینترنت اشیاء (IoT) است (در این حالت باید به سراغ Data Lake رفت).
- استارتاپهای نوپا با دیتابیسهای کوچک و مدلهای کسبوکار به شدت ناپایدار که هفتگی تغییر اسکیما دارند.
- نیازمندیهایی که به پردازشهای زیرثانیهای و واکنش بلادرنگ به تراکنشها وابسته هستند.
سناریوی مشاورهای ویژه آزمون نظام صنفی:
مسئله: یک شرکت توزیع دارو با ۴۰ انبار منطقهای گزارش میدهد که به دلیل تغییر آدرس پیدرپی داروخانهها، آمارهای تحلیلی فروش فصلی بر حسب استان دچار خطای شدید شده است؛ زیرا سیستم آدرس جدید را جایگزین قبلی میکند و خریدهای ۶ ماه پیش داروخانه نیز به استان جدید منتسب میشود! همچنین اجرای گزارش سود فصلی تا ساعتها سیستم ثبت سفارش را متوقف میکند.
راهکار مشاور رسمی هوش مصنوعی: ۱. تفکیک محیط تحلیلی از عملیاتی با استقرار یک انبار داده مستقل بر پایه طرحواره ستارهای (Star Schema) برای تضمین عدم فشار بر سیستم فروش و پاسخ سریع به کوئریها. ۲. پیادهسازی مکانیزم SCD نوع ۲ بر روی بعد داروخانهها: به این ترتیب با تغییر آدرس، رکورد قبلی با تاریخ پایان منقضی شده و رکوردی نو با کلید جانشین جدید متولد میشود. در نتیجه، خریدهای گذشته به درستی در آدرس قدیمی و خریدهای جدید در آدرس تازه منظور میگردند.
۱۲. قاعده تصمیمگیری
آیا دادههای شما ساختاریافته و دارای اسکیما هستند؟
├── خیر → سراغ Data Lake یا پایگاهدادههای NoSQL بروید.
└── بله → آیا هدف اصلی، گزارشگیری، BI و تحلیل تاریخی است؟
├── خیر (ثبت تراکنش روزمره است) → از پایگاههای داده نرمال OLTP (RDBMS) استفاده کنید.
└── بله → انتخاب متدولوژی طراحی انبار داده:
├── آیا نیاز به خروجی سریع، فازبندیشده و متمرکز بر یک واحد دارید؟
│ └── بله → رویکرد کیمبال (Kimball) + Star Schema
└── خیر، نیاز به مدل کلان و جامع در سطح کل شرکت با بودجه بالا دارید؟
└── بله → رویکرد اینمون (Inmon) + 3NF Centralized DWH
۱۳. 🔴 نکات طلایی آزمون
- چهار اصل طلایی اینمون: موضوعگرا، یکپارچه، متغیر با زمان و غیرفرار (پایدار).
- تفاوت Fact و Dimension: جدول Fact حاوی معیارهای عددی قابل جمعبستن (Additive/Semi-additive) است؛ جداول Dimension حاوی ویژگیهای متنی و فیلترهای توصیفی هستند.
- کلید جانشین (Surrogate Key): در انبار داده همیشه به جای کلیدهای عملیاتی (Natural/Business Key) از کلیدهای عددی بی معنا (Surrogate Key) استفاده میشود تا تغییرات ابعاد (SCD) قابل ردگیری باشند.
- مقایسه اسکیماها: Star Schema غیرنرمال با Join کمتر و عملکرد سریعتر است؛ Snowflake Schema نرمالسازیشده با افزونگی کمتر اما Joinهای پیچیدهتر و سرعت کمتر است.
- روش حفظ تاریخچه کامل تغییرات: بدون تردید SCD نوع ۲ (ایجاد سطر جدید با تاریخ شروع و پایان).
- SCD نوع ۱: حذف تاریخچه و رونویسی (مناسب تصحیح غلط املایی).
- الگوی خواندن/نوشتن: انبار داده متکی بر الگوی Schema-on-Write است (طراحی و اعتبارسنجی دقیق اسکیما پیش از درج داده).
- رویکرد کیمبال vs اینمون: کیمبال = پایین به بالا و ابعادی (Star)؛ اینمون = بالا به پایین و نرمال (3NF).
- Data Mart: زیرمجموعه انبار داده برای یک واحد یا حوزه خاص (
Data Mart ⊂ Data Warehouse). - Conformed Dimension: بعد مشترکی که بین چندین جدول Fact در طرحواره صورت فلکی (Galaxy) به اشتراک گذاشته میشود تا امکان تحلیل میانحوزهای فراهم شود.
۱۴. ⚠️ دامهای رایج آزمون
دام ۱: «انبار داده باید دادهها را به روش فرمهای نرمال (3NF) ذخیره کند تا افزونگی به صفر برسد.»
❌ پاسخ غلط! در انبار داده اولویت با سرعت کوئریگیری تحلیلی است، نه کمینهسازی فضا. بنابراین مدلهای ابعادی (مانند Star Schema) عمداً غیرنرمال طراحی میشوند.دام ۲: «در SCD نوع ۳، تاریخچه کامل تغییرات در تمام ادوار گذشته حفظ میشود.»
❌ پاسخ غلط! در SCD نوع ۳ فقط یک ستون اضافه میشود و معمولاً فقط «وضعیت قبلی» را در کنار «وضعیت جاری» نگه میدارد و در صورت تغییر سوم، رکورد اولیه گم میشود. حفظ تاریخچه کامل فقط کار SCD نوع ۲ است.دام ۳: «انبار داده جایگزین پایگاه داده عملیاتی (OLTP) شرکت میشود.»
❌ پاسخ غلط! انبار داده هرگز جایگزین دیتابیس عملیاتی نیست، بلکه مکمل آن است. OLTP برای نوشتن سریع تراکنشها و DWH برای خواندن و تحلیل گزارشهاست.دام ۴: «جداول بعد (Dimension) بزرگتر و پرحجمتر از جداول واقعیت (Fact) هستند.»
❌ پاسخ غلط! برعکس؛ جداول Fact شامل سوابق تمام تراکنشها بوده و میلیاردها سطر دارند، در حالی که جداول Dimension رکوردهای ماهیتها (مانند چند هزار مشتری یا کالا) را نگه میدارند.
۱۵. 🧠 خلاصه یکدقیقهای
- انبار داده مخزن مرکزی، تاریخی و پالایششده سازمان برای پشتیبانی از تصمیمات مدیریتی و BI است.
- ویژگیهای اینمون: موضوعگرا، یکپارچه، غیرفرار، متغیر با زمان.
- ساختار ابعادی: جدول Fact (اعداد و سنجهها) + جداول Dimension (ویژگیهای متنی و توصیفی).
- Star Schema (محبوب، سریع، غیرنرمال) در برابر Snowflake Schema (نرمال، کندتر، کمحجم).
- مدیریت تاریخچه تغییرات با SCD: نوع ۱ (رونویسی)، نوع ۲ (افزودن سطر جدید - استاندارد کامل)، نوع ۳ (افزودن ستون).
- کیمبال (رویکرد پایین به بالا و ابعادی) در برابر اینمون (بالا به پایین و ۳NF).
- تفاوت با پایگاه داده عملیاتی: OLAP در برابر OLTP؛ اولویت با خواندن دستهای کوئریهای سنگین.
۱۶. نقشه ذهنی
انبار داده (Data Warehouse)
│
├── ۱. مبانی و فلسفه
│ ├── ویژگیهای اینمون: موضوعگرا | یکپارچه | متغیر با زمان | غیرفرار
│ └── تفاوت با OLTP: سیستم تحلیلی (OLAP) در برابر سیستم عملیاتی (OLTP)
│
├── ۲. مدلسازی ابعادی (Dimensional Modeling)
│ ├── جدول واقعیت (Fact): سنجههای عددی، کلیدهای خارجی، دانهبندی (Grain)
│ └── جداول بعد (Dimension): ویژگیهای متنی، کلیدهای جانشین (Surrogate Keys)
│
├── ۳. انواع طرحوارهها (Schemas)
│ ├── Star Schema: تک مرحله JOIN، ابعاد غیرنرمال، سرعت بالا
│ ├── Snowflake Schema: ابعاد نرمالسازی شده، صرفهجویی در حجم، JOINهای تو در تو
│ └── Fact Constellation (Galaxy): چند Fact با ابعاد مشترک (Conformed)
│
├── ۴. مدیریت تغییرات بعد (SCD)
│ ├── نوع ۱: رونویسی (بدون تاریخچه)
│ ├── نوع ۲: سطر جدید با Start/End Date و Flag (حفظ کامل تاریخچه)
│ └── نوع ۳: ستون جدید (حفظ یک وضعیت قبل)
│
└── ۵. متدولوژیهای طراحی
├── Kimball: پایین به بالا (Bottom-Up)، ابعادی، بازارچهمحور
└── Inmon: بالا به پایین (Top-Down)، نرمال ۳NF، انبار داده فراگیر سازمانی
۱۷. ارتباط با سایر مباحث
| مبحث مرتبط | نوع و ماهیت ارتباط |
|---|---|
| معماری داده (فصل ۲ - مبحث ۱) | انبار داده یکی از هستههای اصلی ذخیرهسازی لایه تحلیلی در معماری داده سازمانی است. |
| دریاچه داده (فصل ۲ - مبحث ۳) | مقایسه مکمل: انبار داده برای دادههای تمیز ساختاریافته و دریاچه داده برای کلانداده خام. |
| کیفیت داده (فصل ۲ - مبحث ۷) | فرآیند ETL/ELT انبار داده نیازمند اعمال پالایشهای کیفیت داده جهت جلوگیری از پدیده GIGO است. |
| حاکمیت داده (فصل ۲ - مبحث ۶) | انبار داده نیازمند کاتالوگ داده، متادیتا و کنترل دسترسی بر اساس قواعد حاکمیتی است. |
| عملیات یادگیری ماشین (MLOps) (فصل ۵ - مبحث ۶) | جداول Fact و Dimension پالایششده به عنوان ورودی Feature Store در پروژههای هوش مصنوعی به کار میروند. |
📚 مراجع و منابع علمی معتبر
منابع مرتبط با همین موضوع- Kimball Group
- Microsoft
- Inmon Institute