Data Model thể hiện mối quan hệ giữa các thực thể.
Mối quan hệ – data relationships giữa các bảng (thực thể) đó là cần thiết để tính toán chính xác kết quả và hiển thị thông tin chính xác trong báo cáo của bạn.
Trong thực tế tồn tại nhiều mối quan hệ từ đơn giản đến phức tạp!
Data relationships trong Data Model
- Quan hệ 1-1: như 1 khách hàng chỉ có 1 chứng minh thư
Mô tả mối quan hệ trong đó chỉ có một trường hợp của một giá trị là chung giữa hai bảng.
Yêu cầu giá trị duy nhất trong cả hai bảng.
- Quan hệ 1-n: như 1 khách hàng có nhiều hoá đơn
Mô tả mối quan hệ trong đó có nhiều trường hợp của giá trị trong một cột chỉ liên quan đến một trường hợp tương ứng duy nhất trong cột khác.
Mô tả hướng giữa bảng dữ kiện và bảng thứ nguyên.
- Quan hệ n-n: như nhiều lần bán hàng có thể có nhiều đơn hàng
Mô tả mối quan hệ có nhiều giá trị chung giữa hai bảng.
Không yêu cầu các giá trị duy nhất trong một trong hai bảng trong một mối quan hệ.
Đồng thời, chúng ta cũng cần xác định được chiều của dữ liệu:
- Một chiều: Chỉ một bảng trong mối quan hệ có thể được sử dụng để lọc dữ liệu. Ví dụ: Bảng 1 có thể được lọc theo Bảng 2, nhưng Bảng 2 không thể được lọc theo Bảng 1.
- Hai chiều: Một bảng trong mối quan hệ có thể được sử dụng để lọc bảng còn lại. Ví dụ, một bảng dim có thể được lọc qua bảng fact và bảng fact có thể được lọc qua bảng dim.
Các hàm DAX liên quan
Có một số hàm DAX có liên quan đến các mối quan hệ của mô hình. Mỗi chức năng được mô tả ngắn gọn trong danh sách có dấu đầu dòng sau:
- RELATED:: Trích xuất giá trị
- RELATEDTABLE: Truy xuất một bảng các hàng từ phía “nhiều”.
- USERELATIONSHIP: Buộc sử dụng mối quan hệ mô hình đang không hoạt động.
- CROSSFILTER:: Sửa đổi hướng bộ lọc chéo mối quan hệ (thành một hoặc cả hai) hoặc vô hiệu hóa bộ lọc (không có).
- COMBINEVALUES: Nối hai hoặc nhiều chuỗi văn bản thành một chuỗi văn bản.
- TREATAS: Áp dụng kết quả của một biểu thức bảng dưới dạng bộ lọc cho các cột từ một bảng không liên quan.
Ví dụ: Sử dụng hàm USERELATIONSHIP
Giả sử sếp bạn cần tính Tổng doanh số bán hàng qua Internet theo Shipping Date thay vì Order Date.
Hãy nhập công thức đơn giản sau:
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Hàm USERELATIONSHIP thực hiện tạo mối quan hệ giữa cột [ShippingDate] trong bảng InternetSales và[Date] trong bảng DateTime.