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.
Przykład:
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 QlikView to tabele logiczne. Aplikacja QlikView 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 liście wartości.
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.
Asocjacja w aplikacji QlikView, a naturalne sprzężenie zewnętrzne outer join w języku SQL
Asocjacja w aplikacji QlikView jest podobna do naturalnego sprzężenia zewnętrznego outer join w języku SQL. Asocjacja jest jednak bardziej ogólna. Sprzężenie zewnętrzne outer join w języku SQL jest zazwyczaj jednostronnym rzutowaniem jednej tabeli na drugą. Wynikiem asocjacji zawsze jest pełne (dwustronne) naturalne sprzężenie zewnętrzne outer join.
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 QlikView może mieć trudności z ustaleniem, która z tabel ma być używana do obliczania częstotliwości danych.
Aplikacja QlikView 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 QlikView 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
- Na liście wartości przedstawiającej pole nie można wyświetlać informacji o częstotliwości.
- Pola statystyk takiego pola pokazują brak wartości dla większości danych statystycznych.
- 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 QlikView 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 liście wartości pokazującej częstotliwość, w polu statystyk lub do obliczeń na wykresach.