Lentelių ryšiai duomenų modelyje

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Jūsų naršyklė nepalaiko vaizdo įrašo. Įdiekite „Microsoft Silverlight“, „Adobe Flash Player“ ar „Internet Explorer 9“.

Įtraukite daugiau galios į jūsų duomenų analizės kuriant ryšius amogn skirtingų lentelių. Ryšio yra tarp dviejų lentelių, kuriuose yra duomenų ryšį: kiekvienos lentelės stulpelio yra pagrindas ryšį. Kad geriau suprastumėte, kuo gali būti naudingi ryšiai, įsivaizduokite, kad sekate kliento užsakymų duomenis. Jūs galėsite sekti visus duomenis į vieną lentelę, kuriuose yra tokia:

CustomerID

Pavadinimas

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Ashton

chris.ashton@contoso.com

0,05

256

2010-01-07

Kompaktiškas skaitmeninis

11

1

Ashton

chris.ashton@contoso.com

0,05

255

2010-01-03

Veidrodinis fotoaparatas

15

2

Jaworski

michal.jaworski@contoso.com

0,10

254

2010-01-03

Nebrangi filmų montažinė

27

Šis būdas gali veikti, bet jį taikant saugoma daug pasikartojančių duomenų, pvz., kiekvieno užsakymo kliento el. pašto adresas. Saugoti nebrangu, bet pasikeitus el. pašto adresui būtina atnaujinti kiekvieną to kliento eilutę. Vienas iš šios problemos sprendimų yra duomenų paskirstymas keliose lentelėse ir ryšių tarp tų lentelių apibrėžimas. Šis būdas taikomas reliacinėse duomenų bazėse, pvz., SQL serveryje. Importuojamoje duomenų bazėje užsakymo duomenys gali būti pateikiami naudojant tris susijusias lenteles:

Customers

[CustomerID]

Name

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

marijus.bagdonas@contoso.com

KlientoNuolaidos

[CustomerID]

DiscountRate

1

.05

2

.10

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

2010-01-07

Kompaktiškas skaitmeninis

11

1

255

2010-01-03

Veidrodinis fotoaparatas

15

2

254

2010-01-03

Nebrangi filmų montažinė

27

Ryšiai yra duomenų modelis – vieną, kuris aiškiai sukursite arba vienas, kad "Excel" automatiškai sukuria jūsų vardu, kai vienu metu importuojate keliose lentelėse. Taip pat galite naudoti Power Pivot papildinį kurti arba valdyti modelį. Informacijos rasite "Excel" duomenų modelio kūrimas .

Jeigu naudojate „Power Pivot“ papildinį importuodami lenteles iš tos pačios duomenų bazės, „Power Pivot“ gali nustatyti ryšius tarp lentelių pagal [skliaustais] išskirtus stulpelius ir atkurti šiuos ryšius duomenų modelyje, kuris kuriamas jums nedalyvaujant. Daugiau informacijos žr. šio straipsnio dalyje Automatinis ryšių aptikimas ir numatymas. Jeigu lentelės importuojamos iš įvairių šaltinių, galima sukurti ryšius neautomatiškai, kaip nurodyta straipsnyje Ryšių tarp dviejų lentelių kūrimas.

Ryšiai pagrįsti kiekvienoje lentelėje esančiais stulpeliais, kuriuose yra tokie patys duomenys. Pvz., jums gali būti susiję, jei kiekvieną lentelę užsakymai lentelė Klientai yra stulpelis, kuriame saugoma Kliento ID. Pavyzdyje stulpelių pavadinimai sutampa, bet tai nėra būtina. Vieno stulpelio pavadinimas galėtų būti CustomerID, o kito – CustomerNumber, jei tik visose lentelės „Orders“ eilutėse bus nurodytas ID, kuris saugomas ir lentelėje „Customers“.

Reliacinės duomenų bazės, yra kelių tipų klavišus. Raktas paprastai yra stulpelis su specialios ypatybės. Supratus kiekvieno rakto paskirtį bus lengviau tvarkyti kelių lentelių duomenų modelį, teikiantį duomenis „PivotTable“, „PivotChart“ ar „Power View“ ataskaitai.

