Исследование математических моделей, методов и средств бизнес-аналитики СУБД SQL Server

Обзор архитектуры СУБД SQL Server. Описание и анализ областей применения средств бизнес-аналитики, таких как многомерный анализ данных и интеллектуальный анализ данных. Обзор языковых средств, методов и экспериментальное применение полученных сведений.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 09.07.2014
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

1. Выбирается число кластеров .

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

3. Для каждой записи исходной выборки определяется ближайший к ней центр кластера. При этом записи, «притянутые» определенным центром, образуют начальные кластеры.

4. Вычисляются центроиды - центры тяжести кластеров. Каждый центроид - это вектор, элементы которого представляют собой средние значения признаков, вычисленные по всем записям кластера. Центр кластера смещается в его центроид.

Шаги 3 и 4 итеративно повторяются, при этом может происходить изменение границ кластеров и смещение их центров. В результате минимизируется расстояние между элементами внутри кластеров. Остановка алгоритма производится тогда, когда границы кластеров и расположения центроидов не перестанут изменяться от итерации к итерации, т. е. на каждой итерации в каждом кластере будет оставаться один и тот же набор записей.

Второй метод, реализованный в Microsoft Clustering, это максимизация ожиданий (англ. Expectation-maximization, EM). Он относится к методам мягкой кластеризации, т. е. вариант в этом случае принадлежит к нескольким кластерам, а для всех возможных сочетаний вариантов с кластерами вычисляются вероятности.

При кластеризации методом EM алгоритм итеративно уточняет начальную модель кластеризации, подгоняя ее к данным, и определяет вероятность принадлежности точки данных кластеру. Этот алгоритм заканчивает работу, когда вероятностная модель соответствует данным. Функция, используемая для установления соответствия, - логарифм функции правдоподобия данных, вводимых в модель.

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

1.4.3.6 Алгоритм взаимосвязей

Алгоритм взаимосвязей или ассоциативных правил (Association Rules) позволяет выявить часто встречающиеся сочетания элементов данных и использовать обнаруженные закономерности для построения прогноза.

Для выявления часто встречающихся наборов объектов может использоваться алгоритм Apriori, реализация которого лежит в основе алгоритма Microsoft Association Rules, использующегося в SQL Server 2008. Алгоритм Apriori последовательно выделяет часто встречающиеся одно-, двух-, …, n-элементные наборы. На м этапе выделяются элементные наборы. Для этого сначала выполняется формирование наборов-кандидатов, после чего для них рассчитывается поддержка.

Поддержка (от англ. support) используется для измерения популярности набора элементов. Например, поддержка набора элементов - общее количество транзакций, которые содержат как , так и.

Чтобы количественно охарактеризовать правило, используется вероятность (англ. probability). Этот же показатель иногда называется достоверностью.

Probability . (26)

Вероятность для набора рассчитывается как отношение числа транзакций, содержащих этот набор, к общему числу транзакций.

Чтобы оценить взаимную зависимость элементов используется важность (англ. importance) или показатель интереса.

Importance (27)

Если Importance то и - независимые элементы. Importance означает, что и имеют положительную корреляцию (клиент купивший товар A вероятно купит и B). Importance указывает на отрицательную корреляцию.

Для правил важность рассчитывается как логарифм отношения вероятностей:

Importance (28)

В данном случае равная 0 важность означает, что между и нет взаимосвязи. Положительная важность означает, что вероятность повышается, когда справедливо ; отрицательная - вероятность понижается, когда справедливо .

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

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

1.4.3.7 Алгоритм кластеризации последовательностей

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

Используемый аналитическими службами SQL Server 2008 алгоритм Microsoft Sequence Clustering - это гибридный алгоритм, сочетающий методы кластеризации с анализом марковских цепей. Анализируемое множество вариантов формируется с использованием вложенных таблиц.

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

С помощью марковских моделей анализируется направленный граф, хранящий переходы между различными состояниями. Алгоритм Microsoft Sequence Clustering использует марковские цепи го порядка. Число говорит о том, сколько состояний использовалось для определения вероятности текущего состояния. В модели первого порядка вероятность текущего состояния зависит только от предыдущего состояния. В марковской цепи второго порядка вероятность текущего состояния зависит от двух предыдущих состояний, и так далее.

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

Далее алгоритм изучает различия между всеми возможными последовательностями, чтобы определить, какие последовательности лучше всего использовать в качестве входных данных для кластеризации. Созданный алгоритмом список вероятных последовательностей используется в качестве входных данных для применяемого по умолчанию EM-метода кластеризации (англ. Expectation Maximization, максимизации ожидания).

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

1.4.3.8 Алгоритм нейронных сетей

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

Нейронные сети - это класс моделей, построенных по аналогии с работой человеческого мозга. Существуют различные типы сетей, в частности, в SQL Server алгоритм нейронной сети использует сеть в виде многослойного персептрона, в состав которой может входить до трех слоев нейронов, или персептронов. Такими слоями являются входной слой, необязательный скрытый слой и выходной слой.

Рис. 22 Пример схемы нейронной сети

