Rodzaje relacji w modelu danych

W porównaniu do innych systemów zarządzania bazami danych w Power BI relacja wiąże się z kierunkowością. Kierunkowość lub też kardynalność (cardinality) odgrywa bardzo ważną rolę w  filtrowaniu danych pomiędzy tabelami w modelu danych. W trakcie ładowania danych Power BI Desktop automatycznie szuka relacji istniejących w naszym modelu danych (funkcję tą można oczywiście wyłączyć, co zalecam, gdy pracujemy na bardziej skomplikowanych modelach danych).
Wyróżniamy trzy rodzaje relacji:
  1. Jeden do jednego (1:1).
  2. Jeden do wielu (1:*).
  3. Wiele do wielu (*:*).

Relacja jeden do jednego (1:1)

Za pomocą tej relacji opisuje się połączenie między dwoma tabelami gdzie istnieje zbiór unikalnych wystąpień w obydwu tabelach. Tworzenie takiej relacji nie jest zalecane, świadczy to o nadmiarowych informacjach w tabelach, co może oznaczać, że model został niepoprawnie zaprojektowany. W tym przypadku warto rozważyć połączenie dwóch tabel (merge).

Relacja jeden do wielu (1:*)

Relacja jeden do wielu opisuje zależność między dwoma tabelami, gdzie tabela A zawiera zbiór unikatowych wartości dla tabeli B. W związku z omawianym wcześniej tematem, tabela A stanowi tabelę wymiarów dla tabeli B czyli tabeli faktów. Inaczej też możemy powiedzieć, że tabela A jest słownikiem tabeli B. Przykładem takiej relacji może być tabela kalendarzowa, w której kalendarz zawiera zbiór unikatowych wartości i tabela sprzedaży zawierająca roczną historię sprzedaży.

Relacja wiele do wielu (*:*)

Relacja ta opisuje przypadek, gdy wiele wartości (duplikatów) jest wspólnych pomiędzy dwiema tabelami. W miarę możliwości taka relacja nie jest zalecana, ponieważ brak unikatów wprowadza niejednoznaczność i może wprowadzić użytkownika w błąd. Ten rodzaj relacji powinien być używany tylko i wyłącznie w sprawdzonych przypadkach, a także powinien być dobrze wyjaśniony w dokumentacji technicznej modelu danych. Ważne jest odpowiednie przemyślenie tej relacji i poprawne zaplanowanie jej kierunku, a co za tym idzie zaplanowanie filtrów i miar bezpośrednio pod tę relację.

Kierunki filtrowania

Kierunek filtrowania oznaczony jest w relacji strzałką. Jej grot mówi o zależności pomiędzy tabelami. Zazwyczaj strzałka będzie skierowana w stronę tabeli faktów. Kierunki filtrowania umożliwiają filtrowanie danych w dwóch wariantach:
  1. Jeden kierunek
W tym przypadku do filtrowania danych można użyć tylko jednej tabeli z relacji. Przykładem będzie filtrowanie tabeli sprzedaży tabelą kalendarzową. Kierunek ten zakłada, że tabela sprzedaży nie będzie mogła filtrować tabeli kalendarzowej.
  1. Dwa kierunki
W tym przypadku tabel można używać do wzajemnego filtrowania. W ten sposób tabelę wymiarów można filtrować za pomocą tabeli faktów i odwrotnie. Ważne jest, że filtrowanie dwukierunkowe ma istotny wpływ na wydajność.
Ważne! Nie należy włączać filtrowania dwukierunkowego jeśli nie rozumiemy jego konsekwencji Włączenie dwukierunkowego filtrowania krzyżowego może prowadzić do niejednoznaczności, nadmiernego próbkowania, obniżenia wydajności, a przede wszystkim niespójnych wyników.

Interesujący artykuł? Podaj dalej!