И Power Pivot

Отношения и Power Pivot - манекены

Вам не обязательно быть экспертом по моделированию баз данных для использования Power Pivot. Но важно понимать отношения. Чем лучше вы понимаете, как данные хранятся и управляются в базах данных, тем эффективнее вы будете использовать Power Pivot для отчетности.

Связь - это механизм, с помощью которого отдельные таблицы связаны друг с другом. Вы можете думать о связи как VLOOKUP, в котором вы связываете данные в одном диапазоне данных с данными в другом диапазоне данных, используя индекс или уникальный идентификатор. В базах данных отношения делают то же самое, но без хлопот написания формул.

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

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

Данные хранятся в электронной таблице Excel с использованием формата с плоской таблицей.

Поскольку у клиентов есть несколько счетов-фактур, информация о клиенте (в этом примере CustomerID и CustomerName) должна быть повторена. Это вызывает проблему, когда эти данные необходимо обновить.

Например, представьте, что название компании Aaron Fitz Electrical меняется на Fitz and Sons Electrical. Посмотрев на таблицу, вы увидите, что несколько строк содержат старое имя. Вы должны убедиться, что каждая строка, содержащая старое название компании, обновляется, чтобы отразить это изменение. Любые строки, которые вы пропустили, неправильно вернут правильному клиенту.

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

Это идея отношений. Вы можете отделить клиентов от счетов-фактур, разместив их в своих собственных таблицах. Затем вы можете использовать уникальный идентификатор (например, CustomerID), чтобы связать их вместе.

На следующем рисунке показано, как эти данные будут выглядеть в реляционной базе данных. Данные будут разделены на три отдельные таблицы: клиенты, InvoiceHeader и InvoiceDetails. Затем каждая таблица будет связана с использованием уникальных идентификаторов (CustomerID и InvoiceNumber, в данном случае).

Базы данных используют отношения для хранения данных в уникальных таблицах и просто связывают эти таблицы друг с другом.

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

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

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

Наконец, в отношениях «многие-ко-многим» записи в обеих таблицах могут иметь любое количество совпадающих записей в другой таблице. Например, база данных в банке может иметь таблицу различных типов кредитов (ипотечный кредит, автокредит и т. Д.) И таблицу клиентов. У клиента может быть много видов кредитов. Между тем, каждый тип кредита может быть предоставлен многим клиентам.