Relace mezi tabulkami v datovém modelu

Poznámka: Snažíme se pro vás co nejrychleji zajistit aktuální obsah nápovědy ve vašem jazyce. Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát ve spodní části této stránky vědět, jestli vám informace v článku pomohly? Pokud byste se rádi podívali na jeho anglickou verzi, najdete ji tady.

Váš prohlížeč nepodporuje video. Nainstalujte si Microsoft Silverlight, Adobe Flash Player nebo Internet Explorer 9.

Přidáním vztahů amogn různé tabulky můžete do analýzy dat přidat další informace. Relace je propojení dvou tabulek, které obsahují data: v jednotlivých tabulkách je základem jeden sloupec. Abyste si udělali lepší představu o tom, proč mohou být relace užitečné, představte si, že sledujete data zákaznických objednávek ve své firmě. Všechna data v jedné tabulce mají strukturu se stejnou strukturou:

CustomerID

Jméno

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Ashton

chris.ashton@contoso.com

0,05

256

7. ledna 2010

Digitální kompakt

11

1

Ashton

chris.ashton@contoso.com

0,05

255

3. ledna 2010

Zrcadlovka

15

2

Jaworski

michal.jaworski@contoso.com

0,10

254

3. ledna 2010

Levný program na zpracování videa

27

Tento přístup může fungovat, ale je s ním spojeno uchovávání velkého množství redundantních dat, například e-mailové adresy zákazníka u každé objednávky. Úložný prostor je sice levný, ale při změně e-mailové adresy zákazníka musíte zajistit aktualizaci všech řádků, které ji obsahují. Jedním z řešení tohoto problému je rozdělit data do více tabulek a definovat mezi nimi relace. Tento přístup používají relační databáze, například databáze systému SQL Sever. Importovaná databáze by například mohla obsahovat data objednávek ve třech tabulkách s definovanými relacemi:

Customers (Zákazníci)

[CustomerID]

Name

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts (Slevy zákazníků)

[CustomerID]

DiscountRate

1

0,05

2

0,10

Orders (Objednávky)

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

7. ledna 2010

Digitální kompakt

11

1

255

3. ledna 2010

Zrcadlovka

15

2

254

3. ledna 2010

Levný program na zpracování videa

27

Relace existují v datovém modelu – což je jedno, které jste vytvořili, nebo když se při současném importu více tabulek automaticky vytvoří Excel. K vytvoření nebo správě modelu můžete použít taky doplněk Power Pivot. Podrobnosti získáte v tématu Vytvoření datového modelu v Excelu.

Pokud pro import tabulek ze stejné databáze použijete Power Pivot, může Power Pivot rozpoznat vzájemné relace tabulek na základě sloupců v hranatých závorkách a tyto relace reprodukovat v datovém modelu, který vytváří na pozadí. Další informace najdete v tématu Automatické rozpoznávání a odvozování relací v tomto článku. Pokud importujete tabulky z víc zdrojů, můžete relace vytvořit ručně pomocí postupu popsaného v tématu Vytvoření relace mezi dvěma tabulkami.

Relace jsou založeny na sloupcích jednotlivých tabulek, které obsahují stejná data. Můžete například vytvořit relaci tabulky zákazníci s tabulkou objednávky , pokud každá obsahuje sloupec s kódem zákazníka. V tomto příkladu jsou názvy sloupců stejné, ale není to nutné. Sloupec by se mohl v jedné tabulce jmenovat CustomerID (ID zákazníka) a ve druhé CustomerNumber (číslo zákazníka), musí ovšem platit to, že všechny řádky v tabulce Orders (Objednávky) budou obsahovat ID, které je rovněž uloženo v tabulce Customers (Zákazníci).

V relační databázi existuje několik typů klíčů. Klíč je obvykle sloupec se speciálními vlastnostmi. Pochopení účelu každého klíče vám pomůže spravovat datový model s více tabulkami, který poskytuje data pro kontingenční tabulku, kontingenční graf nebo sestavu nástroje Power View.

I když existuje mnoho typů klíčů, jsou tu nejdůležitější pro náš účel:

  • Primární klíč: jednoznačně identifikuje řádek v tabulce, například KódZákazníka v tabulce zákazníci .

  • Alternativní klíč (nebo klíč kandidáta): sloupec jiný než primární klíč, který je jedinečný. Například tabulka zaměstnanci může obsahovat ID zaměstnance a rodné číslo, které jsou jedinečné.

  • Cizí klíč: sloupec, který odkazuje na jedinečný sloupec v jiné tabulce, jako je například KódZákazníka v tabulce Orders (objednávky ), který odkazuje na pole KódZákazníka v tabulce Customers.

