
- •Раздел 1. Накопление и обработка данных .…………………………… 5
- •Раздел 2. Оперативный анализ данных ….…………………………… 43
- •Раздел 3. Интеллектуальный анализ данных ………………………… 82
- •Раздел 4 Загрузка данных и программирование запросов ...………… 110
- •Раздел 5. Подготовка отчетов по результатам анализа …….……… 136
- •Раздел 1. Накопление и обработка данных Лекция 1. Информационно-аналитические системы
- •Операционная обработка данных
- •Оперативный анализ данных
- •Интеллектуальный анализ данных
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 2. Концепции хранения данных
- •Реляционные базы данных
- •Организация хранилищ данных
- •Концепция многомерной модели данных
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 3. Интеграция и трансформации данных
- •Платформа sql Server 2008
- •Система Management Studio
- •Служба sql Server Integration Services
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Раздел 3. Интеллектуальный анализ данных Лекция 8. Кластерный анализ данных
- •Формальная постановка задачи кластеризации
- •Меры близости в кластерном анализе
- •Иерархические алгоритмы кластеризации
- •Неиерархические алгоритмы кластеризации
- •Представление результатов кластеризации
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 9. Классификация и регрессия
- •Математические функции
- •Правила классификации
- •Деревья решений
- •Методы построения деревьев решений
- •Алгоритмы построения деревьев решений
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 10. Поиск ассоциативных правил
- •Цель лекции – изучение формализованной постановки и алгоритма решения задачи поиска ассоциативных правил.
- •Формальная постановка задачи
- •Обнаружение закономерностей в последовательностях данных
- •Алгоритм поиска ассоциативных правил Apriori
- •Представление результатов
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 8. Службы sql Server Analysis Services
- •Конструктор интеллектуального анализа данных
- •Мастер интеллектуального анализа данных
- •Создание структуры интеллектуального анализа
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Создание и представление источника данных
- •Загрузка с применением Integration Services
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 12. Основы языка Multidimensional Expressions
- •Оператор select
- •Алгебра множеств и операции с множествами
- •Функции языка mdx
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 13. Язык операций Data Mining
- •Ключевые концепции и объекты dmx
- •Синтаксис запросов dmx
- •Создание моделей интеллектуального анализа
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Раздел 5. Подготовка отчёта по итогам анализа Лекция 14. Служба отчетов Reporting Services
- •Архитектура службы отчётов
- •Средства проектирования запросов
- •Развёртывание Reporting Services
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 15. Источники данных для отчётов
- •Общие источники данных
- •Источники поддерживаемые Reporting Services
- •Создание, изменение и удаление источников
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Лекция 16. Конструирование и создание отчётов
- •Основы конструирования отчётов
- •Создание нерегламентированных отчётов
- •Создание отчётов с применением конструктора
- •Краткие итоги
- •Контрольные вопросы
- •Литература
- •Глоссарий
Алгебра множеств и операции с множествами
Понятие множества в MDX аналогично понятию множества в математике. Язык поддерживает пять операций, позволяющих создавать новые MDX-множества из существующих множеств:
• Объединение (Union);
• Пересечение (Intersect);
• Исключение (Except);
• Перёкрёстное соединение (Crossjoin);
• Извлечение (Extract)
Операция Объединение (Union) осуществляет формирование множества из двух множеств одной размерности. Сформированное множество содержит все кортежи из каждого множества. В случае присутствия кортежа в двух исходных множествах, в сформированное множество добавляется только один кортеж. Например, MDX-запрос
SELECT Union ({[Renton], [Redmond]}, {[Edmonds]})
ON COLUMNS FROM [Warehouse and Sales]
вернёт результат, приведённый на рисунке 4.1
Рисунок 13.1 – Результат объединения множеств
Операция Пересечение (Interesect) создаёт новое множество, в котором содержатся кортежи, присутствующие в обоих исходных множествах. Например, MDX-запрос, имеющий вид:
SELECT INTERSECT ({[Burnaby], [Redmond], [Renton]},{Redmond],
[Renton], [Everett] })
ON COLUMNS FROM [Warehouse and Sales],
вернёт сформированное множество {Redmond, Renton}.
Рисунок 13.2 – Результат пересечения множеств
Операция Исключение (Except) создаёт множество с элементами множества, из которого исключены элементы, принадлежащие второму множеству. Код, приведённый ниже,
SELECT Except ({[Renton], [Redmond], [Burnaby]},{[Burnaby]})
ON COLUMNS FROM [Warehouse and Sales]
вернёт множество {[Renton], [Redmond]}, показанное на рисунке 4.3.
Рисунок 13.3 – Результат операции Исключение
Операция Перекрестного соединения (CrossJoin) наиболее часто используемая операция. Результатом операции является множество, состоящее из всех возможных комбинаций двух или более множеств с сохранением в результирующем множестве порядка иерархий, имеющихся в исходных множествах. Например, код, приведённый ниже,
SELECT CROSSJOIN ({[2008], [2009]}, {[FacultyA], [FacultyB], [FaultyC]})
ON COLUMNS FROM [Warehouse University]
Вернёт следующее множество:
{([2008], [FacultyA]), ([2008], [FacultyB]), ([2008], [FacultyC]), ([2009],
[FacultyA]), ([2009], [FacultyB]), ([2009], [FacultyC])}.
Операция Извлечение (Extract) противоположна операции Перекрестного соединения и создаёт множество, содержащие кортежи заданной иерархии. Код, приведённый ниже,
SELECT Extract (CROSSJOIN ({[2008], [2009]}, {[FacultyA], [FacultyB], [FaultyC]}), [Time], [Time]) ON COLUMNS FROM [Warehouse University]
вернёт следующее множество: {[2008], [2009]}.
Функции языка mdx
Чтобы создавать новые множества, необходимо иметь совокупность исходных множеств и программные средства. Язык MDX представляет набор функций для создания и работы с множествами. В дополнение к функциям для работы с множествами MDX содержит функции, оперирующие другими многомерными объектами: Измерения (Dimensions), Иерархия (Hierarchies), Уровни (Levels), Элементы (Members), Кортежи (Tuples) и Скалярные Значения (Scalar Values). Все функции MDX можно разделить на две категории: методы и свойства. Эти категории функций различаются синтаксисом.
Методы объединяет следующий синтаксис [1]:
<function_name>([<parameter>[, parameter …]]).
Свойства объединяет следующий синтаксис:
<object_name>, <property_name>[(<parameter>[, <parameter>…]]).
Независимо от принадлежности к категории функции MDX возвращают значения одного из типов: Измерение (Dimension), Иерархия (Hierarchie), Уровень (Level), Элемент (Member), Кортеж (Tuple) и Скалярное Значение (Scalar), Множество (Set). Все перечисленные функции могут передаваться в другие функции MDX в качестве параметров.
Функции для навигации
в иерархиях используются для просмотра
данных. Пример пользовательской иерархии
приведён на рисунке 13.4. В этой иерархии
элемент All
– родитель элементов следующего уровня
иерархии: Faculty
A,
Faculty
B,
Faculty
C.
Кафедры Sub-Faculty
1, Sub-Faculty
2 являю
тся
дочерними (children)
для Faculty
C.
Кафедры также являются потомками
(descendants)
элемента All,
который, в свою очередь, является их
предком (ancestor).
Функция Children
позволяет просмотреть множество дочерних
элементов выбранного элемента иерархии.
Функция Descendants
используется для анализа данных потомков
выбранного элемента.
Функции фильтрации применяются для выделения из исходного множества по заданному критерию. Функция фильтрации Filter имеет два параметра: множество и критерий. Результат функции – выражение типа Boolean. При вычислении результата просматривается заданное множество. Для каждого кортежа во множестве вычисляется, указанное в качестве параметра, выражение. Если логическое выражение принимает значение Да (True), кортеж включается в результирующее множество.
Функция для упорядочения данных (Order) используется для сортировки кортежей по множеству. При необходимости можно осуществить сортировку по возрастанию или убыванию значений параметров с сохранением иерархичности.