Associaties tussen logische tabellen

Een database kan vele tabellen bevatten. Elke tabel kan worden opgevat als een lijst van iets; elke record in de lijst vertegenwoordigt een exemplaar van een object van een bepaald type.

Example:  

Als twee tabellen lijsten zijn van verschillende zaken, bijvoorbeeld een lijst met klanten en een lijst met facturen, en in beide tabellen komt een gemeenschappelijk veld voor, bijvoorbeeld het klantnummer, betekent dit meestal dat er een relatie bestaat tussen de twee tabellen. In gangbare SQL-queryprogramma's moeten de twee tabellen vrijwel altijd worden gekoppeld.

De tabellen die in het Qlik Sense-script zijn gedefinieerd, worden logische tabellen genoemd. Qlik Sense zorgt via de veldnamen voor associaties tussen de tabellen en voert de joins (koppelingen) uit bij het maken van een selectie, bijvoorbeeld de selectie van een veldwaarde in een filtervak.

Dit betekent dat een associatie nagenoeg overeenkomt met een join. Het enige verschil is dat de join wordt uitgevoerd bij het uitvoeren van het script, waarbij de logische tabel gewoonlijk het resultaat is van de join. De associatie vindt plaats nadat de logische tabel is gemaakt. Associaties vinden altijd plaats tussen logische tabellen.

Vier tabellen: een lijst met landen, een lijst met klanten, een lijst met transacties en een lijst met lidmaatschappen, met elkaar geassocieerd via de velden Country en CustomerID.

Four logical tables associated.

Qlik Sense-associatie vergeleken met natuurlijke outer join in SQL

Een Qlik Sense-associatie lijkt op een natuurlijke outer join in SQL. De associatie is echter meer algemeen: een outer join in SQL is meestal een eenzijdige projectie van een tabel op een andere tabel. Een associatie resulteert altijd in een volledige (bidirectionele) natuurlijke outer join.

Frequentie-informatie in gemeenschappelijke velden

Het gebruik van gemeenschappelijke velden binnen twee of meer tabellen is gebonden aan enkele beperkingen. Wanneer een veld voorkomt in meer dan één tabel, kan Qlik Sense niet bepalen welke tabel moet worden gebruikt voor de berekening van gegevensfrequenties.

Qlik Sense analyseert de gegevens om te zien of er een eenduidige manier is om vast te stellen welke tabel de hoofdtabel is (die er soms is), maar in de meeste gevallen kan alleen maar worden geraden. Het programma is zo ontworpen dat bepaalde handelingen niet zijn toegestaan als de interpretatie van gegevens dubbelzinnig is voor gemeenschappelijke velden, omdat onjuist raden kan leiden tot fatale fouten (Qlik Sense lijkt dan een berekeningsfout te maken).

Beperkingen bij het associëren van velden

  1. U kunt geen frequentie-informatie weergeven in een filtervak waarin het veld is weergegeven.
  2. Statistiekobjecten voor het veld tonen n.v.t. voor de meeste statistische entiteiten.
  3. In diagrammen kunnen geen uitdrukkingen worden gemaakt met functies die afhankelijk zijn van frequentie-informatie (, -functies en ) voor het veld, tenzij de modificatie is geactiveerd.SumCountAverage Telkens bij het opnieuw laden scant Qlik Sense alle diagramuitdrukkingen op dubbelzinnigheden als gevolg van wijzigingen in gegevensstructuren. Als dubbelzinnige uitdrukkingen worden aangetroffen, verschijnt er een foutbericht en wordt de uitdrukking uitgeschakeld. U kunt de uitdrukking pas weer inschakelen als het probleem is opgelost. Als een logbestand is ingeschakeld, worden alle dubbelzinnige uitdrukkingen daarin vermeld.

Tijdelijke oplossing

Er is een eenvoudige manier om deze beperkingen te omzeilen. Laad het veld nog een keer onder een andere naam uit de tabel waarin u de frequentie wilt tellen. Gebruik dit nieuwe veld voor een filtervak met frequentie, voor een statistiekobject of voor berekeningen in de diagrammen.