Relacije med tabelami v podatkovnem modelu

Opomba: Najnovejšo vsebino pomoči v vašem jeziku vam želimo zagotoviti v najkrajšem možnem času. Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Naš namen je, da bi bila vsebina za vas uporabna. Ali nam lahko na dnu te strani sporočite, ali so bile informacije za vas uporabne? Tukaj je angleški članek za preprosto referenco.

Vaš brskalnik ne podpira tega videoposnetka. Namestite Microsoft Silverlight, Adobe Flash Player ali Internet Explorer 9.

Dodajte več moči v analizo podatkov, tako da ustvarite relacije amogn različnih tabel. Relacija je povezava med dvema tabelama, ki vsebujeta podatke: en stolpec 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. Če želite spremljati vse podatke v eni tabeli s strukturo, kot je ta:

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, kot je e-poštni naslov stranke za vsako naročilo. Shramba je poceni, če pa se e-poštni naslov spremeni, morate posodobiti vsako vrstico za to stranko. Ena od rešitev te težave je razdelitev podatkov v več tabel in določanje relacij med temi tabelami. To je pristop, ki se uporablja v relacijskih zbirkah podatkov, kot je SQL Server. Na primer, zbirka podatkov, ki jo uvozite, lahko 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 v podatkovnem modelu, ki ga izrecno ustvarite ali pa jih 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 povežete s tabelo » naročila «, če ima vsak stolpec, ki shranjuje 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 je na voljo več vrst ključev. Ključ je običajno 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 obstaja več vrst ključev, je to najpomembnejše za naš namen:

  • Primarni ključ: enolično prepozna vrstico v tabeli, na primer IDstranke v tabeli» stranke «.

  • Nadomestni ključ (ali tipko kandidatk): stolpec, ki ni primarni ključ, ki je enoličen. 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čni stolpec v drugi tabeli, kot je IDstranke v tabeli » naročila «, ki se sklicuje na IDstranke v tabeli» stranke «.

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 bil odnos določen med IDstranke v tabeli » naročila «(v stolpcu) in IDstranke v tabeli» stranke «(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.

Relacija med stranko in vrstnim redom je relacija» ena proti mnogo «. Vsaka stranka ima lahko več naročil, naročilo pa ne more biti povezano z več strankami. Druga pomembna relacija med tabelami je ena proti ena. V našem primeru v tabeli CustomerDiscounts , ki določa eno diskontno mero za vsako stranko, ima relacijo» ena proti ena «s tabelo» stranke «.

V tej tabeli so prikazane relacije med tremi tabelami (stranke, CustomerDiscountsin naročila):

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 relacijo, mora Excel po navadi izračunati vse formule, ki uporabljajo stolpce iz tabel v novo ustvarjenem relaciji. Obdelava lahko traja nekaj časa, odvisno od količine podatkov in zapletenosti odnosov. Če želite več informacij, glejte vnovično izračunavaNje formul.

V podatkovnem modelu je med dvema tabelama lahko več relacij. Če želite ustvariti natančne izračune, Excel potrebuje eno pot iz ene tabele v drugo. Zato je naenkrat aktiven samo en odnos v vsakem paru tabel. Čeprav so drugi neaktivni, lahko določite neaktivno relacijo v formulah in poizvedbah.

V pogledu diagrama je aktivni odnos neprekinjena črta in nedejavni so črtkane črte. V AdventureWorksDW2012 na primer v tabeli DimDate vsebuje stolpec, poimenovali, ki je povezan s tremi različnimi stolpci v tabeli FactInternetSales: OrderDate, DueDatein kontrolnika 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 vrstah, glejte podatkovni tipi, podprti v podatkovnih modelih.

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 kompozitnih ključev: Tabela mora imeti vedno točno en stolpec, ki enolično prepozna vsako vrstico v tabeli. Če uvozite tabele, ki imajo obstoječe relacije na osnovi sestavljenega ključa, čarovnik za uvoz tabele v Dodatku Power pivot prezre to relacijo, ker je 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, preden uvozite podatke, ali tako, da ustvarite izračunani stolpec v podatkovnem modelu z dodatkom Power pivot.

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. Na primer, v nastavitvi podjetja so pogosto na voljo razlike med imeni stolpcev, ki vsebujejo v bistvu enake podatke: ID EMP, IDZaposlenega, ID zaposlenega, EMP_IDin tako dalje. 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 bodo morda v pomoč pri razumevanju, zakaj vsi odnosi niso odkriti, ali kako lahko spremembe metapodatkov, kot so ime polja in vrste podatkov, izboljšajo rezultate samodejnega zaznavanja odnosov. Č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«.

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

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×