Relacije med tabelami v podatkovnem modelu

Vaš brskalnik ne podpira tega videoposnetka.

Ustvarite relacije med različnimi tabelami in tako dodajte več moči v analizo podatkov. Relacija je povezava med dvema tabelama, ki vsebuje podatke: eden od stolpcev v vsaki tabeli je osnova za relacijo. Če želite bolje razumeti, zakaj so odnosi uporabni, si predstavljajte, da v svojem podjetju spremljate podatke o naročilih strank. Sledite lahko vsem podatkov v eni tabeli in imate tako strukturo:

IDStranke

Ime

E-pošta

OdstotekPopusta

IDNaročila

DatumNaročila

Izdelek

Količina

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

Ta pristop lahko deluje, vendar vključuje shranjevanje veliko odvečnih podatkov, na primer e-poštni naslov stranke za vsako naročilo. Prostor za shranjevanje je rezerviran, če pa se e-poštni naslov spremeni, morate posodobiti vse vrstice za to stranko. To težavo lahko odpravite tako, da podatke razdelite v več tabel in med temi tabelami določite relacije. To je pristop, uporabljen v relacijskih zbirkah podatkov, kot je SQL Server. Zbirka podatkov, ki jo uvozite, na primer predstavlja podatke o naročilu s tremi sorodnimi tabelami:

Stranke

[IDStranke]

Ime

E-pošta

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

PopustiZaStranke

[IDStranke]

OdstotekPopusta

1

.05

2

.10

Naročila

[IDStranke]

IDNaročila

DatumNaročila

Izdelek

Količina

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

Relacije obstajajo znotraj podatkovnega modela – tistega, ki ga izrecno ustvarite, ali tistega, ki ga Excel samodejno ustvari v vašem imenu, ko hkrati uvozite več tabel. Model lahko ustvarite in upravljate tudi v dodatku Power Pivot. Če želite izvedeti več, glejte Ustvarjanje podatkovnega modela v Excelu.

Če za uvoz te tabele iz iste zbirke podatkov uporabite dodatek Power Pivot, lahko Power Pivot zazna relacije med njimi na podlagi stolpcev v [oglatih oklepajih] in te relacije znova ustvari v podatkovnem modelu, ki ga izdeluje v ozadju. Če želite več informacij, glejte Samodejno zaznavanje in določanje odnosov v tem članku. Če uvozite tabele iz več virov, lahko ročno ustvarjate relacije, kot je opisano v razdelku Ustvarjanje relacije med dvema tabelama.

Odnosi temeljijo na stolpcih v vsaki tabeli, ki vsebuje enake podatke. Tabelo »Stranke« lahko na primer povezujete s tabelo »Naročila«, če vsaka vsebuje stolpec, v katerem je shranjen ID stranke. V opisanem primeru imata stolpca enaki imeni, vendar to ni pogoj. Ime enega bi lahko bilo CustomerID, drugega pa CustomerNumber; pogoj je le, da vse vrstice v tabeli Orders vsebujejo številko ID, ki je shranjena tudi v tabeli Customers.

V relacijski zbirki podatkov obstaja več vrst ključev. Ključ je po navadi stolpec s posebnimi lastnostmi. Če razumete namen posameznega ključa, lažje upravljate podatkovni model z več tabelami, ki zagotavlja podatke za vrtilne tabele, vrtilne grafikone ali poročila Power View.

Čeprav obstajajo številne vrste ključev, so tukaj najpomembnejše za naš namen:

  • Primarni ključ: enolično prepozna vrstico v tabeli, kot je CustomerID v tabeli Customers.

  • Alternativni ključ (ali ključ kandidat): stolpec, ki je enoličen in ni primarni ključ. Tabela Employees lahko na primer vsebuje številko ID zaposlenega in številko socialnega zavarovanja, ki sta obe enolični.

  • Tuji ključ: stolpec, ki se sklicuje na enoličen stolpec v drugi tabeli, na primer CustomerID v tabeli Orders, ki se nanaša na CUSTOMERID v tabeli Customers.

V podatkovnem modelu se primarni ali alternativni ključ imenuje povezani stolpec. Če ima tabela primarni in alternativni ključ, lahko kot osnovo za relacijo med tabelama uporabite oba. Tuji ključ se imenuje izvorni stolpec ali samo stolpec. V našem primeru bi bila relacija določena med CustomerID v tabeli Orders (stolpec) in CustomerID v tabeli Customers (stolpec za iskanje). Če uvozite podatke iz relacijske zbirke podatkov, Excel privzeto izbere tuji ključ iz ene tabele in ustrezni primarni ključ iz druge tabele. Vendar lahko kot stolpec za iskanje uporabite kateri koli stolpec, ki ima enolične vrednosti.

