Bảng Fact và bảng Dim, viết tắt của Dimension, là các khái niệm được sử dụng trong lĩnh vực data warehousing và data analytics để mô hình hóa và tổ chức dữ liệu.
Bạn có thể xem thêm 02 cách mô hình hoá dữ liệu phổ biến tại đây.
Bảng Dim
Bảng Dimension là bảng chứa các thuộc tính (attributes) mô tả các thông tin của 01 chiều (dimension) của dữ liệu. Bạn có thể hiểu nôm nay cứ một bảng dimension thường sẽ ứng với một loại đối tượng (class hoặc type) trong hiện thực. Mỗi dòng trong bảng đó là một đối tượng (object) thực tế.
Ví dụ: các bảng Dimension của một hệ thống bán lẻ xe hơi trên, ta có thể có các loại đối tượng như sau: sản phẩm, nhà phân phối, nhà cung cấp, thời gian. Tương ứng sẽ có 04 bảng Dimensions, bao gồm Dim_Product, Dim_Dealer, Dim_Branch, Dim_Time.
Bảng Fact
Bảng Fact là bảng chứa các thông tin số lượng (measurements) của dữ liệu. Thông thường, bảng Fact được xây dựng (cook) từ các raw data, và được thống kê theo giờ, ngày, tuần, tháng và năm (timeseries analysis).
Như ví dụ trên, các chỉ số Units_Sold và Revenue là 02 chỉ số của bảng Fact Revenue. Bốn cột còn lại trong bảng Fact Revenue sẽ tương ứng với 04 bảng Dimensions xung quanh. Việc liên kết sẽ thông qua khoá ngoại (ID) giữa chúng.
Bảng Fact là bảng trung tâm trong cả 02 mô hình dữ liệu kinh điển: Star Schema và Snowflake Schema. Việc xây dựng bảng Fact sẽ phụ thuộc vào nhu cầu báo cáo.
Bảng Fact vs Bảng Dim
Đặc điểm | Bảng Fact | Bảng Dimension |
Định nghĩa | Bao gồm các chỉ số đo lường các hoạt động trong tổ chức. | Bảng thông tin các đối tượng có liên quan tới bảng Fact. |
Thuộc tính | Trung tâm trong Star schema và Snowflake schema, xung quanh là các bảng Dim. | Nằm xung quanh bảng Fact trong Star schema và Snowflake Schema. |
Thiết kế | Thiết kế đúng với trọng tâm của vấn đề hay nhu cầu. | Phải bao quát các thông tin của một đối tượng. Tránh nhét vào nhiều thông tin của nhiều đối tượng cùng một nơi. |
Phục vụ | Một bảng Fact tập hợp các chỉ số đo lượng có liên quan tới các bảng Dim, dùng cho báo cáo, thống kê. | Thu thập các thông tin liên quan tới một đối tượng nào đó trong tổ chức (như thông tin cửa hàng chẳng hạn). |
Kiểu dữ liệu | Bảng Fact chứa các cột dữ liệu số liên quan tới các cột đối tượng, khoá ngoại của bảng Dim. | Mỗi bảng Dim chứa các thông tin về một đối tượng. Ví dụ bảng Product gồm Product Id, Category, SubCategory… |
Khoá chính | Khoá chính của bảng Fact là tập hợp không lặp lại các khoá ngoại từ các bảng Dim. | Mỗi bảng Dim đều có một khoá chính để xác định rõ tính độc nhất của mỗi dòng trong bảng. |
Lưu trữ | Được dùng để lưu trữ chỉ số, đồng thời để lọc kết quả trên nó dựa theo thông tin từ các bảng Dim. | Lưu trữ dữ liệu các đối tượng một cách chi tiết. |
Sự phân cấp | Không có. | Có sự phân cấp: Ví dụ đối tượng Địa Điểm có thể chứa Quốc Gia, Khu vực, Quận/Huyện, Mã Zip… |
Tóm Tắt
Bảng Fact và bảng Dim thường được kết hợp với nhau trong mô hình dữ liệu. Mỗi bảng Dimension được kết nối với bảng Fact thông qua các khóa ngoại (foreign keys). Chúng giúp cho việc truy xuất và phân tích dữ liệu trở nên dễ dàng và nhanh chóng hơn.