Релации между таблици в модел на данни

Забележка:  Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

Вашият браузър не поддържа видео. Инсталирайте Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.
Видео: Релации в Power View и Power Pivot

Видео: Релации в Power View и Power Pivot

Видео: Релации в Power View и Power Pivot

Видео: Релации в Power View и Power Pivot

Добавете още power за анализ на данни чрез създаване на релации amogn различни таблици. Една връзка е връзка между две таблици, които съдържат данни: една колона във всяка таблица е основата за връзката. За да видите защо релации са полезни, Представете си, проследяване на данни за поръчките на клиентите във вашия бизнес. Можете да проследите всички данни в една таблица със структура по следния начин:

ИД_клиент

Име

Имейл

Отстъпка

ИД_поръчка

Дата_поръчка

Продукт

Количество

1

Христов

plamen.hristov@contoso.com

0,05

256

07.01.2010

Компактни цифрови

11

1

Христов

plamen.hristov@contoso.com

0,05

255

03.01.2010

Огледално-рефлексни фотоапарати

15

2

Димитров

borislav.dimitrov@contoso.com

0,10

254

03.01.2010

Бюджетни видеокамери

27

Този метод работи, но включва съхранението на много излишни данни, напр. имейл адресите на клиентите за всяка поръчка. Съхранението е евтино, но ако имейл адресът се промени, трябва да актуализирате всеки ред за този клиент. Едно решение на този проблем е да разделите данните в няколко таблици и да дефинирате релации между тях. Това е подходът, който се използва в релационни бази данни като SQL Server. Например една база данни, която вие импортирате, може да представя данни за поръчките, като се използват три свързани таблици:

Клиенти

[ИД_клиент]

Име

Имейл

1

Христов

plamen.hristov@contoso.com

2

Димитров

borislav.dimitrov@contoso.com

Отстъпки

[ИД_клиент]

Отстъпка

1

0,05

2

0,10

Поръчки

[ИД_клиент]

ИД_поръчка

Дата_поръчка

Продукт

Количество

1

256

07.01.2010

Компактни цифрови

11

1

255

03.01.2010

Огледално-рефлексни фотоапарати

15

2

254

03.01.2010

Бюджетни видеокамери

27

Зависимости съществуват в модел на данни – такава, която създавате изрично или такава, която Excel автоматично създава от ваше име, когато импортирате едновременно няколко таблици. Можете също да използвате добавката Power Pivot да създадете или управлявате модела. Вижте Създаване на модел на данни в Excel за подробности.

Ако използвате добавката на Power Pivot, за да импортирате таблици от същата база данни, Power Pivot може да открие релациите между таблиците, базирани на колоните, които са в [скоби], и да възпроизведе тези релации в модела на данни, който бива създаден на заден план. За повече информация вж. Автоматично откриване и подразбиране на релациите в тази статия. Ако импортирате таблици от няколко източника, може ръчно да създадете релации, както е описано в Създаване на релация между две таблици.

Релации се базират на колони във всяка таблица, които съдържат същите данни. Например можете да се отнасят таблица " клиенти " с таблица " поръчки " Ако всеки съдържа колона, която съхранява ИД на клиента. В примера имената на колоните са еднакви, но това не е изискване. Една може да бъде CustomerID и друг CustomerNumber, докато всички редове в таблицата Orders съдържа ИД, който се съхранява в таблица "клиенти".

В релационна база данни има няколко типа клавиши. Ключ обикновено е колона със специални свойства. Разбиране на предназначението на всеки ключ може да ви помогне да управлявате няколко страници модел на данни, който предоставя данни за отчет с обобщена таблица, обобщена диаграма или Power View.

Въпреки че има много видове клавиши, това са най-важните за нашата цел тук:

  • Първичен ключ: уникално идентифицира ред в таблица, като например CustomerID в таблица " клиенти ".

  • Алтернативен ключ (или кандидат ключ): колона различни от първичен ключ, който е уникален. Например таблица на служителите могат да съхраняват ИД на служител и номер на социална осигуровка, които са уникални.

  • Външен ключ: колона, която се обръща към уникална колона в друга таблица, като например CustomerID в таблица " поръчки ", която се обръща към CustomerID в таблица "клиенти".

