5.7 Relaties beheren
Autodetect
U beheert een relatie eenvoudig via Manage relationships:
- kolom Active geeft aan of de relatie actief is.
- kolom From/To geeft weer welke kolom als sleutelveld gekozen is. In bovenstaand voorbeeld is de Klantcode geselecteerd als sleutelveld tussen Order en Klant.
- knop New is voor het aanmaken van een nieuwe relatie.
- knop Autodetect is voor het zelf leggen van relaties door Power BI.
- knop Edit is voor het bewerken van een bestaande relatie.
- knop Delete is voor het verwijderen van de geselecteerde relaties.
Power BI probeert zelf relaties te leggen. Controleer altijd goed of dit een logische verbinding is. Klopt de relatie volgens u niet, dan kunt u deze nog aanpassen.
5.7.1 Nieuwe relatie aanmaken
Klik in het venster Manage Relationships op de knop ‘New’. Er opent dan een nieuw venster waarmee u de nieuwe relatie definieert. Selecteer beide tabellen waar tussen u een relatie wilt leggen: (1) en (2). Klik de sleutelvelden aan in beide tabellen door op de kolomnaam te klikken (3) en (4). De twee kolommen zijn dan grijs gedrukt.
Zodra u beide velden hebt geselecteerd, zal het programma onderstaande instellingen automatisch invullen op basis van de inhoud van de sleutelvelden. De betekenis van deze instellingen worden hieronder behandeld.
5.7.2 Instellingen
cardinality
De cardinality geeft aan of er een unieke waarde of meerdere van dezelfde waarde aanwezig zijn in het sleutelveld van de tabellen die zijn verbonden.
Combinaties
veel-op-een
een-op-een
een-op-veel
veel-op-veel
De combinaties die kunnen ontstaan zijn als volgt:
- Veel-op-een (*:1): een veel-op-een-relatie is het meest voorkomende standaardtype relatie. Dit betekent dat de kolom in de ene tabel meer dan één exemplaar van een waarde kan hebben en dat de andere, gerelateerde tabel (vaak de opzoektabel genoemd) slechts één exemplaar van een waarde heeft.
- Een-op-een (1:1): in een een-op-een-relatie heeft de kolom in de ene tabel slechts één exemplaar van een bepaalde waarde. De andere, gerelateerde tabel, heeft slechts één exemplaar van een bepaalde waarde.
- Een-op-veel (1:*): in een een-op-veel-relatie heeft de kolom in de ene tabel slechts één exemplaar van een bepaalde waarde en kan de andere, gerelateerde tabel, meer dan een exemplaar van een waarde hebben.
- Veel-op-veel (*:*): met samengestelde modellen kunt u een veel-op-veel-relatie tussen tabellen tot stand brengen, waardoor de vereisten voor unieke waarden in tabellen worden verwijderd.
Houd u bij het opzetten van een datamodel die de dimensie versus feitenstructuur volgt altijd als basisregel een-op-veel-(1:*) cardinalty aan. Alleen bij uitzonderingen kunt u andere opties gebruiken, maar de basis blijft namelijk altijd 1:*.
één relatie
Standaard zal een relatie actief worden gemaakt. Er zijn echter gevallen waarbij dit niet het geval is. Tussen twee tabellen mag slechts één relatie actief zijn. Het leggen van een tweede relatie tussen twee tabellen is mogelijk, maar zal dan op inactief worden gezet.
In meer geavanceerde scenario’s kan met behulp van de DAX-formule USERELATIONSHIPS deze relatie tijdelijk voor een bepaalde berekening geactiveerd worden.
Niet-actieve relatie
stippellijntje
unieke waarden
Een niet-actieve relatie wordt in het datamodel aangeduid met een stippellijntje. Zaken waar u dan rekening mee moet houden zijn:
- Zorg dat er in dimensietabellen alleen unieke waarden voorkomen in de kolom van het sleutelveld.
- Tussen twee tabellen kan slechts één relatie actief zijn. De tweede relatie zal inactief zijn (aangeduid met een stippellijntje).
Cross filter direction
filterstroom
driehoekje
De ‘cross filter direction’-instellingen bepalen hoe de filterstroom geregeld wordt. In het datamodel wordt de filterrichting weergegeven door middel van het driehoekje in het midden van een relatie.
enkel
beide
Er zijn twee filterrichtingen mogelijk:
- Enkel: vanuit de 1:-zijde wordt de filter doorgegeven naar de tabellen met de many-zijde.
- Beide: de filter wordt vanuit beide tabellen aan elkaar doorgegeven.
Het advies is om de cross filter direction altijd op ‘Enkel’ te houden om ambiguïteit in het datamodel te voorkomen. Ook hier geldt dat in zeldzame gevallen de cross filter direction op beide richtingen gezet mag worden.