Relationer mellem tabeller i en datamodel

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Din browser understøtter ikke video. Installer Microsoft Silverlight, Adobe Flash Player eller Internet Explorer 9.

Du kan føje mere strøm til din dataanalyse ved at oprette relationer amogn forskellige tabeller. En relation er en forbindelse mellem to tabeller, der indeholder data: en kolonne i hver tabel er grundlaget for relationen. Som eksempel på, hvorfor relationer er nyttige, kan du forestille dig, at du sporer data til din virksomheds kundeordrer. Du kan spore alle data i en enkelt tabel med en struktur som denne:

Kunde-id

Navn

Mail

NedsatTakst

Ordre-id

Ordredato

Produkt

Antal

1

Ashton

chris.ashton@contoso.com

,05

256

2010-07-01

Compact Digital

11

1

Ashton

chris.ashton@contoso.com

,05

255

2010-03-01

SLR Camera

15

2

Jaworski

michal.jaworski@contoso.com

,10

254

2010-03-01

Budget Movie-Maker

27

Denne fremgangsmåde kan bruges, men det omfatter at gemme mange overflødige data, såsom kundens e-mail-adresse for hver ordre. Lager er billigt, men hvis e-mail-adressen ændres, skal du sørge for, at du opdaterer hver række for den pågældende kunde. En løsning på dette problem er at opdele data i flere tabeller og definere relationer mellem disse tabeller. Den fremgangsmåde, der bruges i relationsdatabaser som SQL Server. En database, du importerer, kan f. eks. repræsentere ordredata ved hjælp af tre relaterede tabeller:

Kunder

[Kunde-id]

Navn

Mail

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

KundeRabatter

[Kunde-id]

NedsatTakst

1

,05

2

,10

Ordrer

[Kunde-id]

Ordre-id

Ordredato

Produkt

Antal

1

256

2010-07-01

Compact Digital

11

1

255

2010-03-01

SLR Camera

15

2

254

2010-03-01

Budget Movie-Maker

27

Relationer findes i en data model – en, du eksplicit opretter, eller en, som Excel automatisk opretter på dine vegne, når du importerer flere tabeller samtidigt. Du kan også bruge Power Pivot-tilføjelsesprogrammet til at oprette eller administrere modellen. Du finder flere oplysninger under Oprette en datamodel i Excel.

Hvis du bruger Power Pivot-tilføjelsesprogrammet til at importere tabeller fra den samme database, kanPower Pivot registrere relationerne mellem tabellerne ud fra kolonnerne i [kantede parenteser] og gengive disse relationer i en datamodel, som den opretter i baggrunden. Du kan finde flere oplysninger under Automatisk registrering og afledning af relationer i denne artikel. Hvis du importere tabeller fra flere kilder, kan du manuelt oprette relationer som beskrevet i Oprette en relation mellem to tabeller.

Relationer er baseret på kolonner i hver tabel, der indeholder de samme data. For eksempel kan du knytte en tabel med kunder til tabellen ordrer , hvis hver indeholder en kolonne, der indeholder et kunde-id. I eksemplet er kolonnenavnene de samme, men det er ikke et krav. Det kan være kunde-ID og en anden CustomerNumber, så længe alle rækkerne i tabellen Ordrer indeholder et ID, der også er gemt i tabellen kunder.

Der er flere forskellige typer nøgler i en relationel database. En nøgle er typisk kolonne med særlige egenskaber. Hvis du forstår formålet med hver nøgle, kan det hjælpe dig med at administrere en datamodel med flere tabeller, der leverer data til en pivottabel, et pivotdiagram eller en Power View-rapport.

Selvom der er mange typer nøgler, er disse de vigtigste for vores formål:

  • Primær nøgle: identificerer entydigt en række i en tabel, f. eks kunde -id i tabellen kunder .

  • Alternativ nøgle (eller kandidatnøgle): en anden kolonne end den primære nøgle, der er entydig. For eksempel kan tabellen Medarbejdere gemme et medarbejder-ID og et personnummer, som begge er entydige.

  • Fremmed nøgle: en kolonne, der refererer til en entydig kolonne i en anden tabel, f. eks kunde kunde i tabellen ordrer , som henviser til kunde-kunde i tabellen kunder.

I en datamodel kaldes den primære nøgle eller den alternative nøgle den relaterede opslagskolonne. Hvis en tabel har både en primær og en alternativ nøgle, kan du bruge begge som basis for en tabelrelation. Der refereres til den fremmede nøgle som kildekolonnen eller blot kolonnen. I vores eksempel defineres en relation mellem kunde- CustomerID i tabellen ordrer (kolonnen) og kunde- CustomerID i tabellen kunder (opslagskolonnen). Hvis du importerer data fra en relationsdatabase, vælger Excel som standard den fremmede nøgle fra én tabel og den tilsvarende primære nøgle fra en anden tabel. Men du kan bruge en hvilken som helst kolonne, der indeholder entydige værdier, som opslagskolonne.

