Datumsdimensies en relaties

Gevorderde gegevensmodellering in Power BI

Maarten Van den Broeck

Content Developer

Datum- en tijdsdimensies

  • Datumsdimensies bieden een ingebouwde kalender en verminderen complexe datumlogica
    • bijv. fiscaal jaar afstemmen op kalenderjaar
    • bijv. filteren op kwartaal, maand, week
  • Tijdsdimensies gaan over tijden van de dag: uur, minuut, seconde
  • Tijdsdimensies komen veel minder vaak voor dan datumsdimensies

Een datumsdimensie in een sterschema

Gevorderde gegevensmodellering in Power BI

Opties voor het maken van een datumsdimensie

Methode Voordelen Nadelen
Hosten in een database Ideaal als je data uit een warehouse haalt! Vereist een database
Makkelijk te delen met meerdere services, updaten is eenvoudig
Data in een bestand opslaan Geen database nodig, eenmalig aanmaken Bestand moet worden gemaakt
Power BI ondersteunt tekstbestanden goed Updaten is minder makkelijk dan hosten in een database
Met DAX maken Meer maatwerk mogelijk dan de vorige opties Aangepaste code schrijven nodig
Geen externe voorbereiding nodig Sommige functionaliteit is hier lastiger te bereiken
Gevorderde gegevensmodellering in Power BI

Een eenvoudige datumsdimensie maken met DAX

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() is een ingebouwde functie die alle datums in een bereik retourneert
Gevorderde gegevensmodellering in Power BI

Een eenvoudige datumsdimensie maken met DAX

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() is een ingebouwde functie die alle datums in een bereik retourneert
  • Maakt een [Date]-veld met elke datum tussen 1950-01-01 en vandaag $$ $$ $$
[Date]
1950-01-01
1950-01-02
...
2021-06-30
Gevorderde gegevensmodellering in Power BI

Een eenvoudige datumsdimensie maken met DAX

Month_Year = 


SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
  • CALENDAR() is een ingebouwde functie die alle datums in een bereik retourneert
  • Maakt een [Date]-veld met elke datum tussen 1950-01-01 en vandaag
  • Selecteer de kolommen die je wilt toevoegen $$ $$
Month Year
01 1950
01 1950
... ...
06 2021
Gevorderde gegevensmodellering in Power BI

Een eenvoudige datumsdimensie maken met DAX

Month_Year = 

DISTINCT(
SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
)
  • CALENDAR() is een ingebouwde functie die alle datums in een bereik retourneert
  • Maakt een [Date]-veld met elke datum tussen 1950-01-01 en vandaag
  • Selecteer de kolommen die je wilt toevoegen
  • Behoud alleen unieke rijen
Month Year
01 1950
02 1950
... ...
06 2021
Gevorderde gegevensmodellering in Power BI

Relaties definiëren

  • Met relaties kun je tabellen in Power BI koppelen
    • Filters over tabellen doorgeven
    • Kruistabelberekeningen toestaan
  • Relaties beheren
    • Automatisch detecteren op basis van kolomnamen
    • Handmatig aanpassen

een datamodel met relaties

Gevorderde gegevensmodellering in Power BI

Relatiesleutels

  • Relaties zijn gebaseerd op sleutels

    • Eén of meer kolommen die een unieke rij garanderen
  • Twee soorten sleutels:

    • Natuurlijke sleutel: bestaande kolom (bijv. e-mail)
    • Surrogaatsleutel: kunstmatige kolom (bijv. ID)
  • Power BI vereist relaties met één enkele kolom

Gevorderde gegevensmodellering in Power BI

Relatiesleutels

  • Relaties zijn gebaseerd op sleutels

    • Eén of meer kolommen die een unieke rij garanderen
  • Twee soorten sleutels:

    • Natuurlijke sleutel: bestaande kolom (bijv. e-mail)
    • Surrogaatsleutel: kunstmatige kolom (bijv. ID)
  • Power BI vereist relaties met één enkele kolom

  • Samengestelde sleutel: een sleutel van minstens twee kolommen
First Name Last Name Birth year Value
Chris P Bacon 1996 599
Jane Bonds 1998 523
Dwayne Pipe 1988 -566

$$

Composite Key Value
Chris P-Bacon-1996 599
Jane-Bondts-1998 523
Dwayne-Pipe-1988 -566
Gevorderde gegevensmodellering in Power BI

Kardinaliteit

  • Een maat voor de relatie tussen rijen van twee tabellen
  • Many-to-one/one-to-many: het meest gebruikt
    • Koppel één rij uit de dimensie aan één of meer rijen in de feitentabel

$$

één-op-veel-relatie

veel-op-één-relatie

Gevorderde gegevensmodellering in Power BI

Kardinaliteit

  • Minder gebruikelijk:

    • One-to-one één-op-één-relatie $$

    • Many-to-many veel-op-veel-relatie

Gevorderde gegevensmodellering in Power BI

Laten we oefenen!

Gevorderde gegevensmodellering in Power BI

Preparing Video For Download...