Relaties tussen tabellen in een gegevensmodel

Opmerking:  We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Uw browser biedt geen ondersteuning voor video. Installeer Microsoft Silverlight, Adobe Flash Player of Internet Explorer 9.
Video: relaties in Power View en PowerPivot

Video: relaties in Power View en PowerPivot

Video: relaties in Power View en PowerPivot

Video: Relaties in Powerview en PowerPivot

Meer power toevoegen aan uw gegevensanalyse door relaties te maken amogn verschillende tabellen. Een relatie is een verbinding tussen twee tabellen die gegevens bevatten: een kolom in elke tabel is de basis voor de relatie. Stel dat u gegevens voor klanten en orders in uw bedrijf bijhouden om te zien waarom relaties zijn handig. U kunt alle gegevens in één tabel met een structuur strekking kan bijhouden:

CustomerID

Naam

E-Mail

DiscountRate

OrderID

OrderDatum

Product

Hoeveelheid

1

Ashton

chris.ashton@contoso.com

.05

256

2010-01-07

Compact Digital

11

1

Ashton

chris.ashton@contoso.com

.05

255

01-03-2010

SLR-Camera

15

2

Takema

willem.takema@contoso.com

.10

254

2010-01-03

Budget Movie-Maker

27

Deze benadering kan volstaan, maar er moeten veel redundante gegevens voor worden opgeslagen, zoals het e-mailadres van de klant voor elke order. De opslag is goedkoop, maar als het e-mailadres wordt gewijzigd, moet u ervoor zorgen dat u elke rij voor de betreffende klant bijwerkt. Een oplossing voor dit probleem is het splitsen van de gegevens in meerdere tabellen en het definiëren van relaties tussen die tabellen. Deze benadering wordt gebruikt in relationele databases zoals SQL Server. Zo kunnen in een database die u importeert de ordergegevens worden weergeven in drie gerelateerde tabellen:

Klanten

[KlantID]

Naam

E-mail

1

Ashton

chris.ashton@contoso.com

2

Takema

willem.takema@contoso.com

KlantKorting

[KlantID]

DiscountRate

1

0,05

2

0,10

Orders

[KlantID]

OrderID

OrderDatum

Product

Hoeveelheid

1

256

2010-01-07

Compact Digital

11

1

255

01-03-2010

SLR-Camera

15

2

254

2010-01-03

Budget Movie-Maker

27

Relaties bevat een gegevensmodel, dat u expliciet maken of dat automatisch wordt namens u gemaakt wanneer u meerdere tabellen tegelijk importeert. U kunt ook de invoegtoepassing Power Pivot gebruiken om te maken of het model beheren. Zie een gegevensmodel in Excel maken voor meer informatie.

Als u via de Power Pivot-invoegtoepassing tabellen uit dezelfde database importeert, kunnen in Power Pivot de relaties tussen de tabellen worden gedetecteerd op basis van de kolommen die tussen [vierkante haken] staan en kunnen deze relaties worden gereproduceerd in een gegevensmodel dat op de achtergrond wordt gemaakt. Zie Automatische detectie en afleiding van relaties in dit artikel. Als u tabellen uit verschillende bronnen importeert, kunt u handmatig relaties aanbrengen, zoals wordt beschreven in Een relatie tussen twee tabellen maken.

Relaties zijn gebaseerd op kolommen in elke tabel die dezelfde gegevens bevatten. U kunt bijvoorbeeld zijn gerelateerd een tabel klanten met de tabel Orders als elke een kolom die u een Klant-ID slaatbevat. In het voorbeeld wordt de kolomnamen zijn hetzelfde, maar dit niet een vereiste is. Een mogelijk klantnummer en een ander klantnummer, zo lang maken als alle rijen in de tabel Orders een ID die ook zijn opgeslagen in de tabel Klanten bevatten.

Er zijn verschillende soorten toetsen in een relationele database. Een sleutel is meestal kolom met speciale eigenschappen. Informatie over het doel van elke sleutel, kunt u een gegevensmodel van meerdere tabellen waaruit de gegevens aan een draaitabel, draaigrafiek of Power View-rapport beheren.

Hoewel er veel soorten toetsen, zijn dit de belangrijkste voor ons doel hier:

  • Primaire sleutel: deze identificeert op een rij in een tabel, zoals CustomerID in de tabel Customers .

  • Alternatieve sleutel (of candidate sleutel): een kolom dan de primaire sleutel die uniek is. Een werknemerstabel mogelijk bijvoorbeeld een werknemer-ID en een sofi-nummer, die beide uniek zijn opgeslagen.

  • Refererende sleutel: een kolom die verwijst naar een unieke kolom in een andere tabel, zoals CustomerID in de tabel Orders , die naar CustomerID in de tabel Customers verwijst.

