Fact Table ба Dimension Table гэж юу вэ? Power BI Data Modeling-ийн үндэс
Power BI дээр тайлан, dashboard хийхэд зөвхөн өгөгдлөө импортлоод chart байгуулах нь хангалтгүй байдаг. Илүү олон хүснэгттэй, том хэмжээний өгөгдөлтэй ажиллах үед хүснэгтүүдийн хоорондын холбоосыг зөв зохион байгуулах шаардлагатай.
Энд Data Modeling буюу өгөгдлийн загварчлал чухал үүрэгтэй.
Өгөгдлийн загварчлалын хамгийн түгээмэл ойлголтуудын нэг нь Fact Table болон Dimension Table юм. Эдгээр хүснэгтийг зөв зохион байгуулснаар өгөгдлөө илүү ойлгомжтой, уян хатан байдлаар анализ хийж, Power BI report-ийн гүйцэтгэлийг сайжруулах боломжтой.

Data Model гэж юу вэ?
Data Model гэдэг нь олон хүснэгтийн хоорондын холбоос, бүтэц, хамаарлыг тодорхойлсон өгөгдлийн зохион байгуулалт юм.
Жишээлбэл, компанийн борлуулалтын мэдээллийг дараах байдлаар тус тусад нь хадгалж болно.
- Харилцагчийн мэдээлэл
- Бүтээгдэхүүний мэдээлэл
- Борлуулалтын мэдээлэл
- Дэлгүүрийн мэдээлэл
- Огнооны мэдээлэл
Эдгээр бүх мэдээллийг нэг том хүснэгтэд хадгалах боломжтой боловч энэ нь их хэмжээний давхардал үүсгэж болно.
Жишээ нь нэг харилцагч олон удаа худалдан авалт хийвэл тухайн харилцагчийн нэр, хаяг, хот зэрэг мэдээлэл борлуулалт бүр дээр дахин давтагдана.
Үүний оронд мэдээллийг логик бүтэцтэйгээр тусад нь хүснэгт болгон зохион байгуулж, хооронд нь Key ашиглан холбодог.
Эндээс Fact Table болон Dimension Table гэсэн ойлголт гарч ирдэг.
Fact Table гэж юу вэ?
Fact Table нь бизнесийн үйл ажиллагаа, гүйлгээ, хэмжигдэхүйц үр дүнг агуулсан үндсэн хүснэгт юм.
Энгийнээр хэлбэл Fact Table нь:
Юу болсон бэ? Хэзээ болсон бэ? Хэдэн ширхэг байсан бэ? Хэдэн төгрөгийн дүнтэй байсан бэ?
гэсэн асуултад хариулах өгөгдлийг агуулдаг.
Жишээ нь компанийн борлуулалтын Fact Table-г авч үзье.
| DateKey | CustomerID | ProductID | StoreID | Quantity | SalesAmount |
|---|---|---|---|---|---|
| 20260101 | C001 | P101 | S01 | 2 | 50,000 |
| 20260101 | C002 | P205 | S01 | 1 | 35,000 |
| 20260102 | C001 | P101 | S02 | 3 | 75,000 |
| 20260102 | C003 | P301 | S01 | 5 | 120,000 |
Энэ хүснэгтэд борлуулалт бүр нэг мөр болж бүртгэгдсэн байна.
Энд байгаа:
Quantity нь хэдэн бүтээгдэхүүн борлуулсан хэмжээг илэрхийлнэ.
SalesAmount нь тухайн борлуулалтын орлогыг илэрхийлнэ.
Харин:
DateKey
CustomerID
ProductID
StoreID
гэсэн баганууд нь бусад хүснэгттэй холбогдох түлхүүрүүд юм.
Иймээс Fact Table нь ихэвчлэн:
- Тоон хэмжигдэхүүн
- Борлуулалтын дүн
- Тоо хэмжээ
- Ашиг
- Зардал
- Гүйлгээний тоо
- Үйл ажиллагааны үр дүн
зэрэг хэмжиж, тооцож болох өгөгдлийг агуулдаг.
Fact Table-ийн жишээ
Жишээлбэл онлайн дэлгүүрийн борлуулалтын өгөгдлийг авч үзье.
| OrderID | CustomerID | ProductID | DateKey | Quantity | Revenue | Cost | Profit |
|---|---|---|---|---|---|---|---|
| 1001 | C001 | P001 | 20260101 | 2 | 100,000 | 70,000 | 30,000 |
| 1002 | C002 | P003 | 20260101 | 1 | 80,000 | 50,000 | 30,000 |
| 1003 | C001 | P002 | 20260102 | 3 | 150,000 | 100,000 | 50,000 |
Энэ хүснэгтээс Power BI дээр дараах хэмжүүрүүдийг тооцож болно.
Total Revenue
Total Cost
Total Profit
Total Quantity
Number of Orders
Жишээлбэл нийт борлуулалтын орлогыг DAX ашиглан дараах байдлаар тооцож болно.
Total Revenue = SUM(Sales[Revenue])
Нийт ашгийг:
Total Profit = SUM(Sales[Profit])
гэж тооцож болно.
Гэхдээ зөвхөн нийт орлого харах нь хангалтгүй. Бид дараах асуултуудад хариулах шаардлагатай болно.
Аль бүтээгдэхүүн хамгийн их орлого олсон бэ?
Аль хотын хэрэглэгчид хамгийн их худалдан авалт хийсэн бэ?
Ямар сард борлуулалт хамгийн өндөр байсан бэ?
Аль дэлгүүр хамгийн өндөр ашигтай байсан бэ?
Эдгээр асуултад хариулахын тулд Dimension Table ашиглана.
Dimension Table гэж юу вэ?
Dimension Table нь Fact Table дахь өгөгдлийг тайлбарлаж, ангилж, бүлэглэж, задлан шинжлэхэд ашиглагддаг хүснэгт юм.
Энгийнээр хэлбэл Dimension Table нь:
Хэн?
Юу?
Хаана?
Хэзээ?
гэсэн асуултад хариулдаг.
Dimension Table нь ихэвчлэн тайлбарлах шинж чанартай мэдээллийг агуулдаг.
Жишээ нь Customer Dimension хүснэгтийг авч үзье.
Customer Dimension
| CustomerID | CustomerName | Gender | Age | City |
|---|---|---|---|---|
| C001 | Бат | Male | 32 | Ulaanbaatar |
| C002 | Саруул | Female | 28 | Darkhan |
| C003 | Тэмүүлэн | Male | 40 | Erdenet |
Энэ хүснэгт нь хэрэглэгчийн талаарх дэлгэрэнгүй мэдээллийг агуулж байна.
CustomerID нь Sales Fact хүснэгттэй холбогдох түлхүүр болно.
Power BI дээр энэ холбоосыг ашигласнаар борлуулалтын мэдээллийг:
- Хэрэглэгчээр
- Хүйсээр
- Насны бүлгээр
- Хотоор
задлан шинжлэх боломжтой.
Жишээлбэл:
Улаанбаатар хотын хэрэглэгчдийн нийт борлуулалт хэд байсан бэ?
гэсэн асуултад Customer Dimension болон Sales Fact хүснэгтийн холбоосоор дамжуулан хариулж болно.
Product Dimension-ийн жишээ
Бүтээгдэхүүний талаарх мэдээллийг тусдаа Dimension хүснэгтэд хадгалж болно.
| ProductID | ProductName | Category | Brand |
|---|---|---|---|
| P001 | Laptop | Electronics | Dell |
| P002 | Keyboard | Electronics | Logitech |
| P003 | Headphone | Electronics | Sony |
Энэ хүснэгтийг ашиглан дараах анализуудыг хийж болно.
- Аль бүтээгдэхүүн хамгийн их борлуулалттай вэ?
- Аль ангилал хамгийн их орлого олж байна вэ?
- Аль брэндийн бүтээгдэхүүн хамгийн ашигтай вэ?
Жишээлбэл Power BI дээр:
Product Category-г Axis дээр,
Total Revenue-г Values дээр байрлуулбал
бүтээгдэхүүний ангилал тус бүрийн борлуулалтын орлогыг харах боломжтой.
Date Dimension яагаад хэрэгтэй вэ?
Power BI дээр хамгийн чухал Dimension Table-уудын нэг бол Date Table юм.
Огнооны мэдээллийг тусдаа хүснэгтэд зохион байгуулснаар:
- Өдөр
- Сар
- Улирал
- Жил
- Weekday
- Week Number
зэрэг олон түвшний анализ хийх боломжтой.
Жишээ нь Date Dimension.
| DateKey | Date | Month | Quarter | Year |
|---|---|---|---|---|
| 20260101 | 2026-01-01 | January | Q1 | 2026 |
| 20260102 | 2026-01-02 | January | Q1 | 2026 |
| 20260201 | 2026-02-01 | February | Q1 | 2026 |
Энэ хүснэгтийг ашигласнаар:
- Өнгөрсөн сарын борлуулалт
- Өмнөх жилийн борлуулалт
- Month over Month Growth
- Year over Year Growth
- Quarterly Sales
зэрэг Time Intelligence анализ хийхэд илүү хялбар болдог.
Store Dimension-ийн жишээ
Хэрэв компани олон салбар, дэлгүүртэй бол Store Dimension ашиглаж болно.
| StoreID | StoreName | City | Region |
|---|---|---|---|
| S01 | Central Store | Ulaanbaatar | Central |
| S02 | East Store | Ulaanbaatar | East |
| S03 | Darkhan Store | Darkhan | North |
Энэ хүснэгтээр:
- Аль салбар хамгийн их борлуулалттай вэ?
- Аль хот хамгийн их орлого олж байна вэ?
- Аль бүс хамгийн ашигтай вэ?
гэх мэт анализ хийж болно.
Fact Table ба Dimension Table хэрхэн холбогддог вэ?
Манай жишээнд төвд Sales Fact хүснэгт байна.
Sales Fact хүснэгт нь дараах Dimension хүснэгтүүдтэй холбогдоно.
Customer Dimension
|
|
Product Dimension
|
|
Sales Fact
|
|
Date Dimension
|
|
Store Dimension
Илүү зөв ойлголтоор Sales Fact хүснэгт нь төвд байрлаж, Customer, Product, Date, Store зэрэг Dimension хүснэгтүүд түүнийг тойрон байрлана.
Энэ бүтцийг Star Schema гэж нэрлэдэг.
Учир нь төвд байрлах Fact Table болон түүнийг тойрсон Dimension Table-ууд нь од хэлбэрийн бүтэц үүсгэдэг.
Star Schema гэж юу вэ?
Star Schema нь Data Warehouse болон Power BI Data Modeling-д хамгийн түгээмэл ашиглагддаг өгөгдлийн загварчлалын нэг юм.
Бүтэц нь дараах байдлаар харагдана.
Customer
|
|
Product ------ Sales Fact ------ Store
|
|
Date
Энд:
Sales Fact нь хэмжигдэхүүн болон гүйлгээний өгөгдлийг агуулна.
Customer, Product, Store, Date нь өгөгдлийг тайлбарлаж, ангилж, задлан шинжлэх Dimension хүснэгтүүд юм.
Жишээлбэл бид:
2026 оны 1-р сард Улаанбаатар хотод Electronics ангиллын бүтээгдэхүүний нийт борлуулалт хэд байсан бэ?
гэсэн асуулт асууж болно.
Энэ асуултад хариулахын тулд:
Date Dimension-ээс 2026 оны 1-р сарыг сонгоно.
Customer эсвэл Store Dimension-оос Улаанбаатар хотыг сонгоно.
Product Dimension-оос Electronics ангиллыг сонгоно.
Эдгээр filter нь Sales Fact хүснэгт рүү дамжиж, зөвхөн тухайн нөхцөлд хамаарах борлуулалтын мэдээллийг тооцоолно.
Энэ нь Power BI Data Model-ийн үндсэн логик юм.
Fact Table ба Dimension Table-ийн гол ялгаа
| Fact Table | Dimension Table |
|---|---|
| Бизнесийн үйл ажиллагаа, гүйлгээг агуулна | Тухайн үйл ажиллагааг тайлбарлана |
| Тоон хэмжигдэхүүн ихтэй | Тайлбарлах мэдээлэл ихтэй |
| Ихэвчлэн олон мөртэй | Харьцангуй цөөн, давтагдахгүй мэдээлэлтэй |
| Quantity, Revenue, Cost, Profit зэрэг баганатай | Product Name, Category, City, Date зэрэг баганатай |
| Анализын үндсэн хэмжигдэхүүнийг агуулна | Өгөгдлийг ангилж, задлан шинжилнэ |
| Ихэвчлэн Dimension Table-ийн Key-г агуулна | Ихэвчлэн Unique Key-тэй байна |
Энгийнээр санахад:
Fact Table = Тооцоолох, хэмжих өгөгдөл
Dimension Table = Ангилах, тайлбарлах өгөгдөл
Power BI дээр яагаад Star Schema ашиглах хэрэгтэй вэ?
Star Schema ашигласнаар Power BI Data Model илүү ойлгомжтой, цэгцтэй болдог.
Нэгдүгээрт, хүснэгтүүдийн үүрэг тодорхой болно.
Аль нь гүйлгээний өгөгдөл, аль нь тайлбарлах өгөгдөл болохыг шууд ялгаж болно.
Хоёрдугаарт, DAX Measure бичихэд илүү хялбар болдог.
Жишээлбэл Total Sales Measure-ийг зөвхөн Fact Table дээрх Revenue баганаас тооцоод, Dimension Table-уудаар filter хийж болно.
Гуравдугаарт, олон төрлийн анализ хийх боломжтой.
Нэг Measure ашиглан:
- Бүтээгдэхүүнээр
- Хэрэглэгчээр
- Сараар
- Жилээр
- Дэлгүүрээр
- Бүс нутгаар
задлан шинжилж болно.
Дөрөвдүгээрт, тайлангийн бүтэц илүү ойлгомжтой болно.
Ялангуяа олон сая мөртэй өгөгдөл дээр зөв Data Model нь Power BI report-ийн ажиллагаа болон хөгжүүлэлтийг илүү үр ашигтай болгоход чухал нөлөөтэй.
Практик жишээ
Та супермаркетын борлуулалтын тайлан хийж байна гэж бодъё.
Танд дараах асуултууд байна.
- Нийт борлуулалт хэд вэ?
- Аль бүтээгдэхүүн хамгийн их зарагдсан бэ?
- Аль ангилал хамгийн өндөр орлоготой вэ?
- Аль салбар хамгийн их борлуулалттай вэ?
- Аль сард борлуулалт өссөн бэ?
Үүний тулд дараах Data Model үүсгэж болно.
Sales Fact
TransactionID
DateKey
ProductID
CustomerID
StoreID
Quantity
SalesAmount
Cost
Profit
Product Dimension
ProductID
ProductName
Category
Brand
Customer Dimension
CustomerID
CustomerName
Gender
City
Store Dimension
StoreID
StoreName
City
Region
Date Dimension
DateKey
Date
Month
Quarter
Year
Эдгээр хүснэгтүүдийг зөв холбоод Power BI дээр нэг л Total Sales Measure үүсгэсэн гэж бодъё.
Total Sales = SUM(Sales[SalesAmount])
Одоо энэ Measure-ийг ашиглан:
Product Name-аар filter хийхэд бүтээгдэхүүн тус бүрийн борлуулалт,
Month-аар filter хийхэд сарын борлуулалт,
Store Name-аар filter хийхэд салбар тус бүрийн борлуулалт,
City-аар filter хийхэд хот тус бүрийн борлуулалтыг
дахин тус тусад нь Measure бичихгүйгээр харах боломжтой.
Энэ бол зөв Data Model-ийн хамгийн том давуу талуудын нэг юм.
Дүгнэлт
Power BI дээр сайн report, dashboard хийхийн тулд зөвхөн visualization болон DAX мэддэг байх нь хангалтгүй.
Өгөгдөл хэрхэн бүтэцтэй байх, хүснэгтүүд хоорондоо хэрхэн холбогдох, аль хүснэгт нь Fact, аль нь Dimension болохыг ойлгох нь маш чухал.
Fact Table нь бизнесийн үйл ажиллагаа болон хэмжигдэхүйц үр дүнг агуулдаг.
Dimension Table нь Fact Table дахь өгөгдлийг тайлбарлаж, ангилж, олон өнцгөөс задлан шинжлэх боломжийг олгодог.
Эдгээрийг Star Schema хэлбэрээр зөв зохион байгуулснаар таны Power BI Data Model илүү цэгцтэй, ойлгомжтой, өргөтгөхөд хялбар болно.
Тиймээс Power BI сурч байгаа бол chart болон dashboard хийхээс өмнө Fact Table, Dimension Table, Relationship, Star Schema гэсэн үндсэн ойлголтуудыг сайн ойлгох хэрэгтэй.
Учир нь сайн Data Model бол сайн Power BI Report-ийн үндэс юм.
Power BI онлайн видео хичээл бүхий сургалт: https://data-school.mn/courses/power-bi-dashboard/

