Wanneer een model met relaties op basis van meerdere feitentabellen gebruiken
Een model met relaties op basis van meerdere feitentabellen is een datamodel waarmee u niet-gerelateerde tabellen in één databron kunt toevoegen en dat vervolgens, tijdens visuele analyse, gerelateerde velden gebruikt om de tabellen samen te hechten op basis van de context. In tegenstelling tot datacombinatie, bevinden de data zich binnen één enkele databron. De concepten van primaire en secundaire databronnen zijn niet van toepassing en er worden geen data uit left joins verwijderd. In tegenstelling tot een datamodel met één tabel, behouden meerdere basistabellen hun eigen context met betrekking tot tabellen die tussen hen worden gedeeld. Een datamodel met relaties op basis van meerdere feitentabellen biedt u meer opties voor het uitvoeren van analyses op basis van meerdere feitentabellen in Tableau.
Stel dat u de trend tussen het weer en de verkoop van ijs wilt evalueren. Het weer en de verkoop van ijs vinden beide plaats op specifieke tijden en specifieke plaatsen, maar er is geen directe verbinding tussen de verkoop van ijs en het weer. Dit zijn niet-gerelateerde stukjes data die beide betrekking hebben op de gedeelde concepten van datum en locatie.
Deze vraag leent zich voor het creëren van een model met relaties op basis van meerdere feitentabellen. Verkoop van ijs en Weer kunnen elk als basistabel worden toegevoegd en gerelateerd aan Datum en Locatie, wat gedeelde tabellen zijn.
Waarom hebben we de mogelijkheid ontwikkeld om niet-gerelateerde tabellen te modelleren?
Bij analyse gaat het vaak om het samenbrengen van datatabellen die niet eens een directe relatie met elkaar hebben, maar die beide betrekking hebben op dezelfde, gemeenschappelijke informatie (zoals datum of locatie). Een model met relaties op basis van meerdere feitentabellen ondersteunt losse semantische koppeling door het concept van graden van relatie te introduceren en de mogelijkheid om een datamodel te bouwen met meerdere, niet-gerelateerde basistabellen.
Semantische koppeling is een term die wordt gebruikt om te beschrijven hoe nauw gecombineerd de data zijn. Een join of een vereniging is een nauwe semantische koppeling; ze brengen meerdere tabellen samen in een nieuwe fysieke tabel die vervolgens als één tabel fungeert. Een relatie is een lossere koppeling tussen tabellen die tabellen logisch met elkaar verbindt, waarbij hun aparte status als afzonderlijke tabellen behouden blijft. Nog verder in het semantische koppelingsspectrum ligt datacombinatie, waarbij resultaten uit afzonderlijke databronnen visueel worden gecombineerd op basis van elementen die door beide worden gedeeld. Een model met relaties op basis van meerdere feitentabellen ligt dichter bij datacombinatie, aan het uiteinde van het spectrum, maar dan binnen één enkele databron in plaats van tussen meerdere databronnen.
Een relatiemodel met relaties op basis van meerdere feitentabellen (een datamodel met meerdere basistabellen) staat niet-gerelateerde tabellen in het model toe, zolang er ook gedeelde tabellen in het model bestaan. Tijdens de analyse worden velden uit een gedeelde tabel aan elkaar 'geplakt' met anderszins niet-gerelateerde datatabellen op basis van de gedeelde dimensies die ze gemeen hebben (zoals plaatsvinden op dezelfde plaats of op hetzelfde tijdstip). Alle voordelen van relaties blijven behouden, inclusief het behoud van de structuur van elke tabel of het oorspronkelijke detailniveau.
Net als bij een datamodel met een enkele basistabel, bepaalt Tableau het beste type join om achter de schermen te gebruiken op basis van de structuur van de visualisatie. Maar in een model met relaties op basis van meerdere feitentabellen, worden de koppelingsopties uitgebreid met joins buiten en kruislings joins om verschillende relatieniveaus aan te kunnen. Zie Over datamodellen met relaties op basis van meerdere feitentabellen voor meer informatie.
Waar komt de naam vandaan?
Relaties op basis van meerdere feitentabellen danken hun naam aan de analyse op basis van meerdere feitentabellen. In een datawarehouse-model worden data opgeslagen in een centrale feitentabel omringd door dimensietabellen. In deze context verwijst feit naar metingen of statistieken, wat numerieke datavelden zijn die feiten over de data vastleggen: de meetwaarden van Tableau. Dimensietabellen bevatten kenmerken voor deze feiten.
Schema's op basis van feitentabellen zijn vaak gestructureerd als een ster of een sneeuwvlok, afhankelijk van hoe de dimensietabellen zijn georganiseerd. Wanneer analyse moet worden uitgevoerd met meerdere feitentabellen, wordt dit analyse op basis van meerdere feitentabellen genoemd. De analyse wordt uitgevoerd in de context van de gemeenschappelijke dimensietabellen, ook wel gedeelde dimensies of conformerende dimensies genoemd. In Tableau ontwikkelt u deze datamodellen met behulp van relaties. Daarom hebben we deze reeks mogelijkheden 'relaties op basis van meerdere feitentabellen' genoemd.
Wanneer datamodellen met relaties op basis van meerdere feitentabellen gebruiken
Als uw data uit tabellen bestaan die allemaal aan elkaar gerelateerd zijn, kunt u databronnen met één basistabel gebruiken die zijn opgebouwd met relaties. Een model met relaties op basis van meerdere feitentabellen is nodig wanneer uw data verschillende concepten omvatten, hetzij in de vorm van meerdere feitentabellen, hetzij in verschillende niet-gerelateerde contexten.
Bouw uw databronnen waar mogelijk op met één basistabel. In een datamodel met één basistabel is elke tabel gerelateerd en hoeft er geen rekening te worden gehouden met de graden van relaties. Gebruik alleen relaties op basis van meerdere feitentabellen als die datamodelstructuur nodig is.
Analyse op basis van meerdere feitentabellen
Analyse op basis van meerdere feitentabellen is een kerngebruikscase voor relaties tussen meerdere feiten in Tableau. In dit voorbeeld delen Feit A en Feit B de tabel Datum.
Om dit in Tableau te modelleren, worden de feitentabellen basistabellen en worden er meerdere binnenkomende relaties tot stand gebracht voor hun gedeelde dimensietabel.
Andere scenario's
Datamodellen met relaties op basis van meerdere feitentabellen zijn echter niet alleen bedoeld voor analyse op basis van meerdere feitentabellen. Tableau vereist geen strikte definitie van feiten- of dimensietabellen. Elke tabel kan een basistabel zijn (hoewel deze wel moet voldoen aan de kenmerken van basistabellen). Dit zijn enkele scenario's waarbij een databron met meerdere basistabellen nuttig kan zijn:
- Doorlopen van fasen, zoals basistabellen voor aanmeldingen, cijferlijsten en alumni-evenementen voor een gedeelde tabel Student.
- Verschillende contexten voor dezelfde gebeurtenissen, zoals basistabellen voor de gebeurtenissen doktersafspraken en facturen, met gedeelde tabellen om de context voor artsen of patiënten in te stellen.
- Verschillende domeinen die met elkaar kunnen correleren, zoals scenario's die voorheen het beste konden worden behandeld met datacombinatie, zoals de verkoop van ijs en het weer gecorreleerd via de gedeelde tabellen Datum en Locatie.
In de Tableau-blogpost Wanneer en hoe u relaties op basis van meerdere feitentabellen in Tableau gebruikt (in het Engels) wordt uitgelegd wanneer relaties op basis van meerdere feitentabellen handig zijn.
Identificeer de basistabellen
In een model met relaties op basis van meerdere feitentabellen is directionaliteit van belang. Welke tabellen de basistabellen aan de linkerkant van het model zijn en welke tabellen downstream worden gedeeld, heeft invloed op de manier waarop de relaties worden geëvalueerd om de analytische resultaten te retourneren.
Overweeg een conceptueel vlinderdasmodel van facturen, afspraken, artsen en patiënten:
De juiste manier om het datamodel in Tableau op te bouwen is met Facturen en Afspraken als basistabellen, en met Artsen en Patiënten als gedeelde tabellen (dus Artsen en Patiënten niet als basistabellen).
Juist: Facturen en Afspraken als basistabellen | Onjuist: Artsen en Patiënten als basistabellen |
Conceptueel gezien is een patiënt (of arts) de entiteit die de gebeurtenis van een afspraak en de gebeurtenis van een factuur aan elkaar verbindt.
Als uw datamodel achterstevoren is (zoals met Artsen en Patiënten als basistabellen in plaats van Afspraken en Facturen), zal de samenhechting van buitenste joins niet zo nuttig zijn. Uw analyse kan veel tabelgerichte meetwaarden en ambiguïteit aan het licht brengen. Als u dubbelzinnig gerelateerde velden tegenkomt die u niet had verwacht, evalueer dan opnieuw de tabellen die u als basistabellen gebruikt en kijk of uw datamodel moet worden omgekeerd.
Kenmerken van basistabellen en gedeelde tabellen
Als u analyses op basis van meerdere feitentabellen uitvoert, worden de feitentabellen de basistabellen en zijn alle gedeelde dimensietabellen gedeelde tabellen. Tableau vereist geen strikte naleving van de kenmerken van feiten- en dimensietabellen. Er zijn echter bepaalde kenmerken die u kunnen helpen om te bepalen welke tabellen basistabellen moeten zijn en welke gedeelde tabellen moeten zijn.
Basistabel | Gedeelde tabel |
Feitentabellen in een datawarehouse-schema | Gedeelde of conforme dimensietabellen in een datawarehouse-schema |
Specifiek voor de context of analyse (vluchtinformatie, energieverbruik) | Consistent concept voor verschillende contexten (datum, locatie) |
Veel meetwaarden | Voornamelijk dimensies |
Vaker bijgewerkt/transactioneel (medische afspraken, recepten, vitale functies) | Stabieler/duurzamer (dokter, patiënt) |
Heeft refererende sleutelvelden | Heeft primaire sleutelvelden |
Gebaseerd op gebeurtenissen (lesrooster, cijfer voor een opdracht) | Gebaseerd op entiteit (student, klaslokaal) |
Als er tussenliggende tabellen zijn tussen een basistabel en een gedeelde tabel, kunt u omwisselen welke de basistabel is zonder dat dit het datamodel fundamenteel verandert. (Zoals Saloninfo en Verkoop van ijs in het eerste voorbeeld.) Waar het om gaat is welke tabellen zich upstream van de gedeelde tabellen bevinden en welke worden gedeeld.
Een extra basistabel als alternatief
Er zijn verschillende scenario's die erop kunnen wijzen dat u een datamodel met relaties op basis van meerdere feitentabellen moet bouwen met meerdere basistabellen in plaats van één enkele basistabel voor de databron:
- Als u een databron met een cyclus probeert te bouwen, moet de downstream tabel een andere basistabel zijn.
- Als u een reeks tabellen hebt die gerelateerd zijn aan dezelfde sets relatieclausules (zoals datum en locatie), moeten deze dimensies worden verwijderd en in plaats daarvan in gedeelde tabellen worden omgezet.
- Dit is vooral handig omdat meerdere relatieclausules allemaal waar moeten zijn (logisch een EN) voordat de tabellen gerelateerd worden aan die records.
- Als u in plaats daarvan records wilt analyseren waarbij er één tegelijk waar kan zijn (een contextuele OF), wordt deze flexibiliteit geboden door in plaats daarvan een datamodel met gedeelde dimensietabellen op te zetten.
- Als u een combinatie gebruikt maar een gelijkwaardige combinatie wilt hebben zonder primaire en secundaire databronnen, bouw dan een datamodel dat de databronnen uit de combinatie combineert met de bijhorende koppelingsvelden in een gedeelde tabel of tabellen.