Связи между таблицами в модели данных

Примечание:  Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.
Видеоролик: связи в Power View и PowerPivot

Видеоролик: связи в Power View и PowerPivot

Видеоролик: связи в Power View и PowerPivot

Видеоролик: Связи в Power View и PowerPivot

Усовершенствовать анализе данных с помощью создания связей amogn различных таблиц. Связи — это соединение двух таблиц, содержащих данные: один столбец во всех таблицах, основана на отношения. Чтобы увидеть, почему отношения полезны, представьте отслеживания данных заказов клиентов в вашей компании. Может отслеживать все данные в одной таблице имеет структуру следующим образом:

CustomerID

Name

EMail

DiscountRate

OrderID

OrderDate

Product

Quantity

1

Эштон

chris.ashton@contoso.com

0,05

256

01.07.2010

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

11

1

Эштон

chris.ashton@contoso.com

0,05

255

01.03.2010

Однообъективный зеркальный фотоаппарат

15

2

Яворски

michal.jaworski@contoso.com

0,10

254

01.03.2010

Недорогая видеокамера

27

Этот подход может быть эффективным, но он подразумевает хранение множества избыточных данных, таких, как адрес электронной почты клиента для каждого заказа. Хранение данных обходится дешево, но если адрес электронной почты изменился, необходимо убедиться, чтоб была обновлена каждая строка для этого клиента. Одним из решений этой проблемы является разбиение данных на несколько таблиц и задание связей между этими таблицами. Этот подход используется в реляционных базах данных таких, как SQL Server. Например, импортированная база данных может представлять данные заказа, используя три связанные таблицы.

Customers

[CustomerID]

Name

Email

1

Эштон

chris.ashton@contoso.com

2

Яворски

michal.jaworski@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

0,05

2

0,10

Orders

[CustomerID]

OrderID

OrderDate

Product

Quantity

1

256

01.07.2010

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

11

1

255

01.03.2010

Однообъективный зеркальный фотоаппарат

15

2

254

01.03.2010

Недорогая видеокамера

27

Чтобы отобразить отношения в модели данных — явно создавать или одно Excel автоматически создает от вашего имени при импорте несколько таблиц одновременно. Надстройка Power Pivot можно также использовать для создания и управление моделью. Подробнее читайте в статье Создание модели данных в Excel .

Во время импорта таблицы из одной базы данных с помощью надстройки Power PivotPower Pivot может обнаруживать связи между таблицами, основанными на столбцах, заключенных в [квадратные скобки], и воспроизводить эти связи в модели данных, создаваемой в фоновом режиме. Дополнительные сведения см. в разделе Автоматическое обнаружение и вывод связей этой статьи. Если таблицы импортируются из нескольких источников, можно вручную создать связи, как это описано в статье Создание связей между двумя таблицами.

Связи основаны на столбцы в каждой из таблиц, содержащих те же данные. Например можно связать, что таблица клиентов с таблицу Orders при каждом содержит столбец, который сохраняет Идентификатор клиента. В этом примере имена столбцов одни и те же, но это не является обязательным. Одним может быть CustomerID и другой НомерКлиента до тех пор, пока все строки в таблице «Заказы» содержит код, хранящийся в таблице Customers.

Реляционные базы данных существует несколько типов ключей. Ключ — обычно столбца с помощью специального свойства. Основные сведения о назначение каждого раздела помогут вам управлять несколькими таблицами модели данных, которая содержит данные для отчета сводной таблицы, сводной диаграммы или Power View.

Хотя существует множество типов ключи, эти наиболее важны для нашей цели здесь:

  • Первичный ключ: однозначно определяет строку в таблице, например CustomerID в таблице Customers .

  • Альтернативный ключ (или потенциальный ключ): столбца Кроме первичного ключа, которая является уникальной. Например таблицы «Сотрудники» может хранить код сотрудника и номера социального страхования, которые являются уникальными.

  • Внешний ключ: столбец, который ссылается на уникальный столбец в другой таблице, например CustomerID в таблице Orders , который ссылается на CustomerID в таблице Customers.