Odnos med stranko in naročilom je odnos »ena proti mnogo«. Vsaka stranka ima lahko več naročil, naročilo pa ne more biti povezano z več strankami. Druga pomembna relacija tabele je »ena proti ena«. V tem primeru ima tabela CustomerDiscounts, ki določa enotno stopnjo popusta za vsako stranko, odnos »ena proti ena« s tabelo Customers.

V tej tabeli so prikazani odnosi med tremi tabelami (Customers, CustomerDiscountsin Orders):

Relacija

Vrsta

Stolpec za iskanje

Stolpec

Stranke-PopustiZaStranke

ena proti ena

Stranke.IDStranke

PopustiZaStranke.IDStranke

Stranke-Naročila

ena na mnogo

Stranke.IDStranke

Naročila.IDStranke

Opomba: Podatkovni model ne podpira relacij »mnogo na mnogo«. Primer odnosa »mnogo na mnogo« je neposreden odnos med tabelama Products in Customers: stranka lahko kupi veliko izdelkov, enak izdelek pa lahko kupi veliko strank.

Ko ustvarite odnos, mora Excel običajno preračunati vse formule, ki uporabljajo stolpce iz tabel v novem odnosu. Obdelava lahko traja nekaj časa, odvisno od količine podatkov in zapletenosti odnosov. Če želite več informacij, glejte Preračunavanje formul.

V podatkovnem modelu je med dvema tabelama lahko več relacij. Za natančne izračune Excel potrebuje eno samo pot od ene tabele do naslednje. Zato je naenkrat aktiven samo en odnos v vsakem paru tabel. Čeprav so drugi neaktivni, lahko v formulah in poizvedbah določite neaktivni odnos.

V pogledu diagrama je aktivni odnos polna črta, neaktivni pa s črtkano črto. Na primer tabela DimDate v AdventureWorksDW2012 vsebuje stolpec DateKey, ki je povezan s tremi različnimi stolpci v tabeli FactInternetSales: OrderDate, DueDatein ShipDate. Če je aktivni odnos med DateKey in OrderDate, je to privzeti odnos v formulah, razen če ne določite drugače.

Relacije ni mogoče ustvariti, kadar so izpolnjeni ti pogoji:

Pogoji

Opis

Enolični identifikator za vsako tabelo

Vsaka tabela mora imeti en stolpec, ki enolično prepozna vsako vrstico v tej tabeli. Ta stolpec se pogosto imenuje primarni ključ.

Enolični stolpci za iskanje

Podatkovne vrednosti v stolpcu za iskanje morajo biti enolične. Z drugimi besedami, stolpec ne sme vsebovati dvojnikov. V podatkovnem modelu so ničle in prazni nizi enaki prazni vrednosti, ki je razlikovalna podatkovna vrednost. To pomeni, da v stolpcu za iskanje ne sme biti več ničel.

Združljivi podatkovni tipi

Podatkovni tipi v izvornem stolpcu in stolpcu za iskanje morajo biti združljivi. Če želite več informacij o podatkovnih tipih, glejte Podatkovni tipi, ki jih podpirajo podatkovni modeli.

V podatkovnem modelu ne morete ustvariti relacije med tabelama, če je ključ sestavljen ključ. Prav tako je omejeno ustvarjanje relacij »ena na ena« in »ena na mnogo«. Druge vrste relacij niso podprte.

Sestavljeni ključi in stolpci za iskanje

Sestavljeni ključ je sestavljen iz več kot enega stolpca. Podatkovni modeli ne morejo uporabljati sestavljenih ključev: v tabeli mora biti vedno natančno en stolpec, ki enolično prepozna vsako vrstico v tabeli. Če uvozite tabele z obstoječo relacijo, ki temelji na sestavljenem ključu, bo čarovnik za uvoz tabel v dodatku Power Pivot relacijo prezrl, ker ga ni mogoče ustvariti v modelu.

Če želite ustvariti odnos med dvema tabelama z več stolpci, ki definirajo primarne in tuje ključe, najprej združite vrednosti, da ustvarite en sam stolpec s ključem, preden ustvarite odnos. To lahko naredite pred uvozom podatkov ali tako, da v podatkovnem modelu z dodatkom Power Pivot ustvarite izračunan stolpec.

Odnosi »mnogo na mnogo«

Podatkovni model ne podpira odnosov »mnogo na mnogo«. Vanj ne morete preprosto dodati združevalnih tabel . Lahko pa uporabite funkcije DAX za modeliranje odnosov »mnogo na mnogo«.

Samozdruževanja in zanke

Samozdruževanja v podatkovnem modelu niso dovoljena. Samozdruževanje je rekurziven odnos, pri katerem se tabela združi sama s seboj. Velikokrat se uporablja za določanje hierarhij »nadrejeni–podrejeni«. Tabelo Employees bi lahko na primer združili samo s seboj, da bi ustvarili hierarhijo, ki prikazuje vodstveno verigo v podjetju.

