Een datamodel maken met relaties op basis van meerdere feitentabellen
Bij analyses worden vaak tabellen met data bij elkaar gebracht die geen directe relatie met elkaar hebben, maar die wel betrekking hebben op dezelfde, gemeenschappelijke informatie zoals een datum of locatie. Dit type analyse wordt ook wel analyse op basis van meerdere feitentabellen met gedeelde dimensies genoemd.
Om dit soort analyses in Tableau uit te voeren moet u een databron maken die gebruikmaakt van meerdere basistabellen die met elkaar zijn verbonden door gedeelde tabellen.
- Basistabellen zijn de meest linkse tabellen in het datamodel op het tabblad Databron. Raadpleeg Wanneer een model met relaties op basis van meerdere feitentabellen gebruiken voor richtlijnen over het bepalen van de tabellen die u als basistabellen gaat gebruiken.
- Gedeelde tabellen zijn downstream tabellen met meerdere binnenkomende relaties. Deze tabellen bevatten velden die kunnen worden gebruikt om niet-gerelateerde velden samen te voegen tijdens analyse in een visualisatie. Datum en Locatie zijn voorbeelden van vaak gedeelde tabellen.
Model opbouwen
Het maken van een datamodel met relaties op basis van meerdere feitentabellen is in wezen hetzelfde als het maken van elke andere databron die gebruikmaakt van relaties, maar met twee extra onderdelen: extra basistabellen en meerdere binnenkomende relaties met gedeelde tabellen.
- Maak verbinding met uw data. U kunt meerdere dataverbindingen gebruiken als uw tabellen niet allemaal in dezelfde database staan.
- Sleep een tabel naar het canvas om de eerste basistabel te maken.
- Sleep nog een tabel uit het linkerdeelvenster naar het neerzetgebied Nieuwe basistabel.
Tableau toont een waarschuwing dat u een datamodel maakt met meerdere basistabellen. We raden u aan alleen een model met meerdere basistabellen te maken als uw data dit nodig hebben. Gebruik anders een model met één basistabel om de complexiteiten te vermijden die horen bij een model met meerdere basistabellen.
- Sleep nog een veld naar het canvas en stel een relatie in met een van de basistabellen. Zo nodig elke relatie configureren.
- Beweeg de muis over de nog niet gerelateerde basistabel om een plusteken weer te geven (ook wel een 'gehaktbal' genoemd).
- Sleep het plustekenpictogram naar de gedeelde tabel om een nieuwe binnenkomende relatie te maken (ook wel een 'noedel' genoemd).
Optioneel: Blijf downstream- en basistabellen toevoegen. Klik en sleep het plustekenpictogram om naar wens gedeelde tabellen te maken.
Opmerking: in plaats van te beginnen met de basistabellen kunt u ook eerst een model met één basistabel maken en later extra basistabellen toevoegen.
Model verkennen
Een datamodel met meerdere basistabellen wordt gemaakt met relaties, maar niet alle tabellen zijn in dezelfde mate aan elkaar gerelateerd. Elke basistabel definieert een structuur, die elke tabel omvat die is gerelateerd aan die basistabel, ofwel direct gerelateerd of downstream van een gerelateerde tabel. Gedeelde tabellen bestaan in meerdere structuren. Zie Over datamodellen met relaties op basis van meerdere feitentabellen voor meer informatie over de mate van gerelateerdheid.
Wanneer u een model met meerdere basistabellen bekijkt, zijn er verschillende opties om het datamodel te verkennen en te beheren. Deze opties zijn vooral handig als een datamodel complex is.
In 2024.2 werden een aantal nieuwe lay-outdetails voor het datamodel geïntroduceerd. In een datamodel met relaties op basis van meerdere feitentabellen worden relaties gebundeld om bij te houden hoeveel binnenkomende relaties een tabel heeft. Ook hebben gedeelde tabellen (en downstream gedeelde tabellen) een dikkere omtrek dan tabellen die niet zijn gedeeld.
Terminologie
Tabellen in een datamodel met meerdere basistabellen hebben specifieke rollen. Basistabellen en gedeelde tabellen zijn de enige tabellen die in een datamodel met relaties op basis van meerdere feitentabellen moeten voorkomen. (Zonder meer dan één basistabel is er geen sprake van een datamodel met relaties op basis van meerdere feitentabellen. Zonder een gedeelde tabel die de basistabellen verbindt, is het geen geldig datamodel.)
Omdat deze modellen vaak complex zijn, is het handig om een gemeenschappelijke terminologie te gebruiken voor het bespreken van andere typen tabellen op basis van hoe ze in het datamodel passen.
- Basistabellen staan helemaal links en hebben geen inkomende relaties.
- In het voorbeeld zijn Inventaris, Marketing, Verkoop en Ondersteuning de basistabellen.
- Subbasistabellen bevinden zich tussen een basistabel en een gedeelde tabel.
- In het voorbeeld is Onderdelen een subbasistabel.
- Gedeelde tabellen hebben meerdere inkomende relaties.
- In het voorbeeld zijn Producten, Datums, Klant en Leverancier gedeelde tabellen.
- Downstream gedeelde tabellen hebben precies één inkomende relatie en hebben ergens upstream een gedeelde tabel.
- In het voorbeeld zijn Subcategorie en Categorie downstream gedeelde tabellen.
- Downstream niet-gedeelde tabellen hebben precies één inkomende relatie en hebben geen upstream gedeelde tabellen.
- In het voorbeeld zijn er geen downstream niet-gedeelde tabellen.
- Basistabellen: Inventaris, Marketing, Verkoop en Ondersteuning
- Subbasistabel: Onderdelen
- Gedeelde tabellen: Producten, Datums, Klant en Leverancier
- Downstream gedeelde tabellen: Subcategorie en Categorie
- Downstream niet-gedeelde tabellen: geen
Een relatiestructuur identificeren
Beweeg de muis over een tabel om de tabellen te highlighten waaraan deze is gerelateerd. Tableau markeert de structuur voor deze tabel en markeert de niet-gerelateerde tabellen niet.
Details over relaties weergeven
Beweeg de muis over een relatie of een bundel relaties om de details in knopinfo te bekijken.
Een relatie selecteren
Wanneer een relatie is geselecteerd, krijgt deze een blauwe highlight in het datamodelcanvas en worden de details weergegeven in het deelvenster Details van tabel onder het datamodelcanvas. In het deelvenster Details van tabel kunt u de relatiecomponent inspecteren of wijzigen.
Er zijn meerdere manieren om een relatie te selecteren:
- Klik op een relatielijn (noedel) in het canvas. Elke relatie heeft een klikbare zone die precies deze noedel selecteert.
- Klik met de rechtermuisknop of houd de Control-toets ingedrukt en klik op een tabel in het canvas om het bijbehorende menu te openen. Selecteer de optie Relatie selecteren en kies met welke tabel u een relatie wilt instellen.
- Klik op een bundel relaties in het canvas om permanente knopinfo weer te geven (als u over een bundel beweegt, wordt de knopinfo weergegeven, u moet klikken om deze permanent te maken). Selecteer vervolgens een rij in de details van de knopinfo om die relatie in het model te highlighten.
- Open het menu in de werkbalk van het deelvenster Details van tabel en selecteer de gewenste relatie. U kunt dit menu ook gebruiken om een specifieke tabel te selecteren en het voorbeeld in het deelvenster te bekijken.
Wisselen met basistabel
Tussenliggende tabellen in een relatie tussen een basistabel en gedeelde tabellen geven u de mogelijkheid om de downstream tabel te verwisselen met de basistabel. Dit is uitsluitend een visuele verandering als hulp bij conceptueel begrip en verandert niets aan de structuur van het datamodel.
Klik met de rechtermuisknop of houd de Control-toets ingedrukt en klik op een downstream tabel en selecteer Wisselen met basistabel (tabelnaam). De wisseloptie is ook alleen aanwezig in de downstream tabel en niet in de basistabel.
De wisseloptie is niet beschikbaar voor tabellen die het datamodel zouden veranderen bij wisseling, zoals gedeelde tabellen of downstream gedeelde tabellen. Alleen downstream niet-gedeelde tabellen of subbasistabellen kunnen worden verwisseld met basistabellen.
Voorbeeld
In dit voorbeeld kunnen de tabellen Salon-info en de IJsverkoop worden verwisseld zonder dat de fundamentele structuur van het datamodel verandert. Er kunnen geen andere tabellen worden gewisseld.
- IJsverkoop is gerelateerd aan zowel Salon-info als de gedeelde tabel Datum.
- Salon-info is gerelateerd aan zowel IJsverkoop als de gedeelde tabel Locatie.
- Het weer is gerelateerd aan de gedeelde tabellen Datum en Locatie.
Deze twee modellen zijn conceptueel gelijkwaardig:
Een basistabel samenvouwen
U kunt een relatiepad, of structuur, ook samenvouwen tot alleen de basistabel om de weergave van het datamodel tijdelijk te vereenvoudigen.
Klik op de knop Samenvouwen of Uitvouwen op een basistabel om de hele structuur samen of uit te vouwen. U kunt ook met de rechtermuisknop klikken of Ctrl ingedrukt houden en klikken op een downstream tabel en Dit pad samenvouwen of Overige paden samenvouwen selecteren. Deze optie is niet beschikbaar voor gedeelde tabellen of tabellen downstream van gedeelde tabellen.
Het samenvouwen van een structuur tot de basistabel is uitsluitend visueel en activeert niet de waarschuwing Niet-gerelateerde tabellen. Een samengevouwen pad wordt aangegeven door een basistabel met een knop met een gestapelde tabel en de knop Uitvouwen. Samenvouwen heeft invloed op alle tabellen en relaties die alleen relevant zijn voor die structuur. Tabellen die worden gedeeld via een niet-samengevouwen pad, worden dus niet verborgen.
Gebruik de knop Uitvouwen knop om de basistabel en alles in de structuur opnieuw te openen.
Problemen oplossen
Eén databron maken
Alle tabellen moeten op de een of andere manier gerelateerd zijn aan de gehele databron. Als sommige tabellen niet gerelateerd zijn aan het algemene datamodel, verschijnt er een melding. De waarschuwing blijft staan totdat er geen tabellen of structuren meer volledig gescheiden zijn van de rest van het datamodel. Wanneer de meldig actief is, kan de databron niet worden gepubliceerd en kunt u de databron niet in een analyse gebruiken.
U kunt de melding openen en Visueel afzonderlijke niet-gerelateerde tabellen instellen om te achterhalen welke tabellen de melding hebben geactiveerd. Deze optie is handig als u een complex model hebt en moet achterhalen welke tabel of tabellen nog niet zijn gerelateerd aan de rest van het datamodel.
Voorbeeld
In de stappen onder Model maken wordt in stap 4 een melding weergegeven voordat een relatie wordt toegevoegd om verbinding te maken met de tweede basistabel.
Als u Visueel afzonderlijke niet-gerelateerde tabellen inschakelt, wordt de tabel Clubs verplaatst tot onder de lijn Niet-gerelateerde tabellen. Door het instellen van een relatie van Clubs met Studenten wordt de melding opgelost.
Een cyclus oplossen
Zelfs als sommige tabellen niet direct aan elkaar gerelateerd zijn, moet het hele datamodel toch een samenhangend geheel zijn. In dit voorbeeld definieert elke basistabel een structuur, maar er is geen gedeelde tabel die ze met elkaar verbindt. Dit is geen geldig analysemodel.
De twee groepen gerelateerde tabellen moeten worden gecombineerd via een gedeelde tabel...
...of het datamodel moet worden gemaakt als twee afzonderlijke databronnen.
Datamodelbeperkingen
Sommige relatiepaden tussen tabellen worden niet ondersteund in een model met meerdere basistabellen. Als u de gehaktbal niet kunt neerzetten wanneer u probeert een tweede binnenkomende relatie in een tabel te maken, controleer dan of de structuur die u probeert te maken, in Tableau wordt ondersteund. Voorbeelden van niet-ondersteunde modellen zijn:
Cycli
Cycli (waarbij er meer dan één relatiepad is van een upstream tabel naar dezelfde downstream tabel) worden niet ondersteund. Deze niet-ondersteunde structuur wordt ook wel een bowtie genoemd. Om dit soort relaties tussen tabellen in Tableau te modelleren gebruikt u meerdere basistabellen in plaats van een bowtie door de downstream tabel naar een andere basistabel te converteren.
Het datamodel moet een gerichte acyclische grafiek zijn. Dit betekent dat elke binnenkomende relatie met een tabel upstream traceerbaar moet zijn naar een andere basistabel.
Niet ondersteund. Tabel X heeft twee binnenkomende relaties die beide afkomstig zijn van tabellen downstream van Basistabel A | Ondersteund. Tabellen S en T hebben beide meerdere binnenkomende relaties, maar elke relatie komt uit een andere basistabel. | Ondersteund. Hoewel het visueel lijkt alsof er sprake is van een cyclus, zijn de binnenkomende relaties voor zowel Tabel S als Tabel T te herleiden tot verschillende basistabellen. |
Geneste gedeelde tabellen
Geneste gedeelde tabellen worden niet ondersteund. Alle tabellen downstream van een gedeelde tabel (een tabel met meerdere binnenkomende relaties) kunnen slechts één binnenkomende relatie hebben.