Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_ABD.doc
Скачиваний:
94
Добавлен:
15.03.2016
Размер:
1.59 Mб
Скачать

Лекция 6olapкуб. Построение, работа с элементамиOlap-куба

Многомерный анализ данных Механизм OLAP является на сегодня одним из популярных методов анализа данных. OLAP (англ.: Online Analytical Processing) – технология оперативной аналитической обработки данных, обеспечивающая возможность многомерного анализа данных. Основное назначение OLAP – поддержка аналитической деятельности, произвольных (не регламентированных) запросов пользователей-аналитиков. На основе OLAP строятся системы поддержки принятия решений и системы подготовки отчетов. OLAP-анализ может быть применен для построения отчетности, а так же для первичной проверки возникающих гипотез. В процессе принятия решений аналитик генерирует некоторые гипотезы. Для превращения этих гипотез в законченные решения они должны быть проверены. Проверка гипотез осуществляется на основании информации об анализируемой предметной области. Как правило, наиболее удобным способом представления такой информации для человека является зависимость между некоторыми параметрами. Например, зависимость объемов продаж от региона, времени, категории товара и т.п. Другим примером может служить зависимость количества выздоравливающих пациентов от применяемых средств лечения, возраста и т.п. В процессе анализа данных, поиска решений часто возникает необходимость в построении зависимостей между различными параметрами. Кроме того, число таких параметров может варьироваться в широких пределах. Традиционные средства анализа, оперирующие данными, которые представлены в виде таблиц реляционной базы данных, не могут в полной мере удовлетворить таким требованиям. Чаще всего данные по различным параметрам анализируемого процесса хранятся в разрозненных таблицах и нужно затратить немало времени, чтобы свести их в единое целое. При этом увидеть зависимость между параметрами зачастую очень сложно. В OLAP-системах разрозненная информация представляется в виде многомерного куба, которым можно легко манипулировать, извлекая срезами нужную информацию (рис. 6.1).

Рис. 6.1 – Технология OLAP

Проиллюстрируем идею OLAP-куба на простом примере.

Пусть руководителя интересуют объемы продаж за некоторый период, к примеру,

за последние два месяца. Компания продает лекарственные средства и имеет 3 аптеки.

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

ответы, – это объемы продаж по товарным группам и объемы продаж товаров по каждой

аптеке за каждый месяц.

Очевидно, что «ответ» на каждый из этих вопросов будет оформлен в виде

двумерной таблицы. В первом случае строками и столбцами этой таблицы соответственно

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

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

«соединить» данные нескольких таблиц. В итоге в таком отчете будет фигурировать три

равноправных аналитических измерения (аптека, товарная группа и месяц), и вместо

двумерных таблиц появляется трехмерная модель представления данных, так называемый куб (рис. 6.2).

Рис. 6.2 OLAP куб

Такая модель представления данных позволяет получать нужную для аналитика

информацию, производя соответствующие сечения (срезы) OLAP-куба. Такие срезы

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

Кросс таблица отличается от обычной (плоской) таблицы наличием уровней

вложенности (например, разбиение строк (столбцов) на подстроки (подстолбцы)).

Посмотрим срез куба (рис. 1) по продажам за последние два месяца во всех трех

аптеках по всем товарным группам. Получим многомерный отчет (или кросс таблицу),

рис. 2.3.

Нет необходимости пытаться произвести геометрическую интерпретацию OLAP-

куба с размерностью более 3-х. Тем более что речь идет не о реальном, а об

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

Однако следует отметить, что задача с большим числом измерений, во-первых,

является трудоемкой с точки зрения ее выполнения на ПК и, во-вторых, ее осмысление и

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

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

Рисунок 6.3 - Пример отчета

Лекция 7 OLAPданные. Многомерные кубы

На лекции мы более подробно рассмотрим концепцию OLAP и многомерных кубов. В качестве примера реляционной базы данных, который мы будем использовать для иллюстрации принципов OLAP, воспользуемся базой данных Northwind, входящей в комплекты поставки Microsoft SQL Server или Microsoft Access и представляющей собой типичную базу данных, хранящую сведения о торговых операциях компании, занимающейся оптовыми поставками продовольствия. К таким данным относятся сведения о поставщиках, клиентах, компаниях, осуществляющих доставку, список поставляемых товаров и их категорий, данные о заказах и заказанных товарах, список сотрудников компании. Подробное описание базы данных Northwind можно найти в справочных системах Microsoft SQL Server или Microsoft Access — здесь за недостатком места мы его не приводим.

Для рассмотрения концепции OLAP воспользуемся представлением Invoices и таблицами Products и Categories из базы данных Northwind, создав запрос, в результате которого получим подробные сведения о всех заказанных товарах и выписанных счетах:

SELECT dbo.Invoices.Country,

dbo.Invoices.City,

   dbo.Invoices.CustomerName,

   dbo.Invoices.Salesperson,

   dbo.Invoices.OrderDate,

dbo.Categories.CategoryName,

   dbo.Invoices.ProductName,

    dbo.Invoices.ShipperName,

   dbo.Invoices.ExtendedPrice

FROM dbo.Products INNER JOIN

   dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID INNER JOIN

   dbo.Invoices ON dbo.Products.ProductID = dbo.Invoices.ProductID

В Access 2000 аналогичный запрос имеет вид:

SELECT Invoices.Country, Invoices.City,

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]