В модели данных первичный ключ или альтернативный ключ называется связанный столбец. Если в таблице есть оба основной и дополнительный раздел, можно использовать как основу один из отношения между таблицами. Внешний ключ называется исходный столбец или просто столбца. В нашем примере будет определяться связи между CustomerID в таблице Orders (столбец) и CustomerID в таблице « Клиенты » (столбец подстановки). При импорте данных из реляционной базы данных по умолчанию Excel выбирает соответствующий первичный ключ и внешний ключ из одной таблицы из другой таблицы. Тем не менее можно использовать любой столбец, содержащий уникальные значения для столбца подстановки.

Связь между клиентом и порядок будет один ко многим. Каждый клиент может быть несколько заказов, но заказ не может содержать несколько клиентов. Один к одному другой важных между таблицами. В нашем примере CustomerDiscounts таблицы, которая определяет одну ставку дисконтирования для каждого клиента, имеет один к одному отношения с таблицы «Клиенты».

Эта таблица содержит связи между тремя таблицами(клиентов, CustomerDiscountsи заказах).

Связь

Тип

Столбец подстановки

Столбец

Customers-CustomerDiscounts

один к одному

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers — Orders

один ко многим

Customers.CustomerID

Orders.CustomerID

Примечание:  Связи «многие ко многим» не поддерживаются в модели данных. Примером связи «многие ко многим» является прямая связь между таблицами Products и Customers, в которой заказчик может купить много продуктов и одинаковый продукт может быть одновременно куплен несколькими заказчиками.

После создания связи Excel обычно необходимо пересчитать все формулы, использующих столбцы из таблиц в только что созданному связи. Обработка может занять некоторое время в зависимости от объема данных и сложности связи. Для получения дополнительных сведений просмотреть Повторное вычисление формулы.

Множественные связи между двумя таблицами может иметь модели данных. Для создания точность вычислений Excel должен один путь из одной таблицы в другую. Таким образом только одну связь между каждой парой таблиц активен одновременно. Хотя остальные неактивны, вы можете указать неактивные связи в формулах и запросах.

В представлении схемы активной связи — сплошная линия и неактивные, пунктирные линии. Например, в AdventureWorksDW2012, таблицы DimDate содержит столбца DateKey, которая связана в трех разных столбцах таблицы FactInternetSales: OrderDate DueDateи ShipDate. При активной связи между DateKey и OrderDate, если не указан в противном случае — это связи по умолчанию в формулах.

Связь можно создать, если выполняются следующие требования.

Условия

Описание

Уникальный идентификатор для каждой таблицы

Каждая таблица должна иметь один столбец, однозначно определяющий каждую строку в этой таблице. Такой столбец часто именуется первичным ключом.

Уникальные столбцы подстановки

Значения данных в столбце подстановки должны быть уникальными. Другими словами, столбец не может содержать дубликаты. В модели данных значения NULL и пустые строки считаются эквивалентными пустому значению, которое является отдельным значением данных. Это значит, что столбец подстановки не может содержать несколько значений NULL.

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

Типы данных в исходном столбце и столбец подстановки должны быть совместимыми. Дополнительные сведения о типах данных типы данных, поддерживаемые в моделях данныхсм.

В модели данных нельзя создать связь между таблицами, если ключ является составным. Также существует ограничение на создание связей «один к одному» и «один ко многим». Другие типы связей не поддерживаются.

Составные ключи и столбцы подстановки

Составные ключи состоит из нескольких столбцов. Модели данных нельзя использовать составные ключи: таблицы всегда должна иметь только один столбец, однозначно определяющее каждой строки в таблице. При импорте таблицы с существующим отношением на основе составного ключа, мастер импорта таблиц в PowerPivot будет игнорировать отношение, так как не может быть создан в модели.

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

Многие ко многим

Модель данных, не могут иметь связи многие ко многим. Не удается просто добавьте исходными таблицами в модели. Тем не менее можно использовать функции DAX в связи многие ко многим модели.

Самосоединения и циклы

