Niektóre scenariusze dla relacji M: M w modelu hurtowni danych
Większość serwerów OLAP i systemów ROLAP ma teraz sposób na radzenie sobie ze strukturami danych M: M, ale są pewne zastrzeżenia, na które należy zwrócić uwagę. Jeśli wdrożysz relacje M: M, musisz monitorować warstwę raportowania i narzędzia, które chcesz obsługiwać.
Scenariusz 1: Wymiar M: M na tabeli faktów
Przykładem może być wiele sterowników w polityce silnika. Jeśli dodasz lub usuniesz sterownik, transakcja dostosowania zasad może mieć związek z listą sterowników, która zmienia się wraz z dostosowaniem.
Opcja 1 - M: M tablica faktów kierowcy M
Będzie to dość duża ilość danych, ponieważ zawiera sterowniki x wiersze transakcji dla danej zasady. SSAS może wykorzystywać tę strukturę danych bezpośrednio, ale wolniej jest wyszukiwać za pomocą narzędzia ROLAP.
Jeśli relacja M: M jest oparta na jednostkach specyficznych dla wiersza faktów (np. Kierowcy w samochodzie), może to być odpowiednie również dla narzędzia ROLAP, pod warunkiem, że Twoje narzędzie ROLAP obsługuje relacje M: M (np. Przy użyciu kontekstów w biznesie Obiekty).
Opcja 2 - Tabela wymiarów „kombinacji” manekina
Jeśli mapujesz listę wspólnych kodów na tabelę faktów (tzn. Połączone jednostki nie są specyficzne dla wiersza faktów), możesz zastosować inne podejście, które zmniejszy ilość danych. Przykładem tego rodzaju scenariusza są kody ICD podczas wizyty szpitalnej. Każda wizyta w szpitalu będzie miała co najmniej jedną diagnozę ICD i / lub procedury. Kody ICD są globalne.
W takim przypadku możesz utworzyć osobną listę kombinacji kodów dla każdego przypadku. Utwórz tabelę wymiarów z jednym rzędem dla każdej odrębnej kombinacji i miej tabelę połączeń między kombinacjami a tabelami odniesienia dla samych kodów ICD.
Tabela faktów może mieć klucz wymiaru do wymiaru „kombinacji”, a wiersz wymiaru zawiera listę odniesień do rzeczywistych kodów ICD. Większość narzędzi ROLAP może wykorzystywać tę strukturę danych. Jeśli Twoje narzędzie będzie działać tylko z faktyczną relacją M: M, możesz utworzyć widok, który emuluje relację M: M między faktem a tabelą referencyjną kodowania. To byłoby preferowane podejście z SSAS.
Zalety opcji 1:
- Odpowiednio zindeksowane zapytania oparte na wyborze wierszy tabeli faktów o określonej relacji w tabeli M: M mogą być dość wydajne.
- Nieco prostszy model koncepcyjny
Zalety opcji 2:
- Przechowywanie danych jest bardziej kompaktowe
- Można emulować prosty związek 1: M, prezentując kombinacje w formacie czytelnym dla człowieka jako kod w wymiarze „kombinacji”. Może to być bardziej przydatne w przypadku głupszych narzędzi do raportowania, które nie obsługują relacji M: M.
Scenariusz 2: Relacja M: M między wymiarami:
Trudniej jest wymyślić przypadek użycia, ale można ponownie wyobrazić sobie coś z opieki zdrowotnej dzięki kodom ICD. W systemie analizy kosztów wizyta w szpitalu może stać się wymiarem i będzie miała związek M: M między wizytą (lub epizodem konsultanta w mowie NHS) a kodowaniem.
W takim przypadku można skonfigurować relacje M: M i ewentualnie skodyfikować ich renderowanie przez człowieka w wymiarze podstawowym. Zależności można realizować za pomocą prostych tabel łączy M: M lub poprzez tabelę „kombinacji” mostków, jak poprzednio. Tę strukturę danych można poprawnie przeszukiwać za pomocą obiektów biznesowych lub narzędzi ROLAP lepszej jakości.
Z góry mojej głowy, nie widzę, że SSAS może to wykorzystać bez sprowadzenia relacji do tabeli faktów, więc musiałbyś przedstawić widok relacji M: M między kodowaniem a tabelą faktów wiersze, aby użyć SSAS z tymi danymi.