Relationer mellan tabeller i en datamodell

Din webbläsare har inte stöd för video. Installera Microsoft Silverlight, Adobe Flash Player eller Internet Explorer 9.
Video: Relationer i Power View och PowerPivot

Du kan förbättra dina dataanalyser genom att skapa relationer mellan data i olika tabeller. En relation är en koppling mellan två tabeller med data, som baseras på en kolumn i varje tabell. Du märker hur användbara relationer kan vara genom att föreställa dig att du spårar data för verksamhetens kundorder. Du kan spåra alla data i en enskild tabell som har följande typ av struktur:

Kund-ID

Namn

E-post

Rabatt

Order-ID

Orderdatum

Produkt

Antal

1

Ashton

chris.ashton@contoso.com

.05

256

2010-01-07

Compact Digital

11

1

Ashton

chris.ashton@contoso.com

.05

255

2010-01-03

SLR Camera

15

2

Jaworski

michal.jaworski@contoso.com

.10

254

2010-01-03

Budget Movie-Maker

27

Den här metoden kan fungera, men då uppstår en mängd redundanta data, till exempel kundens e-postadress för varje order. Lagring är billigt, men om e-postadressen ändras måste du uppdatera varje rad för den kunden. En lösning på det här problemet är att dela upp data i flera tabeller och ange relationer mellan tabellerna. Det här är den metod som används i relationsdatabaser som SQL Server. En databas som du importerar kan exempelvis representera orderdata med hjälp av följande tre relaterade tabeller:

Kunder

[Kund-ID]

Namn

E-post

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

Kundrabatter

[Kund-ID]

Rabatt

1

.05

2

.10

Order

[Kund-ID]

Order-ID

Orderdatum

Produkt

Antal

1

256

2010-01-07

Compact Digital

11

1

255

2010-01-03

SLR Camera

15

2

254

2010-01-03

Budget Movie-Maker

27

Relationer finns inom en datamodell som du skapar explicit eller som Excel skapar åt dig när du importerar flera tabeller samtidigt. Du kan även använda Power Pivot-tilläggsprogrammet för att skapa eller hantera modellen. Mer information finns i Skapa en datamodell i Excel.

Om du använder Power Pivot-tilläggsprogrammet för att importera tabeller från samma databas kan Power Pivot identifiera relationerna mellan tabellerna baserat på vilka kolumner som står inom [hakparentes] och kan sedan återge dessa relationer i en datamodell som genereras i bakgrunden. Mer information finns i Automatisk identifiering och slutledning av relationer i den här artikeln. Om du importerar tabeller från flera källor kan du skapa relationer manuellt genom att följa anvisningarna i Skapa en relation mellan två tabeller.

Överst på sidan

I den här artikeln

Kolumner och nycklar

Typer av relationer

Relationer och prestanda

Flera relationer mellan tabeller

Krav för en tabellrelation

Stöds ej i en tabellrelation

Sammansatta nycklar och uppslagskolumner

Många-till-många-relationer

Självkopplingar och loopar

Automatisk identifiering och slutledning av relationer i Power Pivot

Automatisk identifiering för namngivna uppsättningar

Slutledning av relationer

Kolumner och nycklar

Relationer baseras på kolumner i respektive tabell som innehåller samma data. Till exempel tabellerna Kunder och Order kan relateras till varandra eftersom de båda innehåller en kolumn där kund-ID lagras. I exemplet är kolumnnamnen samma, men detta är inget krav. En kan heta Kund-ID och en annan Kundnummer, bara alla raderna i tabellen Order innehåller ett ID som också lagras i tabellen Kunder.

I en relationsdatabas finns det flera typer av nycklar, som i princip är kolumner med särskilda egenskaper. Genom att förstå syftet med varje nyckel kan det bli lättare att hantera en datamodell med flera tabeller som tillhandahåller data till en pivottabell, ett pivotdiagram eller en Power View-rapport.

Följande nycklar är mest intressanta för våra syften:

  • Primär nyckel: fungerar som unik identifierare för en rad i en tabell, till exempel Kund-ID i tabellen Kunder.

  • Alternativ nyckel (eller kandidatnyckel): en annan kolumn än primärnyckeln som är unik. Till exempel tabellen Anställda kan innehålla ett anställnings-ID och ett personnummer, som båda är unika.

  • Sekundärnyckel: en kolumn som refererar till en unik kolumn i en annan tabell, t.ex. CustomerID i tabellen Orders, som refererar till CustomerID i tabellen Customers.