В модели данных не разрешается использование самосоединений. Самосоединение — это рекурсивная связь таблицы с самой собой. Самосоединения часто используются для определения иерархий типа «родители-потомки». Например, можно настроить самосоединение для таблицы Employees, чтобы создать иерархию, показывающую цепочку управления на предприятии.

Excel не позволяет создавать циклы среди связей в книге. Иными словами, следующий набор связей запрещается.

Таблица 1, столбец «а»   к   Таблице 2, столбец «f»

Tаблица 2, столбец «f»   к   Таблице 3, столбец «n».

Таблица 3, столбец «n»   к   Таблице 1, столбец «a».

При попытке создания связи, которая приведет к образованию цикла, выдается ошибка.

Одно из преимуществ импорта данных с помощью надстройки Power Pivot заключается в том, что Power Pivot иногда может обнаруживать связи и создавать новые связи в модели данных, создаваемой в Excel.

При импорте нескольких таблиц Power Pivot автоматически определяет все существующие связи между ними. Кроме того, при создании сводной таблицы Power Pivot анализирует данные в таблицах. Он обнаруживает возможные связи, которые не были определены, и предлагает столбцы, которые можно включить в них.

Алгоритм обнаружения на основании статистических данных о значениях и метаданных столбцов формирует выводы о вероятности связей.

  • Типы данных во всех связанных столбцах должны быть совместимыми. Для автоматического обнаружения поддерживаются только целочисленные и текстовые типы данных. Дополнительные сведения о типах данных см. в разделе Типы данных, поддерживаемые вмоделях данных.

  • Для успешного обнаружения связи количество уникальных ключей в столбце подстановки должно превышать количество значений в таблице на стороне «многие». Другими словами, ключевой столбец на стороне «многие» связи не должен содержать значений, не содержащихся в ключевом столбце таблицы подстановки. Например, предположим, что имеется таблица, в которой перечислены продукты и их идентификаторы (таблица подстановки), а также таблица продаж, содержащая данные продаж всех продуктов (сторона «многие» связи). Если записи продаж содержат идентификатор продукта, не имеющего соответствующий идентификатор в таблице Products, связь нельзя создать автоматически, но можно создать вручную. Для обеспечения обнаружения связи с помощью Excel необходимо сначала обновить таблицу подстановки Product с использованием идентификаторов недостающих продуктов.

  • Убедитесь, что имя столбца ключа на стороне «многие» аналогичным имени ключевого столбца в таблицу подстановки. Имена не нужно быть одинаковым. Например, в настройках бизнес, часто у вас варианты по именам столбцов, содержащих по существу те же данные: Emp ID, код сотрудника, код сотрудника, EMP_IDи т. д. Алгоритм обнаруживает одинаковые имена и присваивает выше вероятность те столбцы, которые имеют одинаковые или точности совпадающие имена. Таким образом чтобы увеличить вероятность создания отношения, вы можете попробовать переименование столбцов в импорте примерно так, как столбцы в существующих таблиц данных. Если Excel найдет нескольких возможных связей, нажмите его не создать связь.

Эти сведения помогают понять, почему не удалось выявить все связи и какие изменения в метаданных (именах полей и типах данных) могут повысить эффективность автоматического обнаружения связей. Дополнительные сведения см. в разделе Устранение неполадок в связях.

Автоматическое обнаружение именованных наборов

Связи между именованными наборами и связанными полями в сводной таблице не обнаруживаются автоматически. Такие связи можно создать вручную. При необходимости использования автоматического обнаружения связей удалите каждый именованный набор и добавьте отдельные поля из именованного набора непосредственно в сводную таблицу.

Вывод связей

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

Products и Category — связь создается вручную

Category и SubCategory — связь создается вручную

Products и SubCategory — связь определяется автоматически

Для автоматического объединения связей в цепочки эти связи должны идти в одном направлении, как показано выше. Если исходные связи были установлены, например между таблицами Sales и Products, а также между Sales и Customers, то связь не выводится. Это вызвано тем, что связь между таблицами Products и Customers является связью «многие ко многим».

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×