Nors daugelio tipų kodų, tai yra svarbiausių mūsų tikslais čia:

  • Pirminį raktą: unikaliai identifikuoja eilutę lentelėje, pvz., CustomerID lentelėje Klientai .

  • Alternatyvių kodą (arba candidate kodą): stulpelį, išskyrus pirminį raktą, kuris yra unikalus. Pavyzdžiui, lentelėje Darbuotojai gali būti darbuotojų ID ir socialinio draudimo numeriai, kurie yra unikalūs.

  • Išorinis raktas: stulpelis, nurodantis kitoje lentelėje, pvz., CustomerID lentelėje " Orders ", nurodantis CustomerID lentelėje Klientai unikalų stulpelį.

Duomenų modelyje pirminis raktas arba alternatyvusis raktas vadinamas susijusiu stulpeliu. Jeigu lentelėje yra pirminis ir alternatyvusis raktai, kaip lentelės ryšio pagrindą galima naudoti bet kurį iš jų. Išorinis raktas vadinamas šaltinio stulpeliu arba tiesiog stulpeliu. Mūsų pavyzdyje ryšio būtų apibrėžti, CustomerID lentelėje užsakymai (stulpelyje) ir CustomerID lentelėje Klientai (peržvalgos stulpelis). Importuojant duomenis iš santykinės duomenų bazės, pagal numatytuosius nustatymus „Excel“ parenka išorinį raktą iš vienos lentelės ir atitinkamą pirminį raktą iš kitos lentelės. Tačiau peržvalgos stulpeliui galite naudoti bet kurį stulpelį, kuriame yra unikalios reikšmės.

Ryšį tarp kliento ir tvarka yra vienas su daugeliu ryšį. Klientui gali būti priskirti keli užsakymai, bet užsakymui gali būti priskirtas tik vienas klientas. Kitas svarbus lentelių ryšių yra vienas su vienu. Mūsų pavyzdyje, CustomerDiscounts lentelės, kuri apibrėžia vieno diskonto norma kiekvieno kliento, turi ryšį su lentelę Klientai.

Šioje lentelėje nurodyti ryšiai tarp trijų lentelių(Klientai, CustomerDiscountsir užsakymai):

Ryšys

Tipas

Peržvalgos stulpelis

Stulpelis

Customers-CustomerDiscounts

vienas su vienu

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers – Orders

vienas su daugeliu

Customers.CustomerID

Orders.CustomerID

Pastaba: Duomenų modelis nepalaiko ryšių „daugelis su daugeliu“. Ryšio „daugelis su daugeliu“ pavyzdys yra tiesioginis ryšys tarp produktų ir klientų, kai klientai gali pirkti daug produktų, o vieną produktą gali pirkti daug klientų.

Sukūrę santykiai, "Excel" paprastai perskaičiuoti formules, naudojančios stulpelius iš lentelių naujai sukurtą ryšį. Apdorojimas gali šiek tiek užtrukti, atsižvelgiant į duomenų kiekį ir sudėtingumą ryšius. Daugiau informacijos ieškokite Formulių perskaičiavimas.

Duomenų modelyje gali būti keli ryšiai tarp dviejų lentelių. Norėdami kurti tikslūs skaičiavimai, reikalingų "Excel" vieną kelią iš vienos lentelės į kitą. Todėl vienu metu aktyvus tik vienas kiekvienos lentelių poros ryšys. Nors kiti yra neaktyvi, galite nurodyti, neaktyvus ryšio formules ir užklausose.

Diagramos rodinyje aktyvaus ryšio yra nenutrūkstama linija ir neaktyvus tie, kurie yra Brūkšninės linijos. Pvz., AdventureWorksDW2012, DimDate lentelėje yra stulpelis, DateKey, susijusio su tris skirtingus stulpelius lentelėje FactInternetSales: OrderDate, funkcijos naudojimo reiškinyje"ir" Siuntimo_data. Numatytasis ryšys formulėse yra aktyvus ryšys tarp DateKey ir OrderDate, nebent nurodoma kitaip.

Ryšį galima kurti, tada, kai įgyvendinami toliau nurodyti reikalavimai.

Kriterijai

Aprašas

