Relasjoner mellom tabeller i en datamodell

Nettleseren støtter ikke video. Installer Microsoft Silverlight, Adobe Flash Player eller Internet Explorer 9.
Video: Relasjoner i Power View og PowerPivot

Få mer effekt av dataanalysen ved å opprette relasjoner mellom data i forskjellige tabeller. En relasjon er en tilkobling mellom to tabeller med data basert på én kolonne i hver. For å lettere forstå hvorfor relasjoner er nyttige kan du for eksempel tenke deg at du skal spore data for kundeordrer i firmaet ditt. Du kan spore alle dataene i en enkelt tabell som har denne strukturen:

Kunde-ID

Navn

E-post

DiscountRate

Ordre-ID

OrderDate

Produkt

Antall

1

Ashton

Chris.Ashton@contoso.com

,05

256

07/01/2010

Compact Digital

11

1

Ashton

Chris.Ashton@contoso.com

,05

255

03/01/2010

SLR Camera

15

2

Jaworski

michal.jaworski@contoso.com

,10

254

03/01/2010

Budget Movie-Maker

27

Denne metoden kan fungere, men den medfører lagring av overflødige data, for eksempel kundens e-postadresse for hver ordre. Lagring er billig, men hvis e-postadressen endres, må du passe på at du oppdaterer hver rad for kunden. En løsning på problemet er å dele dataene i flere tabeller og definere relasjoner mellom disse tabellene. Denne metoden brukes i relasjonsdatabaser som SQL Server. En database som du importerer, kan for eksempel representere ordredata ved å bruke tre relaterte tabeller:

Kunder

[Kunde-ID]

Navn

E-post

1

Ashton

Chris.Ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts

[Kunde-ID]

DiscountRate

1

,05

2

,10

Ordrer

[Kunde-ID]

Ordre-ID

OrderDate

Produkt

Antall

1

256

07/01/2010

Compact Digital

11

1

255

03/01/2010

SLR Camera

15

2

254

03/01/2010

Budget Movie-Maker

27

I en datamodell finnes det relasjoner som du oppretter eksplisitt, eller som Excel oppretter for deg når du importerer flere tabeller samtidig. Du kan også bruke Power Pivot-tillegget til å opprette eller behandle modellen. Se Opprette en datamodell i Excel for mer informasjon.

Hvis du bruker Power Pivot-tillegget til å importere tabeller fra den samme databasen, kan Power Pivot gjenkjenne relasjonene mellom tabellene basert på kolonnene som står i [hakeparentes], og gjengi disse relasjonene i en datamodell som bygges i bakgrunnen. Hvis du vil ha mer informasjon, kan du se Automatisk gjenkjenning og utledning av relasjoner i denne artikkelen. Hvis du importerer tabeller fra flere kilder, kan du opprette relasjoner manuelt som beskrevet i Opprette en relasjon mellom to tabeller.

Til toppen av siden

I denne artikkelen

Kolonner og nøkler

Relasjonstyper

Relasjoner og ytelse

Flere relasjoner mellom tabeller

Krav for en tabellrelasjon

Støttes ikke i en tabellrelasjon

Sammensatte nøkler og oppslagskolonner

Mange-til-mange-relasjoner

Slår sammen leksjoner og gjentas

Automatisk gjenkjenning og utledning av relasjoner i Power Pivot

Automatisk gjenkjenning av for navngitte sett

Utledning av relasjoner

Kolonner og nøkler

Relasjoner er basert på kolonner i hver tabell som inneholder de samme dataene. Kunder- og Ordrer-tabellene kan for eksempel relateres til hverandre fordi begge inneholder en kolonne som inneholder en kunde-ID. I eksemplet er kolonnenavnene like, men dette er ikke et krav. Én kolonne kan være KundeID og en annen Kundenummer så lenge alle radene i Ordrer-tabellen inneholder en ID som også er lagret i Kunder-tabellen.

I en relasjonsdatabase finnes det flere typer nøkler, som vanligvis er bare kolonner med spesielle egenskaper. Ved å forstå formålet med hver enkelt nøkkel blir det lettere å håndtere en datamodell som inneholder flere tabeller og leverer data til en pivottabell, et pivotdiagram eller en Power View-rapport.

Følgende nøkler er de mest interessante for vårt formål:

  • Primærnøkkel: identifiserer en rad i en tabell, for eksempel kunde-ID i Kunder-tabellen.

  • Alternativ nøkkel (eller kandidatnøkkel): en annen kolonne enn den primære nøkkelen, som er unik. En tabell for ansatte kan for eksempel inneholde en ansatt-ID og personnummer, og begge er unike.

  • Sekundærnøkkel: en kolonne som refererer til en unik kolonne i en annen tabell, for eksempel KundeID i Ordrer-tabellen, som refererer til KundeID i Kunder-tabellen.