Relationen mellem en kunde og en ordre er en en-til-mange-relation. Der kan til hver kunde være flere ordrer, men der kan ikke være flere kunder til en ordre. En anden vigtig tabelrelation er en-til-en. I vores eksempel her, tabellen CustomerDiscounts , der definerer en enkelt diskontosats for hver kunde, har en en til en-relation til tabellen kunder.

Denne tabel viser relationerne mellem de tre tabeller (kunder, CustomerDiscountsog ordrer):

Relation

Type

Opslagskolonne

Kolonne

Kunder-KundeRabatter

En-til-en

Kunder.Kunde-id

KundeRabatter.Kunde-id

Kunder-Ordrer

En-til-mange

Kunder.Kunde-id

Ordrer.KundeId

Bemærk!: Mange-til-mange-relationer understøttes ikke i en datamodel. Et eksempel på en mange til mange-relation er en direkte relation mellem Produkter og Kunder, hvor kunden kan købe mange produkter, og det samme produkt kan købes af mange kunder.

Når en relation er blevet oprettet, skal Excel typisk genberegne eventuelle formler, der bruger kolonner fra tabeller i den netop oprettede relation. Afhængigt af mængden af data og kompleksiteten af relationerne kan behandlingen tage noget tid. Du kan få mere at vide under genberegne formler.

En datamodel kan have flere relationer mellem to tabeller. Hvis du vil oprette nøjagtige beregninger, skal Excel have én enkelt sti fra én tabel til den næste. Derfor kan der kun være én aktiv relation mellem hvert tabelpar ad gangen. Selvom de andre er inaktive, kan du angive en inaktiv relation i formler og forespørgsler.

I diagram visning er den aktive relation en ubrudt linje, og de inaktive er stiplede linjer. I AdventureWorksDW2012 indeholder tabellen DimDate en kolonne, DateKey, der er relateret til tre forskellige kolonner i tabellen FactInternetSales: ordredato, DueDateog Forsendelsesdato. Hvis den aktive relation er mellem DateKey og OrderDate, er det standardrelation i formler, medmindre du angiver andet.

En relation kan oprettes, når følgende krav er opfyldt:

Kriterier

Beskrivelse

Entydigt id for hver tabel

I hver tabel skal der være en kolonne, der entydigt identificerer hver række i den pågældende tabel. Denne kolonne kaldes ofte den primære nøgle.

Entydige opslagskolonner

Dataværdierne i opslagskolonnen skal være entydige. Kolonnen må med andre ord ikke indeholde dubletter. I en datamodel svarer null-strenge og tomme strenge til en tom værdi, som er en entydig dataværdi. Det betyder, at opslagskolonnen ikke kan indeholde flere null-værdier.

Kompatible datatyper

Datatyperne i kildekolonnen og opslagskolonnen skal være kompatible. Du kan finde flere oplysninger om datatyper under understøttede datatyper i datamodeller.

I en datamodel kan du ikke oprette en tabelrelation, hvis nøglen er en sammensat nøgle. Du er også begrænset til at kunne oprette en-til-en-relationer og en-til-mange-relationer. Andre relationstyper understøttes ikke.

Sammensatte nøgler og opslagskolonner

En sammensat nøgle består af mere end én kolonne. Data modeller kan ikke bruge sammensatte nøgler: en tabel skal altid have nøjagtigt én kolonne, der entydigt identificerer hver række i tabellen. Hvis du importerer tabeller, der har en eksisterende relation, der er baseret på en sammensat nøgle, vil guiden tabel import i Power Pivot ignorere denne relation, fordi den ikke kan oprettes i modellen.

Hvis du vil oprette en relation mellem to tabeller, og der er flere kolonner, der definerer den primære nøgle og den fremmede nøgle, er du nødt til først at kombinere værdier for at oprette en enkelt nøglekolonne, før relationen oprettes. Du kan gøre dette, før du importerer dataene, eller ved at oprette en beregnet kolonne i datamodellen ved hjælp af Power Pivot-tilføjelsesprogram.

Mange-til-mange-relationer

En datamodel kan ikke have mange-til-mange-relationer. Du kan ikke bare tilføje sammenføjningstabeller i modellen. Du kan dog bruge DAX-funktioner til at modellere mange-til-mange-relationer.

Self-Joins og løkker

