что такое модель данных в excel
Excel Power Pivot — модель данных
Модель данных — это новый подход, представленный в Excel 2013, для интеграции данных из нескольких таблиц, эффективно создавая реляционный источник данных в книге Excel. В Excel модель данных используется прозрачно, предоставляя табличные данные, используемые в сводных таблицах и сводных диаграммах. В Excel вы можете получить доступ к таблицам и их соответствующим значениям через списки полей сводной таблицы / сводной диаграммы, которые содержат имена таблиц и соответствующие поля.
Основное использование модели данных в Excel — это использование Power Pivot. Модель данных может рассматриваться как база данных Power Pivot, а все функции управления питанием Power Pivot управляются с помощью модели данных. Все операции с данными с Power Pivot носят явный характер и могут быть визуализированы в модели данных.
В этой главе вы подробно разберетесь в модели данных.
Excel и модель данных
В книге Excel будет только одна Модель данных. При работе с Excel использование модели данных неявно. Вы не можете напрямую получить доступ к модели данных. Вы можете видеть только несколько таблиц в модели данных в списке полей сводной таблицы или сводной диаграммы и использовать их. Создание модели данных и добавление данных также выполняется неявно в Excel, когда вы получаете внешние данные в Excel.
Если вы хотите взглянуть на модель данных, вы можете сделать это следующим образом:
Нажмите вкладку POWERPIVOT на ленте.
Нажмите вкладку POWERPIVOT на ленте.
Модель данных, если она существует в книге, будет отображаться в виде таблиц, каждая из которых имеет вкладку.
Примечание. Если вы добавите таблицу Excel в модель данных, вы не преобразуете таблицу Excel в таблицу данных. Копия таблицы Excel добавляется в качестве таблицы данных в модель данных, и между ними создается связь. Следовательно, если изменения вносятся в таблицу Excel, таблица данных также обновляется. Однако с точки зрения хранения есть две таблицы.
Power Pivot и модель данных
Модель данных по своей сути является базой данных Power Pivot. Даже когда вы создаете модель данных из Excel, она создает только базу данных Power Pivot. Создание модели данных и / или добавление данных выполняется явно в Power Pivot.
Фактически вы можете управлять моделью данных из окна Power Pivot. Вы можете добавлять данные в модель данных, импортировать данные из разных источников данных, просматривать модель данных, создавать связи между таблицами, создавать вычисляемые поля и вычисляемые столбцы и т. Д.
Создание модели данных
Вы можете добавить таблицы в модель данных из Excel или напрямую импортировать данные в Power Pivot, создавая таким образом таблицы модели данных Power Pivot. Вы можете просмотреть модель данных, нажав Управление в окне Power Pivot.
Вы поймете, как добавить таблицы из Excel в модель данных в главе «Загрузка данных через Excel». Вы поймете, как загрузить данные в модель данных в главе «Загрузка данных в Power Pivot».
Таблицы в модели данных
Таблицы в модели данных могут быть определены как набор таблиц, содержащих взаимосвязи между ними. Отношения позволяют объединять связанные данные из разных таблиц для анализа и составления отчетов.
Таблицы в модели данных называются таблицами данных.
Таблица в модели данных рассматривается как набор записей (запись — это строка), состоящая из полей (поле — это столбец). Вы не можете редактировать отдельные элементы в таблице данных. Однако вы можете добавить строки или добавить вычисляемые столбцы в таблицу данных.
Типы данных в моделях данных
В модели данных у каждого столбца есть связанный тип данных, который определяет тип данных, которые могут в нем быть: целые числа, десятичных числа, текст, денежные данные, даты и время и так далее. Тип данных также определяет, какие виды операций можно делать со столбцом и сколько памяти требуется для хранения значений в столбце.
Если вы используете надстройки Power Pivot, вы можете изменить тип данных столбца. Это может потребоваться сделать, если столбец даты был импортирован как строка, но он должен быть другим. Дополнительные сведения см. в статье Настройка типа данных столбца вPower Pivot.
В этой статье
Сводка типов данных
В таблице ниже перечислены типы данных, поддерживаемые в модели данных. При импорте данных или использовании значения в формуле, даже если исходный источник данных содержит другой тип данных, данные преобразуются в один из этих типов данных. Значения, полученные из формул, также используют эти типы данных.
Тип данных в Excel
64-битное (восемьбайт) значение 1, 2
64-битное (восемьбайт) реальное число 1, 2
Реальные числа — это числа, которые могут иметь десятичных знаках. Реальные числа охватывают широкий диапазон значений:
Однако количество значимых разрядов ограничено 15 десятичной частью.
Значение True или False.
Строка данных символов Юникода. Могут быть строками, числами или датами, представленными в текстовом формате.
Максимальная длина строки составляет 268 435 456 символов Юникода (256 мега знаков) или 536 870 912 bytes.
Функции даты и времени
Даты и время в принятом представлении даты и времени.
Допустимые даты — это все даты после 1 января 1900 г.
Пустое — это тип данных в DAX, который представляет и заменяет SQL NULL. Вы можете создать пустое с помощью функции BLANK и проверить пустые функциональность с помощью логической функции ЕПУСТО.
1 формулы DAX не поддерживают типы данных, меньшие, чем перечисленные в таблице.
2 Если попытаться импортировать данные с очень большими числными значениями, импорт может привести к ошибке со следующей ошибкой:
Ошибка базы данных в памяти: столбец таблицы <> содержит значение «1,7976931348623157e+308», которое не поддерживается. Операция была отменена.
Эта ошибка возникает потому, Power Pivot использует это значение для представления NULL. Значения в следующем списке являются синонимами значения NULL:
Удалите значение из данных и попробуйте импортировать снова.
Тип данных таблицы
DAX использует тип данных таблицы во многих функциях, таких как агрегаты и вычисления, основанные на аналитике времени. Для некоторых функций требуется ссылка на таблицу; другие функции возвращают таблицу, которую затем можно использовать в качестве входных данных для других функций. В некоторых функциях, которые требуют в качестве входных данных таблицу, можно указать выражение, которое высмеется в таблицу; для некоторых функций требуется ссылка на базовую таблицу. Сведения о требованиях к определенным функциям см. в справочнике по функциям DAX.
Неявное и явное преобразование типов данных в формулах DAX
У каждой функции DAX есть определенные требования к типам данных, которые используются в качестве входных и выходных данных. Например, для одних функций одни аргументы и даты требуются в несколько разных. для других функций требуется текст или таблицы.
Если данные в столбце, который вы указываете в качестве аргумента, несовместимы с типом данных, требуемым функцией, DAX во многих случаях возвращает ошибку. Однако DAX по возможности попытается неявно преобразовать данные в необходимый тип данных. Например:
Вы можете ввести дату в виде строки, и DAX разменит строку и попытается отвести ее как один из форматов Windows даты и времени.
Вы можете добавить true+ 1 и получить результат 2, так как истина неявно преобразуется в число 1 и выполняется операция 1+1.
При добавлении значений в двух столбцах одно из них будет представлено как текст («12»), а другое — как число (12), DAX неявно преобразует строку в число, а затем добавит его для числового результата. Следующее выражение возвращает 44: = «22» + 22
Если попытаться согнуть два числа, Excel выведет их в качестве строк, а затем согнуть. Следующее выражение возвращает «1234»: = 12 & 34.
В следующей таблице общаются неявные преобразования типов данных, выполняемые в формулах. Excel выполняет неявные преобразования по возможности, как требуется указанной операцией.
Таблица неявных преобразований данных
Тип выполненного преобразования определяется оператором, который определяет требуемую величину перед выполнением нужной операции. Эти таблицы указывают на операторы и преобразование, выполняемые для каждого типа данных в столбце, если он сопряжен с типом данных в пересекаемой строке.
Примечание: Текстовые типы данных не включаются в эти таблицы. Если число представлено в текстовом формате, Power Pivot пытается определить его тип и представить его как число.
Задание связей между таблицами в модели данных
Таблицы в модели данных могут иметь несколько связей. Это может быть случай, если вы намеренно создаете дополнительные связи между уже связанными таблицами или импортируете таблицы, которые уже имеют несколько связей, определенных в исходном источнике данных.
Хотя существует несколько связей, в качестве активной текущей связи, которая обеспечивает навигацию по данным и способ вычисления, служит только одна связь. Любые дополнительные связи между парой таблиц считаются неактивными.
Вы можете удалить существующие связи между таблицами, если уверены, что они не нужны, но следует помнить, что это может привести к ошибкам в таблицах или формулах, ссылаемых на эти таблицы. Результаты в стеблях могут неожиданно изменяться после удаления или отключения связи.
Щелкните Данные> Отношения.
В диалоговом окне Управление связями выберите одну связь из списка.
Нажмите кнопку Удалить.
В диалоговом окне предупреждения убедитесь, что вы хотите удалить связь, и нажмите кнопку ОК.
В диалоговом окне Управление связями нажмите кнопку Закрыть.
Начните с Power Pivot
Щелкните Главная > схемы.
В диалоговом окне предупреждения убедитесь, что вы хотите удалить связь, и нажмите кнопку ОК.
Связи существуют в модели данных. Excel также создает модель при импорте нескольких таблиц или при их подмыве. Вы можете специально создать модель данных для использования в качестве основы для отчетов в сбитых, сводных и power View. Дополнительные сведения см. в статье Создание модели данных в Excel.
Вы можете откатить удаление в Excel закрыть управление связями и нажать кнопку Отменить. Если вы удаляете связь в Power Pivot, отменить удаление связи нельзя. Связь можно создать повторно, но для выполнения этой действия требуется полный пересчет формул в книге. Поэтому всегда проверяйте перед удалением связи, используемой в формулах. Подробные сведения см. в обзоре связей.
Функция DATA Analysis Expression (DAX) RELATED использует связи между таблицами для анализа связанных значений в другой таблице. После удаления связи будут возвращены другие результаты. Дополнительные сведения см. в функции RELATED.
Создание и удаление связей не только изменяет результаты в pivotTable и формулах, но и приводит к повторному пересчету книги, что может занять некоторое время.
Моделирование данных: обзор
В работе мы с коллегами часто видим как компании сталкиваются с проблемой управления данными – когда таблиц и запросов становится сильно много и управлять всем этим очень сложно. В таких ситуациях мы рекомендуем моделировать данные. Чтобы разобраться, что это такое – я перевела статью-обзор про моделирование данных от Towards Data Science, в которой кроме основных терминов и понятий можно найти наглядный пример использования моделирования данных в ритейле. Вперед под кат!
Если вы посмотрите на любое программное приложение, то увидите, что на фундаментальном уровне оно занимается организацией, обработкой и представлением данных для выполнения бизнес-требований.
Модель данных — это концептуальное представление для выражения и передачи бизнес-требований. Она наглядно показывает характер данных, бизнес-правила, управляющие данными, и то, как данные будут организованы в базе данных.
Моделирование данных можно сравнить со строительством дома. Допустим, компании ABC необходимо построить дом для гостей (база данных). Компания вызывает архитектора (разработчик моделей данных) и объясняет требования к зданию (бизнес-требования). Архитектор (модельер данных) разрабатывает план (модель данных) и передает его компании ABC. Наконец, компания ABC вызывает инженеров-строителей (администраторов баз данных и разработчиков баз данных) для строительства дома.
Ключевые термины в моделировании данных
Сущности и атрибуты. Сущности — это «вещи» в бизнес-среде, о которых мы хотим хранить данные, например, продукты, клиенты, заказы и т.д. Атрибуты используются для организации и структурирования данных. Например, нам необходимо хранить определенную информацию о продаваемых нами продуктах, такую как отпускная цена или доступное количество. Эти фрагменты данных являются атрибутами сущности Product. Сущности обычно представляют собой таблицы базы данных, а атрибуты — столбцы этих таблиц.
Взаимосвязь. Взаимосвязь между сущностями описывает, как одна сущность связана с другой. В модели данных сущности могут быть связаны как: «один к одному», «многие к одному» или «многие ко многим».
Сущность пересечения. Если между сущностями есть связь типа «многие ко многим», то можно использовать сущность пересечения, чтобы декомпозировать эту связь и привести ее к типу «многие к одному» и «один ко многим».
Простой пример: есть 2 сущности — телешоу и человек. Каждое телешоу может смотреть один или несколько человек, в то время как человек может смотреть одно или несколько телешоу.
Эту проблему можно решить, введя новую пересекающуюся сущность «Просмотр записи»:
ER диаграмма показывает сущности и отношения между ними. ER-диаграмма может принимать форму концептуальной модели данных, логической модели данных или физической модели данных.
Концептуальная модель данных включает в себя все основные сущности и связи, не содержит подробных сведений об атрибутах и часто используется на начальном этапе планирования. Пример:
Логическая модель данных — это расширение концептуальной модели данных. Она включает в себя все сущности, атрибуты, ключи и взаимосвязи, которые представляют бизнес-информацию и определяют бизнес-правила. Пример:
Физическая модель данных включает в себя все необходимые таблицы, столбцы, связи, свойства базы данных для физической реализации баз данных. Производительность базы данных, стратегия индексации, физическое хранилище и денормализация — важные параметры физической модели. Пример:
Основные этапы моделирования данных:
Реляционное vs размерное моделирование
В зависимости от бизнес-требований ваша модель данных может быть реляционной или размерной. Реляционная модель — это метод проектирования, направленный на устранение избыточности данных. Данные делятся на множество дискретных сущностей, каждая из которых становится таблицей в реляционной базе данных. Таблицы обычно нормализованы до 3-й нормальной формы. В OLTP приложениях используется эта методология.
В размерной модели данные денормализованы для повышения производительности. Здесь данные разделены на измерения и факты и упорядочены таким образом, чтобы пользователю было легче извлекать информацию и создавать отчеты.
Компания ABC имеет 200 продуктовых магазинов в восьми городах. В каждом магазине есть разные отделы, такие как «Товары повседневного спроса», «Косметика», «Замороженные продукты», «Молочные продукты» и т.д. В каждом магазине на полках находится около 20 000 отдельных товаров. Отдельные продукты называются складскими единицами (SKU). Около 6 000 артикулов поступают от сторонних производителей и имеют штрих-коды, нанесенные на упаковку продукта. Эти штрих-коды называются универсальными кодами продукта (UPC). Данные собираются POS-системой в 2 местах: у входной двери для покупателей, и у задней двери, где поставщики осуществляют доставку.
В продуктовом магазине менеджмент занимается логистикой заказа, хранением и продажами продуктов. Также продолжают расти рекламные активности, такие как временные скидки, реклама в газетах и т.д.
Разработайте модель данных для анализа операций этой продуктовой сети.
Решение
Шаг 1. Сбор бизнес-требований
Руководство хочет лучше понимать покупки клиентов, фиксируемые POS-системой. Модель должна позволять анализировать, какие товары продаются, в каких магазинах, в какие дни и по каким акционным условиям. Кроме того, это складская среда, поэтому необходима размерная модель.
Шаг 2: Идентификация сущностей
В случае размерной модели нам необходимо идентифицировать наши факты и измерения. Перед разработкой модели необходимо уточнить объем требуемых данных. Согласно требованию, нам нужно видеть данные о конкретном продукте в определенном магазине в определенный день по определенной схеме продвижения. Это дает нам представление о необходимых сущностях:
Количество, которое необходимо рассчитать (например, объем продаж, прибыль и т.д), будет отражено в таблице с фактическими продажами.
Шаг 3: Концептуальная модель данных
Предварительная модель данных будет создана на основе информации, собранной о сущностях. В нашем случае она будет выглядеть так:
Шаг 4: Доработка атрибутов и создание логической модели данных
Теперь необходимо завершить работу над атрибутами для сущностей. В нашем случае дорабатываются следующие атрибуты:
Date Dimension:
Product:
Store:
Promotion:
Sales Fact:
Объем продаж (например, количество банок овощного супа с лапшой).
Сумма продаж в долларах: количество продаж * цена за единицу.
Стоимость в долларах: стоимость продукта, взимаемая поставщиком.
Логическая модель данных будет выглядеть так:
Шаг 5: Создание физических таблиц в базе данных
С помощью инструмента моделирования данных или с помощью кастомных скриптов теперь можно создавать физические таблицы в базе данных.
Думаю, теперь стало достаточно очевидно, что моделирование данных — одна из важнейших задач при разработке программного приложения. И оно закладывает основу для организации, хранения, извлечения и представления данных.
Электронные таблицы как средство разработки бизнес-приложений
Excel часто используется как универсальное средство для разработки бизнес-приложений. В этой статье я хочу сравнить, существующие без особых изменений уже более 30 лет, электронные таблицы с современной классической императивной парадигмой программирования глазами архитектора ПО. Затем я хочу рассказать о своей работе над новым табличным процессором, который исправляет многие недостатки, выявленные при сравнении, тем самым позволяя создавать более надежные, масштабируемые и легкие для поддержки и дальнейшего развития, бизнес-приложения.
Электронные таблицы и их возможности
Принцип, по которому работают современные электронные таблицы (Microsoft Excel, LibreOffice Calc или Google Sheets) появился в конце 70-х – середине 80-х годов. Двухмерный массив ячеек, как модель данных, и возможность автоматических вычислений с помощью формул появились в VisiCalc в 1979 году. Трехмерный массив ячеек (возможность пользоваться несколькими листами) впервые появился в 1985 в Boeing Calc.
В теории, электронные таблицы ничем не уступают любому языку программирования. Существует машина Тьюринга на формулах Excel (линк), а это значит, что любой алгоритм, который можно реализовать с помощью компьютера, можно реализовать в Excel. Вопрос только в удобстве и эффективности такой реализации.
Выходит, что одну и ту же задачу можно решить, как электронной таблицей, так и универсальным языком программирования. Значит, мы можем сравнить сильные и слабые стороны этих двух инструментов, как средств создания бизнес-приложений. Здесь мы попробуем взглянуть на Excel глазами программиста-архитектора и применим правила архитектуры ПО, которые уже устоялись в классической разработке софта.
Достоинства электронных таблиц
Недостатки электронных таблиц
Как сделать электронные таблицы лучше?
Меня зовут Вадим. Я CTO в CubeWeaver и уже довольно давно занимаюсь разработкой нового табличного процессора. Несколько лет назад я уже писал (линк) про раннюю версию системы, но с тех пор многое изменилось и в этом году проект дошел до коммерческой стадии.
Вот список новшеств моего проекта, которые позволяют устранить перечисленные выше недостатки, стараясь при этом сохранить преимущества электронных таблиц:
Многомерная модель данных
Многомерная модель данных широко используется в Business Intelligence и OLAP системах, предназначенных для анализа данных. Суть модели заключается в том, чтобы хранить данные в ячейках многомерного куба, грани которого подписаны заголовками бизнес-объектов:
В интерфейсе программы отображается не весь многомерный куб, а его двумерный срез, соответствующий выбранной нами комбинации фильтров:
При реализации такой модели в реляционной BI системе, часто используют схему снежинки (snowflake schema). Кубы реализуются таблицами фактов (fact table), а заголовки на гранях хранятся в таблицах измерений (dimension table).
В моей системе кубы называются рабочими листами (worksheets), а заголовки на гранях куба называются элементами списков (list items).
Каждая ячейка такого многомерного рабочего листа имеет уникальный адрес, состоящий из надписей на гранях. Например, значение 935 на изображении имеет адрес: Bikes, 2020, Paris.
Каждый элемент списка имеет название и идентификатор. В ссылках на ячейки используются идентификаторы, и вышеуказанный адрес в формуле мог бы выглядеть так (ссылки заключаются в квадратные скобки):
Применение многомерной модели позволяет значительно улучшить ситуацию с недостатком номер 1. Во-первых, заголовки теперь хранятся отдельно от численных данных. Во-вторых, введение дополнительного измерения «метрика» (или «позиция отчета») позволяет адресовать ячейки не по порядковому номеру, а по семантическому смыслу, исключая ошибки из-за добавления или удаления столбцов или строк.
Конечно, нужно сказать, что такой подход слегка портит ситуацию с преимуществом номер 1. В морской бой играли все, а в четырехмерные шахматы только некоторые студенты-математики. Но опыт показывает, что благодаря двумерному представлению куба, большинство пользователей довольно быстро привыкают к новой модели данных.
Функция JOIN и метаданные
Многомерная модель позволяет использовать метаданные для описания ячеек. Метод адресации описанный выше означает, что каждая ячейка рабочего листа соответствует определенному набору элементов списка (например, году, продукту и точке продажи). Списки в свою очередь могут иметь атрибуты (колонки), что делает их похожими на обычные реляционные таблицы. Например, можно добавить колонку «валюта» к списку «точка продажи», связывая таким образом списки «точка продажи» и «валюта» в реляцию с кардинальностью many-to-one.
Функция JOIN дает возможность динамически ссылаться на ячейки, используя такую связь. Эта функция заменяет VLOOKUP, устраняя при этом необходимость работать с индексами.
Пример: для того чтобы посчитать сумму продаж по миру, нужно сначала сконвертировать сумму продаж по каждой стране в единую валюту (умножить позицию «продажи» на курс обмена). В Excel мы бы хранили 2 таблицы: список стран с валютой для каждой страны и список валют с курсом обмена. Для того чтобы найти правильный курс мы бы использовали функцию VLOOKUP два раза: найти код валюты по названию страны и найти курс обмена по коду валюты.
Цепочки связей могут быть любой длины, например: STORE.join(COUNTRY).join(CURRENCY)
Фактически, строя модель, мы создаем схему снежинки. Функция JOIN позволяет формулам динамически ссылаться на ячейки рабочих листов, используя связи между таблицами (списками) этой схемы. При этом зависимости между ячейками явно указаны в аргументах функции JOIN.
Зона действия формул
Возможность указать зону действия формулы (area of effect) позволяет избавиться от необходимости копировать формулы.
По каждому измерению куба мы задаем набор элементов, на которые действует формула, как например: все года, продукты типа «велосипед», позиция отчета «выручка». На практике это выглядит вот так (Синим цветом отмечена цель формулы, красным и оранжевым её аргументы. Список выбранных элементов по каждому измерению находиться внизу экрана):
Этот подход устраняет недостаток номер 2 и позволяет добавлять и удалять элементы или даже измерения, не изменяя формулу. Также отпадает необходимость искать все ячейки, в которые формула была скопирована, каждый раз, когда мы хотим ее изменить.
Интерактивность ячеек
Это нововведение позволяет создавать интерактивные интерфейсы, используя формулы. Формулы можно использовать не только для того чтобы вычислить значение ячейки, но и для форматирования ячеек (cell formatting), изменения цвета ячеек (cell color) и для того чтобы спрятать или показать группу ячеек или целые колонки или строки (cell visibility). Ячейки можно форматировать не только как числа, даты и текст, но и как кнопки, флажки (checkbox) и списки выбора (dropdown).
Таким образом, например, цвет ячеек может меняться в зависимости от значения ячейки. Флажок или список выбора в одном листе может отображать, прятать или блокировать на запись ячейки в другом листе.
Кнопки в ячейках позволяют создавать довольно сложные операции со значениями ячеек. Создавая кнопку, мы задаем цель операции (cell range) и формулу, которая выполняется один раз для каждой из целевых ячеек. На одной кнопке может быть несколько операций. Так, нажатие на кнопку может, например, скопировать данные из предыдущего года в следующий или распределить содержимое ячейки по нескольким другим ячейкам, пропорционально какой-то величине (splashing).
Кнопки в сочетании с ограничениями доступа пользователя позволяют создавать необратимую функциональность. Так, например пользователь получивший доступ к кнопке, но не получивший доступ к целевой ячейке, сможет записать в ячейку только то, что позволит ему формула в кнопке.
Заключение
Новый табличный процессор позволяет создавать значительно более сложные модели, чем это возможно в других системах. При этом модели остаются понятными и простыми в сопровождении. Также значительно уменьшается вероятность ошибок в формулах.
Платой за эти преимущества является повышенная сложность системы. Прежде чем начать работать, пользователь должен создать модель данных в виде списков и кубов.
В целом система рассчитана на технически более грамотного пользователя, чем Excel (например, экономисты с базовыми знаниями программирования или программисты, работающие над экономическими моделями).
С удовольствием отвечу на ваши вопросы в комментариях или личных сообщениях. Также, в интернете можно найти документация к системе и несколько обучающих видео.