Star schema (lược đồ hình sao) là gì?
Đáp án mẫu
Star schema là mô hình kho dữ liệu có một bảng fact ở trung tâm được bao quanh bởi các bảng dimension, nhìn như hình ngôi sao.
Bảng fact ghi lại các sự kiện hoặc phép đo kinh doanh, mỗi dòng là một sự kiện ở một mức hạt (grain) đã chọn, ví dụ mỗi dòng là một dòng chi tiết đơn hàng. Nó chứa các số đo (số lượng, số tiền) và khoá ngoại đến các dimension.
Các bảng dimension mô tả ngữ cảnh: ai, cái gì, ở đâu, khi nào. Ví dụ khách hàng, sản phẩm, cửa hàng và ngày. Chúng rộng và phi chuẩn hoá, với các thuộc tính mô tả dùng để lọc và nhóm.
SELECT d.month, p.category, SUM(f.amount) AS revenue
FROM fact_sales f
JOIN dim_date d ON d.date_key = f.date_key
JOIN dim_product p ON p.product_key = f.product_key
GROUP BY d.month, p.category;
Lợi ích: truy vấn đơn giản ít join, hiệu năng tốt và mô hình dễ hiểu với người dùng nghiệp vụ. Snowflake schema chuẩn hoá thêm các dimension, tiết kiệm dung lượng nhưng thêm join. Luôn khai báo grain trước, vì nó quyết định ý nghĩa của mỗi dòng.
Ý chính
- Một bảng fact ở trung tâm nối với các bảng dimension phi chuẩn hoá
- Fact chứa số đo và khoá; dimension chứa ngữ cảnh mô tả
- Khai báo grain của bảng fact trước tiên
- Truy vấn đơn giản, nhanh; snowflake chuẩn hoá dimension nhưng thêm join
Câu hỏi nối tiếp thường gặp
- Bảng fact và bảng dimension khác nhau thế nào?
- Degenerate dimension là gì?
Lỗi thường gặp
- Trộn nhiều grain khác nhau trong một bảng fact
- Chuẩn hoá dimension quá nhiều và mất đi sự đơn giản