Associazioni tra tabelle logiche

Un database può contenere molte tabelle. Ciascuna tabella può essere considerata un elenco di elementi; ogni record dell'elenco rappresenta un'istanza di un oggetto di qualche tipo.

Esempio:  

Se due tabelle sono elenchi di elementi differenti, ad esempio una è un elenco di clienti e l'altra un elenco di fatture, e le due tabelle hanno un campo in comune, ad esempio il codice del cliente, di solito significa che c'è una relazione tra le due tabelle. Negli strumenti di query SQL standard le due tabelle devono essere quasi sempre unite.

Le tabelle definite nello script di QlikView sono denominate tabelle logiche. QlikView effettua associazioni tra le tabelle basate su nomi di campo ed esegue le unioni quando viene effettuata una selezione, ad esempio di un valore di campo in una casella di elenco.

Ciò significa che un'associazione è quasi identica a un'unione. L'unica differenza è che l'unione viene eseguita quando viene eseguito lo script. La tabella logica è di solito il risultato dell'unione. L'associazione viene effettuata dopo la creazione della tabella logica. Le associazioni vengono effettuate sempre tra le tabelle logiche.

Quattro tabelle: un elenco di paesi, un elenco di clienti, un elenco di transazioni e un elenco di appartenenze, associati tra loro tramite i campi Country e CustomerID.

Confronto tra un'associazione di QlikView e un'outer join naturale di SQL

Un'associazione di QlikView è simile a un'outer join naturale di SQL. Tuttavia, l'associazione è molto più generale: un'outer join in SQL è di solito una proiezione a senso unico di una tabella su un'altra. Un'associazione risulta sempre in un'outer join naturale esterno completa (bidirezionale).

Informazioni sulla frequenza nei campi di associazione

Esistono alcune limitazioni per l'utilizzo della maggior parte dei campi di associazione, ad esempio campi comuni tra due o più tabelle. Quando un campo è presente in più tabelle, QlikView non è in grado di sapere quali tabelle utilizzare per il calcolo delle frequenze dei dati.

QlikView analizza i dati per vedere se esiste un modo non ambiguo per identificare una tabella principale in cui contare (talvolta esiste), ma nella maggior parte dei casi il programma può effettuare solo una stima. Poiché una stima errata potrebbe comportare conseguenze gravi (QlikView potrebbe eseguire calcoli errati), il programma è stato progettato per non consentire operazioni specifiche se l'interpretazione dei dati risulta ambigua per i campi di associazione.

Limitazioni per i campi di associazione

  1. Non è possibile visualizzare le informazioni sulla frequenza in una casella di elenco che mostra il campo.
  2. Le caselle Statistica del campo indicano n/a per la maggior parte delle entità statistiche.
  3. Nei grafici non è possibile creare espressioni contenenti funzioni che dipendono dalle informazioni sulla frequenza (ad esempio le funzioni Sum, Count e Average) sul campo, a meno che il modificatore Distinct non sia attivato. Al termine di ciascuna operazione di ricarica, QlikView esegue un'analisi di tutte le espressioni grafiche per rilevare eventuali ambiguità risultanti dalle modifiche apportate alle strutture dei dati. Se vengono trovate espressioni ambigue, viene visualizzata una finestra di dialogo di avviso e l'espressione viene disattivata. Non sarà possibile attivare l'espressione finché il problema non viene risolto. Se viene attivato un file di log, tutte le espressioni ambigue vengono elencate nel registro.

Soluzione

Esiste un modo semplice di superare queste limitazioni. Caricare il campo un'altra volta con un nuovo nome dalla tabella in cui devono essere effettuati i conteggi della frequenza. Quindi, utilizzare il nuovo campo per una casella di elenco con la frequenza, per una casella statistica o per i calcoli nei grafici.