Kiekvienos lentelės unikalus identifikatorius

Kiekvienoje lentelėje turi būti vienas stulpelis, kuriame unikaliai identifikuojama kiekviena lentelės eilutė. Šis stulpelis dažnai vadinamas pirminiu raktu.

Unikalūs peržvalgos stulpeliai

Duomenų reikšmės peržvalgos stulpelyje turi būti unikalios. Kitaip tariant, stulpelyje negali būti dublikatų. Duomenų modelyje nuliai ir tuščios eilutės yra atitikmenys tuščių reikšmių, kurios yra konkrečios duomenų reikšmės. Tai reiškia, kad peržvalgos stulpelyje negali būti kelių nulių.

Suderinami duomenų tipai

Šaltinio stulpelyje ir peržvalgos stulpelio duomenų tipai turi būti suderinami. Daugiau informacijos apie duomenų tipus rasite Palaikomi duomenų modelių duomenų tipai.

Duomenų modelyje negalima kurti lentelių ryšių, jeigu raktas yra sudėtinis. Galima kurti tik ryšius „vienas su vienu“ ir „vienas su daugeliu“. Kiti ryšių tipai nepalaikomi.

Sudėtiniai raktai ir peržvalgos stulpeliai

Sudėtinio rakto sudaro daugiau nei vieną stulpelį. Duomenų modelių negalima naudoti raktų: lentelės visada turi būti tik vieną stulpelį, kuriame unikaliai identifikuoja kiekvieną lentelės eilutę. Jei importuoti lenteles, kuriose yra į esamą ryšį, pagrįstą sudėtinio rakto, todėl jo negalima sukurti modelio lentelės importavimo vediklio "Power Pivot" nepaisys tą ryšį.

Norėdami sukurti ryšį tarp dviejų lentelių, kuriose yra keli stulpeliai, apibrėžiantys pirminius ir išorinius raktus, iš pradžių sujunkite reikšmes, kad sukurtumėte vieną rakto stulpelį, ir tik tada kurkite ryšį. Tai galite atlikti prieš importuoti duomenis arba sukurti apskaičiuojamąjį stulpelį į duomenų modelį, naudojant "PowerPivot" papildinį.

Ryšiai „daugelis su daugeliu“

Duomenų modelyje negali būti ryšių „daugelis su daugeliu“. Negalima tiesiog įtraukti sujungimo lentelių į modelį. Tačiau modeliuojant ryšius „daugelis su daugeliu“ galima naudoti DAX funkcijas.

Vidiniai sujungimai ir ciklai

Vidiniai sujungimai duomenų modelyje neleidžiami. Vidinis sujungimas yra rekursinis ryšys tarp lentelės ir jos pačios. Vidiniai sujungimai dažnai naudojami pirminėms ir antrinėms hierarchijoms apibrėžti. Pavyzdžiui, galima sujungti lentelę Darbuotojai su ja pačia, kad būtų sukurta hierarchija, parodanti verslo valdymo grandinę.

„Excel“ darbaknygėje negalima kurti ciklų tarp ryšių. Kitaip tariant, toliau nurodyto ryšių rinkinio naudoti negalima.

1 lentelė, stulpelis   su   2 lentele, stulpelis f

2 lentelė, stulpelis f   su   3 lentele, stulpelis n

3 lentelė, stulpelis n   su   1 lentele, stulpelis a

Jeigu bandysite sukurti ryšį, pagal kurį bus sukuriamas ciklas, bus pateikiama klaida.

Vienas iš duomenų importavimo naudojant „Power Pivot“ papildinį pranašumų yra tas, kad „Power Pivot“ kartais gali aptikti ryšius ir sukurti naujų ryšių duomenų modelyje, kurį kuria „Excel“.

Importuojant kelias lenteles „Power Pivot“ automatiškai aptinka visus esamus ryšius tarp lentelių. Kai kuriama „PivotTable“, „Power Pivot“ analizuoja lentelėse esančius duomenis. Papildinys aptinka galimus ryšius, kurie nebuvo apibrėžti, ir pasiūlo atitinkamus stulpelius, į kuriuos bus įtraukti tie ryšiai.

