Asocjacje między tabelami logicznymi

Baza danych może zawierać wiele tabel. Każdą tabelę można traktować jako listę, której każdy rekord odpowiada jednej instancji obiektu pewnego typu.

Example:  

Jeśli dwie tabele są listami różnych obiektów (na przykład jedna jest listą klientów, a druga listą faktur) i mają pole wspólne (na przykład numer klienta), zazwyczaj sygnalizuje to występowanie relacji między nimi. W standardowych narzędziach do obsługi zapytań SQL takie dwie tabele prawie zawsze będą sprzęgane.

Tabele zdefiniowane w skrypcie Qlik Sense to tabele logiczne. Aplikacja Qlik Sense dokonuje asocjacji między tabelami na podstawie nazw pól, natomiast sprzężenia są wykonywane po dokonaniu selekcji, na przykład po wybraniu wartości pola na panelu filtrowania.

Oznacza to, że asocjacja i sprzężenie to prawie to samo. Jedyna różnica polega na tym, że sprzężenie jest dokonywane podczas wykonywania skryptu — tabela logiczna jest zazwyczaj wynikiem takiego sprzężenia. Asocjacja jest natomiast tworzona po utworzeniu tabeli logicznej. Asocjacje są zawsze dokonywane między tabelami logicznymi.

Cztery tabele: lista krajów, lista klientów, lista transakcji i lista członkostwa. Między tabelami występuje asocjacja przez pola Country i CustomerID.

Four logical tables associated.

Asocjacja w aplikacji Qlik Sense a naturalne sprzężenie zewnętrzne w języku SQL

Asocjacja w aplikacji Qlik Sense jest podobna do naturalnego sprzężenia zewnętrznego w języku SQL. Asocjacja jest jednak bardziej ogólna. Sprzężenie zewnętrzne w języku SQL jest zazwyczaj jednostronnym rzutowaniem jednej tabeli na drugą. Wynikiem asocjacji zawsze jest pełne (dwustronne) naturalne sprzężenie zewnętrzne.

Informacje o częstotliwości w polach asocjowanych

Używanie pól asocjowanych (czyli pól wspólnych dla kilku tabel) podlega zazwyczaj pewnym ograniczeniom. Jeśli pole występuje w wielu tabelach, aplikacja Qlik Sense może mieć trudności z ustaleniem, która z tabel ma być używana do obliczania częstotliwości danych.

Aplikacja Qlik Sense analizuje dane w celu znalezienia jednoznacznego sposobu zidentyfikowania tabeli głównej używanej do zliczania. Czasami taki sposób istnieje, ale najczęściej program musiałby odgadywać wynik. Niepoprawne odgadnięcie wartości miałoby znaczenie krytyczne (wyglądałoby na to, że program pomylił się w obliczeniach), w aplikacji Qlik Sense niektóre operacje są zatem niedozwolone, gdy nie da się ustalić jednoznacznej interpretacji danych dotyczących pól asocjowanych.

Ograniczenia dotyczące asocjacji pól

  1. W panelu filtrowania przedstawiającym pole nie można wyświetlać informacji o częstotliwości.
  2. Pola statystyk takiego pola pokazują brak wartości dla większości danych statystycznych.
  3. W wykresach nie można tworzyć wyrażeń zawierających funkcje zależne od informacji o częstotliwości (Sum, Count i Average), jeśli nie jest używany modyfikator Distinct. Po każdym przeładowaniu aplikacja Qlik Sense dokonuje przeglądu wszystkich wyrażeń wykresu w celu sprawdzenia, czy w wyniku zmian w strukturach danych nie pojawiły się niejednoznaczności. W razie znalezienia niejednoznacznych wyrażeń zostanie wyświetlone okno dialogowe z ostrzeżeniem, a problematyczne wyrażenie zostanie wyłączone. Włączenie wyrażenia będzie możliwe dopiero po rozwiązaniu problemu. Jeśli włączone jest zapisywanie dziennika, wszystkie niejednoznaczne wyrażenia będą wymienione w dzienniku.

Obejście

Istnieje prosty sposób na obejście tych ograniczeń. Wystarczy załadować jeszcze raz pod nową nazwą potrzebne pole z tabeli, na podstawie której ma być obliczana częstotliwość. Takiego nowego pola można następnie używać na panelu filtrowania pokazującym częstotliwość, w polu statystyk lub do obliczeń na wykresach.