V datovém modelu je primární nebo alternativní klíč označován jako související sloupec. Pokud má tabulka primární i alternativní klíč, lze kterýkoliv z nich použít jako základ pro relaci tabulky. Cizí klíč se také nazývá zdrojový sloupec nebo pouze sloupec. V našem příkladu by byla definována relace mezi poli KódZákazníka v tabulce Orders (sloupec) a KódZákazníka v tabulce Customers (vyhledávací sloupec). Při importu dat z relační databáze vybírá aplikace Excel ve výchozím nastavení cizí klíč z jedné tabulky a odpovídající primární klíč z druhé. Jako vyhledávací sloupec však můžete použít libovolný sloupec s jedinečnými hodnotami.

Vztah mezi zákazníkem a objednávkou je relace 1: n. Každý zákazník může provést více objednávek, nicméně jedna objednávka nemůže být provedena více zákazníky. Další důležitou relací tabulky je 1:1. V našem příkladu tabulka CustomerDiscounts , která pro každého zákazníka definuje jednu diskontní sazbu, má relaci 1:1 s tabulkou Customers.

Tato tabulka zobrazuje vztahy mezi třemi tabulkami (zákazníci, CustomerDiscountsa objednávky):

Relace

Typ

Vyhledávací sloupec

Sloupec

Customers-CustomerDiscounts

1:1

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

1:N

Customers.CustomerID

Orders.CustomerID

Poznámka: Datový model nepodporuje relace M:N. Příkladem relace M:N je přímá relace mezi tabulkami Products (Produkty) a Customers (Zákazníci), kde si zákazník může koupit více produktů a stejně tak jeden produkt může být koupen více zákazníky.

Po vytvoření relace musí Excel obvykle přepočítat vzorce, které používají sloupce z tabulek nově vytvořeného vztahu. Zpracování může v závislosti na množství dat a složitosti relací trvat delší dobu. Další informace najdete v tématu přepočet vzorců.

Datový model může obsahovat více relací mezi dvěma tabulkami. Abyste mohli vytvořit přesné výpočty, potřebuje Excel jednu cestu od jedné tabulky k další. Proto je mezi každou dvojicí tabulek v jednu chvíli aktivní vždy pouze jediná relace. I když ostatní nejsou aktivní, můžete zadat neaktivní relaci ve vzorcích a dotazech.

Aktivní relace v zobrazení diagramu je Souvislá čára a neaktivní čáry jsou přerušované. Například v AdventureWorksDW2012 obsahuje tabulka tabulce DimDate sloupec datovýklíč, který souvisí se třemi různými sloupci v tabulce FactInternetSales: DatumObjednávky, výrazua datumexpedice. Pokud je relace mezi sloupci DateKey a OrderDate aktivní relací, bude používána jako výchozí relace ve vzorcích, dokud neurčíte jinak.

Relaci lze vytvořit po splnění následujících požadavků:

Kritéria

Popis

Jedinečný identifikátor v každé tabulce

Každá tabulka musí obsahovat jeden sloupec, který slouží jako jedinečný identifikátor každého řádku tabulky. Tento sloupec se často nazývá primární klíč.

Jedinečné vyhledávací sloupce

Hodnoty dat, které obsahuje vyhledávací sloupec, musejí být jedinečné. Sloupec tedy nesmí obsahovat duplicitní položky. V datovém modelu jsou hodnoty null a prázdné řetězce ekvivalentní prázdné hodnotě, která je samostatnou datovou hodnotou. To znamená, že ve vyhledávacím sloupci může být maximálně jedna hodnota null.

Kompatibilní datové typy

Datové typy ve zdrojovém sloupci a ve vyhledávacím sloupci musejí být kompatibilní. Další informace o datových typech najdete v tématu datové typy podporované v datových modelech.

V datovém modelu nelze vytvořit relaci tabulky, pokud je klíč složený. Omezení se vztahuje i na vytvoření relací 1:1 nebo 1:N. Další typy relací nejsou podporovány.

Složené klíče a vyhledávací sloupce

Složený klíč se skládá z více sloupců. Datové modely nemůžou používat složené klíče: tabulka musí mít vždy přesně jeden sloupec, který jednoznačně identifikuje každý řádek v tabulce. Pokud importujete tabulky, které mají existující relaci založené na složeném klíči, Průvodce importem tabulky v Power pivotu tento vztah ignoruje, protože se nedá v modelu vytvořit.

Pokud chcete vytvořit relaci mezi dvěma tabulkami, ve kterých jsou primární a cizí klíče definované pomocí víc sloupců, je před vytvořením relace potřeba nejdřív příslušné hodnoty sloučit do jednoho klíčového sloupce. Můžete to udělat před importem dat nebo vytvořením počítaného sloupce v datovém modelu pomocí doplňku Power Pivot.

Relace M:N

Datový model nesmí obsahovat relace M:N. Spojovací tabulky do modelu přidat nelze. Můžete však pomocí funkcí jazyka DAX relace M:N modelovat.

Spojení sama na sebe a cykly