Каждый нейрон получает одно или несколько входных значений (входов) и создает выходное значение (один или несколько одинаковых выходов). Каждый выход является простой нелинейной функцией суммы входов, полученных нейроном. Входы передаются в прямом направлении от узлов во входном слое к узлам в скрытом слое, а оттуда передаются на выходной слой. Нейроны в составе слоя не соединены друг с другом. Скрытый слой может отсутствовать (в частности, это используется алгоритмом логистической регрессии).

В используемом аналитическими службами SQL Server 2008 алгоритме Microsoft Neural Network, имеющий более двух состояний дискретный входной атрибут модели интеллектуального анализа приводит к созданию одного входного нейрона для каждого состояния и одного входного нейрона для отсутствующего состояния (если обучающие данные содержат какие-либо значения NULL). Непрерывный входной атрибут «создает» два входных нейрона: один нейрон для отсутствующего состояния и один нейрон для значения самого непрерывного атрибута. Входные нейроны обеспечивают входы для одного или нескольких скрытых нейронов.

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

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

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

Рис. 23 Формальное представление нейрона

Каждому нейрону сопоставлена простая нелинейная функция, называемая функцией активации, которая описывает релевантность или важность определенного нейрона для этого слоя нейронной сети. В качестве функции активации в алгоритме Microsoft Neural Network крытые нейроны используют функцию гиперболического тангенса (tanh), а выходные нейроны -- сигмоидальную (логистическую) функцию. Обе функции являются нелинейными и непрерывными, позволяющими нейронной сети моделировать нелинейные связи между входными и выходными нейронами.

(29)

(30)

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

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

1. На начальной стадии случайным образом присваиваются значения всем весам всех входов в сети.

2. Для каждого обучающего варианта вычисляются выходы.

3. Вычисляются ошибки выходов. В качестве функции ошибки может использоваться квадрат остатка (квадрат разности между спрогнозированным и фактическим значением).

Шаги 2, 3 повторяются для всех вариантов, используемых в качестве образцов. После этого, веса в сети обновляются таким образом, чтобы минимизировать ошибки.

В процессе обучения может выполняться несколько итераций. После прекращения роста точности модели обучение завершается.

1.4.3.9 Алгоритм логической регрессии

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

Предположим, что прогнозируемый столбец содержит только два состояния, и необходимо провести регрессионный анализ, сопоставляя входные столбцы с вероятностью того, что прогнозируемый столбец будет содержать конкретное состояние. Результаты, полученные методами линейной и логистической регрессии, представлены на рисунке 24a) и 24b) соответственно. Линейная регрессия не ограничивает значения функции диапазоном от 0 до 1, несмотря на то, что они должны являться минимальным и максимальным значениями этого столбца. Кривая, формируемая алгоритмом логистической регрессии, в этом случае более точно описывает исследуемую характеристику.

Рис. 24. Сравнение результатов, полученных методами линейной «А» и логистической регрессии «В»

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

1.5 Анализ результатов главы 1 и уточнение постановки задачи

В данной главе выполнен обзор технологий бизнес-аналитики, в частности - обзор оперативного анализа данных, построенного на базе OLAP, и интеллектуального анализа данных, для реализации которого может быть использован Data Mining, и указана основная их цель и преимущество. Рассматривается концепция хранилищ данных и их классификация с кратким обзором.

В первой части работы приведена подробная архитектура СУБД для улучшения понимания происходящих процессов.

Также приведено подробное описание моделей, используемые средствами СУБД SQL Server. В данном разделе подробно рассказывается о методах и алгоритмах, заложенных в анализе данных, а также их формализация. Конкретно приведены и рассмотрены Майкрософтовские алгоритмы интеллектуального анализа данных.

Формальное представление задачи классификации и регрессии:

,

где атрибуты-независимые переменные,

зависимая.

Формальное представление задачи кластеризации:

- исследуемый объект; набор параметров.

, -- кластер, содержащий похожие друг на друга объекты из множества:

.

Формальное представление задачи поиска ассоциативных правил:

, -- объекты, входящие в анализируемые наборы; -- общее количество объектов.

, множество транзакций, в которые входит объект .

При поиске ассоциативных правил требуется найти множество всех частых наборов:

.

Следующая глава будет посвящена разделу с языковыми средствами для СУБД SQL Server.

2. Языковые средства бизнес-аналитики: языки MDX и DMX

2.1 Базовые понятия языка MDX

MDX (MultiDimensional eXpressions -- язык многомерных выражений) является языком запросов, используемым для извлечения данных из многомерных баз данных. Он используется для запрашивания данных из баз данных OLAP с помощью Analysis. Изначально MDX был разработан компанией Microsoft и был введен в 1998 году.

Основой многомерной базы данных является куб. Каждый куб обычно содержит более двух измерений. Куб Adventure Works в учебной базе данных содержит 21 измерение.

Объект Measures (размерности) представляет собой специальное измерение, которое является набором размерностей. Размерности являются количественными сущностями, которые используются для анализа. Каждая размерность представляет собой часть категории, называющейся размерной группой (measure group). Размерные группы используются инструментами разработки или клиентскими инструментами главным образом для навигационных целей, чтобы улучшить читабельность или облегчить использование конечным пользователям. Они никогда не используются в запросах MDX при обращении к размерностям. Тем не менее, они могут использоваться в определенных функциях MDX. По умолчанию служба анализа генерирует размерную группу для каждой таблицы фактов.

