Ассоциации между логическими таблицами
В базе данных может содержаться несколько таблиц. Каждая таблица может быть рассмотрена как список элементов, при этом каждая запись в списке представляет собой экземпляр объекта определенного типа.
Пример:
Если две таблицы являются списками различных элементов, например одна из таблиц является списком клиентов, а другая — списком счетов, и обе таблицы имеют общее поле, например номер клиента, это обычно означает, что между двумя таблицами существует взаимосвязь. В стандартных инструментах запроса SQL две таблицы практически всегда должны быть объединены.
Таблицы, определенные в скрипте QlikView, называются логическими таблицами. В приложении QlikView создаются ассоциации между таблицами на основе имен полей, а также выполняются объединения при выборе элементов, например при выборе значений полей в списке.
Поэтому ассоциация практически аналогична объединению. Единственным различием между ними является то, что объединение выполняется при выполнении скрипта, при этом в результате объединения обычно создается логическая таблица. Ассоциация создается после создания логической таблицы: ассоциации всегда создаются между логическими таблицами.
Сравнение ассоциации QlikView с SQL естественным объединениемouter join
Ассоциация QlikView напоминает SQL естественное объединение outer join. Однако ассоциация имеет более общие свойства: outer join в SQL обычно является односторонней проекцией одной таблицы на другую. Результатом ассоциации всегда является полное (двунаправленное) стандартное объединение outer join.
Информация о частотности в полях для ассоциирования
В использовании большинства полей для ассоциирования существуют некоторые ограничения. Это поля, которые являются общими в двух или нескольких таблицах. Если поле содержится в нескольких таблицах, в программе QlikView возникнет проблема определения таблицы для использования в вычислениях частотности данных.
В программе QlikView выполняется анализ данных на предмет однозначного способа идентификации основной таблицы, в которой будут производиться вычисления (иногда такой способ есть), однако в большинстве случаев программой может быть сделано лишь предположение. Поскольку неверное предположение может привести к неисправимым результатам (в вычислениях QlikView может возникнуть ошибка), программа разработана таким образом, чтобы не допустить определенные операции, когда интерпретация данных в ассоциируемых полях не является однозначной.
Ограничения для ассоциирования полей
- В списке, в котором отображается поле, не может отображаться частота.
- Для большинства статистических сущностей окна статистических данных недоступны.
- В диаграммах невозможно создавать выражения, содержащие функции, зависимые от данных частоты (такие как функции Sum, Count и значение Average) для поля, если не активен модификатор Distinct. После каждой повторной загрузки все выражения диаграммы в программе QlikView будут исследованы на предмет наличия неоднозначных случаев, возникших в результате изменений структур данных. Если будут найдены неоднозначные выражения, на экране отобразится предупреждение и это выражение будет деактивировано. Пока проблема не будет устранена, это выражение невозможно снова активировать. Если активирован файл журнала, все неоднозначные выражения будут включены в файл журнала.
Обходной прием
Существует простой способ преодоления этих ограничений. Еще раз загрузите поле из таблицы, в которой должно быть выполнено вычисление частот, и сохраните его с новым именем. Затем новое поле можно использовать для создания списка частот, статистических данных или для вычислений в диаграммах.