Một số kịch bản cho mối quan hệ M: M trong mô hình kho dữ liệu
Hầu hết các máy chủ OLAP và hệ thống ROLAP đều có phương tiện để xử lý cấu trúc dữ liệu M: M, nhưng có một số lưu ý về vấn đề này mà bạn sẽ cần chú ý. Nếu bạn thực hiện các mối quan hệ M: M, bạn sẽ cần để mắt đến lớp báo cáo của mình và những công cụ nào bạn muốn hỗ trợ.
Kịch bản 1: M: M kích thước trên bảng thực tế
Một ví dụ về điều này có thể là nhiều trình điều khiển trong chính sách động cơ. Nếu bạn thêm hoặc xóa trình điều khiển, giao dịch điều chỉnh chính sách có thể có mối quan hệ với danh sách các trình điều khiển thay đổi với điều chỉnh.
Tùy chọn 1 - Bảng cầu nối trình điều khiển M: M
Điều này sẽ có khối lượng dữ liệu khá lớn, vì nó có các trình điều khiển x các hàng giao dịch cho một chính sách nhất định. SSAS có thể tiêu thụ cấu trúc dữ liệu này trực tiếp, nhưng truy vấn thông qua công cụ ROLAP chậm hơn.
Nếu mối quan hệ M: M của bạn dựa trên các thực thể dành riêng cho hàng thực tế (ví dụ: trình điều khiển trên xe hơi) thì điều này cũng có thể phù hợp với công cụ ROLAP, cung cấp công cụ ROLAP của bạn hỗ trợ các mối quan hệ M: M (ví dụ: sử dụng bối cảnh trong Kinh doanh Các đối tượng).
Tùy chọn 2 - Bảng thứ nguyên 'kết hợp' giả
Nếu bạn đang ánh xạ danh sách các mã phổ biến vào bảng thực tế (nghĩa là các thực thể được liên kết không đặc biệt với hàng thực tế) thì bạn có thể thực hiện một cách tiếp cận khác sẽ làm giảm khối lượng dữ liệu. Một ví dụ về loại kịch bản này là các mã ICD trong một lần khám nội trú. Mỗi lần khám nội trú sẽ có một hoặc nhiều chẩn đoán và / hoặc các thủ tục được liệt kê chống lại nó. Các mã ICD là toàn cầu.
Trong trường hợp này, bạn có thể tạo một danh sách riêng biệt về sự kết hợp mã trên mỗi trường hợp. Tạo một bảng thứ nguyên với một hàng cho mỗi kết hợp riêng biệt và có một bảng liên kết giữa các kết hợp và các bảng tham chiếu cho chính các mã ICD.
Bảng thực tế có thể có khóa thứ nguyên cho thứ nguyên 'kết hợp' và hàng thứ nguyên có một danh sách các tham chiếu đến mã ICD thực tế. Hầu hết các công cụ ROLAP có thể tiêu thụ cấu trúc dữ liệu này. Nếu công cụ của bạn sẽ chỉ hoạt động với mối quan hệ M: M thực tế thì bạn có thể tạo chế độ xem mô phỏng mối quan hệ M: M giữa thực tế và bảng tham chiếu mã hóa. Đây sẽ là cách tiếp cận ưa thích với SSAS.
Ưu điểm của tùy chọn 1:
- Được lập chỉ mục phù hợp, các truy vấn dựa trên việc chọn các hàng trong bảng thực tế có mối quan hệ nhất định thông qua bảng M: M có thể có hiệu quả hợp lý.
- Mô hình khái niệm đơn giản hơn một chút
Ưu điểm của tùy chọn 2:
- Lưu trữ dữ liệu nhỏ gọn hơn
- Bạn có thể mô phỏng mối quan hệ 1: M thẳng bằng cách trình bày các kết hợp theo định dạng có thể đọc được dưới dạng mã trên thứ nguyên 'kết hợp'. Điều này có thể hữu ích hơn trên các công cụ báo cáo giả mạo thiếu hỗ trợ cho các mối quan hệ M: M.
Kịch bản 2: Mối quan hệ M: M giữa các kích thước:
Khó hơn để nghĩ về một trường hợp sử dụng, nhưng người ta có thể dự tính một cái gì đó từ chăm sóc sức khỏe với mã ICD một lần nữa. Trên hệ thống phân tích chi phí, chuyến thăm bệnh nhân nội trú có thể trở thành một chiều và sẽ có mối quan hệ M: M giữa chuyến thăm (hoặc tập tư vấn trong NHS-speak) và mã hóa.
Trong trường hợp này, bạn có thể thiết lập các mối quan hệ M: M và có thể mã hóa kết xuất chúng có thể đọc được của chúng trên kích thước cơ sở. Các mối quan hệ có thể được thực hiện thông qua các bảng liên kết M: M thẳng hoặc thông qua bảng 'kết hợp' bắc cầu như trước. Cấu trúc dữ liệu này có thể được truy vấn chính xác thông qua Đối tượng kinh doanh hoặc các công cụ ROLAP chất lượng tốt hơn.
Ngoài đỉnh đầu, tôi không thể thấy SSAS có thể tiêu thụ thứ này mà không cần đưa mối quan hệ ngay xuống bảng thực tế, vì vậy bạn sẽ cần trình bày quan điểm về mối quan hệ M: M giữa bảng mã và bảng thực tế hàng để sử dụng SSAS với dữ liệu này.