Spojení sama na sebe nejsou v datovém modelu povolena. Spojení sama na sebe je rekurzivní relace tabulky se sebou samou. Spojení sama na sebe jsou často používána k definování relací typu nadřazený-podřízený. Tímto způsobem byste například mohli spojit tabulku Employees (Zaměstnanci) samu se sebou, čímž byste vytvořili hierarchii řízení ve firmě.

Aplikace Excel nepovoluje vytváření cyklických relací v sešitu. Jinými slovy, následující sada relací není povolena.

Sloupce a tabulky 1   se   sloupcem f tabulky 2

Sloupce f tabulky 2   se   sloupcem n tabulky 3

Sloupce n tabulky 3   se   sloupcem a tabulky 1

Při pokusu o vytvoření relace, která by vedla ke vzniku cyklu, se zobrazí chybová zpráva.

Jednou z výhod importu dat pomocí doplňku Power Pivot je, že Power Pivot může někdy rozpoznat relace a vytvořit nové relace v datovém modelu, který předtím vytvořil v Excelu.

Při importu víc tabulek rozpozná Power Pivot automaticky všechny stávající relace mezi tabulkami. Power Pivot provede analýzu dat v tabulkách taky při vytvoření kontingenční tabulky. Rozpozná možné relace, které ještě nebyly definované, a doporučí vhodné sloupce, které by měly být součástí těchto relací.

Algoritmus rozpoznávání používá statistická data týkající se hodnot a metadata sloupců k vytvoření hypotéz o pravděpodobnosti relací.

  • Datové typy ve všech sloupcích v relaci by měly být kompatibilní. Pro účely automatického rozpoznávání jsou podporovány pouze celočíselné a textové datové typy. Další informace o datových typech naleznete v tématu Datové typy podporované v datových modelech.

  • Aby se relace úspěšně zjistila, počet jedinečných klíčů ve vyhledávacím sloupci musí být větší než hodnoty v tabulce na řadě. Jinak řečeno: sloupec Key na straně jedné relace nesmí obsahovat žádné hodnoty, které nejsou ve vyhledávacím sloupci tabulky. Předpokládejme například, že máte tabulku se seznamem produktů s jejich ID (vyhledávací tabulka) a s prodejní tabulkou, která uvádí prodej jednotlivých produktů (celou stranu relace). Pokud vaše záznamy o prodeji obsahují ID produktu, který nemá v tabulce Products odpovídající ID, nelze relaci automaticky vytvořit, ale možná ji můžete vytvořit ručně. Pokud chcete, aby Excel zjistil relaci, musíte nejprve aktualizovat vyhledávací tabulku produktu pomocí ID chybějících produktů.

  • Název klíčového sloupce na straně „N“ by se měl podobat názvu klíčového sloupce ve vyhledávací tabulce. Názvy nemusejí být zcela totožné. Například v firemním nastavení máte často různé názvy sloupců, které obsahují v podstatě stejná data: ID EMP, ČísloZaměstnance, ID zaměstnance, emp_idatd. Algoritmus rozpozná podobné názvy a přiřadí vyšší pravděpodobnost těm sloupcům, které mají podobné nebo identické názvy. Chcete-li tedy zvýšit pravděpodobnost vytvoření relace, můžete zkusit přejmenovat sloupce importovaných dat tak, aby byly podobné názvům příslušných sloupců ve stávajících tabulkách. Pokud aplikace Excel najde více možných relací, relace nebude vytvořena.

Tyto informace vám mohou pomoci pochopit, proč nejsou zjištěny všechny relace a jak mohou změny metadat (například názvů polí a datových typů) vést ke zlepšení výsledků automatického rozpoznávání relací. Další informace naleznete v tématu Řešení problémů s relacemi.

Automatické rozpoznávání pojmenovaných sad

Relace mezi pojmenovanými sadami a poli kontingenční tabulky nejsou zjištěny automaticky. Tyto relace je možné vytvořit ručně. Chcete-li použít automatické rozpoznávání relací, odeberte všechny pojmenované sady a přidejte jednotlivá pole z pojmenovaných sad přímo do kontingenční tabulky.

Odvozování relací

V některých případech jsou relace mezi tabulkami automaticky zřetězeny. Bude-li tedy například vytvořena relace mezi prvními dvěma níže uvedenými sadami tabulek, mezi dalšími dvěma tabulkami se odvodí a automaticky vytvoří relace.

Products a Category (Produkty a Kategorie) – vytvořeno ručně

Category a SubCategory (Kategorie a Podkategorie) – vytvořeno ručně

Products a SubCategory (Produkty a Podkategorie) – odvozená relace

Má-li dojít k automatickému zřetězení relací, je třeba, aby relace šly jedním směrem (viz výše). Pokud by počáteční relace byly (například) mezi tabulkami Sales a Products a mezi tabulkami Sales a Customers, nedošlo by k odvození relace. Důvodem je fakt, že relace mezi tabulkami Products a Customers je typu M:N.

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×