Aptikimo algoritmas naudoja statistinius reikšmių duomenis ir stulpelių metaduomenis, kad būtų galima numatyti ryšių galimybes.

  • Visų susijusių stulpelių duomenų tipai turi būti suderinami. Automatinio aptikimo, palaikomi tik sveikąjį skaičių ir teksto duomenų tipai. Daugiau informacijos apie duomenų tipus, rasite duomenų tipai ir duomenų modelių.

  • Siekiant sėkmingai aptikti ryšį, peržvalgos stulpelyje esančių unikalių raktų skaičius turi būti didesnis negu lentelės reikšmės dalyje „daugelis“. Kitaip tariant, rakto stulpelyje, priklausančiame ryšio daliai „daugelis“, negali būti jokių reikšmių, kurių nėra peržvalgos lentelės rakto stulpelyje. Tarkime, kad yra lentelė, kurioje išvardyti produktai ir jų ID (peržvalgos lentelė) ir pardavimo lentelė, kurioje nurodyti kiekvieno produkto pardavimo duomenys (ryšio dalis „daugelis“). Jeigu pardavimo įrašuose yra produkto ID, kuriam lentelėje Produktai nepriskirtas atitinkamas ID, ryšio negalima sukurti automatiškai, bet jį gali pavykti sukurti neautomatiškai. Jeigu norite, kad „Excel“ aptiktų ryšį, iš pradžių būtina atnaujinti produktų peržvalgos lentelę naudojant trūkstamų produktų ID.

  • Įsitikinkite, kad dalies „daugelis“ rakto stulpelio pavadinimas yra panašus į peržvalgos lentelės rakto stulpelio pavadinimą. Pavadinimai neprivalo visiškai sutapti. Pvz., verslo aplinkoje, dažnai turi variantų pavadinimai, stulpelių, kuriuose yra iš esmės tie patys duomenys: Emp ID, EmployeeID, darbuotojo ID, EMP_IDir pan. Algoritmas aptinka panašius pavadinimus ir priskiria stulpeliams, kurių pavadinimai yra panašūs arba vienodi, didesnę tikimybę. Todėl norėdami padidinti ryšio sukūrimo tikimybę galite pakeisti importuojamų duomenų stulpelių pavadinimus į tokius, kurie panašūs į suteiktus esamų lentelių stulpeliams. Jeigu „Excel“ aptinka kelis galimus ryšius, ryšys nesukuriamas.

Ši informacija gali padėti jums suprasti, kodėl nėra aptinkami visi ryšiai arba kaip keitimai metaduomenų – pvz., lauko pavadinimą ir duomenų tipai – galėtų pagerinti Automatinis ryšių aptikimas rezultatus. Daugiau informacijos ieškokite Ryšių trikčių šalinimas.

Automatinis įvardytųjų rinkinių aptikimas

„PivotTable“ tarp įvardytųjų rinkinių ir susijusių laukų ryšiai automatiškai neaptinkami. Šiuos ryšius galima sukurti neautomatiškai. Jeigu norite naudoti automatinį ryšių aptikimą, pašalinkite kiekvieną įvardytąjį rinkinį ir įtraukite atskirus laukus iš įvardytojo rinkinio tiesiogiai į „PivotTable“.

Ryšių numatymas

Tam tikrais atvejais ryšiai tarp lentelių automatiškai sujungiami. Jeigu kuriamas ryšys tarp dviejų pirmųjų lentelių rinkinių (tolesnis pavyzdys), numatoma, kad ryšys egzistuoja tarp kitų dviejų lentelių, ir jis sukuriamas automatiškai.

Produktai ir kategorija – sukurtas neautomatiškai

Kategorija ir subkategorija – sukurtas neautomatiškai

Produktai ir subkategorija – ryšys numatytas

Kad ryšiai būtų automatiškai sujungti, jie turi būti nukreipti viena kryptimi, kaip parodyta anksčiau. Jeigu pradiniai ryšiai buvo tarp elementų Pardavimas ir produktai bei Pardavimas ir klientai, ryšys nėra numatomas. Taip yra todėl, kad ryšys tarp elementų Produktai ir Klientai yra ryšys „daugelis su daugeliu“.

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×