Tabelivahelised seosed andmemudelis

Märkus.: Soovime pakkuda teie keeles kõige ajakohasemat spikrisisu niipea kui võimalik. See leht on tõlgitud automaatselt ja sellel võib leiduda grammatikavigu või ebatäpsusi. Tahame, et sellest sisust oleks teile abi. Palun märkige selle lehe allservas, kas sellest teabest oli teile kasu või mitte. Soovi korral saab ingliskeelset artiklit lugeda siit.

Teie brauser ei toeta videot. Installige Microsoft Silverlight, Adobe Flash Player või Internet Explorer 9.

Lisada rohkem power andmete analüüsi amogn erinevate tabelite seoste loomine. Seose on kaks tabelit, mis sisaldavad andmeid omavahel: üks veerg iga tabeli aluseks seost. Seoste kasulikkuse mõistmiseks kujutlege, et jälgite oma ettevõttes klienditellimuste andmeid. Võiks jälgida kõik andmed üheks tabeliks ülesehitusega umbes järgmine:

CustomerID (Kliendi ID)

Name (Nimi)

Email

DiscountRate

OrderID

Tellimiskuupäev

Product

Quantity

1

Ashton

chris.ashton@contoso.com

0,05

256

2010-01-07

Kompaktne digitaalne

11

1

Ashton

chris.ashton@contoso.com

0,05

255

2010-01-03

SLR-kaamera

15

2

Jaworski

michal.jaworski@contoso.com

0,10

254

2010-01-03

Väikse eelarvega filmitegija

27

Selline lähenemine võib toimida, kuid sellega kaasneb rohkelt liigsete andmete talletamist, nagu kliendi meiliaadress iga tellimuse juures. Talletamine on odav, kuid meiliaadressi muutudes peate värskendama selle kliendi kõiki ridu. Üks võimalik lahendus on tükeldada andmed mitmeks tabeliks ja määratleda nende tabelite vahel seosed. See on lähenemisviis, mida kasutavad sellised relatsiooniandmebaasid nagu SQL Server. Näiteks võib imporditav andmebaas esitada tellimuseandmeid, kasutades kolme seotud tabelit:

Kliendid

[CustomerID]

Name

Email

1

Ashton

chris.ashton@contoso.com

2

Jaworski

michal.jaworski@contoso.com

CustomerDiscounts (Kliendiallahindlused)

[CustomerID]

DiscountRate

1

0,05

2

0,10

Tellimused

[CustomerID]

OrderID

Tellimiskuupäev

Product

Quantity

1

256

2010-01-07

Kompaktne digitaalne

11

1

255

2010-01-03

SLR-kaamera

15

2

254

2010-01-03

Väikse eelarvega filmitegija

27

Andmemudeli seoste olemasolu – üks, et loote selgesõnaliselt või üks, mille Excel automaatselt loob teie nimel, kui impordite korraga mitme tabeli. Samuti saate mudeli loomiseks või haldamiseks kasutada Power Pivoti lisandmoodulit. Põhjalikumat teavet leiate artiklist Andmemudeli loomine Excelis.

Kui kasutate Power Pivoti lisandmoodulit tabelite importimiseks samast andmebaasist, võib Power Pivot tuvastada tabelitevahelised seosed [nurksulgudes] asuvate veergude põhjal ja need taastekitada taustal koostatavas andmemudelis. Lisateavet leiate selle artikli jaotisest Seoste automaattuvastus ja tuletamine. Mitmest allikast importides saate seoseid käsitsi luua; seda on kirjeldatud artiklis Kahe tabeli vahel seose loomine.

Seosed põhinevad kõigi tabelite veergudel, mis sisaldavad samu andmeid. Näiteks võib seotud tellimuste tabel, kui iga tabel sisaldab veerg, mis talletab on Tellijaid. Näites on veerunimed samad, aga see pole kohustuslik. Üks võib olla CustomerID ja teine CustomerNumber, kuid kõik tellimuste tabeli read peavad sisaldama ID-d, mis leidub ka klientide tabelis.

Relatsiooniandmebaasist, on mitut tüüpi võtmed. Võti on tavaliselt veeru teisiti atribuudid. Iga võtme eesmärgi mõistmine võib teil aidata hallata mitme tabeliga andmemudelit, mis pakub andmeid PivotTable-liigendtabelile, PivotChartile või Power View’ aruandele.

Kuigi on mitut tüüpi klahvid, need on kõige olulisem meie eesmärgil siit:

  • Primaarvõti: tuvastab kordumatult tabeli, nt CustomerIDklientide tabelis rea.

  • Alternatiivse klahvi (või testversiooni võti): peale primaarvõtme, mis on kordumatu veeru. Näiteks töötajate tabel võib sisaldada nii töötaja ID-d kui isikukoodi, mis mõlemad on kordumatud.

  • Välisvõti: veerg, mis viitab kordumatule veerule teises tabelis, nt CustomerIDtellimuste tabelis, mis viitab CustomerID-le klientide tabelis.