Каждая иерархия измерения содержит один или несколько элементов, называемых членами (members). Каждый член соответствует одному или нескольким вхождениям этого значения в базовую таблицу измерений.

В MDX каждый член иерархии представлен уникальным именем. Уникальные имена помогают идентифицировать определенные члены.

Ячейка (cell) представляет собой элемент, из которого извлекаются данные, соответствующие пересечению членов измерения. Число ячеек внутри куба данных определяется числом иерархий в каждом из измерений куба данных и числом членов каждой иерархии. Ячейки хранят значения всех размерностей в кубе. Если для какой-нибудь размерности недоступно значение данных в ячейке, считается, что соответствующим значением размерности является значение Null (т.е. пустое значение).

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

Поскольку кортеж уникально идентифицирует ячейку, он может содержать не более одного члена от каждого измерения. Кортеж, представленный единственным членом, называют простым кортежем. Простой кортеж можно не заключать в круглые скобки. Если кортеж представлен членами нескольких измерений, то такой кортеж требуется заключать в круглые скобки. Совокупности кортежей формируют новые объекты (называемые наборами), которые часто используются в запросах и выражениях MDX.

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

2.2 Создание структуры многомерного анализа

Запрос на языке MDX представляет собой набор команд, который выглядит следующим образом:

[WITH <formula_expression> [, <formula_expression> ...]]

SELECT [<axis_expression>, [<axis_expression>...]]

FROM [<cube_expression>]

[WHERE [slicer_expression]]

где:

· axis_specification -- содержит описание осей куба;

· cube_specification -- содержит название куба;

· slicer_specification -- содержит описание срезов куба.

Ключевые слова WITH, SELECT, FROM и WHERE в сочетании с выражениями, следующими за ними, принято называть предложениями (clause). В представленном выше шаблоне запроса MDX в квадратные скобки заключены необязательные элементы, которые могут присутствовать в одних запросах и отсутствовать в других.

2.2.1 Выражение SELECT

Инструкция SELECT языка MDX используется для извлечения подмножества многомерных данных из сервера OLAP. Используется следующий синтаксис для инструкции SELECT:

SELECT [<axis_expression>, [<axis_expression>...]]

Выражение axis_expression, указанное после ключевого слова SELECT, ссылается на измерение, представляющее те данные, которые надо извлечь. Эти измерения называют осевыми измерениями (axis dimensions), поскольку представленные ими данные проецируются на соответствующие оси. Для выражения axis_expression используется следующий синтаксис:

<axis_expression> := <набор> ON Axis (номер оси)

Язык MDX предоставляет возможность указать до 128 осей в инструкции SELECT. Первые пять осей имеют псевдонимы. Это оси COLUMNS (столбцы), ROWS (строки), PAGES (страницы), SECTIONS (разделы) и CHAPTERS (главы). Последующие оси указываются с помощью слова Axis, за которым следует номер оси. Рассмотрим следующий пример.

SELECT Measures. [Internet Sales Amount] ON COLUMNS,

[Customers]. [Country].MEMBERS on ROWS,

[Product]. [Product Line].MEMBERS on PAGES

В приведенной выше инструкции SELECT указаны три оси. В этом примере данные из измерений Measures, Customers и Product отображаются на трех осях, чтобы сформировать осевые измерения.

При определении инструкции SELECT создается осевое измерение. Инструкция SELECT назначает набор осям COLUMNS и ROWS. Осевое измерение извлекает и содержит данные для нескольких членов, а не для единственного члена.

2.2.2 Выражение FROM

Предложение FROM в запросе MDX определяет куб, из которого извлекаются данные для анализа. Предложение FROM обязательно для любого запроса MDX.

Для предложения FROM используется следующий синтаксис:

FROM <cube_expression>

Выражение cube_expression обозначает имя куба или подраздела куба, из которого извлекаются данные. Куб, указанный в предложении FROM, называют контекстом куба (cube context), и запрос MDX выполняется внутри этого контекста.

SELECT [Measures]. [Internet Sales Amount] ON COLUMNS

FROM [Adventure Works]

Выше приведен пример правильного запроса MDX, который извлекает размерность [Internet Sales Amount] по оси X. Указанная размерность извлекается из контекста куба [Adventure Works].

2.2.3 Выражение WHERE

Для задания условия отбора применяется предложение WHERE. Инструкция WHERE ограничивает набор результатов запроса с помощью некоторого критерия.

SELECT Measures. [Sales] ON COLUMS,

[Product]. [Product Line].MEMBERS on ROWS

FROM ProductsCube

WHERE ([Product]. [Color].[Silver])

Два столбца, выбираемых запросом SQL, теперь представлены по осям COLUMNS и ROWS.

