Star schema (giản đồ hình sao) là gì?

marketing foundation

Tomorrow Marketers – Bài viết này dành cho những người xây dựng data model (mô hình dữ liệu) trong Power BI Desktop. Bài viết sẽ mô tả cách thiết kế Star Schema (giản đồ hình sao), và sự ảnh hưởng của chúng tới việc phát triển data model trong Power BI nhằm tối ưu hoá hiệu suất phân tích dữ liệu.

Tổng quan về Star Schema – giản đồ hình sao

Star Schema là cách tiếp cận mô hình bởi rational data warehouses. Với mô hình này, người thiết kế model cần phân loại các bảng của họ thành 2 loại là dimension và fact.

Dimension table (Bảng thứ nguyên) mô tả các thực thể kinh doanh (business entities) — những dữ liệu mà bạn cần lập mô hình. Ví dụ cho những thực thể này bao gồm: Sản phẩm (product), nhân sự (people), nơi bán hàng (place), các dữ liệu liên quan tới thời gian… Date dimension table (bảng thứ nguyên về ngày/tháng) là loại bảng phổ biến nhất mà bạn sẽ luôn thấy trong star schema. Một dimension table sẽ chứa một hoặc nhiều cột chính (key columns) hoạt động như một mã định danh duy nhất (unique identifier), và các cột mô tả (descriptive columns).

Fact tables (Bảng dữ kiện) lưu trữ các quan sát (observations) hoặc sự kiện (events), đó có thể là đơn hàng (sales orders), số dư trong kho (stock balances), tỷ giá hối đoái (exchange rates), nhiệt độ (temperatures),… Fact table sẽ chứa các cột chính (dimension key column) liên quan đến bảng thứ nguyên (dimension tables) và các cột gồm dữ liệu định lượng (numeric measure columns)

Các cột chính (dimension key column) xác định kích thước (dimensionality) của bảng fact, trong khi giá trị của chúng (dimension key values) xác định mức độ chi tiết (granularity) của bảng fact. Ví dụ: hãy xem xét một bảng fact được thiết kế để theo dõi các mục tiêu bán hàng, bảng này có 2 dimension key columns là Date và ProductKey. Có thể hiểu đơn giản là mục tiêu bán hàng (fact table) được theo dõi theo thời gian (date) và theo sản phẩm (product key). Tuy nhiên, không thể xác định mức độ chi tiết mà không xem xét các dimension key values. Trong ví dụ này, nếu các giá trị được lưu trữ trong cột Date là ngày đầu tiên của mỗi tháng, thì mức độ chi tiết của các mục tiêu bán hàng sẽ ở cấp độ số sản phẩm bán được mỗi tháng (chứ không phải mỗi ngày hay mỗi tuần). 

Nói chung, bảng dimension chứa số lượng hàng (rows) tương đối nhỏ. Mặt khác, bảng fact có thể chứa một số lượng hàng (rows) rất lớn và tiếp tục phát triển theo thời gian.

Đọc thêm: Các xây dựng data relationship trong Power BI

Vậy Star Schema là gì?

Star Schema là một kiến ​​trúc mô hình nhà kho dữ liệu (data warehouse) mà tại đó, một bảng fact được giải thích chi tiết bởi các bảng dimension. Cấu trúc này khi xem dưới dạng sơ đồ, trông giống như một ngôi sao với bảng fact tại trung tâm và các bảng dimension tỏa ra từ nó.

Chuẩn hóa và không chuẩn hóa (Normalization vs. denormalization)

Để hiểu một số khái niệm Star schema được mô tả trong bài viết này, bạn cần biết hai thuật ngữ: chuẩn hóa và không chuẩn hóa.

Chuẩn hóa (normalization) là thuật ngữ được sử dụng để mô tả dữ liệu được lưu trữ theo cách làm giảm dữ liệu lặp lại. Hãy xem xét một bảng sản phẩm có một key value column duy nhất, như Product key và các cột bổ sung mô tả đặc điểm sản phẩm, bao gồm tên sản phẩm (product), danh mục (category), màu sắc (color) và kích thước (size). Một bảng bán hàng được coi là chuẩn hóa khi nó chỉ lưu trữ cột chính (Product Key). Trong ảnh dưới đây, chỉ có cột ProductKey chứa dữ liệu sản phẩm.

Khi bạn lấy dữ liệu từ nguồn một export file hoặc trích xuất dữ liệu, có khả năng nó là một tập dữ liệu không chuẩn hóa. Trong trường hợp này, hãy sử dụng Power Query để chuyển đổi (transform) và định hình (shape) dữ liệu nguồn thành nhiều bảng chuẩn hóa.

Như được mô tả trong bài viết này, bạn nên cố gắng xây dựng và tối ưu các data model với các bảng dữ liệu đã chuẩn hóa.

Mức độ liên quan của Star schema với Power BI models

Mỗi báo cáo hình ảnh trong Power BI tạo ra một query gửi đến Power BI model (trong Power BI service gọi là dataset). Các queries này được sử dụng để lọc, nhóm và tóm tắt mô hình dữ liệu. Do đó, một mô hình được thiết kế tốt là một mô hình cung cấp các bảng để lọc (filter), phân nhóm (grouping) cũng như các bảng để tóm tắt (summarizing). Thiết kế này rất phù hợp với các nguyên tắc của Star Schema:

  • Bảng dimension hỗ trợ lọc (filter) và nhóm (grouping)
  • Bảng fact hỗ trợ tóm tắt (summarization) 

Trong Power BI, không có nơi nào để bạn định hình thuộc tính của bảng thuộc dạng dimension hay fact, việc định hình đó được xác định bởi model relationships (mối quan hệ trong mô hình). Model relationships thiết lập một đường truyền bộ lọc giữa hai bảng và chính thuộc tính Cardinality của mối quan hệ sẽ xác định loại bảng. 
Mối quan hệ thông thường là one-to-many (một-nhiều) hoặc ngược lại là many-to-one (nhiều-một). Bên “one” luôn là bảng dimension trong khi bên “nhiều” luôn là bảng fact. Để biết thêm thông tin về mối quan hệ, hãy xem Cách xây dựng data relationship trong Power BI.

Một mô hình có cấu trúc tốt nên bao gồm các bảng hoặc là thuộc bảng dimension hoặc là bảng fact. Tránh trộn hai loại với nhau cho một bảng. Bạn nên cố gắng cung cấp đúng số lượng bảng với các mối quan hệ phù hợp. Điều quan trọng nữa là các bảng fact luôn load data ở một mức độ nhất quán.

Cuối cùng, thiết kế mô hình có một phần khoa học và một phần nghệ thuật. Đôi khi bạn có thể phá vỡ quy tắc nếu làm như vậy là hợp lý.

Đọc thêm: Giới thiệu tính năng lọc dữ liệu trong Power BI

Tạm kết

Thiết kế Data Model là công việc vô cùng quan trọng và ảnh hưởng rất lớn tới việc khai thác dữ liệu của doanh nghiệp. Để hiểu hơn về tư duy này, hãy tham khảo khoá học Data System của Tomorrow Marketers. Khoá học giúp bạn trang bị tư duy chuyển đổi số, bằng cách xây dựng hệ thống dữ liệu nội bộ cho doanh nghiệp, và sở hữu những báo cáo quản trị theo dõi toàn bộ việc vận hành của doanh nghiệp. 

Tìm hiểu thêm khoá học Data System ngay tại đây.  

Bài viết được Tomorrow Marketers biên dịch từ tài liệu của Microsoft

Tagged: