Vzťahy medzi tabuľkami v modeli údajov

Váš prehliadač nepodporuje video. Nainštalujte si Microsoft Silverlight, Adobe Flash Player alebo Internet Explorer 9.
Video: Vzťahy vo funkcii Power View a v doplnku PowerPivot

Vytvorením vzťahov medzi údajmi v rôznych tabuľkách môžete rozšíriť svoje možnosti analýzy údajov. Vzťah je pripojenie medzi dvoma tabuľkami údajov na základe určitého stĺpca v každej z týchto tabuliek. Ak chcete zistiť, prečo sú vzťahy užitočné, predstavte si, že sledujete údaje zákazníckych objednávok vo svojom podniku. Môžete sledovať všetky údaje v jednej tabuľke, ktorá má štruktúru podobnú nasledujúcej štruktúre:

CustomerID

Name

Email

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Baláž

martin.balaz@contoso.com

0,05

256

7. 1. 2010

Digitálny kompakt

11

1

Baláž

martin.balaz@contoso.com

0,05

255

3. 1. 2010

Zrkadlovka

15

2

Lukáč

tomas.lukac@contoso.com

0,10

254

3. 1. 2010

Filmový set

27

Tento prístup môže fungovať, ale zahŕňa uloženie množstva nadbytočných údajov, ako je napríklad e-mailová adresa zákazníka pre každú objednávku. Ukladací priestor je lacný, ale v prípade zmeny e-mailovej adresy je nutné zabezpečiť aktualizáciu každého riadka pre daného zákazníka. Jedným z možných riešení tohto problému je rozdelenie údajov do viacerých tabuliek a definovanie vzťahov medzi týmito tabuľkami. Tento prístup sa uplatňuje v relačných databázach, ako sú napríklad databázy programu SQL Server. Importovaná databáza napríklad môže predstavovať údaje objednávky pomocou troch súvisiacich tabuliek:

Customers

[CustomerID]

Name

Email

1

Baláž

martin.balaz@contoso.com

2

Lukáč

tomas.lukac@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

0,05

2

0,10

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

7. 1. 2010

Digitálny kompakt

11

1

255

3. 1. 2010

Zrkadlovka

15

2

254

3. 1. 2010

Filmový set

27

V rámci údajového modelu, ktorý explicitne vytvoríte alebo ktorý za vás vytvorí Excel pri importe viacerých tabuliek naraz, existujú vzťahy. Na vytvorenie alebo správu modelu môžete tiež použiť PowerPivot. Podrobné informácie nájdete v téme Vytvorenie dátového modelu v programe Excel.

Ak na import tabuliek z tej istej databázy použijete doplnok PowerPivot, PowerPivot dokáže rozpoznať vzťahy medzi tabuľkami na základe stĺpcov uvedených v [hranatých zátvorkách] a dokáže reprodukovať tieto vzťahy v údajovom modeli, ktorý zostaví na pozadí. Ďalšie informácie nájdete v tomto článku v časti Automatické zisťovanie a určovanie vzťahov. Ak importujete tabuľky z viacerých zdrojov, môžete manuálne vytvoriť vzťahy tak, ako je popísané v téme Vytvorenie vzťahu medzi dvomi tabuľkami.

Na začiatok stránky

Obsah tohto článku

Stĺpce a kľúče

Typy vzťahov

Vzťahy a výkon

Viaceré vzťahy medzi tabuľkami

Požiadavky na vzťah tabuľky

Nepodporované položky vo vzťahu tabuľky

Zložené kľúče a stĺpce vyhľadávania

zťahy Many-to-many

Vlastné spojenia a slučky

Automatické zisťovanie a určovanie vzťahov v doplnku PowerPivot

Automatické zisťovanie pomenovaných množín

Určovanie vzťahov

Stĺpce a kľúče

Vzťahy sú založené na stĺpcoch v jednotlivých tabuľkách, ktoré obsahujú rovnaké údaje. Napríklad tabuľky Customers a Orders môžu navzájom súvisieť, pretože obe obsahujú stĺpec obsahujúci identifikáciu zákazníka. V uvedenom príklade sú názvy stĺpcov rovnaké, ale nie je to nevyhnutné. Jeden zo stĺpcov môže byť stĺpec CustomerID a druhým môže byť stĺpec CustomerNumber, ak všetky riadky v tabuľke Orders obsahujú identifikáciu, ktorá je uložená aj v tabuľke Customers.

V relačnej databáze existuje niekoľko typov kľúčov, čo sú zvyčajne iba stĺpce so špeciálnymi vlastnosťami. Porozumenie účelu jednotlivých kľúčov vám môže pomôcť pri správe modelu údajov s viacerými tabuľkami, ktorý poskytuje údaje do zostavy kontingenčnej tabuľky, kontingenčného grafu alebo funkcie Power View.

Na účely tejto témy sú najzaujímavejšie nasledujúce kľúče:

  • primárny kľúč: jedinečne identifikuje riadok v tabuľke, ako napríklad CustomerID v tabuľke Customers,

  • alternatívny kľúč (alebo kandidátsky kľúč): stĺpec odlišný od primárneho kľúča, ktorý je jedinečný, ako sú napríklad stĺpce v tabuľke Employees, ktorá môžu obsahovať identifikáciu zamestnanca a rodné číslo, čo sú jedinečné hodnoty,

  • cudzí kľúč: stĺpec odkazujúci na jedinečný stĺpec v inej tabuľke, ako napríklad stĺpec CustomerID v tabuľke Orders, ktorý odkazuje na stĺpec CustomerID v tabuľke Customers,

V modeli údajov sa na primárny kľúč alebo na alternatívny kľúč odkazuje ako na súvisiaci stĺpec. Ak tabuľka má primárny aj alternatívny kľúč, môžete ktorýkoľvek z nich použiť ako základ vzťahu tabuľky. Na cudzí kľúč sa odkazuje ako na zdrojový stĺpec alebo len ako na stĺpec. V našom príklade sa vzťah bude definovať medzi stĺpcom CustomerID v tabuľke Orders (stĺpcom) a stĺpcom CustomerID v tabuľke Customers (stĺpcom vyhľadávania). Ak importujete údaje z relačnej databázy, program Excel predvolene vyberie cudzí kľúč z jednej tabuľky a zodpovedajúci primárny kľúč z druhej tabuľky. Ako stĺpec vyhľadávania však môžete použiť ľubovoľný stĺpec s jedinečnými hodnotami.

Výber rozsahu zobrazených dátumov

Vzťah medzi tabuľkami Customers a Orders je vzťah „one-to-many“. Každý zákazník môže mať viacero objednávok, ale objednávka nemôže mať viacero zákazníkov. Ostatné typy vzťahov sú vzťahy „one-to-one“ a „many-to-many“. Tabuľka CustomerDiscounts, ktorá definuje jednu zľavnenú sadzbu pre každého zákazníka, je vo vzťahu „one-to-one“ s tabuľkou Customers.

V nasledujúcich tabuľkách sa zobrazujú príklady vzťahov medzi troma tabuľkami:

Vzťah

Typ

Vyhľadávací stĺpec

Stĺpec

Customers-CustomerDiscounts

one-to-one

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

one-to-many

Customers.CustomerID

Orders.CustomerID

Poznámka :  Model údajov nepodporuje vzťahy „many-to-many“. Ako príklad vzťahu „many-to-many“ je možné uviesť priamy vzťah medzi tabuľkami Products a Customers, v ktorom zákazník môže nakúpiť viacero produktov a jeden produkt môže byť kúpený viacerými zákazníkmi.

Vzťahy a výkon

Po vytvorení vzťahu program Excel zvyčajne musí prepočítať všetky vzorce používajúce stĺpce z tabuliek v novom vytvorenom vzťahu. Spracovanie môže určitý čas trvať, čo závisí od množstva údajov a zložitosti vzťahov. Podrobné informácie nájdete v článku Prepočítanie vzorcov.

Viaceré vzťahy medzi tabuľkami

V modeli údajov môže existovať viacero vzťahov medzi dvomi tabuľkami. Na vykonávanie presných výpočtov program Excel potrebuje jednu cestu od jednej tabuľky k druhej. Preto musí byť v určitom čase pre každý pár tabuliek aktívny iba jeden vzťah. Ostatné sú inaktívne, ale vo vzorcoch a dotazoch môžete zadať inaktívny vzťah. V zobrazení diagramu je aktívny vzťah znázornený súvislou čiarou a inaktívne vzťahy prerušovanými čiarami. Napríklad tabuľka DimDate v databáze AdventureWorksDW2012 obsahuje stĺpec DateKey, ktorý súvisí s tromi rôznymi stĺpcami v tabuľke FactInternetSales: OrderDate, DueDate a ShipDate. Ak je aktívny vzťah medzi stĺpcami DateKey a OrderDate, je to predvolený vzťah vo vzorcoch, kým nezadáte iný vzťah.

Na začiatok stránky

Požiadavky na vzťah tabuľky

Vzťah možno vytvoriť v prípade splnenia týchto požiadaviek:

Kritériá

Popis

Jedinečný identifikátor pre každú tabuľku

Každá tabuľka musí mať jeden stĺpec, ktorý jedinečne identifikuje každý riadok v tejto tabuľke. Tento stĺpec sa často označuje ako primárny kľúč.

Jedinečné stĺpce vyhľadávania

Údajové hodnoty v stĺpci vyhľadávania musia byť jedinečné. Inými slovami, stĺpec nemôže obsahovať duplicitné hodnoty. V modeli údajov sa hodnoty null a prázdne reťazce považujú za prázdnu hodnotu, čo je jedinečná údajová hodnota. To znamená, že v stĺpci vyhľadávania sa nemôže nachádzať viacero hodnôt null.

Kompatibilné typy údajov

Typy údajov v zdrojovom stĺpci a v stĺpci vyhľadávania musia byť kompatibilné. Ďalšie informácie o typoch údajov nájdete v článku Typy údajov podporované v modeloch údajov.

Nepodporované položky vo vzťahu tabuľky

V modeli údajov nemôžete vytvoriť vzťah tabuľky, ak je kľúčom zložený kľúč. Tiež nemožno vytvoriť vzťahy typu „one-to-one“ a „one-to-many“. Iné typy vzťahov sa nepodporujú.

Zložené kľúče a stĺpce vyhľadávania

Zložený kľúč pozostáva z viacerých stĺpcov. Údajové modely nemôžu používať zložené kľúče. Tabuľka musí mať vždy presne jeden stĺpec, ktorý jedinečne identifikuje každý riadok v tabuľke. Ak importujete tabuľky s existujúcim vzťahom, ktorý je založený na zloženom kľúči, sprievodca importom tabuľky v rámci doplnku PowerPivot bude tento vzťah ignorovať, pretože sa v modeli nedá vytvoriť.

Ak chcete vytvoriť vzťah medzi dvoma tabuľkami s viacerými stĺpcami, ktoré definujú primárny a cudzí kľúč, najprv skombinujte tieto hodnoty a vytvorte jeden stĺpec kľúča a až potom vytvorte vzťah. Môžete to vykonať pred importom údajov alebo tak, že v údajovom modeli pomocou doplnku PowerPivot vytvoríte vypočítavaný stĺpec.

Vzťahy „many-to-many“

Model údajov nemôže mať vzťahy „many-to-many“. Do modelu jednoducho nie je možné pridať tabuľky spojení . Ak však chcete modelovať vzťahy „many-to-many“, môžete na to použiť funkcie DAX.

Vlastné spojenia a slučky

Vlastné spojenia nie sú v modeli údajov povolené. Vlastné spojenie je rekurzívny vzťah medzi tabuľkou a tou istou tabuľkou. Vlastné spojenia sa často používajú na definovanie hierarchií nadradených a podriadených položiek. Môžete napríklad vytvoriť spojenie tabuľky Employees so sebou samou a vytvoriť hierarchiu, ktorá vyjadruje reťazec riadenia v podniku.

Program Excel nepovoľuje vytváranie slučiek medzi vzťahmi v zošite. Inými slovami, nasledujúca množina vzťahov je zakázaná.

  • Tabuľka 1, stĺpec a,   s   tabuľkou 2, stĺpcom f

  • Tabuľka 2, stĺpec f,   s   tabuľkou 3, stĺpcom n

  • Tabuľka 3, stĺpec n,   s   tabuľkou 1, stĺpcom a

Ak sa pokúsite vytvoriť vzťah smerujúci k vytvoreniu slučky, generuje sa chyba.

Na začiatok stránky

Automatické zisťovanie a určovanie vzťahov v doplnku PowerPivot

Jednou z výhod importovania údajov pomocou doplnku PowerPivot je, že PowerPivot dokáže niekedy zistiť vzťahy a vytvoriť nové vzťahy v údajovom modeli, ktorý vytvorí v Exceli.

Pri importe viacerých tabuliek PowerPivot automaticky zisťuje všetky existujúce vzťahy medzi tabuľkami. Aj pri vytváraní kontingenčnej tabuľky PowerPivot analyzuje údaje v tabuľkách. Zisťuje prípadné vzťahy, ktoré neboli definované, a navrhuje zodpovedajúce stĺpce na zahrnutie do týchto vzťahov.

Algoritmus zisťovania používa štatistické údaje o hodnotách a metaúdajoch stĺpcov, aby určil pravdepodobnosť vzťahov.

  • Typy údajov vo všetkých súvisiacich stĺpcoch by mali byť kompatibilné. Pri automatickom zisťovaní sú podporované iba celočíselné a textové typy údajov. Ďalšie informácie o typoch údajov nájdete v článku Typy údajov podporované v modeloch údajov.

  • Na úspešné zistenie vzťahu je nutné, aby počet jedinečných kľúčov v stĺpci vyhľadávania bol vyšší než hodnoty v tabuľke na strane „many“. Inými slovami, stĺpec kľúča na strane „many“ vzťahu nesmie obsahovať žiadne hodnoty, ktoré sa nenachádzajú v stĺpci kľúča tabuľky vyhľadávania. Predpokladajme napríklad, že máte tabuľku obsahujúcu produkty aj s ich identifikáciami (tabuľku vyhľadávania) a tabuľku predaja obsahujúcu údaje o predaji jednotlivých produktov (strana „many“ vzťahu). Ak záznamy o predaji obsahujú identifikáciu produktu, ktorý nemá zodpovedajúcu identifikáciu v tabuľke Products, vzťah sa nedá vytvoriť automaticky, ale môžete ho vytvoriť manuálne. Ak chcete, aby program Excel zistil vzťah, je najprv potrebné aktualizovať tabuľku vyhľadávania Products o identifikácie chýbajúcich produktov.

  • Zabezpečte, aby názov stĺpca kľúča na strane „many“ bol podobný názvu stĺpcu kľúča v tabuľke vyhľadávania. Názvy nemusia byť úplne rovnaké. Napríklad v nastavení podniku sa často vyskytujú variácie názvov stĺpcov, ktoré obsahujú v podstate tie isté údaje: ID zamestnanca, Identifikátor zamestnanca, EmployeeID, Identifikácia zamestnanca, ZAM_ID atď. Algoritmus zisťuje podobné názvy a priradí vyššiu pravdepodobnosť k stĺpcom, ktoré majú podobné alebo presne rovnaké názvy. Ak teda chcete zvýšiť pravdepodobnosť vytvorenia vzťahu, môžete skúsiť premenovať stĺpce v importovaných údajoch na názvy podobné názvom stĺpcov v existujúcich tabuľkách. Ak program Excel nájde viacero možných vzťahov, nevytvorí vzťah.

Tieto informácie vám môžu pomôcť pochopiť, prečo sa nezistia všetky vzťahy, alebo ako zmeny v metaúdajoch (ako napríklad názov poľa a typy údajov) môžu zlepšiť výsledky automatického zisťovania vzťahov. Ďalšie informácie nájdete v článku Riešenie problémov so vzťahmi.

Automatické zisťovanie pomenovaných množín

Vzťahy medzi pomenovanými množinami a súvisiacimi poľami v kontingenčnej tabuľke sa nezisťujú automaticky. Tieto vzťahy je možné vytvoriť manuálne. Ak chcete použiť automatické zisťovanie vzťahov, odstráňte všetky pomenované množiny a pridajte jednotlivé polia z pomenovanej množiny priamo do kontingenčnej tabuľky.

Určovanie vzťahov

V niektorých prípadoch sa vzťahy medzi tabuľkami automaticky zreťazia. Ak napríklad vytvoríte vzťah medzi prvými dvoma množinami tabuliek uvedenými nižšie, určí sa existencia vzťahu medzi zvyšnými dvoma tabuľkami a automaticky sa vytvorí určitý vzťah.

  • Products a Category (vytvorené manuálne)

  • Category a SubCategory (vytvorené manuálne)

  • Products a SubCategory (určí sa vzťah)

Na automatické zreťazenie vzťahov je nutné, aby vzťahy mali jeden smer, ako je uvedené vyššie. Ak počiatočné vzťahy boli napríklad medzi tabuľkami Sales a Products alebo Sales a Customers, vzťah sa neurčí. Je to tak preto, že vzťah medzi tabuľkami Products a Customers je vzťah „many-to-many“.

Na začiatok stránky

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×