Selv-joinforbindelser er ikke tilladt i en data model. En selv-joinforbindelse er en rekursiv relation mellem en tabel og sig selv. Selv-joinforbindelser bruges ofte til at definere hierarkier for overordnede/underordnede. Du kan for eksempel tilmelde sig tabellen medarbejdere til sig selv for at oprette et hierarki, der viser administrations kæden i en virksomhed.

I Excel er det ikke muligt at oprette relationer i en projektmappe. Med andre ord er følgende sæt relationer ikke tilladt.

Tabel 1, kolonne a   til   Tabel 2, kolonne f

Tabel 2, kolonne f   til   Tabel 3, kolonne n

Tabel 3, kolonne n   til   Tabel 1, kolonne a

Hvis du forsøger at oprette en relation, der ville resultere i, at der blev oprettet en løkke, modtager du en fejlmeddelelse.

En af fordelene ved at importere data ved brug af Power Pivot-tilføjelsesprogrammet er, at Power Pivot nogle gange kan registrere relationer og oprette relationer i den datamodel, programmet opretter i Excel.

Når du importerer flere tabeller, registrerer Power Pivot automatisk eksisterende relationer mellem tabellerne. Når du opretter en pivottabel, analyserer Power Pivot dataene i tabellerne. Det registrerer mulige relationer, der ikke er defineret, og foreslår relevante kolonner, der kan medtages i disse relationer.

Registreringsalgoritmen bruger statiske data om værdierne og metadataene i kolonner til at oprette følgeslutninger om sandsynligheden for relationer.

  • Datatyper i alle relaterede koloner skal være kompatible. Ved automatisk registrering er det kun datatyperne heltal og tekst, der understøttes. Du kan finde flere oplysninger om datatyper under Datakilder, der understøttes i datamodeller.

  • Antallet af entydige nøgler i opslagskolonnen skal være større end værdierne i tabellen på mange-siden, for at relationen blev fundet. Med andre ord må nøglekolonnen på mange-siden af relationen ikke indeholde værdier, der ikke er i den primære kolonne i opslagstabellen. Antag f. eks., at du har en tabel, der viser produkter med deres id'er (opslagstabellen) og en salgs tabel, der viser salg for hvert produkt (mange-siden af relationen). Hvis dine salgsposter indeholder ID'ET for et produkt, der ikke har et tilsvarende ID i tabellen produkter, kan relationen ikke oprettes automatisk, men du kan muligvis oprette den manuelt. Hvis du vil have Excel til at registrere relationen, skal du først opdatere produkt opslagstabellen med id'erne for de manglende produkter.

  • Sørg for, at navnet på nøglekolonnen på mange-siden svarer til navnet på i nøglekolonnen i opslagstabellen. Navnene behøver ikke at være nøjagtigt ens. I en virksomheds indstilling har du ofte variationer i navnene på kolonner, der hovedsagelig indeholder de samme data: EMP-id, medarbejder, medarbejder-id, EMP_IDosv. Algoritmen registrerer de navne, der ligner hinanden, og tildeler de kolonner, der har lignende eller nøjagtigt ens navne, højere sandsynlighed. Hvis du vil øge sandsynligheden for, at der oprettes en relation, kan du derfor prøve at omdøbe de kolonner i dataene, som du importerer, til noget, der ligner kolonnerne i de eksisterende tabeller. Hvis Excel finder flere mulige relationer, oprettes der ikke en relation.

Disse oplysninger kan hjælpe dig med at forstå, hvorfor ikke alle relationer registreres, eller hvordan ændringer i metadata, f. eks. feltnavn og datatyperne kan forbedre resultatet af automatisk Relations registrering. Du kan finde flere oplysninger i fejlfinding af relationer.

Automatisk registrering for navngivne sæt

Relationer registreres ikke automatisk mellem navngivne sæt og relaterede felter i en pivottabel. Du kan oprette disse relationer manuelt. Hvis du vil bruge automatisk relationsregistrering, skal du fjerne hvert navngivne sæt og tilføje de individuelle felter fra det navngivne sæt og direkte til pivottabellen.

Afledning af relationer

I visse tilfælde sker en automatisk sammenkædning af relationer mellem tabeller. Det betyder f.eks., at hvis du opretter en relation mellem de første to sæt tabeller nedenfor, udledes det, at der findes en relation mellem de to andre tabeller, og der oprettes automatisk en relation.

Produkter og kategori - oprettet manuelt

Kategori og Underkategori - oprettet manuelt

Produkter og Underkategori - relationer udledes

Hvis relationer skal sammenkædes automatisk, skal relationerne gå i én retning, som vist ovenfor. Hvis de oprindelige relationer er mellem, f. eks salg og produkter og salg og kunder, er en relation ikke afledt. Dette skyldes, at relationen mellemprodukter og kunder er en mange-til-mange-relation.

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×