In een gegevensmodel, wordt de primaire sleutel of ALT-toets genoemd de gerelateerde kolom. Als een tabel zowel een primaire en alternatieve sleutel heeft, kunt u een als basis van een tabelrelatie. De refererende sleutel is de bronkolom of alleen kolom genoemd. In ons voorbeeld zou een relatie tussen CustomerID in de tabel Orders (kolom) en CustomerID in de tabel Customers (de opzoekkolom) worden gedefinieerd. Als u gegevens uit een relationele database importeren, al dan niet standaard kiest Excel de refererende sleutel uit één tabel en de bijbehorende primaire sleutel uit de andere tabel. U kunt echter een kolom met unieke waarden voor de opzoekkolom.

De relatie tussen een klant en de orde is een een-op-veel-relatie. Elke klant meerdere orders kan hebben, maar een order kan geen meerdere klanten bevatten. Een andere belangrijke tabelrelatie is een-op. In ons voorbeeld hier bevat de tabel CustomerDiscounts , die een discontopercentage één voor elke klant definieert, een-relatie met de tabel Klanten.

Deze tabel ziet de relaties tussen de drie tabellen(klanten, CustomerDiscountsen Orders):

Relatie

Type

Opzoekkolom

Kolom

Klanten-Klantkortingen

een-op-een

Klanten.KlantID

KlantKortingen.KlantID

Klanten-Orders

een-op-veel

Klanten. KlantID

Orders.KlantID

Opmerking:  Veel-op-eenrelaties worden niet ondersteund in gegevensmodellen. Een voorbeeld van een veel-op-veelrelatie is een rechtstreekse relatie tussen Products en Customers, waarin een klant vele producten kan kopen en hetzelfde product door vele klanten kan worden gekocht.

Nadat u een relatie hebt gemaakt, moet de formules die kolommen in tabellen in de zojuist gemaakte relatie gebruiken meestal herberekenen in Excel. Verwerking kan enige tijd duren, afhankelijk van de hoeveelheid gegevens en de complexiteit van de relaties. Zie Formules herberekenenvoor meer informatie.

Een gegevensmodel kunnen meerdere relaties tussen twee tabellen bevatten. Maak nauwkeurige berekeningen door Excel vereist zijn één pad van de ene tabel naar de volgende. Slechts één relatie tussen elk paar tabellen dus actieve tegelijk. Hoewel de andere inactief zijn, kunt u een niet-actieve relatie opgeven in formules en query's.

De actieve relatie is een ononderbroken lijn en de niet-actieve kleuren die worden stippellijnen in de diagramweergave. Bijvoorbeeld AdventureWorksDW2012, de tabel Dimdatum een kolom bevat, DateKey, die zijn gerelateerd aan drie verschillende kolommen in de tabel FactInternetSales: Orderdatum, voorbeelden shipdate telt. Als de actieve relatie tussen DateKey en Orderdatum, is dat de relatie standaard in formules tenzij u anders opgeeft.

Een relatie kan worden gemaakt wanneer aan de volgende vereisten wordt voldaan:

Criteria

Beschrijving

Unieke id voor elke tabel

Elke tabel moet één kolom hebben die elke rij in die tabel op unieke wijze identificeert. Naar deze kolom wordt vaak verwezen als de primaire sleutel.

Unieke opzoekkolommen

De gegevenswaarden in opzoekkolom moeten uniek zijn. Met andere woorden, de kolom kan geen dubbele waarden bevatten. In een gegevensmodel zijn null-waarden en lege tekenreeksen gelijk aan een lege cel, die een unieke gegevenswaarde vertegenwoordigt. Dit betekent dat de opzoekkolom niet meerdere null-waarden mag bevatten.

Compatibele gegevenstypen

De gegevenstypen in de bronkolom en de opzoekkolom moeten compatibel zijn. Zie gegevenstypen die worden ondersteund in gegevensmodellenvoor meer informatie over gegevenstypen.

In een gegevensmodel kan een tabelrelatie niet worden gemaakt als de sleutel een samengestelde sleutel is. Bovendien kunt u ook alleen een-op-een- en een-op-veelrelaties maken. Andere typen relaties worden niet ondersteund.

Samengestelde sleutels en opzoekkolommen

Een samengestelde sleutel bestaat uit meer dan één kolom. Gegevensmodellen samengestelde sleutels niet gebruiken: een tabel moet altijd precies één kolom hebben die deze identificeert op elke rij in de tabel. Als u tabellen met een bestaande relatie op basis van een samengestelde sleutel importeert, wordt de Wizard tabel importeren in Power Pivot die relatie negeren omdat deze kan niet worden gemaakt in het model.

Als u wilt maken van een relatie tussen twee tabellen met meerdere kolommen de primaire en refererende sleutels definiëren, moet u eerst de waarden als u wilt een één sleutelkolom maken voordat u de relatie maakt combineren. U kunt dit doen voordat u de gegevens importeren, of door te maken van een berekende kolom in het gegevensmodel dat met de Power Pivot-invoegtoepassing.

Veel-op-veel-relaties

Een gegevensmodel kunnen niet veel-op-veel-relaties hebben. U kunt geen verbindingstabel gewoon toevoegen in het model. U kunt echter DAX-functies tot model veel-op-veel-relaties.

Self-joins en lussen