Andmemudelis viidatakse primaarvõtmele ja alternatiivvõtmele kui seotud veerule. Kui tabelis on nii primaar- kui alternatiivvõti, võite tabeliseose alusena kasutada emba-kumba neist. Välisvõtmele viidatakse kui lähteveerule või lihtsalt veerule. Selles näites määratletakse CustomerIDtellimuste tabelis (veerus) ja tabel Kliendid (otsinguveeru) tellijaid vahel seose. Kui impordite andmeid relatsiooniandmebaasist, valib Excel vaikimisi välisvõtme ühest tabelist ja vastava primaarvõtme teisest tabelist. Üldiselt saate otsinguveeruna kasutada suvalist kordumatute väärtustega veergu.

Kliendi ja tellimuse seos on üks-mitmele seose. Igal kliendil võib olla mitu tellimust, kuid tellimusel ei saa olla mitut klienti. Mõne muu oluline Tabeliseose on üks-ühele. Selles näites siin on customerdiscounts (kliendiallahindlused) tabeli, mis määratleb ühe diskontomäär iga kliendi, klientide tabel üks-ühele seos.

Selles tabelis on kuvatud(kliendid, customerdiscounts (kliendiallahindlused)ja tellimused) kolme tabeli vahelisi seoseid.

Seos

Tüüp

Otsinguveerg

Veerg

Customers-CustomerDiscounts

üks-ühele

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

üks mitmele

Customers.CustomerID

Orders.CustomerID

Märkus.: Andmemudelis pole mitu-mitmele seosed toetatud. Mitu-mitmele seose näide on vahetu seos toodete ja klientide vahel, kus klient saab osta mitu toodet ja sama toodet saab osta mitu klienti.

Pärast iga seose loomist, peab Exceli tavaliselt ümberarvutamine tabeli veergude kasutamine vastloodud seose valemeid. Töötlemine võib aega võtta, sõltuvalt andmete hulgast ja seoste keerukusest. Lisateavet leiate teemast Valemite ümberarvutamine.

Andmemudelis võib kahe tabeli vahel olla mitu seost. Koostamiseks täpseid arvutusi, Exceli tuleb teed ühest tabelist teise. Niisiis on iga tabelipaari vahel korraga aktiivne ainult üks seos. Kuigi teised on aktiivne, saate määrata passiivsed seose valemites ja päringud.

Diagrammivaates aktiivse seose on pidevjoone ja passiivsed need on kriipsjooned. Näiteks AdventureWorksDW2012, tabelis DimDate sisaldab veergu, Kuupäevvõti, mis on seotud kolme eri veergu tabeli FactInternetSales: TellimuseKuupäev, tähtaeg identifikaatoristja Tarnekuupäev. Kui aktiivne seos on veergude DateKey ja OrderDate vahel, on see valemites vaikeseos, kui te just ei määra mõnda teist.

Seose saab luua, kui järgmised nõuded on täidetud.

Kriteeriumid

Kirjeldus

Iga tabeli kordumatu ID

Igal tabelil peab olema üks veerg, mis identifitseerib kõik selle tabeli read kordumatul viisil. Seda veergu nimetatakse tihti primaarvõtmeks.

Kordumatud otsinguveerud

Otsinguveeru andmeväärtused peavad olema kordumatud. Teisisõnu ei tohi veerg sisaldada kordusi. Andmemudelis võrduvad nullväärtused ja tühjad stringid tühiväärtusega, mis on eraldi andmeväärtus. See tähendab, et otsinguveerus ei või mitut nulli olla.

Ühilduvad andmetüübid

Lähteveeru ja otsinguveeru andmetüübid peavad omavahel ühilduma. Andmetüüpide kohta leiate lisateavet teemast andmemudelite toetatud andmetüübid.

Andmemudelis ei saa tabeliseost luua, kui võti on koondvõti. Samuti on lubatud ainult üks ühele ja üks mitmele seosed. Muid seosetüüpe ei toetata.

Koondvõtmed ja otsinguveerud

Koondvõti koosneb mitmest veerust. Andmemudelid ei saa kasutada koondvõtmed: tabelis peab alati olema täpselt üks veerg, mis tuvastab kordumatult tabeli iga rea. Kui impordite tabelid, millel on olemasoleva seose alusel kombineeritud klahvi, ignoreerivad lisandmoodulis Power Pivot tabeli impordiviisardi kustutamist seose kuna see ei saa luua mudel.

Kui loote seost kahe tabeli vahel, millel on mitu primaar- ja välisvõtmeid määratlevat veergu, ühendage väärtused üheainsa võtmeveeru tegemiseks enne seose loomist. Saate seda teha enne andmete importimiseks või alusel arvutatud veeru loomine Power Pivoti andmemudelis lisandmoodul.

Mitu-mitmele seosed

Andmemudelis ei saa olla mitu-mitmele seoseid. Liitmiktabeleid ei saa lihtsalt mudelisse lisada. Küll aga saate DAX-i funktsioonide abil modelleerida mitu-mitmele seoseid.

