Asociaciones entre tablas lógicas

Una base de datos puede contener muchas tablas. Cada tabla puede considerarse como una lista de algo; cada registro de la lista representa una instancia de un objeto de algún tipo.

Example:  

Si dos tablas son listados de cosas distintas, por ejemplo, si una es una lista de clientes y otra una lista de facturas y ambas tablas tienen un campo en común, como puede ser el número de cliente, en general podemos decir que existe una relación entre ambas tablas. En las herramientas SQL estándar de consulta, las dos tablas siempre deberían ir unidas.

Las tablas definidas en el script de Qlik Sense se denominan tablas lógicas. Qlik Sense efectúa asociaciones entre las tablas basándose en los nombres de campo y lleva a cabo las uniones cuando se realiza una selección, por ejemplo, cuando el usuario selecciona un valor de campo en un filtro.

Esto significa que una asociación es casi lo mismo que una unión mediante ‘join’. La única diferencia está en que la unión join se efectúa al ejecutarse el script y la tabla lógica es normalmente el resultado del join. La asociación se realiza tras crearse la tabla lógica, las asociaciones siempre se realizan entre tablas lógicas.

Cuatro tablas: una lista de países, una lista de clientes, una lista de transacciones y una lista de suscripciones, que están asociadas entre sí a través de los campos Country y CustomerID.

Four logical tables associated.

Asociación de Qlik Sense comparada con un join natural externo (outer join) de SQL

Un asociación de Qlik Sense se parece a un join natural externo (outer join) de SQL. Sin embargo, la asociación es más general: un outer join en SQL suele ser una proyección unidireccional de una tabla en otra. Una asociación siempre da como resultado un natural outer join completo (bidireccional).

Información de frecuencia al asociar campos

Existen algunas limitaciones en cuanto al uso de la mayoría de campos de asociación, es decir, en campos que son comunes a dos o más tablas. Cuando un campo aparece en más de una tabla, Qlik Sense se enfrenta al problema de tener que saber cuál de las tablas debe utilizar para calcular las frecuencias de datos.

Qlik Sense analiza los datos para ver si existe alguna forma no ambigua de identificar una tabla principal en la que contar (a veces existe), pero en la mayoría de los casos el programa solo puede hacer una suposición. Dado que una suposición errónea podría ser fatal (Qlik Sense daría la impresión de cometer errores en los cálculos), el programa ha sido diseñado de tal manera que no permite determinadas operaciones cuando la interpretación de los datos es ambigua para campos asociados.

Limitaciones en la asociación de campos

  1. En un panel de filtrado que muestre el campo, no se podrá visualizar la información de frecuencia.
  2. Los cuadros de estadísticas del campo muestran n/a para la mayoría de entidades estadísticas.
  3. En los gráficos, no es posible crear expresiones que contengan funciones que dependan de la información de frecuencia (como las funciones Sum, Count y Average) en el campo, a menos que se active el modificador Distinct. Después de cada recarga, Qlik Sense analizarán todas las expresiones de los gráficos para ver si ha aparecido alguna ambigüedad como resultado de los cambios en las estructuras de los datos. Si el programa encuentra cualquier expresión ambigua, mostrará un diálogo de advertencia y desactivará esa expresión. La expresión no podrá activarse hasta que no se haya corregido el problema. Si se activa un archivo de registro, todas las expresiones ambiguas se enumeran en el registro.

Solución

Hay una manera muy simple de superar estas limitaciones. Cargue el campo una vez más, con un nuevo nombre, en la tabla donde deba contabilizarse la frecuencia. Utilice a continuación el nuevo campo para un panel de filtrado con la configuración de frecuencia, para un cuadro de estadísticas o para cálculos en sus gráficos.