Измерение среза (slicer dimension) создается при определении предложения WHERE; это фильтр, который исключает нежелательные измерения и члены. Измерение среза включает и все те оси куба, которые не включены явно в оси, указанные в определении запроса. Заданные по умолчанию члены иерархий, которые не включены в оси запроса, используются в осях среза данных. результатом измерения среза является один кортеж. Если в оси среза определено несколько кортежей, то они будут обработаны как набор, а их значения -- агрегированы с использованием размерности, заданной в запросе, и функции агрегации из этой размерности.

2.2.4 Выражение WITH

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

Для предложения WITH используется следующий синтаксис.

[WITH <formula_expression> [, <formula_expression> ...]]

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

2.2.5 Именованные наборы

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

Для именованного набора выражение formula_expression в предложении WITH выглядит следующим образом:

Formula_expression := SET <псевдоним_набора> AS [']<набор>[']

В качестве псевдонима можно использовать любое имя, которое обычно заключают в квадратные скобки. В выражении, определяющем именованный набор, используются ключевые слова SET и AS. Набор кортежей не обязательно заключать в одинарные кавычки ('').

2.2.6 Вычисляемые члены

Вычисляемые члены представляют собой вычисления, определяемые выражениями MDX. Таким образом, вычисляемые члены позволяют получить результат, основанный на вычислении выражений MDX, а не просто извлечь исходные фактические данные. В языке MDX для создания вычисляемых членов в предложении WITH используются ключевые слова MEMBER и AS.

WITH MEMBER [MEASURES].[Profit] AS '([Measures].[Internet Sales Amount] - [Measures].[Total Product Cost])'

SELECT [MEASURES].[Profit] ON COLUMNS,

[Customer].[Country].MEMBERS ON ROWS

FROM [Adventure Works]

В примере вычисляемый член Profit (Прибыль) определен как разность размерностей [Internet Sales Amount] (Сумма Интернет-продаж) и [Total Product Cost] (Общая стоимость товара). При выполнении данного запроса для каждой страны вычисляемый член будет получен на основе вычисления выражения MDX.

2.3 Выражения MDX

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

Язык MDX также поддерживает возможность размещения комментариев в запросах и выражениях MDX. На текущий момент существует три различных способа добавления комментариев в код MDX.

Эти способы продемонстрированы ниже:

// (две косые черты) здесь следует комментарий

-- (два дефиса) здесь следует комментарий

/* здесь следует комментарий */ (две пары символов косой черты и звездочки)

2.3.1 Операторы

Язык MDX включает несколько операторов. Оператор представляет собой функцию, которая выполняет специфическое действие и использует аргументы. В MDX используются операторы нескольких типов. MDX содержит арифметические операторы, логические операторы и специальные операторы MDX.

Обычные арифметические операторы, такие как «+», «-», «*» и «/», входят в состав арифметических операторов MDX. Эти операторы могут применяться для выполнения арифметических операций с двумя числами.

Операторы «+», «-» и «*» помимо того, что являются арифметическими операторами, также могут использоваться для выполнения операций с наборами кортежей MDX. Оператор «+» применяется для объединения двух наборов, оператор «-» используется для вычисления разности двух наборов, а оператор «*» позволяет найти векторное произведение двух наборов. Результатом векторного произведения двух наборов являются все возможные комбинации кортежей в каждом наборе. Векторное произведение позволяет извлечь данные в матричном формате.

Язык MDX поддерживает такие операторы сравнения, как «<», «<=», «>», «>=», «=» и «<>». Эти операторы используют два выражения MDX в качестве аргументов и возвращают значения TRUE (Истина) или FALSE (Ложь) в зависимости от результатов сравнения величин, полученных в результате вычисления выражений MDX.

Count (Customer.[Country].members) > 3

В приведенном выше примере функция Count используется для подсчета количества членов в иерархии Country измерения Customer. Поскольку иерархия Country содержит больше трех членов, результатом рассматриваемого выражения MDX будет значение TRUE.

Язык MDX поддерживает такие логические операторы, как AND, OR, NOT и IS, которые используются для логической конъюнкции (операция И), логической дизъюнкции (операция ИЛИ), логического отрицания и сравнения. Эти операторы используют два выражения MDX в качестве аргументов и возвращают значение TRUE или FALSE как результат логической операции. Данные логические операторы обычно используются в выражениях MDX, предназначенных для обеспечения защиты ячейки или измерения от несанкционированного доступа.

2.3.2 Функции

Функции MDX могут использоваться в выражениях или запросах MDX. Функции MDX помогают обращаться к некоторым общим операциям, которые требуются в ваших запросах или выражениях MDX.

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

Для функции CrossJoin используется следующий синтаксис.

CrossJoin(Выражение_набора [, Выражение_набора ...])

Функция CrossJoin возвращает все возможные комбинации членов наборов, указанных в качестве ее аргументов.

SELECT Measures.[Internet Sales Amount] ON COLUMNS,

CrossJoin( {Product.[Product Line].[Product Line].MEMBERS},

{[Customer].[Country].MEMBERS}) on ROWS

FROM [Adventure Works]

Этот запрос создает векторное произведение каждого члена в измерении Product (Товар) с каждым членом измерения Customer (Клиент) и возвращает для каждой полученной пары значение размерности Internet Sales Amount (Сумма Интернет-продаж).