Iseliitmised ja tsüklid

Iseliitmised pole andmemudelis lubatud. Iseliitmine on rekursiivne seos tabeli ja iseenda vahel. Iseliitmisi kasutatakse tihti ema-/tütarhierarhiate määratlemisel. Näiteks: võiksite töötajate tabeli liita tabeli endaga, et luua ettevõtte haldusahelat kirjeldav hierarhia.

Excel ei luba töövihikus seoste vahel tsükleid luua. Teisisõnu on järgmised seosekomplektid keelatud.

Tabel 1, veerg a   ja   Tabel 2, veerg f

Tabel 2, veerg f   ja   Tabel 3, veerg n

Tabel 3, veerg n   ja   Tabel 1, veerg a

Kui proovite luua seost, mis tekitaks tsükli, tekib tõrge.

Üks eeliseid andmete importimisel Power Pivoti lisandmooduliga seisneb selles, et Power Pivot võib vahel seoseid tuvastada ja luua uued seosed Excelisse tehtavas andmemudelis.

Kui impordite mitu tabelit, tuvastab Power Pivot automaatselt tabelitevahelised olemasolevad seosed. Samuti analüüsib Power Pivot tabelites andmeid PivotTable-liigendtabeli loomisel. See tuvastab võimalikud määratlemata seosed ja soovitab sobivaid veerge nendes seostes kaasamiseks.

Tuvastusalgoritm kasutab veergude metaandmete ja väärtuste statistilisi andmeid, et teha järeldusi seoste tõenäosuse kohta.

  • Kõigi seotud veergude andmetüübid peavad omavahel ühilduma. Automaattuvastuse puhul toetatakse ainult täisarvu ja teksti andmetüüpe. Lisateavet andmetüüpide kohta leiate lehelt Andmemudelites toetatudandmetüübid.

  • Seose edukaks tuvastamiseks peab otsinguveeru kordumatute võtmete arv olema suurem kui väärtused tabeli poolel "mitmele". Teisisõnu ei tohi seose poolel "mitmele" paiknev võtmeveerg sisaldada ühtki väärtust, mis pole otsingutabeli võtmeveerus. Näiteks: oletame, et teil on tabel, kus on tooted ja nende ID-d (otsingutabel), ja müügitabel, kus on kõigi toodete müük (seose pool "mitmele"). Kui teie müügikirjed sisaldavad toote ID-d, millele ei leidu toodete tabelis vastavat ID-d, ei saa seost automaatselt luua, kuid võib-olla saab selle teha käsitsi. Võimaldamaks Excelil seoseid tuvastada peate kõigepealt värskendama toodete otsingutabelit puuduvate toodete ID-dega.

  • Veenduge, et võtmeveeru nimi poolel "mitmele" sarnaneb otsingutabeli võtmeveeru nimega. Nimed ei pea tingimata kattuma. Näiteks äri keskkonnas, sageli olete variatsioonid põhiosas sama andmeid sisaldavate veergude nimed: Emp ID, töötaja ID, töötaja ID EMP_IDjne. Algoritm tuvastab sarnased nimed ja määrab suurema tõenäosuse veergudele, millel on sarnased või kattuvad nimed. Niisiis võite seose loomise tõenäosuse suurendamiseks proovida veerud imporditavates andmetes ümber nimetada, pannes olemasolevate tabelite veergudele sarnanevad nimed. Kui Excel leiab mitu võimalikku seost, jäetakse seos loomata.

Sellest teabest on teil ehk kasu mõistmaks, miks kõiki seoseid ei tuvastata ja kuidas metaandmete (nt väljanimi ja andmetüübid) muutused võivad automaatse seosetuvastuse tulemusi parandada. Lisateavet vaadake lehelt Seoste tõrkeotsing.

Nimega komplektide automaattuvastus

Nimega komplektide ja PivotTable-liigendtabeli seotud väljade vahel ei tuvastata seoseid automaatselt. Need seosed saab luua käsitsi. Kui soovite kasutada automaatset seosetuvastust, eemaldage kõik nimega komplektid ja lisage nimega komplekti üksikväljad otse PivotTable-liigendtabelisse.

Seoste tuletamine

Mõnel juhul määratakse tabeliseosed ahelana. Näiteks: kui loote seose kahe esimese alltoodud tabelikomplekti vahel, järeldatakse, et seos on olemas ka kahe teise tabeli vahel ja see seos luuakse automaatselt.

Tooted ja Kategooria -- loodud käsitsi

Kategooria ja Alamkategooria -- loodud käsitsi

Tooted ja Alamkategooria -- seos on tuletatud

Seoste automaatseks aheltuletuseks peavad seosed minema ühes suunas, nagu ülal näidatud. Kui algseosed oleks nt Müük ja Tooted ning Müük ja Kliendid, siis seost ei tuletataks. Põhjuseks on see, et toodete ja klientide seos on mitu-mitmele tüüpi.

Täiendage Office'i kasutamise oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×