Arbeide med relasjoner og karinalitet

Fullført

I motsetning til andre databasestyringssystemer, Power BI har konseptet retningsalitet til et forhold. Denne retningsretningen er en viktig rolle i filtreringen av data mellom flere tabeller. Når du laster inn data, Power BI leter du automatisk etter relasjoner som finnes i dataene ved hjelp av samsvarende kolonnenavn. Du kan også bruke Behandle relasjoner til å redigere disse alternativene manuelt.

Du har for eksempel hentet mange tabeller fra salgsdatabasen, og bildet nedenfor er et eksempel på semantisk modell. Power BI har flere relasjoner automatisk, men du kan ikke finne ut hva de betyr. Du vil sikre at relasjonene gjenspeiler de som finnes i dataene dine, på en korrekt måte.

Relasjoner

Nedenfor finner du ulike typer relasjoner som du finner i Power BI.

Mange-til-én-forhold (*:1) eller én-til-mange-forhold (1: *)

  • Beskriver en relasjon der du har mange forekomster av en verdi i én kolonne, som bare er knyttet til én unik tilsvarende forekomst i en annen kolonne.

  • Beskriver retningen mellom fakta- og dimensjonstabeller.

  • Er den vanligste typen retningsalitet, og er standarden Power BI når du oppretter relasjoner automatisk.

Et eksempel på en ett-til-mange-relasjon vil være mellom tabellene Landnavn og Avtale, der du kan ha mange områder som er knyttet til ett unikt land.

1-1-forhold (1:1):

  • Beskriver en relasjon der bare én forekomst av en verdi er felles mellom to tabeller.

  • Krever unike verdier i begge tabeller.

  • Det anbefales ikke, fordi denne relasjonen lagrer overflødig informasjon og foreslår at modellen ikke er utformet på riktig måte. Det er bedre å kombinere tabellene.

Et eksempel på en 1-1-relasjon vil være hvis du hadde produkter og produkt-IDer i to forskjellige tabeller. Oppretting av en 1-1-relasjon er overflødig, og disse to tabellene bør kombineres.

Mange-til-mange-forhold (.) :

  • Beskriver en relasjon der mange verdier er felles mellom to tabeller.

  • Krever ikke unike verdier i noen av tabellene i en relasjon.

  • Anbefales ikke. hvis mangel på unike verdier introduserer tvetydighet, og brukerne vet kanskje ikke hvilken kolonne med verdier som refererer til hva.

Følgende figur viser for eksempel en mange-til-mange-relasjon mellom salgs- og ordretabellene i Ordredate-kolonnen , fordi det kan være tilknyttet flere ordrer. Tvetydighet introduseres fordi begge tabeller kan ha samme ordredato.

Kryssfilterretning

Data kan filtreres på den ene eller begge sider av en relasjon.

Med én enkelt kryssfilterretning:

  • Bare én tabell i en relasjon kan brukes til å filtrere dataene. Tabell 1 kan for eksempel filtreres etter tabell 2, men tabell 2 kan ikke filtreres etter tabell 1.

    Tips

    Følg pilens retning på forholdet mellom tabellene for å vite hvilken retning filteret skal flyte. Du vil vanligvis at disse pilene skal peke ut faktatabellen.

  • For en 1-til-mange- eller mange-til-en-relasjon vil kryssfilterretningen være fra "én"-siden, som betyr at filtreringen skjer i tabellen som har mange verdier.

Med både kryssfilterretninger eller toveis kryssfiltrering:

  • Én tabell i en relasjon kan brukes til å filtrere den andre. En dimensjonstabell kan for eksempel filtreres gjennom faktatabellen, og faktatabellene kan filtreres gjennom dimensjonstabellen.

  • Det kan hende at du har lavere ytelse ved bruk av kryssfiltrering toveis med mange-til-mange-relasjoner.

Et ord med forsiktighet om kryssfiltrering to retninger: Du bør ikke aktivere toveis kryssfiltreringsrelasjoner med mindre du fullt ut forstår forsterkingene av å gjøre det. Aktivering av det kan føre til tvetydighet, overprøving, uventede resultater og potensiell ytelsesreduksjon.

Karinalitet og kryssfilterretning

For 1-1-relasjoner er det eneste tilgjengelige alternativet toveis kryssfiltrering. Data kan filtreres på hver side av denne relasjonen, og føre til en atskilt, en utvetydig verdi. Du kan for eksempel filtrere på én produkt-ID og returnere ett enkelt produkt, og du kan filtrere på et produkt og returnere én enkelt produkt-ID.

For mange-til-mange-relasjoner kan du velge å filtrere i én enkelt retning eller i begge retninger ved å bruke kryssfiltrering toveis. Tvetyden som er knyttet til kryssfiltrering to retninger, forsterkes i et mange-til-mange-forhold, fordi det vil finnes flere baner mellom ulike tabeller. Hvis du oppretter et mål, en beregning eller et filter, kan det oppstå utilsiktede konsekvenser der dataene filtreres og, Power BI avhengig av hvilken relasjon motoren velger når du bruker filteret, kan det endelige resultatet være forskjellig. Denne situasjonen gjelder også for toveis forhold, og hvorfor du bør være forsiktig når du bruker dem.

Derfor er mange-til-mange-relasjoner og/eller toveis forhold kompliserte. Med mindre du er sikker på hvordan dataene ser ut når de samles opp, kan disse typene åpne relasjoner med flere filtreringsretninger introdusere flere baner gjennom dataene.

Opprette mange-til-mange-relasjoner

Vurder scenariet der du har oppgave å bygge opp et visuelt som undersøker budsjetter for kunder og kontoer. Du kan ha flere kunder på samme konto og flere kontoer med samme kunde, slik at du vet at du må opprette en mange-til-mange-relasjon.

Hvis du vil opprette denne relasjonen, kan du gå til Behandle relasjoner ny>. I resultatvinduet oppretter du en relasjon mellom Kunde-ID-kolonnen i CustomerTable og AccountTable. Relasjonen er angitt til mange-til-mange, og filtertypen er i begge retninger. Du vil få en advarsel om at du bare bør bruke denne typen forhold hvis det forventes at ingen av kolonnene vil ha unike verdier, fordi du kan få uventede verdier. Fordi du vil filtrere i begge retninger, velger du toveis kryssfiltrering.

Velg OK. Du har nå opprettet en mange-til-mange-relasjon.

Hvis du vil ha mer informasjon , kan du se Mange-til-mange-relasjoner i Power BI.