В модел на данни на първичния ключ или алтернативен ключ се нарича свързаната колона. Ако таблицата има както първичните и алтернативен ключ, можете да използвате или един като основа на релация между таблиците. Външен ключ е посочена като източник на колоната или просто колона. В нашия пример ще се дефинира релация между CustomerID в таблица " поръчки " (колона) и CustomerID в таблица " клиенти " (колона за справка). Ако импортирате данни от релационна база данни, по подразбиране Excel избира външен ключ от една таблица и съответните първичен ключ от другата таблица. Въпреки това можете да използвате всяка колона, която има уникални стойности на колона за справка.

Връзката между клиент и поръчка е "един към много". Всеки клиент може да има няколко поръчки, но поръчка не може да има няколко потребители. Друга важна таблица връзката е едно към едно. В нашия пример CustomerDiscounts таблица, която определя един дисконтова ставка за всеки клиент, има релация с таблица "клиенти".

Тази таблица показва релациите между трите таблици (клиенти, CustomerDiscountsи поръчки):

Релация

Тип

Справочна колона

Колона

Customers-CustomerDiscounts

"един към един"

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

"един към много"

Customers.CustomerID

Orders.CustomerID

Забележка:  Релациите тип "много към много" не се поддържат в модел на данни. Пример за релация тип "много към много" е пряката релация между "Продукти" и "Клиенти", в която един клиент може да купи много продукти и един и същ продукт да бъде продаден на много клиенти.

След като е бил създаден всяка връзка, Excel обикновено трябва да се преизчисляват всички формули, които използват колони от таблици в новосъздадения релацията. Обработката може да отнеме известно време, в зависимост от размера на данните и сложността на зависимостите. За повече подробности вижте Преизчисляване на формули.

Модел на данни може да има множество зависимости между две таблици. За да съставите точни изчисления, Excel се нуждае от един път от една таблица към следващата. Следователно само една релация между всяка двойка на таблици е активен в даден момент. Въпреки че другите са неактивни, можете да укажете неактивна връзка във формули и заявки.

В изглед на диаграма активната зависимост е плътна линия и неактивни тези, които са пунктирани линии. Например в AdventureWorksDW2012, таблицата DimDate съдържа колона, DateKey, който е свързан с три различни колони в таблицата по- FactInternetSales: OrderDate използванеи Дата на изпращане. Ако активната зависимост между DateKey и OrderDate, това е по подразбиране връзката във формули, ако не посочите друго.

Дадена релация може да бъде създадена, ако бъдат изпълнени следните изисквания:

Критерии

Описание

Уникален идентификатор за всяка таблица

Всяка таблица трябва да има една колона, която уникално да идентифицира всеки ред в тази таблица. Колоната често се нарича основен ключ.

Уникални справочни колони

Стойностите на данните в справочната колона трябва да бъдат уникални. С други думи, колоната не може да съдържа дублиращи се стойности. В модела на данни нулите и празните низове са равностойни на празни стойности, които представляват различни стойности на данни. Това означава, че не може да има множество нули в справочната колона.

Съвместими типове данни

Типове данни в колоната на източника и колона за справка, трябва да са съвместими. За повече информация за типовете данни вижте типовете данни, поддържани в модели на данни.

В модела на данни не може да се създава релация на таблица, ако ключът е комбиниран. Освен това сте ограничени при създаването на релации от типа "един към един" и "един към много". Не се поддържат други типове релации.

Комбинирани ключове и справочни колони

Комбиниран ключ се състои от повече от една колона. Модели на данни можете да използвате съставни ключове: таблица винаги трябва да имат точно една колона, която уникално идентифицира всеки ред в таблицата. Ако импортирате таблици, които имат съществуваща връзка, базирана на комбиниран ключ, съветника за импортиране на таблица в Power Pivot ще игнорира тази връзка, защото не може да бъде създаден в модела.

За да създадете релация между две таблици, които имат няколко колони, дефиниране на първичните и външните ключове, първо да комбинирате стойностите за създаване на една ключова колона преди да създадете връзката. Можете да направите това, преди да импортирате данните, или чрез създаване на изчисляема колона в модела на данни чрез добавката Power Pivot добавка.

Много към много зависимости

Модел на данни не може да има много към много зависимости. Не можете да добавяте просто съединение таблици в модела. Въпреки това можете да използвате функциите на DAX за модел на много към много отношения.