Self-joins zijn niet toegestaan in een gegevensmodel. Een self-join is a recursieve relatie tussen een tabel en zichzelf. Self-joins worden vaak gebruikt om bovenliggende-onderliggende hiërarchieën te definiëren. U zou bijvoorbeeld een tabel Employees aan zichzelf kunnen koppelen om een hiërarchie te creëren waarin de managementketen van een bedrijf wordt weergegeven.

In Excel zijn lussen tussen relaties in een werkmap niet toegestaan. Met andere woorden: de onderstaande relaties zijn verboden.

Tabel 1, kolom a   tot   tabel 2, kolom f

Tabel 2, kolom f   tot   tabel 3, kolom n

Tabel 3, kolom n   tot   tabel 1, kolom a

Als u een relatie probeert te maken die in een lus resulteert, wordt een fout gegenereerd.

Een van de voordelen van het importeren van gegevens via de Power Pivot-invoegtoepassing is dat via Power Pivot soms relaties kunnen worden gedetecteerd of gemaakt in het gegevensmodel dat in Excel wordt gemaakt.

Wanneer u meerdere tabellen importeert, worden door Power Pivot automatisch bestaande relaties tussen de tabellen gedetecteerd. Wanneer u een draaitabel maakt, worden de gegevens bovendien in de tabellen door Power Pivot geanalyseerd. Het programma detecteert mogelijke relaties die niet zijn gedefinieerd en suggereert de juiste kolommen voor deze relaties.

De detectiealgoritme gebruikt statistische gegevens over de waarden en metagegevens van kolommen om de kans op relaties af te leiden.

  • De gegevenstypen in alle gerelateerde kolommen moeten compatibel zijn. Voor automatische detectie worden alleen gegevenstypen voor gehele getallen of tekst ondersteund. Zie Gegevenstypen die in gegevensmodellen worden ondersteund voor meer informatie over PowerPivot-gegevenstypen.

  • De relatie kan alleen worden gedetecteerd als het aantal unieke sleutels in de opzoekkolom groter is dan het aantal waarden in de tabel aan de veel-zijde. Met andere woorden: de sleutelkolom aan de veel-zijde van de relatie mag geen waarden bevatten die niet in de sleutelkolom van de opzoektabel voorkomen. Bijvoorbeeld: u hebt een tabel met product-id's (de opzoektabel) en een tabel met de verkopen voor elk product (de veel-zijde van de relatie). Als de verkooprecords een product-id bevatten die niet in de tabel Products voorkomt, kan de relatie niet automatisch worden gemaakt. Mogelijk kunt u de relatie wel handmatig maken. Om ervoor te zorgen dat Excel de relatie detecteert, moet u de opzoektabel Products eerst bijwerken met de id's van de ontbrekende producten.

  • Controleer of dat de naam van een kolom met de sleutel aan de veel-kant is vergelijkbaar met de naam van een kolom met de sleutel in de opzoektabel. De namen hoeft niet te niet precies hetzelfde zijn. Bijvoorbeeld in een instelling voor bedrijven, vaak hebt u variaties op de namen van kolommen die u in feite dezelfde gegevens bevatten: Emp-ID, werknemer-id, werknemer-ID, EMP_ID, enzovoort. De algoritme van de vastgesteld dezelfde naam en een hogere kans toegewezen aan de kolommen die vergelijkbaar of exact overeenkomende namen hebt. Daarom als wilt verhogen de kans van een relatie maken, kunt u proberen de naam van de kolommen in de gegevens die u in een vergelijkbare naar kolommen in uw bestaande tabellen importeert wijzigen. Als er meerdere mogelijke relaties zijn gevonden, wordt deze niet een relatie maken.

Deze gegevens kunnen u helpen begrijpen waarom niet alle relaties worden gedetecteerd, of hoe wijzigingen in metagegevens (zoals veldnaam en gegevenstypen) de resultaten van automatische relatiedetectie kunnen verbeteren. Zie Problemen met relaties oplossen voor meer informatie.

Automatische detectie voor benoemde Sets

Relaties tussen benoemde sets en gerelateerde velden in een draaitabel worden niet automatisch gedetecteerd. U kunt deze relaties handmatig maken. Als u automatische detectie van relaties wilt gebruiken, verwijdert u de benoemde sets en voegt u de aparte velden van de benoemde sets rechtstreeks toe aan de draaitabel.

Implicatie van relaties

In sommige gevallen worden relaties tussen tabellen automatisch geketend. Als u bijvoorbeeld een relatie tussen de eerste twee sets tabellen hieronder maakt, wordt een relatie afgeleid voor de andere twee tabellen en wordt automatisch een relatie gemaakt.

Products en Categorie -- handmatig gemaakt

Categorie en SubCategorie -- handmatig gemaakt

Producten en SubCategorie -- relatie is geïmpliceerd

De relaties moeten in één richting lopen, zoals hierboven wordt getoond, om relaties automatisch te ketenen. Als de aanvankelijke relaties bijvoorbeeld tussen Verkopen en Producten waren, en tussen Verkopen en Klanten, wordt geen relatie geïmpliceerd. Dit komt omdat de relatie tussen Producten en Klanten een veel-op-veelrelatie is.

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×