Star Schema là gì? Mô hình dữ liệu chuẩn trong Power BI

Featured Image 1200×628@2x

Data modeling là gì và vì sao nó quan trọng?

★ NỀN MÓNG CỦA BÁO CÁO

Data modeling (mô hình hóa dữ liệu) là cách bạn sắp xếp các bảng dữ liệu và mối quan hệ giữa chúng trong Power BI. Một mô hình tốt giúp báo cáo chạy nhanh, công thức DAX đơn giản và số liệu đúng khi lọc theo bất kỳ chiều nào.

Nhiều người mới dùng Power BI thường làm theo thói quen từ Excel: gộp tất cả vào một bảng phẳng thật lớn (mỗi dòng là một đơn hàng, kèm tên khách, địa chỉ, tên sản phẩm, nhóm hàng, cửa hàng…). Cách này dễ làm lúc đầu nhưng nhanh chóng gây rắc rối:

🐢 File nặng, báo cáo chậm

thông tin khách hàng, sản phẩm bị lặp lại trên hàng triệu dòng.

✏️ Khó cập nhật

đổi tên một nhóm hàng phải sửa ở rất nhiều dòng.

🧩 DAX phức tạp

so sánh cùng kỳ, lũy kế, đếm khách hàng duy nhất… đều khó viết hơn.

🔌 Không ghép được nguồn mới

khi có thêm bảng kế hoạch doanh thu hay chi phí, không biết nối vào đâu.

Giải pháp phổ biến và được Microsoft khuyến nghị cho Power BI là Star Schema.

Star Schema là gì?

Star Schema (lược đồ hình sao) là cách tổ chức dữ liệu gồm một bảng Fact ở trung tâm và nhiều bảng Dimension bao quanh, nối với nhau bằng quan hệ một – nhiều. Khi vẽ ra, mô hình trông giống một ngôi sao, nên có tên gọi như vậy.

FACT

Bảng Fact (bảng sự kiện)

Bảng Fact lưu các sự kiện đo lường được: mỗi dòng là một giao dịch, một lượt bán, một lượt truy cập… Bảng này thường có rất nhiều dòng và chứa hai loại cột:

  • Cột khóa ngoại để nối sang các bảng Dimension (MaNgay, MaSanPham, MaKhachHang, MaCuaHang).
  • Cột số đo dùng để tính toán (SoLuong, DonGia, ThanhTien, GiamGia).

DIMENSION

Bảng Dimension (bảng chiều)

Bảng Dimension mô tả ngữ cảnh của sự kiện: ai mua, mua gì, mua ở đâu, mua khi nào. Bảng này ít dòng hơn, mỗi dòng là duy nhất theo một khóa chính, và chứa các cột dùng để lọc, nhóm, cắt lát báo cáo (tên sản phẩm, nhóm hàng, thành phố, tháng, quý…).

VÍ DỤ

Ví dụ: mô hình bán lẻ

Giả sử bạn phân tích doanh thu cho một chuỗi cửa hàng bán lẻ. Mô hình Star Schema sẽ gồm:

Bảng Loại Nội dung chính
Fact_BanHang Fact MaNgay, MaSanPham, MaKhachHang, MaCuaHang, SoLuong, ThanhTien
Dim_Ngay Dimension Ngày, Tháng, Quý, Năm
Dim_SanPham Dimension Mã, tên sản phẩm, nhóm hàng, thương hiệu
Dim_KhachHang Dimension Mã, tên khách hàng, giới tính, nhóm tuổi, thành phố
Dim_CuaHang Dimension Mã, tên cửa hàng, khu vực, quản lý

Trong Power BI, mỗi bảng Dimension nối với Fact_BanHang theo quan hệ 1 – nhiều (1:*), chiều lọc một chiều từ Dimension sang Fact. Nhờ vậy, khi bạn chọn “Quý 3” hay “Hà Nội” trên slicer, mọi con số trong bảng Fact được lọc chính xác.

💡 Mẹo dễ nhớ: Fact trả lời câu hỏi “bao nhiêu?”, Dimension trả lời câu hỏi “theo cái gì?”. “Doanh thu (Fact) theo tháng, theo nhóm hàng, theo cửa hàng (Dimension).”