Функция Filter использует два аргумента: выражение, задающее набор, и логическое выражение, определяющее условие отбора. Логическое выражение применяется к каждому элементу набора и возвращает набор элементов, удовлетворяющий логическому условию. Для функции Filter используется следующий синтаксис.

Filter( Выражение_набора, {Логическое_выражение |

[CAPTION | KEY | NAME] = Строковое_выражение})

SELECT Measures.[Internet Sales Amount] ON COLUMNS,

Filter(CrossJoin( {Product.[Product Line].[Product Line].MEMBERS},

{[Customer].[Country].MEMBERS}),[Internet Sales Amount] >2000000) on ROWS

FROM [Adventure Works]

Этот запрос возвращает информацию только о тех товарах, для которых суммы продаж по каждой из стран (и общая сумма по всем странам) превышают $2000000.

Функции члена измерения используются для выполнения операций с членами, таких как извлечение текущего члена, предыдущего, родительского, дочернего, следующего члена и т.д. Все функции данной категории возвращают член. Одна из наиболее часто используемых функций этой категории называется ParallelPeriod.

Функция ParallelPeriod позволяет извлечь член измерения типа Time (Время), основываясь на заданном члене и определенных условиях. Для функции ParallelPeriod используется следующий синтаксис.

ParallelPeriod([Выражение_уровня [, Числовое_выражение [,

Выражение_члена]]])

Функция ParallelPeriod используется для сравнения значений размерности относительно различных временных периодов.

Числовые функции чрезвычайно полезны при определении параметров запроса MDX или создании вычисляемых размерностей. В данной группе представлено множество статистических функций, включая функции для расчета стандартного среднеквадратичного отклонения, выборочной дисперсии и корреляции. Наиболее часто применяемыми из числовых функций являются простая функция под названием Count и DistinctCount. Функция Count используется для подсчета количества элементов в таком объекте, как измерение, кортеж, набор или уровень. Функция DistinctCount в свою очередь использует в качестве аргумента выражение, задающее набор кортежей, и возвращает число индивидуальных (недублирующихся) элементов в указанном наборе, а не общее число элементов. Ниже показан синтаксис, используемый обеими упомянутыми функциями.

Count(Измерение | Кортеж | Набор| Уровень)

DistinctCount(Выражение_набора)

Чтобы извлечь имена наборов, кортежей и членов в форме строки, можно использовать специальные функции, например, MemberToStr(<Выражение_члена>). А для выполнения обратного преобразования, т.е. преобразования строкового значения в выражение, возвращающее член измерения, можно использовать функцию StrToMember(<Строка>).

WITH MEMBER Measures.CustomerCount AS DistinctCount(

Exists([Customer].[Customer].MEMBERS,

[Product].[Product Line].Mountain,"Internet Sales"))

SELECT Measures.CustomerCount ON COLUMNS

FROM [Adventure Works]

Функция DistinctCount подсчитывает число неповторяющихся членов измерения Customer (Клиент), которые соответствуют клиентам, приобретавшим товары из товарной линии Mountain (Горные). Если клиент приобретал товар дважды, то функция DistinctCount посчитает этого клиента только один раз. Функция MDX Exists используется для отбора только тех клиентов, которые приобретали товары из товарной линии Mountain через Интернет. Результатом выполнения функции Exists является набор записей о клиентах, которые приобрели товары из товарной линии Mountain.

2.4 Базовые понятия языка DMX

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

· категориальные (дискретные), принимающие значения из некоторого фиксированного конечного набора значений;

· непрерывные числовые атрибуты.

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

Дискретизированные атрибуты - это специальный вариант категориального типа, полученный из непрерывного путем разбиения на диапазоны. Например, упрощенный алгоритм Байеса не может обрабатывать непрерывные атрибуты, поэтому потребуется дискретизация.

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

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

В то же время, MS SQLServer и DMX позволяют использовать вложенные таблицы, что позволяет описывать более сложные по структуре варианты.

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

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

Анализировать данные можно из реляционных таблиц и других источников, если они специальным образом описаны в качестве представления источника данных в службах AnalysisServices. Сначала определяется источник данных (DataSource), а потом его представление (DataSourceView). Представление источника данных позволяет сочетать различные источники данных и работать с вложенными таблицами. Один из способов определить источник данных - использование соответствующего мастера в среде BI DevStudio.

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

2.5 Создание структуры интеллектуального анализа данных

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

Рассмотрим конструкции языка DMX, позволяющие создавать структуры.

Для этого используется оператор CREATE MININGSTRUCTURE. В обобщенном виде его формат представлен ниже:

CREATE [SESSION] MINING STRUCTURE <structure>

[(<column definition list>)]

)

[WITH HOLDOUT (<holdout-specifier> [OR <holdout-specifier>])]

[REPEATABLE(<holdout seed>)]

где

<holdout-specifier>::=<holdout-maxpercent> PERCENT |

<holdout-maxcases> CASES

Приведённые в описании атрибуты имеют следующие значения:

· Structure - уникальное имя структуры;

· column definition list - cписок определений столбцов с разделителями-запятыми;