I en datamodell kallas primärnyckeln eller den alternativa nyckeln för relaterad kolumn. Om en tabell har både en primärnyckel och en alternativ nyckel kan du använda någon av dessa som grund för en tabellrelation. Sekundärnyckeln kallas för källkolumnen eller bara kolumnen. I vårt exempel definieras en relation mellan CustomerID i tabellen (kolumnen) och CustomerID i tabellen Customers (uppslagskolumnen). Om du importerar data från en relationsdatabas väljer Excel sekundärnyckeln från en tabell och motsvarande primärnyckel från en annan tabell som standard. Du kan emellertid använda valfri kolumn som har unika värden för uppslagskolumnen.

Typer av relationer

Relationen mellan Customers och Orders är en en-till-många-relation. Varje kund kan ha flera order, men en order kan inte ha flera kunder. Andra typer av relationer är en-till-en och många-till-många. Tabellen Kundrabatter, som anger en enskild rabattsats för varje kund, är en en-till-en-relation med tabellen Kunder.

I tabellen nedan visas relationerna mellan de tre tabellerna:

Relation

Typ

Uppslagskolumn

Kolumn

Kunder-Kundrabatter

en-till-en

Kunder.Kund-ID

Kundrabatter.Kund-ID

Kunder-Order

en-till-många

Kunder.Kund-ID

Order.Kund-ID

Obs!:  En datamodell kan inte ha många-till-många-relationer. Ett exempel på en många-till-många-relation är en direkt relation mellan Products och Customers, där en kund kan köpa flera produkter och samma produkt kan köpas av flera kunder.

Relationer och prestanda

När en relation har skapats måste alla formler som använder kolumner från tabeller i den nya relationen beräknas om i Excel. Bearbetningen kan ta en stund, beroende på mängden data och hur komplexa relationerna är. Mer information finns i Beräkna om formler.

Flera relationer mellan tabeller

En datamodell kan ha flera relationer mellan två tabeller. För att åstadkomma korrekta beräkningar behöver Excel en väg från en tabell till nästa. Därför är bara en relation mellan varje tabellpar aktiv i taget. De övriga är inaktiva, men du kan använda en inaktiv relation i formler och frågor. I diagramvyn visas den aktiva relationen med en heldragen linje och de interaktiva med streckade linjer. I AdventureWorksDW2012 innehåller exempelvis tabellen DimDate kolumnen DateKey, som är relaterad till tre olika kolumner i tabellen FactInternetSales: OrderDate, DueDate och ShipDate. Om den aktiva relationen är mellan DateKey och OrderDate, är det standardrelationen i formler om inget annat anges.

Överst på sidan

Krav för en tabellrelation

En relation kan skapas när följande krav uppfylls:

Villkor

Beskrivning

Unik identifierare för varje tabell

Varje tabell måste ha en enstaka kolumn som unikt identifierar varje rad i tabellen. Den här kolumnen kallas ofta för primärnyckeln.

Unika uppslagskolumner

Datavärdena i uppslagskolumnen måste vara unika. Med andra ord kan kolumnen inte innehålla dubbletter. I en datamodell motsvaras null-värden och tomma strängar av blankvärden, som är ett särskilt datavärde. Det betyder att det inte får finnas flera null-värden i uppslagskolumnen.

Kompatibla datatyper

Datatyperna i källkolumnen och uppslagskolumnen måste vara kompatibla. Mer information om datatyper finns i Datatyper som stöds i datamodeller.

Stöds ej i en tabellrelation

Du kan inte skapa en tabellrelation i en datamodell om nyckeln är en sammansatt nyckel. Du är också begränsad till att skapa en-till-en-relation och en-till-många-relationer. Andra relationstyper stöds inte.

Sammansatta nycklar och uppslagskolumner

En sammansatt nyckel består av mer än en kolumn. Datamodeller kan inte använda sammansatta nycklar. En tabell måste alltid ha exakt en kolumn som unikt identifierar varje rad i tabellen. Om du importerar tabeller som har en befintlig relation som baseras på en sammansatt nyckel ignorerar guiden Importera tabell i Power Pivot den relationen eftersom den inte kan skapas i modellen.

Om du vill skapa en relation mellan två tabeller som innehåller flera kolumner som definierar primärnyckeln och sekundärnyckeln, kombinerar du värdena för att skapa en enda nyckelkolumn innan du skapar relationen. Du kan göra det innan du importerar data eller genom att skapa en beräknad kolumn i datamodellen med Power Pivot-tilläggsprogrammet.

Många-till-många-relationer

En datamodell kan inte ha många-till-många-relationer. Du kan inte bara lägga till kopplingstabeller i modellen. Du kan emellertid använda DAX-funktioner för att skapa många-till-många-relationer.

Självkopplingar och loopar

