Ассоциации между логическими таблицами

В базе данных может содержаться несколько таблиц. Каждая таблица может быть рассмотрена как список элементов, при этом каждая запись в списке представляет собой экземпляр объекта определенного типа.

Пример:  

Если две таблицы являются списками различных элементов, например одна из таблиц является списком клиентов, а другая — списком счетов, и обе таблицы имеют общее поле, например номер клиента, это обычно означает, что между двумя таблицами существует взаимосвязь. В стандартных инструментах запроса SQL две таблицы практически всегда должны быть объединены.

Таблицы, определенные в скрипте QlikView, называются логическими таблицами. В приложении QlikView создаются ассоциации между таблицами на основе имен полей, а также выполняются объединения при выборе элементов, например при выборе значений полей в списке.

Поэтому ассоциация практически аналогична объединению. Единственным различием между ними является то, что объединение выполняется при выполнении скрипта, при этом в результате объединения обычно создается логическая таблица. Ассоциация создается после создания логической таблицы: ассоциации всегда создаются между логическими таблицами.

Четыре таблицы: список стран, список клиентов, список транзакций и список принадлежностей, которые ассоциированы друг с другом посредством полей Country и CustomerID.

Сравнение ассоциации QlikView с SQL естественным объединениемouter join

Ассоциация QlikView напоминает SQL естественное объединение outer join. Однако ассоциация имеет более общие свойства: outer join в SQL обычно является односторонней проекцией одной таблицы на другую. Результатом ассоциации всегда является полное (двунаправленное) стандартное объединение outer join.

Информация о частотности в полях для ассоциирования

В использовании большинства полей для ассоциирования существуют некоторые ограничения. Это поля, которые являются общими в двух или нескольких таблицах. Если поле содержится в нескольких таблицах, в программе QlikView возникнет проблема определения таблицы для использования в вычислениях частотности данных.

В программе QlikView выполняется анализ данных на предмет однозначного способа идентификации основной таблицы, в которой будут производиться вычисления (иногда такой способ есть), однако в большинстве случаев программой может быть сделано лишь предположение. Поскольку неверное предположение может привести к неисправимым результатам (в вычислениях QlikView может возникнуть ошибка), программа разработана таким образом, чтобы не допустить определенные операции, когда интерпретация данных в ассоциируемых полях не является однозначной.

Ограничения для ассоциирования полей

  1. В списке, в котором отображается поле, не может отображаться частота.
  2. Для большинства статистических сущностей окна статистических данных недоступны.
  3. В диаграммах невозможно создавать выражения, содержащие функции, зависимые от данных частоты (такие как функции Sum, Count и значение Average) для поля, пока активен модификатор Distinct. После каждой повторной загрузки все выражения диаграммы в программе QlikView будут исследованы на предмет наличия неоднозначных случаев, возникших в результате изменений структур данных. Если будут найдены неоднозначные выражения, на экране отобразится предупреждение и это выражение будет деактивировано. Пока проблема не будет устранена, это выражение невозможно снова активировать. Если активирован файл журнала, все неоднозначные выражения будут включены в файл журнала.

Обходной прием

Существует простой способ преодоления этих ограничений. Еще раз загрузите поле из таблицы, в которой должно быть выполнено вычисление частот, и сохраните его с новым именем. Затем новое поле можно использовать для создания списка частот, статистических данных или для вычислений в диаграммах.