Mô hình hóa dữ liệu (Data Modelling) là một bước vô cùng quan trọng trong quá trình xây dựng báo cáo, bởi khi mô hình đủ tốt, bạn sẽ giúp cho mọi người hiểu được rõ cấu trúc của dữ liệu và thuận lợi hơn cho những bước tiếp theo trong quá trình xây dựng báo cáo hoàn chỉnh. Tuy nhiên, đây không phải là một công việc dễ dàng. Ở bài viết lần này, mình mong muốn cung cấp cho các bạn một công cụ tối ưu hóa và đơn giản hóa dữ liệu trong tay, đó là Star Schema.
Mô hình hóa dữ liệu dạng Star Schema
Có rất nhiều cách để đơn giản hóa data, song cách phổ biến nhất và được mọi Power BI DA tin tưởng là thiết kế cơ sở dữ liệu hình sao (star schema). Trong star schema, mỗi bảng trong dataset được coi là một bảng dim hoặc bảng fact, như minh họa ở hình dưới đây:

Bảng FACT và bảng DIM
Bảng fact (Fact tables) chứa dữ liệu của các quan sát hoặc các sự kiện: số lượng đơn hàng, số lượng sản phẩm, giá bán, thời gian giao dịch và số lượng giao dịch. Bảng fact có thể chứa các giá trị lặp lại.
Ví dụ, một sản phẩm có thể xuất hiện ở nhiều dòng, thể hiện sản phẩm được các khách hàng khác nhau mua ở thời điểm khác nhau. Các giá trị này có thể được tổng hợp lại để tạo các biểu đồ (visual). Ví dụ, biểu đồ mô tả tổng đơn hàng sẽ là biểu đồ tồng hợp từ dữ liệu trong bảng fact. Ở bảng fact, bạn sẽ thường thấy các cột gồm các số và các ngày. Các con số đó có thể là một đơn vị, kết quả đo lường, như số lượng bán hàng, hoặc có thể là khóa (key), như ID khách hàng. Ngày tháng được ghi nhận trong bảng có thể là ngày bán, hoặc ngày giao hàng.
Bảng dim (Dimension tables) chứa các chi tiết về dữ liệu trong bảng fact: thông tin sản phẩm, địa điểm, người bán, và loại đơn hàng, Các bảng này sẽ được nối đến các bảng fact thông qua cột khóa (key column). Bảng dim được sử dụng để lọc và nhóm bảng fact.
Bảng Dim chứa các giá trị là duy nhất, chẳng hạn, mỗi dòng trong bảng Product thể hiện một sản phẩm duy nhất và mỗi dòng riêng biệt trong bảng Customer thể hiện một khách hàng duy nhất. Đối với biểu đồ tổng sales, bạn có thể nhóm dữ liệu để quan sát tổng sales chia theo sản phẩm, trong đó cột sản phẩm (product) nằm trong bảng dim.
Bảng Fact thường lớn hơn bảng Dim vì bảng fact chứa rất nhiều sự kiện, ví dụ như chứa rất nhiều đơn hàng riêng biệt. Bảng Dim thì thường nhỏ hơn bởi vì thông thường bạn cần giới hạn số lượng các mục mà bạn có thể filter (lọc) và group (nhóm lại). Ví dụ, một năm chỉ bao gồm 12 tháng, hay nước Mỹ cũng chỉ có một số lượng bang nhất định.
Sau khi phân tích như trên, bạn hẳn sẽ thắc mắc làm thế nào để tạo các biểu đồ trong Power BI.
Giả sử bạn có hai bảng, Employee và Sales, như trong hình, với các dữ liệu phù hợp. Bởi vì bảng Sales có chứa giá trị các đơn hàng (sales amount) có thể tổng hợp (aggregate) được, nên sẽ được coi là bảng Fact. Bảng Employee có chứa tên của từng nhân viên cụ thể, dùng để lọc bảng Sales, nên được coi là bảng Dim. Hai bảng có một cột chung là EmployeeID, trong đó cột EmployeeID ở bảng Employee là khóa chính, nên bạn có thể tạo ra mối quan hệ giữa hai bảng dựa trên cột này.

Khi tạo các quan hệ, bạn có thể tạo các biểu đồ tương ứng theo mong muốn như ở hình dưới đây. Nếu bạn không tạo mối quan hệ này mà chỉ nhìn thấy có sự tương đồng giữa hai bảng, việc xây dựng biểu đồ sẽ trở nên khó khăn hơn nhiều.

Star schema và data model là nền tảng trong việc tổ chức các báo cáo: bạn càng tổ chức tốt các mối quan hệ trong model, bạn càng dễ tạo và duy trì các báo cáo trong tương lai.
Tìm hiểu về: Các loại quan hệ dữ liệu trong Power BI
Các bạn có thể tìm hiểu thêm về khóa học của Datapot về Data Modelling tại đây.