Izveidojot relācijas, kas amogn dažādas tabulas, savu datu analīzi varat izmantot vēl vairāk. Relācija ir saistība starp divām tabulām, kurās ir dati: relācijas pamatā ir viena kolonna katrā tabulā. Lai saprastu, kā noder relāciju izmantošana, iedomājieties, ka savā uzņēmumā sekojat līdzi klientu pasūtījumu datiem. Visiem datiem varat sekot līdzi vienā tabulā ar šādu struktūru:
Klienta_ID |
Vārds |
E-pasts |
DiscountRate |
OrderID |
OrderDate |
Produkts |
Daudzums |
---|---|---|---|---|---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
0.05 |
256 |
2010-01-07 |
Compact Digital |
11 |
1 |
Ashton |
chris.ashton@contoso.com |
0.05 |
255 |
2010-01-03 |
SLR Camera |
15 |
2 |
Jaworski |
michal.jaworski@contoso.com |
0.10 |
254 |
2010-01-03 |
Budget Movie-Maker |
27 |
Šāda metode var darboties, bet tajā ir jāsaglabā daudz lieku datu, piemēram, klientu e-pasta adreses tiek saglabātas katram pasūtījumam. Glabāšana krātuvē ir lēta, bet e-pasta adreses maiņas gadījumā jums jānodrošina, lai tiktu atjaunināta katra attiecīgā klienta rinda. Viens veids, kā šo problēmu var risināt, ir sadalīt datus vairākās tabulās un norādīt relācijas starp tabulām. Šāda metode tiek izmantota tādās relāciju datu bāzēs kā SQL Server. Jūsu importētā datu bāze var ietvert, piemēram, pasūtījuma datus, izmantojot trīs saistītas tabulas.
Customers
[CustomerID] |
Vārds |
E-pasts |
---|---|---|
1 |
Ashton |
chris.ashton@contoso.com |
2 |
Jaworski |
michal.jaworski@contoso.com |
CustomerDiscounts
[CustomerID] |
DiscountRate |
---|---|
1 |
0.05 |
2 |
.10 |
Orders
[CustomerID] |
OrderID |
OrderDate |
Produkts |
Daudzums |
---|---|---|---|---|
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 |
Relācijas pastāv datu modelī — tieši izveidotā vai automātiski izveidotā datu modelī, kad vienlaicīgi importējat vairākas tabulas. Modeļa izveidei vai pārvaldīšanai var izmantot arī pievienojumprogrammu Power Pivot. Papildinformāciju skatiet sadaļā Datu modeļa izveide programmā Excel.
Ja izmantojat pievienojumprogrammu Power Pivot, lai importētu tabulas no vienas datu bāzes, pievienojumprogramma Power Pivot spēj noteikt tabulu relācijas, ņemot vērā [iekavās] norādītās kolonnas, un šīs relācijas atveidot fonā izveidotajā datu modelī. Papildinformāciju skatiet šī raksta sadaļā Relāciju automātiska noteikšana un izsecināšana. Ja tabulas importējat no vairākiem avotiem, relācijas varat izveidot manuāli, kā aprakstīts sadaļā Divu tabulu relācijas izveide.
Relācijas ir atkarīgas no kolonnām katrā tabulā, kas ietver vienādus datus. Piemēram, varat saistīt tabulu Klienti ar tabulu Pasūtījumi, ja katrā ir kolonna, kurā ir klienta ID. Šajā piemērā kolonnu nosaukumi ir vienādi, bet tā nav obligāta prasība. Viena kolonna var būt CustomerID, bet otra — CustomerNumber, ja vien visas rindas tabulā Orders ietver ID, kas ir saglabāts arī tabulā Customers.
Relāciju datu bāzē ir vairāki atslēgu tipi. Atslēga parasti ir kolonna ar īpašiem rekvizītiem. Izprotot katras atslēgas uzdevumu, varat labāk pārvaldīt vairāku tabulu datu modeli, kas nodrošina datus rakurstabulas, rakursdiagrammas vai Power View atskaites izveidei.
Lai gan ir daudz veidu atslēgu, mūsu mērķim tās ir vissvarīgākās šeit:
-
Primārā atslēga: unikāli identificē tabulas rindu, piemēram, CustomerID tabulā Customers .
-
Alternatīvā atslēga (vai kandidātatslēna): cita unikāla kolonna, kas nav primārā atslēga. Tabulā Employees var glabāt, piemēram, darbinieka ID un sociālās apdrošināšanas numuru — tie abi ir unikāli.
-
Ārējā atslēga: kolonna, kas norāda uz unikālu kolonnu citā tabulā, piemēram, CustomerID tabulā Orders , kura norāda uz CustomerID tabulā Customers.
Datu modelī primārā atslēga vai alternatīvā atslēga tiek saukta par saistīto kolonnu. Ja tabulā ir gan primārā, gan alternatīva atslēga, tabulu relācijas pamatā varat izmantot jebkuru no tām. Ārējā atslēga tiek saukta par avota kolonnu vai vienkārši kolonnu. Mūsu piemērā relācija tiktu definēta starp (kolonnu) CustomerID tabulā Orders un (uzmeklēšanas kolonnu) CustomerID tabulā Customers. Ja importējat datus no relāciju datu bāzes, programma Excel pēc noklusējuma izvēlas ārējo atslēgu no vienas tabulas un atbilstošo primāro atslēgu no otras tabulas. Tomēr kā uzmeklēšanas kolonnu varat izmantot jebkuru kolonnu, kura ir unikālas vērtības.
Relācija starp klientu un pasūtījumu ir relācija viens pret daudziem. Katram klientam var būt vairāki pasūtījumi, bet vienam pasūtījumam nevar būt vairāki klienti. Citas svarīgas tabulu relācijas ir viens pret vienu. Šajā piemērā tabulai CustomerDiscounts , kurā katram klientam ir definēta viena diskonta likme, attiecībā uz tabulu Customers ir relācija Viens pret vienu.
Šajā tabulā ir parādītas relācijas starp trīs tabulām (Customers, CustomerDiscounts un Orders):
Relācija |
Tips |
Uzmeklēšanas kolonna |
Kolonna |
---|---|---|---|
Customers-CustomerDiscounts |
Viens pret vienu |
Customers.CustomerID |
CustomerDiscounts.CustomerID |
Customers-Orders |
Viens pret daudziem |
Customers.CustomerID |
Pasūtījumi.Klienta_ID |
Piezīme.: Datu modelī netiek atbalstītas relācijas Daudzi pret daudziem. Relācijas Daudzi pret daudziem piemērs ir tieša relācija starp tabulām Products un Customers, kurā viens klients var iegādāties daudzus produktus un viena veida produktu var iegādāties daudzi klienti.
Kad ir izveidota kāda relācija, programmai Excel parasti ir jāpārrēķina visas formulas, kurās tiek izmantotas kolonnas no jaunizveidotajā relācijā ievietotajām tabulām. Apstrāde var aizņemt kādu laiku, ņemot vērā datu daudzumu un relāciju sarežģītību. Papildinformāciju skatiet sadaļā Formulu pārrēķināšana.
Datu modelī starp divām tabulām var būt vairākas relācijas. Lai izveidotu precīzus aprēķinus, programmai Excel nepieciešams viens ceļš no vienas tabulas uz nākamo. Tāpēc starp katru tabulu pāri vienlaicīgi ir aktīva tikai viena relācija. Lai gan citas relācijas nav aktīvas, neaktīvu relāciju varat norādīt formulās un vaicājumos.
Diagrammas skatā aktīvā relācija ir nepārtraukta līnija, bet neaktīvās relācijas ir pārtrauktu līniju līnijas. Piemēram, AdventureWorksDW2012 tabulā DimDate ir kolonna DateKey, kas ir saistīta ar trīs dažādām kolonnām tabulā FactInternetSales: OrderDate, DueDate un ShipDate. Ja aktīvā relācija ir starp kolonnām DateKey un OrderDate, tad tā formulās ir noklusējuma relācija, ja vien nenorādāt citādi.
Relāciju var izveidot, ja ir ievērotas tālāk aprakstītās prasības.
Kritēriji |
Apraksts |
---|---|
Katras tabulas unikālais identifikators |
Katrai tabulai ir nepieciešama viena kolonna, kas unikāli identificē katru šīs tabulas rindu. Šī kolonna bieži tiek saukta par primāro atslēgu. |
Unikālās uzmeklēšanas kolonnas |
Uzmeklēšanas kolonnas datu vērtībām ir jābūt unikālām. Tas nozīmē, ka šajā kolonnā nedrīkst būt dublikātu. Datu modelī nulles un tukšas virknes ir vienādas ar tukšumiem, kas ir noteikta datu vērtība. Tas nozīmē, ka uzmeklēšanas kolonnā nedrīkst būt vairākas nulles. |
Saderīgie datu tipi |
Datu tipiem avota kolonnā ir jābūt saderīgiem ar datu tipiem uzmeklēšanas kolonnā. Papildinformāciju par datu tipiem skatiet sadaļā Datu modeļos atbalstītie datu tipi. |
Datu modelī tabulu relāciju nevar izveidot, ja atslēga ir kompozītatslēga. Pastāv arī ierobežojumi attiecībā uz relāciju Viens pret vienu un Viens pret daudziem izveidi. Citi relāciju tipi netiek atbalstīti.
Kompozītatslēgas un uzmeklēšanas kolonnas
Kompozītatslēga ir atslēga, kuru veido vairākas kolonnas. Datu modeļi nevar izmantot kompozītatslēces: tabulai vienmēr ir nepieciešama tieši viena kolonna, kas unikāli identificē katru tabulas rindu. Ja importējat tabulas, kurās ir no kompozītatslēulas atkarīgas relācijas, programmas Power Pivot tabulas importēšanas vednis šīs relācijas ignorē, jo tās nevar izveidot modelī.
Lai izveidotu relāciju starp divām tabulām, kur primārās un ārējās atslēgas nosaka vairākas kolonnas, vispirms kombinējiet šīs vērtības, lai pirms relācijas izveidošanas radītu vienu atslēgas kolonnu. To var izdarīt pirms datu importēšanas vai datu modelī izveidojot aprēķināto kolonnu, izmantojot pievienojumprogrammu Power Pivot.
Relācijas Daudzi pret daudziem
Datu modelī nevar būt relācijas Daudzi pret daudziem. Modelī nevar vienkārši pievienot savienojuma tabulas. Tomēr varat izmantot DAX funkcijas, lai modelētu relācijas Daudzi pret daudziem.
Patstāvīgi savienojumi un cilpas
Patstāvīgi savienojumi datu modelī nav atļauti. Patstāvīgs savienojums ir rekursīva relācija vienas tabulas ietvaros. Patstāvīgi savienojumi bieži tiek izmantoti vecākobjekta-bērnobjekta hierarhiju definēšanai. Varat pievienot, piemēram, tabulu Employees šai pašai tabulai, lai izveidotu hierarhiju, kas attēlo biznesa procesu vadības ķēdi.
Programma Excel neļauj izveidot cilpas starp relācijām darbgrāmatā. Tas nozīmē, ka nākamā relāciju kopa ir aizliegta.
1. tabula, kolonna a ar 2. tabulu, kolonnu f
2. tabula, kolonna f ar 3. tabulu, kolonnu n
3. tabula, kolonna n ar 1. tabulu, kolonnu a
Ja mēģināt izveidot relāciju, kas radītu cilpu, rodas kļūda.
Viena no datu importēšanas priekšrocībām, izmantojot pievienojumprogrammu Power Pivot ir tā, ka dažreiz pievienojumprogrammā Power Pivot var tikt noteiktas relācijas un izveidotas jaunas relācijas programmā Excel izveidotajā datu modelī.
Kad importējat vairākas tabulas, pievienojumprogramma Power Pivot automātiski nosaka visas šo tabulu relācijas. Tāpat, kad izveidojat rakurstabulu, pievienojumprogramma Power Pivot analizē tabulās esošos datus. Tā nosaka iespējamās relācijas, kas nav norādītas, un ierosina šajās relācijās iekļaut atbilstošās kolonnas.
Lai izsecinātu relāciju iespējamību, noteikšanas algoritms izmanto statistiskos datus par kolonnu vērtībām un metadatiem.
-
Visu saistīto kolonnu datu tipiem ir jābūt saderīgiem. Automātiskas noteikšanas nolūkos ir atbalstīti tikai veselu skaitļu un teksta datu tipi. Papildinformāciju par datu tipiem skatiet sadaļā Datu modeļos atbalstītie datu tipi.
-
Lai relācijas tiktu veiksmīgi noteiktas, unikālo atslēgu skaitam uzmeklēšanas kolonnā ir jābūt lielākam par vērtību skaitu daudzo puses tabulā. Tas nozīmē, ka atslēgas kolonna relācijas daudzo pusē nedrīkst ietvert nekādas vērtības, kas neatrodas uzmeklēšanas tabulas atslēgas kolonnā. Pieņemsim, ka jums ir tabula, kurā uzskaitīti produkti un to ID (uzmeklēšanas tabula), un pārdošanas tabula, kurā uzskaitīti pārdošanas rādītāji katram produktam (relācijas daudzo puse). Ja pārdošanas ierakstos ir minēts produkta ID tādam produktam, kam nav atbilstoša ID tabulā Products, relāciju nevar izveidot automātiski, bet, iespējams, to varat izveidot manuāli. Lai programma Excel noteiktu šo saistību, vispirms jāatjaunina uzmeklēšanas tabula Product, izmantojot trūkstošo produktu ID.
-
Nodrošiniet, lai atslēgas kolonnas nosaukums daudzo pusē būtu līdzīgs atslēgas kolonnas nosaukumam uzmeklēšanas tabulā. Šiem nosaukumiem nav jābūt precīzi vienādiem. Piemēram, uzņēmuma iestatījumos bieži var būt dažādas nosaukumu variācijas kolonnām, kas faktiski ietver vienādus datus: Emp ID, EmployeeID, Employee ID, EMP_ID utt. Algoritms nosaka līdzīgos nosaukumus un piešķir augstāku iespējamību tām kolonnām, kam ir līdzīgi vai precīzi atbilstoši nosaukumi. Šī iemesla dēļ, lai palielinātu relācijas izveidošanas iespējamību, varat mēģināt pārdēvēt importējamo datu kolonnas, lai tās sauktos līdzīgi kolonnām jau esošajās tabulās. Ja programma Excel atrod vairākas iespējamas relācijas, tā neizveido relāciju.
Šī informācija jums var palīdzēt saprast, kāpēc ne visas relācijas tiek noteiktas un kā metadatu izmaiņas — piemēram, lauka nosaukuma un datu tipu izmaiņas — var uzlabot relāciju automātiskās noteikšanas rezultātus. Papildinformāciju skatiet sadaļā Relāciju problēmu novēršana.
Automātiska noteikšana kopām ar nosaukumiem
Relācijas starp kopām ar nosaukumiem un saistītajiem rakurstabulas laukiem netiek noteiktas automātiski. Šīs relācijas varat izveidot manuāli. Ja vēlaties izmantot automātisko relāciju noteikšanu, noņemiet katru kopu ar nosaukumu un atsevišķos laukus no šīs kopas ar nosaukumu tieši pievienojiet nepieciešamajai rakurstabulai.
Relāciju izsecināšana
Reizēm relācijas starp tabulām tiek saķēdētas automātiski. Ja izveidojat, piemēram, relāciju starp pirmajām divām nākamo tabulu kopām, tiek izsecināts, ka pastāv relācija starp abām pārējām tabulām, un tāda relācija tiek izveidota automātiski.
Products un Category — izveidota manuāli
Category un SubCategory — izveidota manuāli
Products un SubCategory — relācija tiek izsecināta
Lai relācijas tiktu automātiski saķēdētas, relācijām ir jābūt vienvirziena, kā redzams iepriekš. Ja sākotnējās relācijas ir, piemēram, starp tabulām Sales un Products un starp Sales un Customers, relācija netiek izsecināta. Tas ir tāpēc, ka relācija starp tabulām Products un Customers ir relācija Viens pret daudziem.