· holdout-maxpercent - целое число от 1 до 100, которое показывает процентную долю данных, выделяемых для проверки;

· holdout-maxcases - целое число, показывающее максимальное число вариантов, используемых для проверки. Если указанное значение больше числа входных вариантов, для проверки будут использованы все варианты и отобразится соответствующее предупреждение. В случае, если указаны как процентная доля, так и число вариантов, применяется меньшее из ограничений;

· holdoutseed - целое число, которое используется как начальное значение при начале секционирования данных. Если оно равно 0, в качестве начального значения используется хэш идентификатора структуры интеллектуального анализа данных. Если надо гарантировать возможность повторного создания такого же разбиения (при условии, что исходные данные остались прежними), необходимо в скобках указать ненулевое целое значение.

Необязательное ключевое слово SESSION показывает, что структура является временной и ее можно использовать только в течение текущего сеанса работы с SQL Server. После завершения сеанса структура и любые модели на ее основе удаляются. Чтобы создать временные структуры и модели интеллектуального анализа данных, необходимо сначала задать свойство базы данных Allow Session Mining Models. При использовании для анализа инструментов TableAnalysisTools из надстроек интеллектуального анализа данных для Microsoft Excel создаются именно такие структуры.

Для определения столбца используется следующий формат:

<column name><data type> [<Distribution>] [<Modeling Flags>] <Content Type> [<column relationship>],

где обязательно указываются <columnname> - имя столбца,

<datatype> - тип данных,

<ContentType> - тип содержимого.

Для определения столбца с вложенной таблицей используется следующий синтаксис:

<columnname>TABLE ( <column definition list> )

Флаг Distribution позволяет указать на распределение для столбца с числовым значением.

Флаги моделирования Modeling Flags можно использовать для указания дополнительных сведений о соответствующем атрибуте. Алгоритм может их использовать для создания более точной модели интеллектуального анализа данных. Некоторые флаги могут быть определены на уровне структуры, другие на уровне столбца модели интеллектуального анализа.

К любому определению столбца можно добавить предложение, описывающее связь между двумя столбцами (column relationship). Делается это с помощью ключевого слова RELATED TO, что показывает иерархию значений. Назначением столбца RELATED TO может быть ключевой столбец вложенной таблицы, столбец с дискретными значениями из строки вариантов или какой-либо другой столбец с предложением RELATED TO, указывающим на более глубокий уровень иерархии.

2.5.1 Создание модели интеллектуального анализа данных

Создание модели интеллектуального анализа данных можно осуществить одним из следующих способов:

1. после создания структуры интеллектуального анализа данных можно добавлять в нее модели с помощью инструкции ALTER MINING STRUCTURE;

2. можно использовать инструкцию CREATE MINING MODEL, в результате выполнения которой создается модель и автоматически формируется лежащая в ее основе структура интеллектуального анализа данных. Имя структуры интеллектуального анализа данных формируется путем добавления строки"_structure" к имени модели.

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

ALTER MINING STRUCTURE <structure>

ADD MINING MODEL <model>

<column definition list>

[(<nested column definition list>) [WITH FILTER (<nested filter criteria>)]]

)

USING <algorithm> [(<parameter list>)]

[WITH DRILLTHROUGH]

[,FILTER(<filter criteria>)] ,

Таблица 4. Значения приведенных атрибутов

Атрибут

Описание

structure

имя структуры интеллектуального анализа данных, к которой будет добавлена модель;

model

уникальное имя модели интеллектуального анализа данных;

column definition list

список определений столбцов с разделителями-запятыми;

nestedcolumn definition list

список с разделителями-запятыми столбцов вложенной таблицы, если применимо;

nested filter criteria

определение фильтра, применяющегося к столбцам вложенной таблицы;

algorithm

название используемого моделью алгоритма интеллектуального анализа данных;

parameter list

список параметров алгоритма (через запятую);

filter criteria

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

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

Если модели не требуется прогнозируемый столбец (например, при кластеризации), то в инструкцию не нужно включать определение столбца.

В общем случае определение столбца выполняется в соответствии со следующим форматом:

<structure column name> [AS <model column name>] [<modeling flags>] [<prediction>]

Таблица 5. Значения приведенных атрибутов

Атрибут

Описание

structure column name

имя столбца в соответствии с определение структуры;

model column name

псевдоним (необязательный параметр, позволяющий в модели использовать);

modeling flags

флаги моделирования, о которых говорилось выше: значение REGRESSOR указывает, что алгоритм регрессии может использовать заданный столбец в формуле регрессии; значение MODEL_EXISTENCE_ONLY указывает, что само присутствие атрибута важнее, чем значения столбца атрибута;

prediction

флаг прогнозирования (или флаг использования), указывающий, что данный столбец содержит прогнозируемую величину. Может принимать значение PREDICT (столбец является как входом, так и выходом) или PREDICT_ONLY (столбец является только выходом). Столбец без флага считается входом.

Если в определении модели стоит WITH DRILLTHROUGH, то пользователям разрешается проводить детализацию (т.е. просматривать не только параметры модели, но и данные вариантов в этой модели).

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

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

INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure> (<mapped model columns>) <source data query>