I en datamodell refereres primærnøkkelen eller den alternative nøkkelen til som relatert kolonne. Hvis en tabell har både en primærnøkkel og en alternativ nøkkel, kan du bruke en hvilken som helst av dem som grunnlag for en tabellrelasjon. Sekundærnøkkelen kalles kildekolonne eller bare kolonne. I vårt eksempel ville en relasjon blitt definert mellom KundeID i Ordrer-tabellen (kolonnen) og KundeID i Kunder-tabellen (oppslagskolonnen). Hvis du importerer data fra en relasjonsdatabase, velger Excel som standard sekundærnøkkelen fra én tabell og den tilsvarende primærnøkkelen fra den andre tabellen. Du kan imidlertid bruke enhver kolonne som har unike verdier, for oppslagskolonnen.

Relasjonstyper

Relasjonen mellom Kunder og Ordrer er en én-til-mange-relasjon. Hver kunde kan ha flere ordrer, men en ordre kan ikke ha flere kunder. De andre relasjonstypene er én-til-én og mange-til-mange. Kunderabatter-tabellen, som angir en enkelt rabattsats for hver kunde, er i en én-til-én-relasjon med Kunder-tabellen.

Tabellen nedenfor viser relasjonene mellom de tre tabellene:

Relasjon

Type

Oppslagskolonne

Kolonne

Kunder-CustomerDiscounts

én-til-én

Customers.CustomerID

CustomerDiscounts.CustomerID

Kunder-ordrer

én-til-mange

Customers.CustomerID

Orders.CustomerID

Merknad:  Mange-til-mange-relasjoner støttes ikke i en datamodell. Et eksempel på en mange-til-mange-relasjon er en direkte relasjon mellom Produkter og Kunder, der en kunde kan kjøpe mange produkter, og det samme produktet kan kjøpes av mange kunder.

Relasjoner og ytelse

Når en relasjon er opprettet, må Excel vanligvis beregne alle formler som bruker kolonner fra tabeller i den nyopprettede relasjonen, på nytt. Behandlingen kan ta en stund, avhengig av datamengden og hvor komplekse relasjonene er. Se Beregne formler på nytt for mer informasjon.

Flere relasjoner mellom tabeller

En datamodell kan ha flere relasjoner mellom to tabeller. For å få nøyaktige beregninger trenger Excel en enkeltbane fra én tabell til den neste. Derfor er bare én relasjon mellom hvert tabellpar aktiv om gangen. De andre er inaktive, men du kan angi en inaktiv relasjon i formler og spørringer. I diagramvisning er den aktive relasjonen en heltrukket linje, og de inaktive er stiplede linjer. I AdventureWorksDW2012 inneholder for eksempel DimDate-tabellen en kolonne, DateKey, som er relatert til tre forskjellige kolonner i FactInternetSales-tabellen: OrderDate, DueDate og ShipDate. Hvis den aktive relasjonen er mellom DateKey og OrderDate, blir dette standardrelasjonen i formler hvis du ikke angir noe annet.

Til toppen av siden

Krav for en tabellrelasjon

En relasjon kan opprettes når følgende krav er oppfylt:

Kriterier

Beskrivelse

Unik identifikator for hver tabell

Hver tabell må ha én kolonne som unikt identifiserer hver rad i tabellen. Denne kolonnen refereres ofte til som primærnøkkelen.

Unike oppslagskolonner

Dataverdiene i oppslagskolonnen må være unike. Kolonnen kan med andre ord ikke inneholde duplikater. I en datamodell tilsvarer nullverdier og tomme strenger en tom verdi, som er en distinkt dataverdi. Det betyr at du ikke kan ha flere nullverdier i oppslagskolonnen.

Kompatible datatyper

Datatypene i kildekolonnen og oppslagskolonnen må være kompatible. Hvis du vil ha mer informasjon om datatyper, kan du se Datatyper som støttes idatamodeller.

Støttes ikke i en tabellrelasjon

Du kan ikke opprette en tabellrelasjon i en datamodell hvis nøkkelen er en sammensatt nøkkel. Du kan heller ikke opprette én-til-én- og én-til-mange-relasjoner. Andre typer relasjoner støttes ikke.

Sammensatte nøkler og oppslagskolonner

En sammensatt nøkkel består av flere kolonner. Datamodeller kan ikke bruke sammensatte nøkler. En tabell må alltid ha nøyaktig én kolonne som identifiserer hver rad i tabellen unikt. Hvis du importerer tabeller som har en eksisterende relasjon basert på en sammensatt nøkkel, ignorerer veiviseren for tabellimport i Power Pivot relasjonen fordi den ikke kan opprettes i modellen.

Hvis du vil opprette en relasjon mellom to tabeller som har flere kolonner som definerer primær- og sekundærnøkkel, må du først kombinere verdiene for å opprette én enkelt nøkkelkolonne før relasjonen opprettes. Dette kan du gjøre før du importerer dataene, eller du kan opprette en beregnet kolonne i datamodellen ved hjelp av Power Pivot-tillegget.

Mange-til-mange-relasjoner

En datamodell kan ikke ha mange-til-mange-relasjoner. Du kan ikke legge til foreningstabeller i modellen. Du kan imidlertid bruke DAX-funksjoner til å opprette mange-til-mange-relasjoner.

Egenkoblinger og løkker

