Datamodel bouwen: Star vs Snowflake

Je begrijpt het verschil tussen een star- en snowflake schema en kunt een betrouwbaar datamodel opzetten.

Je kunt tabellen koppelen met de juiste relaties en een STAR Schema opzetten.

Je hebt je data netjes opgehaald en opgeschoond in Power Query. Alles lijkt klaar om visuals te maken. Maar zodra je filters gebruikt of meerdere tabellen combineert, kloppen de cijfers ineens niet meer. Herkenbaar?

Dat komt bijna altijd door een fout in het datamodel. En daar gaan we het nu over hebben.

Power BI werkt namelijk anders dan Excel. In Excel kun je alles in één grote tabel proppen. In Power BI bouw je een model met feiten en dimensies, die je koppelt via relaties. Als je die relaties verkeerd legt, gaat je analyse onderuit, ook al lijkt het dashboard goed.

"Power BI laat het toe… tot je publiceert en iemand filtert op jaar. Dan zie je ineens dubbele omzet."

Feitentabellen en dimensietabellen

Eerst het verschil:

  • Feitentabel = transacties, gebeurtenissen, meetbare dingen. Bijvoorbeeld: verkoopregels, facturen, boekingsregels.
  • Dimensietabel = beschrijvende info. Bijvoorbeeld: klanten, producten, kalender, medewerkers.
Vuistregel om snel te kiezen

Kun je het tellen, sommeren of berekenen? Feit. Beschrijft het wat, wie, waar of wanneer? Dimensie. Twijfel je? Dan is het meestal een dimensie, feiten zijn vrijwel altijd transactioneel.

Een stermodel is een eenvoudige datamodelstructuur waarin één centrale feitentabel omringd wordt door verschillende dimensietabellen. De feitentabel bevat kwantitatieve gegevens (zoals verkopen, kosten of aantallen), terwijl de dimensietabellen context bieden voor deze gegevens (zoals tijd, product of klant).

Stermodel: een centrale feitentabel omringd door dimensietabellen, gekoppeld met één-op-veel relaties. Bron: Microsoft Learn
Stermodel: een centrale feitentabel omringd door dimensietabellen, gekoppeld met één-op-veel relaties. Bron: Microsoft Learn

Kenmerken van het stermodel

  • Eenvoudige structuur: gemakkelijk te begrijpen en te implementeren.
  • Directe relaties: de feitentabel heeft directe relaties met elke dimensietabel, wat leidt tot snellere queryprestaties.
  • Optimale prestaties: door de eenvoud van het model zijn er minder relaties nodig tijdens het uitvoeren van queries.

Voorbeeld van een stermodel

Je werkt met verkoopgegevens. Je hebt een feitentabel genaamd Verkoop, die informatie bevat zoals Verkoopbedrag, Aantal en KlantID. Ook heb je dimensietabellen zoals Klanten, Producten en Tijd. Elke dimensietabel biedt aanvullende context voor de verkoopdata.

Je model begint altijd bij de feitentabel. Die koppel je aan de dimensies via unieke sleutels. Zo krijg je een Star Schema: één centrale tabel, met stralen naar de rand. Star Schema = stabiel, snel en betrouwbaar.

Normalisatie en denormalisatie, wat is het en waarom moet je dit snappen

Normalisatie betekent dat je data opsplitst in logische tabellen. Elke tabel heeft één onderwerp en zo min mogelijk herhaling.

  • Klanten in een klantentabel
  • Producten in een producttabel
  • Transacties in een feitentabel met sleutels

Dit zie je in bijna elk bronsysteem. Omdat het:

  • Minder fouten oplevert
  • Makkelijk te onderhouden is
  • Efficiënt werkt voor databases
Genormaliseerd: de verkooptabel bewaart alleen de ProductKey, niet de losse productkenmerken. Geen herhaling. Bron: Microsoft Learn
Genormaliseerd: de verkooptabel bewaart alleen de ProductKey, niet de losse productkenmerken. Geen herhaling. Bron: Microsoft Learn

Verder lezen

Laat je naam en mailadres achter, dan lees je de rest

Je krijgt meteen de hele les, en alle andere lessen blijven daarna ook open. Geen wachtwoord, geen bevestigingsmail.

Je adres blijft bij ons. We verkopen niets door en je meldt je af met één klik.