Verknüpfungen zwischen Tabellen

Datenbanken bestehen mitunter aus vielen Tabellen. Jede Tabelle kann als eine Liste aufgefasst werden, in der jede Zeile ein Objekt eines bestimmten Typs repräsentiert.

Beispiel:  

Wenn in zwei Tabellen Objekte verschiedenen Typs aufgelistet werden, etwa eine Liste mit Kunden und eine Liste mit Rechnungen, und die beiden Listen haben ein Feld gemeinsam, z. B. Kundennummer, so besteht zumeist eine Verbindung zwischen den beiden Tabellen. SQL-Tools erkennen dies und schließen solche Tabellen durch einen Join zusammen.

Die im QlikView-Skript definierten Tabellen werden interne Tabellen genannt. QlikView erstellt automatisch eine Verknüpfung zwischen zwei Tabellen auf Basis der Feldnamen. Diese Verknüpfung wird aktiviert, indem die betreffenden Werte innerhalb des QlikView-Dokuments ausgewählt werden, z. B. Auswahl in einer Listbox.

Somit ist eine Verknüpfung fast dasselbe wie ein Join. Der einzige Unterschied besteht darin, dass der Join bereits während der Ausführung des Skripts gemacht wird und als Ergebnis eine einzige interne Tabelle liefert, deren Daten aus verschiedenen Tabellen der Originaldatenquelle stammen. Verknüpfungen dagegen entstehen erst, nachdem die programminternen Tabellen angelegt sind.

Vier Tabellen: eine Länderliste, eine Kundenliste, eine Liste aller Transaktionen und eine der Mitgliedschaften, die einander über die Felder Country und CustomerID zugeordnet sind.

QlikView-Verknüpfung verglichen mit SQL Natural outer join

Eine QlikView-Verknüpfung hat Ähnlichkeit mit einem SQL Natural outer join. Die Verknüpfung ist jedoch noch umfassender: Ein outer join in SQL ist normalerweise eine Projektion einer Tabelle auf eine andere und weist damit nur in eine Richtung. Die Verknüpfung dagegen entspricht einem vollständigen (bidirektionalen) Natural outer join und weist in beide Richtungen.

Häufigkeiten in Schlüsselfeldern

Es gibt ein paar Beschränkungen bei der Verwendung der meisten assoziierten Felder, das heißt Felder, die bei zwei oder mehr Tabellen gleich sind. Wenn ein Feld in mehr als einer Tabelle vorkommt, weiß QlikView nicht, welche Tabelle es für die Berechnung der Datenhäufigkeit verwenden soll.

QlikView prüft zunächst, ob eine eindeutige Interpretation möglich ist. Das ist aber eher selten der Fall. Meistens kann das Programm nicht feststellen, in welcher Tabelle die Werte zur Ermittlung der Häufigkeiten gezählt werden müssen. Da ein Irrtum an dieser Stelle fatale Auswirkungen haben könnte, führt QlikView Operationen, die mehrdeutige Ergebnissen bringen könnten, nicht aus.

Beschränkungen bei der Verknüpfung von Feldern

  1. In der zu dem Feld gehörigen Listbox können keine Häufigkeiten angezeigt werden.
  2. Statistikboxen für diese Felder zeigen für die meisten statistische Größen „nicht verfügbar“ an.
  3. In Diagrammen können keine Formeln definiert werden, in denen Häufigkeiten von Schlüsselfeldern in die Berechnung eingehen (zum Beispiel die Funktionen Sum, Count und Average), es sei denn, die Option Distinct ist aktiviert. Nach jedem Ladevorgang prüft QlikView, ob die Formeln in den Diagrammen noch eindeutige Ergebnisse liefern. Sollte das nicht der Fall sein, gibt das Programm eine Fehlermeldung aus, und die betreffende Formel wird deaktiviert. Sie kann erst wieder aktiviert werden, wenn Eindeutigkeit gegeben ist. Wird beim Ladevorgang eine log-Datei erstellt, sind dort die deaktivierten Formeln aufgelistet.

Problemumgehung

Diese Einschränkungen lassen sich leicht umgehen. Laden Sie das betreffende Feld noch einmal unter einem anderen Namen aus der Tabelle, aus der die Häufigkeiten ermittelt werden sollen. Dieses neue Feld können Sie für jegliche Operationen benutzen: Anzeige von Häufigkeiten, Statistiken, Diagramme usw.