So sánh bảng phẳng, Star Schema và Snowflake Schema

Ngoài Star Schema, bạn sẽ còn gặp Snowflake Schema (lược đồ bông tuyết): các bảng Dimension được tách nhỏ thêm (ví dụ Dim_SanPham nối tiếp sang Dim_NhomHang, Dim_NhomHang nối sang Dim_NganhHang). Bảng dưới đây giúp bạn so sánh nhanh:

Tiêu chí Bảng phẳng ★ Star Schema ❄ Snowflake Schema
Cấu trúc 1 bảng lớn 1 Fact + các Dimension Dimension tách nhiều tầng
Dung lượng Lớn, lặp dữ liệu Gọn Gọn nhất
Tốc độ báo cáo Chậm khi dữ liệu lớn Nhanh Chậm hơn Star do nhiều quan hệ
Viết DAX Khó với phép tính phức tạp Đơn giản, dễ đọc Phức tạp hơn
Dễ hiểu cho người dùng Dễ lúc đầu, rối về sau Rất dễ Khó hơn
Phù hợp với Power BI Ít Khuyến nghị Dùng khi bắt buộc

Kết luận: với Power BI, Star Schema là lựa chọn mặc định. Nếu dữ liệu nguồn đang ở dạng Snowflake, bạn nên gộp các bảng Dimension nhiều tầng lại trong Power Query trước khi đưa vào mô hình.

6 bước xây dựng Star Schema trong Power BI

BƯỚC 1

Xác định câu hỏi kinh doanh và “grain” của bảng Fact

Trước khi mở Power BI, hãy trả lời: báo cáo cần đo gì và mỗi dòng trong bảng Fact đại diện cho điều gì (grain). Ví dụ: “mỗi dòng là một sản phẩm trong một đơn hàng”. Grain rõ ràng giúp bạn tránh cộng trùng số liệu về sau.

BƯỚC 2

Tách bảng phẳng thành Fact và Dimension bằng Power Query

Trong Power Query, nhân bản (Reference) bảng gốc, giữ lại các cột mô tả cho từng Dimension, sau đó dùng Remove Duplicates trên cột khóa. Bảng Fact chỉ giữ các cột khóa và cột số đo.

BƯỚC 3

Tạo bảng ngày (Dim_Ngay)

Bảng ngày là Dimension quan trọng nhất, giúp các hàm Time Intelligence hoạt động chính xác. Bạn có thể tạo nhanh bằng DAX (Modeling › New table):

Dim_Ngay =
ADDCOLUMNS (
    CALENDAR ( DATE ( 2024, 1, 1 ), DATE ( 2026, 12, 31 ) ),
    "Nam", YEAR ( [Date] ),
    "Thang", MONTH ( [Date] ),
    "TenThang", FORMAT ( [Date], "MM/yyyy" ),
    "Quy", "Q" & QUARTER ( [Date] )
)

Sau đó vào Table tools › Mark as date table và chọn cột Date.

BƯỚC 4

Tạo relationship 1 – nhiều

Vào Model view, kéo khóa từ mỗi Dimension sang cột tương ứng trong Fact. Kiểm tra: Cardinality là One to many (1:*), Cross filter direction là Single. Sắp xếp Fact ở giữa, các Dimension xung quanh để dễ nhìn.

BƯỚC 5

Viết measure DAX trên bảng Fact

Thay vì kéo thẳng cột số vào biểu đồ, hãy tạo measure để tái sử dụng:

Doanh thu = SUM ( Fact_BanHang[ThanhTien] )

Doanh thu cùng kỳ =
CALCULATE ( [Doanh thu], SAMEPERIODLASTYEAR ( Dim_Ngay[Date] ) )

Tăng trưởng % =
DIVIDE ( [Doanh thu] - [Doanh thu cùng kỳ], [Doanh thu cùng kỳ] )

Nhờ Star Schema, các measure này tự động đúng khi lọc theo sản phẩm, khách hàng hay cửa hàng mà không cần viết thêm.

BƯỚC 6