Egenkoblinger er ikke tillatt i en datamodell. En egenkobling er en rekursiv relasjon mellom en tabell og seg selv. Egenkoblinger brukes ofte til å definere hierarkier for overordnede/underordnede. Du kan for eksempel koble en tabell med ansatte til seg selv for å lage et hierarki som viser ledelseskjeden i et firma.

Excel tillater ikke at det opprettes løkker mellom relasjoner i en arbeidsbok. Settet med relasjoner nedenfor er dermed ikke tillatt.

  • Tabell 1, kolonne a   til   tabell 2, kolonne f

  • Tabell 2, kolonne f   til   tabell 3, kolonne n

  • Tabell 3, kolonne n   til   tabell 1, kolonne a

Hvis du prøver å opprette en relasjon som resulterer i en løkke, genereres en feil.

Til toppen av siden

Automatisk gjenkjenning og utledning av relasjoner i Power Pivot

En av fordelene ved å importere data ved hjelp av Power Pivot-tillegget, er at Power Pivot noen ganger kan gjenkjenne relasjoner og opprette nye relasjoner i datamodellen det oppretter i Excel.

Når du importerer flere tabeller, gjenkjenner Power Pivot automatisk eventuelle eksisterende relasjoner mellom tabellene. Når du oppretter en pivottabell, analyserer Power Pivot også dataene i tabellene. Det gjenkjenner mulige relasjoner som ikke har blitt definert, og foreslår passende kolonner som skal inkluderes i disse relasjonene.

Gjenkjennelsesalgoritmen bruker statistiske data for verdiene og metadataene i kolonner til å opprette utledninger for å finne sannsynligheten for relasjoner.

  • Datatyper i alle relaterte kolonner må være kompatible. For automatisk gjenkjenning støttes bare data av typen heltall og tekst. Hvis du vil ha mer informasjon om datatyper, kan du se Datatyper som støttes idatamodeller.

  • For at relasjonen skal kunne gjenkjennes, må antall unike nøkler i oppslagskolonnen være større enn verdiene i tabellen på mange-siden. Nøkkelkolonnen på mange-siden i relasjonen må med andre ord ikke inneholde verdier som ikke finnes i nøkkelkolonnen i oppslagstabellen. La oss for eksempel si at du har en tabell som inneholder produkter med IDer (oppslagstabellen), og en salgstabell som inneholder salgene for hvert produkt (mange-siden i relasjonen). Hvis salgspostene inneholder IDen for et produkt som ikke har en tilsvarende ID i produkttabellen, kan ikke relasjonen opprettes automatisk, men du kan kanskje opprette den manuelt. For at Excel skal gjenkjenne relasjonen, må du først oppdatere produktoppslagstabellen med IDene for de manglende produktene.

  • Kontroller at navnet på nøkkelkolonnen på mange-siden ligner på navnet på nøkkelkolonnen i oppslagstabellen. Navnene trenger ikke å være helt like. I en forretningssammenheng har du for eksempel ofte variasjoner av det samme navnet på kolonner som hovedsakelig inneholder de samme dataene: Ans-ID, AnsattID, Ansatt-ID, Ans_ID og så videre. Algoritmen gjenkjenner like navn og tilordner en høyere sannsynlighet til kolonnene som har nesten like eller nøyaktig like navn. Hvis du vil øke sannsynligheten for at en relasjon opprettes, kan du prøve å endre navn på kolonnene i dataene du importerer, til navn som ligner kolonnenavnene i de eksisterende tabellene. Hvis Excel finner flere mulige relasjoner, oppretter den ikke en relasjon.

Denne informasjonen kan være til hjelp for å forstå hvorfor ikke alle relasjoner gjenkjennes, eller hvordan endringer i metadata, for eksempel feltnavn og datatyper, kan forbedre resultatene for automatisk gjenkjenning av relasjoner. Hvis du vil ha mer informasjon, kan du se Feilsøke relasjoner.

Automatisk gjenkjenning for navngitte sett

Relasjoner gjenkjennes ikke automatisk mellom navngitte sett og relaterte felt i en pivottabell. Du kan opprette disse relasjonene manuelt. Hvis du vil bruke automatisk gjenkjenning av relasjoner, fjerner du hvert navngitte sett og legger til de individuelle feltene fra det navngitte settet direkte i pivottabellen.

Utledning av relasjoner

I noen tilfeller kjedes relasjoner mellom tabeller automatisk sammen. Hvis du for eksempel oppretter en relasjon mellom de to første settene med tabeller nedenfor, antas det at det skal være en relasjon mellom de to andre tabellene, og en relasjon opprettes dermed automatisk.

  • Produkter og kategori – opprettes manuelt

  • Kategori og underkategori – opprettes manuelt

  • Produkter og underkategori – relasjon utledes

Hvis relasjonene skal kjedes automatisk, må relasjonene gå i én retning, som vist ovenfor. Hvis startrelasjonene er mellom, for eksempel Salg og Produkter og Salg og Kunder, kan ikke relasjonen utledes. Årsaken er at relasjonen mellom Produkter og Kunder er en mange-til-mange-relasjon.

Til toppen av siden

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×