Entendendo as referências circulares
Se existirem referências circulares (“loops”) em uma estrutura de dados, as tabelas serão associadas de forma que haja mais de um caminho de associações entre dois campos.
Esse tipo de estrutura de dados deve ser evitado o máximo possível, pois isso poderia levar a ambiguidades na interpretação dos dados.
O QlikView resolve o problema de referências circulares interrompendo o loop com uma tabela parcialmente desconectada. Quando QlikView encontra estruturas de dados circulares ao executar o script de carga, um diálogo de atenção será mostrado e uma ou mais tabelas serão definidas como parcialmente desconectadas. O QlikView normalmente tenta desconectar a maior tabela no loop, e muitas vezes, é uma tabela de transações a que deve ser desconectada. No visualizador de tabelas, as tabelas parcialmente desconectadas são indicadas por links para outras tabelas pontilhados em vermelho.
Exemplo:
Os dados são carregados a partir de três tabelas que incluem o seguinte:
- Nomes de algumas seleções de futebol nacionais
- Clubes de futebol de algumas cidades
- Cidades de alguns países europeus
Essa estrutura de dados não é muito boa, pois o nome do campo Team é usado com duas finalidades diferentes: equipes nacionais e locais. Os dados nas tabelas cria uma situação lógica impossível.
Ao carregar as tabelas no QlikView, o QlikView determina quais conexões de dados são menos importantes e desconecta essa tabela.
Abra o Visualizador de tabelas para ver como o QlikView interpreta a relevância das conexões de dados:
A tabela com cidades e os países a que pertencem agora está parcialmente conectada à tabela com seleções nacionais de países diferentes e à tabela com clubes locais de cidades diferentes.