или

INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure>.COLUMN_VALUES (<mapped model columns>) <source data query>

Таблица 6. Значения приведенных атрибутов

Атрибут

Описание

model

название модели;

structure

название структуры;

mapped model columns

список через запятую с названиями столбцов, в т.ч. вложенных таблиц с их столбцами;

source data query

запрос, описывающий загружаемый набор исходных данных.

Если в операторе указана структура интеллектуального анализа данных, обрабатывается эта структура и все связанные с ней модели. Если задана модель, инструкция обрабатывает только эту модель. Если не указан аргумент MININGMODEL или MININGSTRUCTURE, службы AnalysisServices производят поиск типа объекта на основе имени, и затем обрабатывается корректный объект. Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка.

Форма INSERT INTO<объект>.COLUMN_VALUES, позволяет производить вставку данных непосредственно в столбцы модели без ее обучения. При использовании этого метода, данные столбцов поставляются модели в сжатом и упорядоченном виде, что полезно при работе с наборами данных, содержащими иерархии или упорядоченные столбцы.

Элементы списка <mapped model columns> представимы в виде:

<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP)

Таблица 7. Значения приведенных атрибутов

Атрибут

Описание

<columnidentifier>

название столбца;

<tableidentifier>

название вложенной таблицы;

Ключевое слово SKIP указывает на то, что соответствующий столбец исходного запроса (исходных данных) не будет использоваться для заполнения структуры или модели (т.е. пропускается).

2.5.2 Листинг

Удалить данные, модель или структуру можно с помощью оператора DELETE. Его синтаксис приведен ниже:

DELETE FROM [MINING MODEL] <model>[.CONTENT]

DELETE FROM [MINING STRUCTURE] <structure>[.CONTENT]|[.CASES]

Таблица 8. Значения приведенных атрибутов

Атрибут

Описание

model

имя модели;

structure

имя структуры.

Если не указан аргумент MININGMODEL или MININGSTRUCTURE, Analysis Services производит поиск типа объекта на основе имени и затем обрабатывает корректный объект.

Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка.

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

DROP MINING MODEL<model>

или

DROP MINING STRUCTURE <structure>

Таблица 9. Значения приведенных атрибутов

Атрибут

Описание

model

имя модели;

structure

имя структуры.

Инструкции EXPORT и IMPORT позволяют соответственно сохранить модель или структуру интеллектуального анализа в файл резервной копии служб AnalysisServices (*.abf) и восстановить модель или структуру из файла. Синтаксис команд:

EXPORT <object type><object name>[, <object name>] [<object type><object name>[, <object name] ] TO <filename> [WITH DEPENDENCIES]

IMPORT FROM<filename>

Таблица 10. Значения приведенных атрибутов

Атрибут

Описание

objecttype

тип экспортируемого объекта (модель или структура интеллектуального анализа данных);

objectname

имя экспортируемого объекта;

filename

имя и расположение файла для экспорта (аргумент типа string, берется в одинарные кавычки).

Если инструкция указывает модель интеллектуального анализа данных, итоговый файл также содержит связанную структуру интеллектуального анализа данных. Если инструкция указывает WITH DEPENDENCIES, все объекты, необходимые для обработки объекта (например, источник данных и представление источника данных), включаются в ABF-файл. Чтобы экспортировать или импортировать объекты базы данных служб Microsoft SQLServer Службы AnalysisServices, необходимо иметь права администратора базы данных или сервера.

2.5.3 Работа с данными и построение прогнозов

Следующая задача - это работа с данными и построение прогнозов. Для этого используется оператор SELECT.

При интеллектуальном анализе данных с помощью оператора SELECT можно решить следующие задачи:

· просмотр вариантов, загруженных в структуру интеллектуального анализа данных;

· просмотр содержимого существующей модели;

· создание прогнозов по существующей модели;

· создание копии существующей модели.

Для решения первых двух задач используется следующий формат записи оператора:

SELECT [FLATTENED] [TOP<n>] <selectlist>

FROM <model/structure>[.aspect]

[WHERE <condition expression>]

[ORDER BY <expression>[DESC|ASC]]

Инструкция FLATTENED указывает на необходимость преобразования, возвращаемых запросом SELECT результатов в "плоский" набор строк (т.е. преобразование к обычной таблице). Она используется, когда представление вариантов с вложенными таблицами в используемом по умолчанию иерархическом формате неприемлемо.

Инструкции ORDER BY и TOP<n> позволяют упорядочить возвращаемый набор по указанному параметру и вернуть только первые значений. Это может быть полезно в сценариях вроде целевых рассылок, где результаты нужно отправлять только наиболее вероятным получателям. Для этого можно упорядочить результаты прогнозирующего запроса целевой рассылки по вероятности, а затем вернуть только верхние n результатов.

В список выбора <selectlist> могут входить ссылки на скалярные столбцы, прогнозирующие функции и выражения. Доступные параметры зависят от алгоритма и следующих условий:

· выполняется запрос к структуре или модели интеллектуального анализа;

· запрос выполняется к содержимому или к вариантам;

· источник данных является реляционной таблицей или кубом;