Dọn dẹp mô hình

  • Ẩn các cột khóa trong bảng Fact (Hide in report view) để người dùng chỉ lọc qua Dimension.
  • Đặt tên bảng, cột rõ nghĩa, nhất quán (Fact_…, Dim_…).
  • Gom measure vào một bảng riêng (ví dụ _Measures) cho gọn.
  • Đặt định dạng số, tiền tệ, phần trăm cho từng measure.

Những lỗi thường gặp khi xây Star Schema

  • Khóa trong Dimension bị trùng: Power BI không tạo được quan hệ 1 – nhiều. Hãy loại trùng và xử lý khoảng trắng, chữ hoa/thường trong Power Query.
  • Dùng quan hệ hai chiều (Both) tràn lan: dễ gây kết quả sai và làm báo cáo chậm. Chỉ dùng khi thực sự cần.
  • Không có bảng ngày riêng: các hàm như SAMEPERIODLASTYEAR, TOTALYTD chạy sai hoặc không chạy.
  • Nối hai bảng Fact trực tiếp với nhau: hãy nối cả hai qua các Dimension chung (Dim_Ngay, Dim_SanPham).
  • Grain không rõ: trộn dòng cấp đơn hàng với dòng cấp sản phẩm trong cùng một Fact khiến số liệu bị cộng trùng.

Checklist kiểm tra mô hình

✅ Mỗi Fact có grain rõ ràng

✅ Mỗi Dimension có khóa duy nhất

✅ Quan hệ 1 – nhiều, lọc một chiều

✅ Có bảng ngày và đã Mark as date table

✅ Measure được viết bằng DAX, không kéo cột thô

✅ Đã ẩn cột khóa và đặt tên nhất quán

📅 Muốn thực hành Star Schema cùng giảng viên? Xem Lịch khai giảng tháng 10/2026 các khóa Power BI, SQL, Python, AI tại MCNA.

Câu hỏi thường gặp (FAQ)

Star Schema có bắt buộc trong Power BI không?

Không bắt buộc, nhưng đây là mô hình được Microsoft khuyến nghị vì giúp báo cáo nhanh hơn, DAX đơn giản hơn và số liệu chính xác hơn.

Một mô hình có thể có nhiều bảng Fact không?

Có. Ví dụ Fact_BanHang và Fact_KeHoach cùng nối với Dim_Ngay và Dim_CuaHang. Mô hình này đôi khi được gọi là Galaxy Schema.

Nên xử lý Star Schema trong SQL hay Power Query?

Nếu có data warehouse, nên xây sẵn bằng SQL ở phía nguồn. Nếu dữ liệu từ Excel hoặc file rời, Power Query là lựa chọn phù hợp.

Người mới có cần học Snowflake Schema không?

Chỉ cần hiểu khái niệm để nhận ra khi gặp. Khi làm việc với Power BI, bạn nên ưu tiên Star Schema.

Kết luận

Star Schema là nền móng của mọi báo cáo Power BI tốt. Chỉ cần nhớ nguyên tắc Fact để đo, Dimension để lọc, tạo bảng ngày riêng và dùng quan hệ 1 – nhiều một chiều, bạn đã tránh được phần lớn lỗi sai số và báo cáo chậm. Hãy thử tách một bảng phẳng bạn đang có thành Star Schema ngay hôm nay, bạn sẽ thấy sự khác biệt rõ rệt.

Nếu bạn muốn học bài bản data modeling, DAX và xây dashboard thực tế, khóa học Power BI tại MCNA Technology School sẽ đồng hành cùng bạn từ nền tảng đến dự án.

👉 Xem lịch khai giảng tháng 10/2026: Power BI, SQL, Python, AI – MCNA

Thông tin tác giả

Võ Ngọc Vương – Data Analyst tại MCNA Technology School

MCNA Technology School – Đơn vị tiên phong đào tạo AI, Big Data, Business Intelligence tại Việt Nam. Chuyên sâu về Power BI, Python, SQL và Data Analytics — đối tác đào tạo của 300+ doanh nghiệp.

Đối tác đào tạo: Viettel Global, Masan Group, Techcombank, VPBank, Daikin.

→ Chỉ mục