Självkopplingar tillåts inte i en datamodell. En självkoppling är en rekursiv relation mellan en tabell och sig själv. Självkopplingar används ofta för att definiera hierarkier mellan överordnade och underordnade. Du kan till exempel koppla tabellen Anställda till sig själv och skapa en hierarki som visar beslutskedjan i ett företag.

I Excel går det inte att skapa loopar mellan relationer i en arbetsbok. Med andra ord tillåts inte följande uppsättning med relationer.

  • Tabell 1, kolumn a   till   Tabell 2, kolumn f

  • Tabell 2, kolumn f   till   Tabell 3, kolumn n

  • Tabell 3, kolumn n   till   Tabell 1, kolumn a

Om du försöker skapa en relation som medför att en loop skapas, uppstår ett fel.

Överst på sidan

Automatisk identifiering och slutledning av relationer i Power Pivot

En av fördelarna med att importera data med hjälp av Power Pivot-tilläggsprogrammet är att Power Pivot ibland identifierar relationer och skapar nya relationer i datamodellen som skapas i Excel.

När du importerar flera tabeller identifierar Power Pivot befintliga relationer mellan tabellerna automatiskt. När du skapar en pivottabell analyserar Power Pivot också de data som finns i tabellerna. Programmet identifierar möjliga relationer som inte har skapats, och föreslår lämpliga kolumner som bör användas i dessa relationer.

I identifieringsalgoritmen används statistiska data om värden och metadata i kolumner för antaganden om sannolikheten för relationer.

  • Datatyperna i alla relaterade kolumner måste vara kompatibla. Vid automatisk identifiering stöds bara datatyper med heltal och text. Mer information om datatyper finns i Datatyper som stöds idatamodeller.

  • För att relationen ska upptäckas måste antalet unika nycklar i uppslagskolumnen vara större än värdena i tabellen på "många"-sidan. Det betyder att nyckelkolumnen på "många"-sidan av relationen inte får innehålla några värden som inte finns i uppslagstabellens nyckelkolumn. Anta till exempel att du har en tabell som visar produkter med deras ID:n (uppslagstabellen) och en försäljningstabell som visar försäljningen för varje produkt ("många"-sidan av relationen). Om försäljningsposterna innehåller ID:t för en produkt som inte har något motsvarande ID i tabellen Products så kan relationen inte skapas automatiskt, men du kan kanske skapa den manuellt. För att relationen ska upptäckas av Excel måste du först uppdatera uppslagstabellen Product med ID:na för de produkter som saknas.

  • Kontrollera att namnet på nyckelkolumnen på "många"-sidan liknar namnet på nyckelkolumnen i uppslagskolumnen. Namnen måste inte vara identiska. På ett företag finns det ofta variationer i namnen på kolumner som innehåller i stort sett samma data: Anst-ID, AnställningsID, Anställnings-ID, ANST_ID och så vidare. Med algoritmen upptäcks namn som liknar varandra och en högre sannolikhet tilldelas de kolumner som har liknande namn eller namn som matchar exakt. För att öka sannolikheten att en relation skapas kan du därför prova att ändra namn på kolumnerna i de data du importerar till något som liknar kolumnerna i de befintliga tabellerna. Om Excel hittar flera möjliga relationer skapas ingen relation automatiskt.

Den här informationen kan hjälpa dig att förstå varför inte alla relationer identifieras, eller hur ändringar i metadata, till exempel fältnamn och datatyper, kan leda till bättre resultat vid automatisk identifiering av relationer. Mer information finns i Felsöka relationer.

Automatisk identifiering för namngivna uppsättningar

Relationer identifieras inte automatiskt mellan namngivna uppsättningar och relaterade fält i en pivottabell. Du kan skapa dessa relationer manuellt. Om du vill använda automatisk identifiering av relationer tar du bort alla namngivna uppsättningar och lägger till de enskilda fälten från den namngivna uppsättningen direkt i pivottabellen.

Slutledning av relationer

I vissa fall länkas relationer mellan tabeller automatiskt. Om du till exempel skapar en relation mellan de två första uppsättningarna med tabeller nedan, antas en relation förekomma mellan de andra två tabellerna, och en relation upprättas automatiskt.

  • Produkter och Kategori -- skapas manuellt

  • Kategori och Underkategori -- skapas manuellt

  • Produkter och Underkategori -- relation antas förekomma

För att relationer ska kunna länkas automatiskt, måste relationerna gå i en riktning, på det sätt som visas ovan. Om de inledande relationerna finns mellan till exempel Försäljning och Produkter, och Försäljning och Kunder, antas ingen relation förekomma. Detta beror på att relationen mellan Products och Customers är en många-till-många-relation.

Överst på sidan

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×