· делается ли прогнозирование.

Если вместо списка выбора стоит символ «*», то будут выбраны все столбцы из модели или структуры.

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

WHERE <condition expression>

2.5.4 Детализация структуры

Рассмотрим инструкцию FROM. Если в ней стоит <structure>.CASES, где <structure> - имя структуры интеллектуального анализа, то будут возвращаться варианты, использованные для создания структуры. Если детализация для структуры не включена, выполнение данной инструкции завершится сбоем. Но по умолчанию детализация включена. Явное указание для работы со структурой - с помощью ключевых слов MINING STRUCTURE.

2.5.5 Детализация модели

Формат оператора выглядит следующим образом:

SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.CASES

[WHERE <condition expression>][ORDER BY <expression> [DESC|ASC]]

Если детализация для модели интеллектуального анализа данных не включена, выполнение данной инструкции завершится ошибкой. Для расширений интеллектуального анализа данных активировать детализацию можно только при создании модели (с помощью инструкции WITHDRILLTHROUGH). В среде BI DevStudio можно добавить детализацию и в существующую модель, но прежде чем будет можно просматривать варианты, необходимо выполнить повторную обработку модели.

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

2.5.6 Запрос значений столбца

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

SELECT [FLATTENED] DISTINCT [TOP <n>] <expression list> FROM <model>

[WHERE <condition list>][ORDER BY <expression>]

При этом для дискретного столбца будут введены все возможные значения, для непрерывного - среднее значение, для дискретизованного - среднее значение для каждого из определённых в процессе дискретизации интервалов.

2.5.7 Построение прогнозов

Задача прогнозирования в языке DMX также решается с помощью оператора SELECT. При этом чаще всего используется конструкция прогнозирующего соединения - PREDICTION JOIN. С ее помощью шаблонам модели сопоставляется набор данных из внешнего источника, что позволяет определить значение для прогнозируемого столбца.

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

Запрос с использованием функции OPENQUERY

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

Использование функции Predict


Подобные документы

  • Реляционная система управления базой данных Microsoft SQL Server архитектуры клиент-сервер. Тиражирование данных, параллельная обработка, поддержка больших баз данных. Определение маршрута движения документов в СЭД "Directum" и "Евфрат-документооборот".

    контрольная работа [21,2 K], добавлен 17.10.2009

  • Построение концептуальной, реляционной и логической моделей базы данных (БД). Разработка онтологии в системе Protege. Выбор средств реализации БД. Проверка ее структуры и содержимого. Создание, загрузка и проверка БД в СУБД Microsoft SQL Server 2008.

    курсовая работа [3,4 M], добавлен 25.12.2012

  • Цель инфологического моделирования базы данных. Создание с помощью СУБД Microsoft SQL Server шести сущностей с определенными атрибутами, представлений, основанных на соединении столбцов нескольких таблиц и связей между ними. Создание процедур и запросов.

    курсовая работа [721,4 K], добавлен 29.11.2009

  • Концептуальное проектирование базы данных: разработка схемы и структуры таблиц, описание атрибутов. Реализация базы данных в среде СУБД MS SQL Server 2000. Основные принципы создания таблиц. Доступ и обработка данных с помощью утилиты Enterprise Manager.

    курсовая работа [3,8 M], добавлен 22.01.2013

  • Сбор ключевой статистики по интерфейсам, проведение аналитики и выдвижение гипотез по улучшению продукта. Рассмотрение методов анализа данных на базе конкретного проекта. Расположение инструментов на экране и порядок взаимодействия с ними у пользователя.

    курсовая работа [664,7 K], добавлен 01.01.2018

  • Разработка информационного обеспечения для формирования базы данных для государственной итоговой аттестации 9 классов. Обзор методов репликации и синхронизации баз данных. Преимущества алгоритма шифрования Rijndael. СУБД Microsoft SQL Server и Firebird.

    дипломная работа [3,3 M], добавлен 27.06.2012

  • Автоматизация работы пользователя по поиску, просмотру и редактированию информации о работниках, соискателях, вакансиях. Построение информационно-логической и физической моделей данных. Создание базы данных в СУБД MS SQL Server. Описание SQL запросов.

    курсовая работа [1,8 M], добавлен 07.08.2013

  • Анализ предметной области. Обзор инструментов Web-аналитики для развития бизнеса в Интернете. Построение моделей бизнес-процессов компании. Учет поискового трафика. Элементы управления доступом. Обработка и хранение данных. Видимость сайта в поисковиках.

    дипломная работа [1,4 M], добавлен 27.09.2016

  • Анализ методов и средств выявления мнений пользователей социальных сетей. Обзор средств мониторинга и анализа, подбор необходимого программного обеспечения и технических средств. Разработка архитектуры базы данных, реализация программных модулей.

    дипломная работа [3,7 M], добавлен 19.01.2017

  • Процесс поступления пациента в больницу. Программное обеспечение, используемое в разработке. Обзор Borland Delphi7, MS SQL Server 2008. Динамическое изменение и расширение структуры базы данных. Обоснование выбора СУБД и программного обеспечения.

    курсовая работа [875,4 K], добавлен 21.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.