Excel ne dovoljuje ustvarjanja zank med odnosi v delovnem zvezku. Z drugimi besedami, spodnji nabor odnosov je prepovedan.

Tabela 1, stolpec a   proti   Tabela 2, stolpec f

Tabela 2, stolpec f   proti   Tabela 3, stolpec n

Tabela 3, stolpec n   proti   Tabela 1, stolpec a

Če poskusite ustvariti odnos, ki bi povzročil nastanek zanke, pride do napake.

Ena od prednosti uvažanja podatkov z dodatkom Power Pivot je, da lahko Power Pivot včasih samodejno zazna ter ustvari nove relacije v podatkovnem modelu, ki ga ustvari v Excelu.

Ko uvozite več tabel, Power Pivot samodejno zazna morebitne obstoječe relacije med njimi. Ko ustvarite vrtilno tabelo, Power Pivot  analizira tudi podatke v tabelah. Zazna morebitne odnose, ki še niso določeni, in predlaga stolpce, ki bi bili primerni za vključitev v te odnose.

Algoritem zaznavanja uporablja statistične podatke o vrednostih in metapodatke stolpcev ter tako odloča o verjetnosti odnosov.

  • Podatkovni tipi v vseh povezanih stolpcih morajo biti združljivi. Samodejno zaznavanje podpira samo podatkovne tipe celih števil in besedila. Če želite več informacij o podatkovnih tipih, glejte Podatkovni tipi, ki jih podpirajo podatkovni modeli.

  • Za uspešno zaznavanje odnosa mora biti število enoličnih ključev v stolpcu za iskanje večje od vrednosti v tabeli na strani »mnogo«. Z drugimi besedami, stolpec s ključem na strani odnosa »mnogo« ne sme vsebovati vrednosti, ki ne obstajajo v stolpcu s ključem v tabeli za iskanje. Predstavljajte si na primer tabelo, ki našteje izdelke z njihovimi številkami ID (tabela za iskanje) in tabelo prodaj, ki našteje prodaje za vsak izdelek (stran odnosa »mnogo«). Če vaši zapisi o prodajah vsebujejo številko ID izdelka, ki nima ustrezne številke ID v tabeli Products, odnosa ni mogoče samodejno ustvariti, morda pa ga lahko ustvarite ročno. Če želite, da Excel zazna odnos, morate najprej posodobiti tabelo za iskanje Product s številkami ID izdelkov, ki manjkajo.

  • Prepričajte se, da je ime stolpca s ključem na strani odnosa »mnogo« podobno imenu stolpca s ključem v tabeli za iskanje. Ni treba, da sta imeni povsem enaki. V poslovnem okolju se na primer pogosto uporabljajo različice imen stolpcev, ki pravzaprav vsebujejo iste podatke: Emp ID, EmployeeID, Employee ID, EMP_ID, itd. Algoritem zazna podobna imena in pripiše višjo verjetnost stolpcem, ki imajo podobna ali popolnoma enaka imena. Če želite povečati verjetnost za ustvarjanje odnosa, lahko poskusite zamenjati imena stolpcev podatkov, ki jih uvažate, z imeni, ki so podobna imenom stolpcev v obstoječih tabelah. Če Excel najde več možnih odnosov, odnosa ne ustvari.

Te informacije vam lahko pomagajo razumeti, zakaj niso zaznane vse relacije ali kako lahko spremembe metapodatkov --kot so ime polja in podatkovni tipi--izboljšajo rezultate samodejnega zaznavanja relacij. Če želite več informacij, glejte Odpravljanje težav z relacijami.

Samodejno zaznavanje za poimenovane nize

Odnosi med poimenovanimi nizi in povezanimi polji v vrtilni tabeli se ne zaznajo samodejno. Ustvarite jih lahko ročno. Če želite, da se odnosi zaznajo samodejno, odstranite vsak poimenovani niz in dodajte posamezna polja iz poimenovanega niza neposredno v vrtilno tabelo.

Določanje odnosov

V nekaterih primerih se odnosi med tabelami samodejno združijo. Če na primer ustvarite odnos med prvima dvema paroma tabel spodaj, se predpostavlja odnos med preostalima dvema tabelama in se tudi samodejno ustvari.

Products in Category -- ročno ustvarjen odnos

Category in SubCategory -- ročno ustvarjen odnos

Products in SubCategory -- odnos se predpostavlja

Če želite, da se odnosi samodejno povežejo, morajo potekati v eno smer, kot je prikazano zgoraj. Če bi bil začetni odnos vzpostavljen na primer med tabelami Sales in Products ter Sales in Customers, se odnos ne določi. Razlog je v tem, da je odnos med Products in Customers odnos »mnogo na mnogo«.

Ali potrebujete dodatno pomoč?

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

×