Relacije med tabelami v podatkovnem modelu

Vaš brskalnik ne podpira tega videoposnetka. Namestite Microsoft Silverlight, Adobe Flash Player ali Internet Explorer 9.
Video: Relacije v funkciji Power View in dodatku Power Pivot

Ustvarite odnose med podatki v različnih tabelah in tako okrepite svojo podatkovno analizo. Odnos je povezava med dvema tabelama podatkov, ki temelji na enem stolpcu v vsaki tabeli. Če želite bolje razumeti, zakaj so odnosi uporabni, si predstavljajte, da v svojem podjetju spremljate podatke o naročilih strank. Lahko bi spremljali vse podatke v eni sami tabeli, ki ima takšno 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, toda shranjevati morate veliko odvečnih podatkov, kot je npr. e-poštni naslov stranke pri vsakem naročilu. Shramba je poceni, toda če se e-poštni naslov spremeni, morate za to stranko obvezno posodobiti vsako vrstico. Ena rešitev je, da razdelite podatke v več tabel in med temi tabelami določite odnose. Ta pristop se uporablja v relacijskih zbirkah podatkov, kot je strežnik SQL Server. V zbirki podatkov, ki jo uvozite, bi na primer podatke o naročilih lahko predstavili s tremi povezanimi 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, ki ga izrecno ustvarite ali ki ga ustvari Excel namesto vas, kadar želite uvoziti več tabel hkrati. 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.

Na vrh strani

V tem članku

Stolpci in ključi

Vrste relacij

Relacije in učinkovitost delovanja

Več relacij med tabelami

Zahteve za relacije med tabelami

Nepodprto v relaciji med tabelami

Sestavljeni ključi in stolpci za iskanje

Relacije »mnogo proti mnogo«

Samozdruževanja in zanke

Samodejno zaznavanje in določanje relacij v orodju Power Pivot

Samodejno zaznavanje za poimenovane nabore

Določanje relacij

Stolpci in ključi

Odnosi temeljijo na stolpcih v vsaki tabeli, ki vsebuje enake podatke. Tabeli Customers in Orders sta na primer povezani, ker obe vsebujeta stolpec, v katerem so shranjene številke ID strank. 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, ki so običajno le stolpci 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.

Za naše namene so najbolj zanimive ti ključi:

  • Primarni ključ: enolično določi 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 nanaša na enoličen stolpec v drugi tabeli, npr. 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.

Vrste relacij

Odnos med tabelama Customers in Orders je odnos »ena na mnogo«. Vsaka stranka ima lahko več naročil, naročilo pa ne more biti povezano z več strankami. Drugi dve vrsti odnosov sta »ena proti ena« in »mnogo na mnogo«. Tabela CustomerDiscounts, ki določa enotno stopnjo popusta za vsako stranko, je v odnosu »ena proti ena« s tabelo Customers.

V spodnji tabeli so prikazani odnosi med tremi tabelami:

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.

Relacije in učinkovitost delovanja

Po ustvarjanju vsakega odnosa 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. Za podrobnosti glejte Preračunavanje formul.

Več relacij med tabelami

V podatkovnem modelu je med dvema tabelama lahko več relacij. Za izvajanje natančnih izračunov Excel potrebuje eno samo pot od ene tabele do druge. Zato je naenkrat aktiven samo en odnos v vsakem paru tabel. Ostali so neaktivni, vendar lahko v formulah in poizvedbah določite neaktivni odnos. V pogledu diagrama je aktivni odnos označen s polno, 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, DueDate in ShipDate. Če je aktivni odnos med DateKey in OrderDate, je to privzeti odnos v formulah, razen če ne določite drugače.

Na vrh strani

Zahteve za relacije med tabelama

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 celici, ki je posebna 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.

Nepodprto v relaciji med tabelami

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 uvažanje tabel v orodju Power Pivot relacijo prezrl, ker je v modelu ni mogoče ustvariti.

Č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čunani 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.

Na vrh strani

Samodejno zaznavanje in določanje odnosov v dodatku Power Pivot

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 velikokrat pojavijo različice imen stolpcev, ki pravzaprav vsebujejo iste podatke: Emp ID, EmployeeID, Employee ID, EMP_ID in tako naprej. 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 se ne zaznajo vsi odnosi ali kako lahko spremembe metapodatkov--kot npr. ime polja in podatkovni tipi--izboljšajo rezultate samodejnega zaznavanja odnosov. Če želite več informacij, glejte Odpravljanje težav z odnosi.

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«.

Na vrh strani

Razširite svoja znanja
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.

×