Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SQLServer08_DM_Nesterov

.pdf
Скачиваний:
167
Добавлен:
07.02.2016
Размер:
16.46 Mб
Скачать

Для создания DSV надо выбрать соответствующий узел в окне Solution Explorer, щелчком правой клавиши вызвать контекстное ме-

ню и выбрать пункт ―New Data Source View‖ (рис.5.101).

Рис.5.101. Создание представления источника данных

В реляционной базе данных AdventureWorksDW есть представление dbo.vTargetMail, позволяющее получит информацию о клиенте (идентификаторы, имя, фамилию, регион и т.д.) и о том, купил клиент велосипед или нет. Эти данные нам понадобятся для дальнейшего анализа. Запустив мастер создания DSV, в первом окне укажем используемый источник данных – AdventureWorks DW (рис.5.102).

Рис.5.102. Выбор источника данных

201

Рис.5.103. Создание представления источника данных: выбор объектов, включаемых в представление

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

DimGeography (рис.5.103).

Если в исходной БД открыть в конструкторе представление vTargetMail, мы увидим следующий код на языке SQL:

SELECT c.CustomerKey, c.GeographyKey, c.CustomerAlternateKey, c.Title, c.FirstName, c.MiddleName, c.LastName, c.NameStyle, c.BirthDate, c.MaritalStatus, c.Suffix, c.Gender, c.EmailAddress, c.YearlyIncome, c.TotalChildren, c.NumberChildrenAtHome, c.EnglishEducation, c.SpanishEducation, c.FrenchEducation, c.EnglishOccupation, c.SpanishOccupation, c.FrenchOccupation, c.HouseOwnerFlag, c.NumberCarsOwned, c.AddressLine1, c.AddressLine2, c.Phone, c.DateFirstPurchase, c.CommuteDistance,

202

x.Region, x.Age, CASE x.[Bikes] WHEN 0 THEN 0 ELSE 1 END AS BikeBuyer

FROM dbo.DimCustomer AS c INNER JOIN

(SELECT

CustomerKey, Region, Age, SUM(CASE

 

[EnglishProductCategoryName] WHEN 'Bikes' THEN

1 ELSE

0 END) AS Bikes FROM dbo.vDMPrep

GROUP BY CustomerKey, Region, Age) AS x ON c.CustomerKey = x.CustomerKey

Отсюда видно, что часть информации о клиенте берется из таблицы dbo.DimCustomer, в частности это код региона проживания клиента (GeographyKey). На рисунке 5.104 приведен фрагмент диаграммы, показывающий связь таблицы DimCustomer и таблицы-

справочника DimGeography.

Рис. 5.104. Диаграмма, показывающая связь таблиц dbo.DimCustomer

и dbo.DimGeography

203

Рисунок 5.105 демонстрирует выборку данных из представления vTargetMail и таблицы DimGeography. Таким образом, если мы хотим знать названия стран и городов пребывания клиентов, нам понадобит-

ся таблица DimGeography. a

b

Рис.5.105. Данные из vTargetMail (а) и DimGeography (b)

Но вернемся к создаваемому DSV. Последнее окно мастера позволяет ввести имя DSV. Назовем его TargetMail_dsv (рис.5.106).

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

Задание 1. В соответствии с приведенным описанием создайте представление источника данных.

204

Рис.5.106. Назначение имени представления источника данных

a

b

Рис.5.107. Указание связи между таблицами

Исследование данных

Среда BI Dev Studio предоставляет инструменты, позволяющие быстро познакомиться с имеющимися данными. Для этого надо щелчком правой клавиши в области таблицы вызвать контекстное меню, где выбрать пункт Explore Data (рис.5.108-a).

Открывшееся окно позволяет представить данные в виде таблиц и диаграмм. На рисунке 5.108-b представлена вкладка с диаграммой (Chart) отображающей распределение клиентов из vTargetMail по ре-

205

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

 

Задание 2. Используя все средства представления данных

(Table, PivotTable, …) ознакомьтесь с данными из vTargetMail.

a

b

Рис.5.108. Средства просмотра и предварительного анализа данных