Рефлексивни съединения и цикли

Рефлексивните съединения не са позволени в модела на данни. Рефлексивно съединение представлява рекурсивна релация между една таблица и нея самата. Рефлексивните съединения често се използват за дефиниране на йерархии от тип родител-наследник. Например може да съедините таблица "Служители" с нея самата, за да получите йерархия, която да показва управленската верига в даден бизнес.

Excel не позволява създаването на цикли между релации в една работна книга. С други думи, следният набор от релации е забранен.

Таблица 1, колона а   към   Таблица 2, колона f

Таблица 2, колона f   към   Таблица 3, колона n

Таблица 3, колона n   към   Таблица 1, колона а

Ако опитате да създадете зависимост, която ще създаде цикъл, се генерира грешка.

Едно от предимствата на импортирането на данни посредством добавката Power Pivot е, че понякога Power Pivot може да открива релации и да създава нови такива в модела на данни, който създава в Excel.

Когато импортирате множество таблици, Power Pivot автоматично открива всички съществуващи релации между таблиците. Също така, когато създавате обобщена таблица, Power Pivot анализира данните в таблиците. Той открива възможни релации, които не са били дефинирани, и предлага подходящи колони, които да се включат в тези релации.

Алгоритъмът за откриване използва статистически данни за стойностите и метаданните на колоните, за да направи изводи за вероятността на релациите.

  • Типовете данни във всички свързани колони трябва да са съвместими. За автоматично откриване се поддържат само цели числа и текстови типове данни. За повече информация относно типове данни вж. Типове данни, поддържани в модели на данни.

  • За да бъде открита една релация успешно, броят на уникалните ключове в справочната колона трябва да бъде по-голям от стойностите в таблицата в страна "много". С други думи, ключовата колона в страна "много" на зависимостта не трябва да съдържа стойности, които не са в ключовата колона на справочната таблица. Например представете си, че имате таблица, която изброява продукти с техните ИД (справочната таблица) и таблица с продажби, която изброява продажбите за всеки продукт (страна "много" на релацията). Ако списъкът с продажби съдържа ИД на продукта, който няма съответстващ ИД в таблица "Продукти", релацията не може да бъде създадена автоматично, а вие вероятно ще трябва да я създадете ръчно. За да може Excel да открие релацията, трябва първо да актуализирате справочна таблица "Продукти" с ИД на липсващите продукти.

  • Уверете се, че името на колоната с ключа в страната много прилича на името на ключова колона в таблица за справки. Имената не трябва да е същото. Например в един бизнес, често имате вариации на имената на колоните, които съдържат основно едни и същи данни: Emp ИД, EmployeeID, ИД на служител, EMP_IDи т.н. Алгоритъмът открива сходни имена и дава по-голяма вероятност на тези колони, които са подобни или точно съответстващи имена. Следователно за да увеличите вероятността за създаване на релация, можете да опитате преименуването на колоните в данните, които импортирате към нещо подобно на колони в съществуващ таблиците. Ако Excel намери няколко възможни връзки, след което не създава релация.

Тази информация може да ви помогне да разберете защо не всички релации се откриват или как промените в метаданните – като имена на полета и типове данни – могат да подобрят резултатите от автоматичното откриване на релации. За повече информация вж. Отстраняване на неизправности при релации.

Автоматично откриване на наименувани набори

Релациите не се откриват автоматично между наименувани набори и свързани полета в обобщена таблица. Може да създадете тези релации ръчно. Ако искате да използвате автоматичното откриване на релации, премахнете всеки наименуван набор и добавете индивидуални полета от наименувания набор директно към обобщената таблица.

Подразбиране на зависимости

В някои случаи релациите между таблиците се свързват автоматично. Например ако създадете релация между първите два набора от таблиците по-долу, подразбира се, че съществува релация между другите две таблици и релацията се създава автоматично.

Продукти и категория – създадена ръчно

Категория и подкатегория – създадена ръчно

Продукти и подкатегория – зависимостта се подразбира

За да се свържат автоматично релациите, те трябва да вървят последователно, както е указано по-горе. Ако първоначалните релации бяха, например между "Продажби" и "Продукти" и "Продажби" и "Клиенти", релация няма да бъде подразбрана. Това е така, защото релацията между "Продукти" и "Клиенти" е релация от тип "много към много".

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×