Создание именованных вычислений и запросов

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

Создание именованного вычисления (Named Calculation) приво-

дит к появлению в таблице нового столбца, содержащего результаты расчета. Пусть для проведения анализа нам надо уменьшить число рассматриваемых стран до следующего списка: «Canada» (Канада), «France» (Франция), «Other» (все остальные). Щелкнем правой клавишей по заголовку таблицы DimGeography и в контекстном меню выберем пункт New Named Calculation (рис.5.109).

206

Рис.5.109. Создание именованного вычисления

В открывшемся окне (рис.5.110) надо ввести имя нового столбца (в примере – NewContryName), описание и выражение, которое будет рассчитываться. В примере, чтобы сформировать нужно значение (―Canada‖ или ―France‖ для этих стран и ―Other‖ для остальных) используется оператор CASE.

CASE

WHEN [EnglishCountryRegionName] = 'Canada' OR [EnglishCountryRegionName] ='FRANCE' THEN

[EnglishCountryRegionName] ELSE 'Other'

END

Рис.5.110. Создание именованного вычисления

207

Кроме CASE в именованных выражениях могут использоваться допустимые в SQL математические операторы и функции (например, 1.5*[Price], если нужно рассчитать значение в полтора раза большее, чем в столбце [Price]), а также операции со строками.

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

Рис.5.111. Просмотр значений именованного вычисления

Задание 3. По аналогии с рассмотренным примером создайте свое именованное вычисление.

Именованный запрос работает аналогично представлению (view) в реляционной базе данных. Для его создания щѐлкните правой клавишей в свободной области диаграммы и в контекстном меню выберите New Named Query (рис.5.112). Пусть нам нужна следующая информация о клиенте: идентификатор, имя, фамилия, город, страна. В окне зададим название именованного запроса (пусть это будет NewQ), согласимся с выбором источника данных и введем запрос на SQL.

SELECT dbo.vTargetMail.CustomerKey, dbo.vTargetMail.FirstName, dbo.vTargetMail.LastName, dbo.DimGeography.City, dbo.DimGeography.EnglishCountryRegionName

208

FROM dbo.vTargetMail INNER JOIN dbo.DimGeography ON vTargetMail.GeographyKey = DimGeography.GeographyKey

Рис.5.112. Создание именованного запроса

Рис.5.113. Создание именованного запроса (продолжение)

209

Если запрос корректен, нажатие кнопки Run (зеленая стрелка вправо), приведет к его выполнению (рис.5.113).

Задание 4. По аналогии с рассмотренным примером создайте именованный запрос.

5.12. РАБОТА 12. СОЗДАНИЕ СТРУКТУРЫ И МОДЕЛИ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА. ЗАДАЧА

КЛАСТЕРИЗАЦИИ

В предыдущем разделе мы выяснили, что в представлении vTargetMail БД AdventureWorksDW есть информация о клиентах (имя, дата рождения, семейное положение, число машин и т.д.) и о том, приобрел конкретный клиент велосипед или нет (столбец BikeBuyer=1, если велосипед покупался, иначе =0).

Путь необходимо разделить всех клиентов на несколько групп, сходных по значениям параметров. Подобная задача называется задачей кластеризации. Средствами надстроек интеллектуального анализа для MS Office 2007 мы решали подобную задачу в ходе выполнения лабораторной работы № 2. Теперь разберем, как ее решить в среде BI Dev Studio.

Сначала понадобится создать структуру и модель интеллектуального анализа. Откроем созданную ранее базу аналитических служб в среде BI Dev Studio, в окне Solution Explorer щелкнем правой клавишей мыши на узле Mining Structures и в контекстном меню выберем

New Mining Structure (рис.5.114).

После вывода окна приветствия мастер Data Mining Wizard запросит, будет ли создаваемая структура основана на реляционном источнике данных или на кубе OLAP (рис.5.115). Нам нужен первый вариант, использующий реляционную БД.

Следующий шаг – выбор между одновременным созданием структуры и модели интеллектуального анализа и только созданием структуры.

210

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