Professional Documents
Culture Documents
Untitled
Untitled
Зіноватна С.Л.
Конспект лекцій
з дисципліни
СХОВИЩА ДАНИХ ТА OLAP-СИСТЕМИ
для студентів напряму
6.050103 - «Програмна інженерія»
Зіноватна С.Л.
Конспект лекцій
з дисципліни
СХОВИЩА ДАНИХ ТА OLAP-СИСТЕМИ
для студентів напряму
6.050103 - «Програмна інженерія»
Затверджено
на засіданні
кафедри системного
програмного забезпечення
Протокол № 8 від 16.01.2017
Конспект містить докладний опис усіх питань, розглянутих під час вивчення
дисципліни. Обсяг лекційного курсу складає 30 год.
Вивчаються такі основні розділи: поняття про системи підтримки рішень, OLAP-
системи; структура сховища даних, вітрини даних, види архітектури та фактори. що
впливають на вибір архітектури; багатомірні куби, види ієрархій, операції над кубами,
агрегація даних; мова багатомірних виразів MDX, синтаксис оператору запиту, функції,
кортежі та множини; підготовка даних для сховища; проблеми побудови сховища даних;
структура робіт по створенню сховища даних.
Призначено для студентів денної та заочної форми навчання.
3
СПИСОКСКОРОЧЕНЬ
BI – business intelligence
DSS – decision support systems
EIS – executive information systems
FASMI – Fast Analysis of Shared Multidimensional Information
КМ – knowledge management
SQL – structured query language
ODBC – Open Data Base Connectivity
OLAP – OnLine Analytical Processing
OLTP – OnLine Transaction Processing
TDWI – The Data Warehousing Institute
БД – база даних
ИАД – інтелектуальний аналіз даних
ИС – інформаційна система
ИТ – інформаційна технологія
ПО – програмне забезпечення
СППР – система підтримки прийняття рішень
СУБД – система керування базами даних
ТЗ – технічне завдання
ХД – сховище даних
ВСТУП
Методичні вказівки до лекції: [2, с. 58—89]; [4, с. 905–908]; [5, с. 981–998]; [6, с.
36-43]; [8, с. 524-529].
Вправи
1. Приведіть приклади аналітичних звітів для предметної області «Торгівля».
2. Проведіть порівняння між звітами для оперативної системи й аналітичної
системи на основі прикладів.
ЛЕКЦІЯ №2
Поняття сховища даних
Хоча з формальної точки зору СД являє собою різновид звичайної БД, проектують їх
по-різному.
Для звичайних БД процес створення включає наступні етапи:
· вивчення предметної області;
· побудова інформаційної моделі;
· розробка на основі інформаційної моделі проекту БД;
· створення БД.
Обов'язкові етапи створення ХД інші:
· визначення інформаційних потреб користувачів відносно даних, які накопляються
в БД систем обробки транзакцій, що є джерелами даних для СД;
· вивчення локальних БД систем обробки оперативних даних;
· виділення для кожної БД підмножини даних, необхідних для завантаження в СД;
· інтегрування локальних підмножин даних і розробка загальної погодженої схеми
сховища.
Основні компоненти СД
ПЗ (програмне забезпечення) проміжного шару
Забезпечує мережний доступ і доступ до баз даних. Сюди належать мережні й
комунікаційні протоколи, драйвери, системи обміну повідомленнями та ін.
Транзакційні БД і зовнішні джерела інформації
БД систем оперативної обробки даних історично призначалися для ефективної
обробки структур даних у відносно невеликому числі чітко певних транзакцій. Через
обмежену цільову спрямованість «облікових» систем застосовувані в них структури даних
погано підходять для систем підтримки прийняття рішень. Крім того, вік багатьох
установлених OLTP-Систем досягає 10 - 15 років.
Рівень доступу до даних
Таке ПЗ забезпечує спілкування кінцевих користувачів з інформаційним СД і
завантаження необхідних даних із транзакціних систем. У цей час універсальною мовою
спілкування служить мова структурованих запитів (SQL).
Завантаження й попередня обробка
Цей рівень містить у собі набір засобів для завантаження даних з OLTP-систем і
зовнішніх джерел. Виконується, як правило, у сполученні з додатковою обробкою:
перевіркою даних на чистоту, консолідацією, форматуванням, фільтрацією та ін.
Інформаційне СД
Являє собою ядро всієї системи - один або кілька серверів БД.
Метадані
Метадані (репозіторій, «дані про дані») відіграють роль довідника, що містить
відомості про джерела первинних даних, алгоритми обробки, яким вихідні дані були
піддані, і т.д.
Рівень інформаційного доступу
Забезпечує безпосереднє спілкування користувача із СД за допомогою стандартних
систем маніпулювання, аналізу й надання даних типу MS Excel, MS Access, Lotus і ін.
Рівень керування (адміністрування)
Відслідковує виконання процедур, необхідних для відновлення інформаційного
сховища або підтримки його стану. Тут програмуються процедури підкачування даних,
перебудови індексів, виконання підсумкових (підсумовуючих) розрахунків, реплікації
даних, побудови звітів, формування повідомлень користувачам, контролю цілісності й ін.
Методичні вказівки до лекції: [1, с. 23–30]; [2, с. 19–26]; [5, с. 944–951]; [6, с. 59–
64].
Вправи
1. Знайдіть за допомогою різних джерел інформації приклад невдалого проекту СД.
2. Приведіть приклад аналітичного запиту для обраної Вами предметної області,
результати якого дозволять підвищити прибутковість організації.
Змістовний модуль 2
OLAP-системи
ЛЕКЦІЯ №3
Аналітичні (OLAP) системи
Користувачі OLAP-систем
- керівники й менеджмент;
- бізнес-аналітики, маркетологи й аналітикипо плануванню розвитку;
- керівники середньої й молодшої ланки;
- рядові співробітники;
- співробітники ІТ-служб;
- інші застосування.
В 1995 році на основі вимог, викладених Коддом, сформульований тест FASMI (Fast
Analysis of Shared Multidimensional Information), що переводиться як «швидкий аналіз
поділюваної багатомірної інформації». Тест FASMI включає наступні вимоги до
застосувань для багатомірного аналізу:
• надання користувачеві результатів аналізу за прийнятний час (приблизно 5 с) при
припустимому рівні деталізації аналізу (прості за 2 с, невелика кількість дуже складних не
більш ніж за 20 с);
• можливість здійснення будь-якого логічного й статистичного аналізу,
підтримуваного використовуваним додатком, зі збереженням результатів у доступному
для користувача виді;
• багатокористувальницький доступ до даних з підтримкою відповідних механізмів
блокування й засобів автоматизованого доступу;
• багатомірне концептуальне представлення даних, включаючи повну підтримку для
ієрархій і множинних ієрархій вимірів (ключова вимога OLAP);
• можливість звертатися до будь-якої потрібної інформації незалежно від її обсягу й
місця зберігання.
У статті Е.Ф.Кодда, у якій уперше було дано формальне визначення OLAP-
технології, також були описані дванадцять правил, які описуютьголовні особливості
OLAP, до цих правил в 1995 році були додані ще кілька.
Характеристики OLAP розбиті на кілька груп.
Основні характеристики:
1. Багатомірність моделі даних. OLAP-система на концептуальному рівні повинна
представляти дані у вигляді багатомірної моделі, що спрощує процеси аналізу й
сприйняття інформації.
2. Інтуїтивні механізми маніпулювання даними. OLAP-система повинна надавати
спосіб виконання операцій зрізу, обертання, консолідації й деталізації над OLAP-кубом
без необхідності користувачеві робити множину дій з інтерфейсом. Маніпулювання
даними повинне виконуватися за допомогою дій безпосередньо в комірках таблиць, без
застосування меню або складних операцій.
3. Доступність. OLAP-система повинна надавати користувачеві єдину, погоджену й
цілісну модель даних, забезпечуючи доступ до даних незалежно від того, як і де вони
зберігаються.
4. Пакетне добування даних. Це правило вимагає, щоб продукти пропонували як
власні бази для зберігання аналізованих даних, так і динамічний доступ до зовнішніх
даних.
5. Архітектура «клієнт-сервер». OLAP-сервер забезпечує зберігання даних,
виконання над ними необхідних операцій і формування багатомірної моделі на
концептуальному рівні. OLAP-клієнт представляє користувачеві інтерфейс до
багатомірної моделі даних, забезпечуючи його можливістю зручно маніпулювати даними
для виконання завдань аналізу.
6. Прозорість – означає, що користувач, наприклад, електронної таблиці може
одержати повний доступ до засобів, надаваним ядром OLAP, і може при цьому навіть не
знати про те, звідки отримані ці дані. OLAP-система повинна приховувати від користувача
реальну реалізацію багатомірної моделі, спосіб організації, джерела, засоби обробки й
зберігання.
7. Багатокористувальницька робота. OLAP-система повинна надавати можливість
працювати декільком користувачам разом з однією аналітичною моделлю або створювати
для них різні моделі з єдиних даних.
8. Підтримка всіх моделей OLAP-аналізу.OLAP-система повинна підтримувати всі
чотири моделі аналізу даних, визначені Коддом: категоріальну, тлумачевальну, умоглядну
й стереотипну (формування звітів, що параметрично настроюються, формування розрізів і
угруповань зі зверненням, аналізом у стилі «що, якщо» і моделями пошуку цілей,
відповідно).
Спеціальні характеристики
9. Обробка ненормалізованих даних. Це означає можливість інтеграції між ядром
OLAP і ненормалізованим джерелом даних. Кодд виділяє те, що при відновленні даних,
виконаному в середовищі OLAP, повинна бути можливість змінювати ненормалізовані
дані в зовнішніх системах.
10. Зберігання OLAP результатів окремо від вихідних даних.
11. Виділення відсутніх даних. Це означає, що відсутні дані повинні відрізнятися від
нульового значення. Як правило, всі сучасні OLAP системи підтримують цю
характеристику.
12. Обробка відсутніх значень. Всі відсутні значення повинні бути зігноровані при
аналізі, поза залежністю від їхнього джерела.
Характеристики побудови звітів
13. Гнучка побудова звітів. OLAP-система повинна підтримувати різні способи
візуалізації даних, тобто звіти повинні представлятися в будь-якій можливій орієнтації.
Засоби формування звітів повинні представляти синтезовані дані або інформацію, що
випливає з моделі даних у її будь-якій можливій орієнтації. Різні виміри повинні
вибудовуватися будь-яким способом відповідно до потреб користувача.
14. Стабільна продуктивність при побудові звітів. Продуктивність OLAP-систем не
повинна значно зменшуватися при збільшенні кількості вимірів, по яких виконується
аналіз, або збільшенні обсягу бази даних.
15. Автоматичне регулювання фізичного рівня. OLAP-система повинна автоматично
регулювати фізичну структуру для адаптації її до типу й структури моделі.
Керування розмірністю
16. Рівноправність вимірів. Всі виміри повинні мати однакові можливості в
структурі й функціональності. Швидкість доступу повинна зберігатися поза залежністю
від розташування комірок даних і бути постійною величиною для моделей, що мають
різне число вимірів і різний ступінь розрідженості даних.
17. Необмежене число вимірів і рівнів агрегування. Фактично, під необмеженим
числом Кодд має на увазі 15-20, тобто число, що свідомо перевищує максимальні потреби
аналітика.
18. Необмежені операції між даними різних вимірів. Кодд вважає, що для того, щоб
застосування називалося багатомірним, воно повинне підтримувати будь-які обчислення з
використанням даних всіх вимірів.
Дані передаються від джерела даних у багатомірну базу даних, а потім база даних
піддається агрегації. Попередній розрахунок прискорює OLAP-запити, оскільки
розрахунок зведених даних уже зроблений. Час запиту стає функцією винятково часу,
необхідного для доступу до окремого фрагмента даних і виконання розрахунку. Цей
метод підтримує концепцію, відповідно до якої робота виконується один раз, а результати
потім використовуються знову й знову. Багатомірна база найчастіше буде надлишковою.
Куб, побудований на її основі, буде сильно залежати від числа вимірів. При збільшенні
кількості вимірів об'єм куба буде експоненційно рости. Іноді це може привести до
«підривного росту» обсягу даних, що паралізує в результаті запити користувачів.
«Вибух» бази даних являє собою феномен багатомірних баз. Це пов'язане з
розрідженістю бази даних і попередньою агрегацією даних. Якщо багатомірна база даних
містить невелике число елементів даних, порівнянне з кількістю забезпечуваних нею
рівнів агрегації, кожний фрагмент даних буде вносити більший вклад в усі одержувані з
нього дані. Коли база даних «вибухає», розмір її стає істотно більше, ніж він повинен
бути.
Методичні вказівки до лекції: [1, с. 2-–23]; [2, с. 44–45, 48–57]; [4, с. 873–875]; [5,
с. 848–949, 985–986]; [6, с. 64–79]..
Вправи
1. Приведіть приклади історичних, агрегованих і прогнозованих даних для
предметної області «Оператор кабельного телебачення».
2. Приведіть приклад запитів із системи оперативної обробки даних і аналітичної
системи для обраної Вами предметної області.
3. Приведіть приклад предметної області, для якої корисно створити аналітичну
систему.
4. Приведіть приклади аналітичних запитів для предметної області «Оператор
кабельного телебачення».
5. Додайте приклади аналітичних запитів для предметної області «Медицина».
ЛЕКЦІЯ №4
Архітектура сховища даних
Успіх архітектур
На думку TDWI, архітектурою, що домінує, є зірка, за нею йде шина вітрин даних і
централізована архітектура, і лише невеликий відсоток проектів заснований на
незалежних вітринах даних і федеративній архітектурі.
Централізоване сховище даних частіше вибирають, коли впровадження потрібно
провести терміново, обмеженість ресурсів вище й більше розрахунку на власний
персонал.
Архітектура «зірка» найчастіше використовується в корпоративних проектах для
створення великих сховищ даних. Це самі довгострокові й дорогі проекти, однак і самі
результативні. Функціональне охоплення таких проектів ширше, і розмір сховища даних
більше. Ця архітектура вимагає більшого утягування керівництва й планування, а отже,
матеріальних і часових ресурсів.
Шина вітрин часто вибирається в тій ситуації, коли ресурсів цілком достатньо,
представлення про сховище даних не носить чіткої стратегічної орієнтації, і сумісність із
уже впровадженими засобами не грає принципової ролі.
Лише деякі компанії вибирають федеративну архітектуру, зокрема, ті, хто
обмежений по строках. У деяких організацій уже використовуються розрізнені платформи
прийняття рішень у результаті злиттів і поглинань. Тому вони й застосовують
федеративний підхід, найбільше швидко реалізований. Тут більшу роль грає фактор
інформаційної залежності між підрозділами компанії й інформаційних потреб керівництва
Незалежні вітрини даних мають найнижчі оцінки серед користувачів. Це зайвий раз
підтверджує загальновідомий факт: ця архітектура далеко не найкраща.
Якщо говорити про інформаційну й системну якість, а також про організаційний
вплив, то про домінування однієї конкретної архітектури мова не йде. Вони розвиваються
й згодом здобувають близькі риси. Наприклад, архітектура «зірка» часто включає вітрини
даних, що лежать в основі архітектури «шина».
Вправи
1. Проаналізуйте, яку архітектуру краще вибрати для реалізації аналітичної системи
діяльності ВЗН.
2. Дайте опис варіантів різних архітектур для предметної області «Медицина» (що
могло б знаходиться в СД і у вітринах даних для кожної архітектури).
Змістовний модуль 3
Багатомірні куби
Лекція №5
Багатомірний куб. Основні поняття
x1
x2
x3
Комірка (Cell)
z3 U313 U323 U333
z
z1 U311 U321 U331
Методичні вказівки до лекції: [2, с. 40–44] ; [3, с. 80-86]; [5, с. 971–976, 984]; [8,с.
30–32].
Вправи
1. Наведіть приклади вимірів для предметної області «Деканат».
2. Наведіть приклади мір для предметної області «Телефонна компанія».
3. Надайте структуру таблиці фактів для предметної області «Поліклініка».
ЛЕКЦІЯ №6
Ієрархії вимірів. Схеми кубу «зірка» та «сніжинка»
Один вимір куба може втримуватися як в одній таблиці, так і в декількох зв'язаних
таблицях, що відповідають різним рівням ієрархії у вимірі. Якщо кожний вимір міститься
в одній таблиці, така схема сховища даних зветься «зірка».
Якщо ж хоча б один вимір міститься в декількох зв'язаних таблицях, така схема
сховища даних зветься «сніжинка».
Методичні вказівки до лекції: [2, с. 40–44] ; [3, с. 80-86]; [5, с. 971–976, 984]; [8,с.
30–32].
Вправи
4. Приведіть приклад збалансованої, незбалансованої й нерівної ієрархії.
5. Приведіть приклади декількох ієрархій для виміру Час.
6. Приведіть приклади декількох ієрархій для виміру Товар.
7. Приведіть приклад адитивного, неадитивного й полуадитивного параметра для
предметної області «Аптека».
8. Дайте приклад схеми «зірка» і «сніжинка» для предметної області «Агентство
нерухомості».
9. Приведіть приклад двовимірного представлення різних типів для куба із
предметної області вправи 5.
ЛЕКЦІЯ №7
Агрегація даних у багатомірному кубі
Розглянемо приклад
Таблиця фактичних даних
Регіон Продукт Час Продаж
Р1 Книги Весна 9
Р1 Їжа Осінь 3
Р2 Книги Осінь 6
avg
За регіонами
Р1 А
рег грегу
Р2 іон ван
ам
и ня
ро , ча за
avg ку сом
За часом року
Весна Літо
За регіонами
Р1 avg
Р2 avg
avg avg avg
«Вибух» даних
При додаванні вихідних даних у куб обсяг даних і час обчислення куба ростуть
експоненційльно, тому що необхідно розраховувати агрегати по кожному з вимірів.
Наприклад, десятивимірний куб без ієрархії усередині вимірів з кількістю значень 100 для
кожного виміру приводить до структури з 10110=1,120 комірками. Навіть якщо припустити
розрідженість 1 до 106 (тобто тільки один з мільйона комірок містить дані), куб однаково
буде мати 1,114 непустих комірок. Якщо порожні значення досить легко стискуються, то
«вибухом даних» називають ріст кількості агрегатів по всіх вимірах, які необхідно
обчислити. Тобто додавання однієї комірки в куб з 10 вимірами, що містять підсумки,
приводить до необхідності порахувати порядку 210 підсумкових агрегатів.
All, All,All
Регіон,
Продукти,Час
Вправи
Задайте таблицю фактів, що містить у якості міри екзаменаційні оцінки студентів, із
чотирма вимірами.
Оціните кількість значень у кожному вимірі із вправи 1. Розрахуйте розмір багатомірного
куба з агрегованими значеннями для представлення фактичних даних.
Побудуйте граф для куба із вправи 3.
ЛЕКЦІЯ №8
Агреговані значення для різних видів вимірів
Прості виміри
Нехай є 3 прості виміри для обліку обсягу продажів деяких товарів. Структура
багатомірного куба буде містити в собі наступні об'єкти (рис.11):
· Один показник: число проданих одиниць товару,
· Три виміри:
- менеджери по продажах (вісь oM),
- види товарів (вісь oC),
- часовий вимір з одиницею «місяць» (вісь oT).
m
al1...li ...lm = Õ ni (2)
i =1,li ¹ 0
Кількість усіляких агрегатів дорівнює сумі al1 ...li ...lm при всіляких варіантах
m
послідовності l1,…,li,…,lm,крім множини вхідних даних. Таких варіантів усього 2 -1.
Формула розрахунку повного числа агрегатів з урахуванням (2) виглядає в такий
спосіб
m m- k
a* = å å Õ ni (3)
k =1 C mk i =1,li ¹ 0
де Cm – кількість варіантів розміщення k нулів по m позиціях, тобто сполучення k
k
m -k
елементів по m, å Õ ni – сума всіляких неповторюваних добутків кількості членів
Cmk i =1,li ¹ 0
вимірів.
Більш просту формулу можна одержати, використовуючи властивість, що випливає з
(2):
å al ...l ...l
1 i m
= (n1 + 1) å a0...li ...lm = ( n1 + 1)...(ni + 1) å a 0...0li +1...lm = (n1 + 1)...(nm + 1)
2 m
2 m -1 2 m -i
Крім числа вхідних даних, одержимо
m m
a* = Õ (ni + 1) - Õ ni (4)
i =1 i =1
Ієрархічні виміри
Нехай для i-го виміру існує li* рівнів ієрархії.
ni,j – кількість членів в j-ом рівні i-го виміру, так що ni , j1 < ni , j2 при j1<j2 ; ni –
загальна кількість членів i-го виміру:
li *
n i = å ni , j .
j =1
Зіставимо кожному виміру порядковий номер i.
Al1...li ...lm – множина агрегатів, отриманих агрегуванням вхідних даних до li-го рівня
кожного з m вимірів, li = 0...li*.
Послідовність чисел l1,…,li,…,lmназивається станом агрегації.
Рівень ієрархії з нульовим номером li = 0 можна асоціювати з абстрактним
кореневим рівнем, що містить завжди єдиний член (ni0 =1), який, як правило, не має
відповідності реальному об'єкту предметної області. У такому випадку агрегацію по всіх
членах i-го виміру можна інтерпретувати, як агрегацію до кореневого рівня i-го виміру.
Як і у випадку із простими вимірами, рівнем деталізації називається число l =
l1+…+li+…+lm,відповіднемножині агрегатів Al1...li ...lm .
Розглянемо двомірний випадок з наступною структурою (рис.12):
· Показники: число проданих одиниць товару,
· Виміри:
- вимір, що відповідає часу продажу (вісь oT): квартал - місяць - день,
- вимір, що відповідає місцю й продавцеві (вісь oU): салони продажів -
менеджери.
Рис. 12. Двомірний випадок з ієрархічними вимірами
Нехай кількість членів часового виміру (T) перевищує кількість членів виміру місця
(U). Тоді
- l1* = 3, l2* = 2;
- загальне число членів виміру T і U дорівнює відповідно n1 і n2;
- кількість кварталів, місяців і днів у часовому вимірі дорівнює відповідно n1,1, n1,2
і n1,3 ;
- кількість салонів і менеджерів дорівнює відповідно n1,1 і n2,2;
- кількість вхідних даних дорівнює n1,3 і n2,2.
Відповідна кількість агрегатів дорівнює:
- у розрізі місяців і менеджерів a22= n1,2n2,2,
- у розрізі днів і салонів продажів a31= n1,3n2,1,
- у розрізі тільки днів a30= n1,3,
- у розрізі місяців і салонів продажів a21=n1,2n2,1,
- у розрізі кварталів і менеджерів a12= n1,1n2,2,
- у розрізі тільки місяців a20= n1,2,
- у розрізі кварталів і салонів продажів a11= n1,1n2,1,
- у розрізі тільки менеджерів a02= n2,2,
- у розрізі тільки салонів продажів a01= n2,1.
- у розрізі тільки кварталів a10= n1,1,
- повний агрегат a00= 1.
У такий спосіб
a* =a31+a30+a22+a21+a20+a12+a12+a10+a02+a01+a00=
=n1,2n2,2 + n1,3n2,1+ n1,3+ n1,2n2,1+ n1,1n2,2+ n1,2+ n1,1n2,1+ n2,2, + n2,1 + n1,1 + 1.
(перший індекс - вимір, другий індекс - рівень)
З визначення Al1...li ...lm слідує, що
m
å al ...l ...l
1 i m
= (n1,l1* + ... + n1,1 + 1)
m
å a 0,l ...l ...l
2 i m
=
Õ (l j *+1)-1 Õ (l j *+1)-1
j =1 j=2
li *
Крім множини вхідних даних, і з огляду на те, що ni = å ni ,li , одержимо
li =1
m m
a* = Õ (ni + 1) - Õ n i,li * (7)
i =1 i =1
Формула (7) представляє узагальнений вид формули (4).
Обчислювальні витрати на ад'єктивування
Під обчислювальними витратами на виконання агрегації деякої множини значень
показників (агрегованих або вхідних) до певного результуючої множини агрегатів
розуміється кількість елементарних операцій підсумовування, які необхідно здійснити для
одержання результуючої множини.
Позначимо витрати на виконання агрегування множини Al1 ...li ...l m по i-му вимірі, як
C (i, Al1 ...li ...lm ) .
Очевидно, що C (i, Al1 ...l i -1 0l i +1 ...l m ) = 0
Для формування множини агрегатів A011 у випадку із трьома простими вимірами для
кожної комбінації менеджерів і місяців необхідно підсумувати вхідні значення показників
по напрямку стрілки 1 (рис. 11) nр-1 раз. Таким чином, з урахуванням того, що i(Р) =1,
i(M)=2, i(T) =3 – порядкові номери вимірів, витрати на виконання агрегування від A011до
A011 визначаються як
C(1, A111) = (nр - 1)nmnt.
Аналогічно при формуванні множин агрегатів A101 і A110 на підставі вихідних
значень показників одержимо відповідно витрати
C(2, A111) = nc nt (nm - 1),
C(2, A111) = nc nm (nt –1).
Одержання множини A001 можливо двома способами:
· агрегування множини A101 по вимірі видів товару (по стрілці 4);
· агрегування множини A011 по вимірі менеджерів (по стрілці 5);
Очевидно, що витрати на ці операції різні й рівні відповідно
C(1, A101) = (nр-1)nt,
C(2, A011) = (nm-1)nt.
Розглянемо розрахунок витрати на агрегування в загальному випадку з ієрархічними
вимірами. Для цього використовуємо наступне твердження.
Твердження 1. Нехай існує ієрархія з l* рівнями, де nl – кількість членів на l-ом рівні
й nl<=nl+1, l=1…l*-1...Тоді кількість елементарних операцій підсумовування значень
показника, що відповідають l+ 1-му рівню, з метою одержання агрегованх значень
показника l-го рівня дорівнює
nl+1-nl.
У прикладі із двома ієрархічними (рис. 12) вимірами для одержання агрегованих
значень показника по кожній комбінації менеджерів і місяців (А22) необхідно провести
агрегацію множини вхідних A32 даних по часовому вимірі: від A32 доА22 по 1-му вимірі.
Для цієї операції необхідно для кожного менеджера підсумувати значення показника по
днях з метою одержання показника по місяцях (відповідно до твердження) n1,3 - n1,2 разів.
Таким чином,
C(1, A32) = (n1,3 – n1,2)n2,2 = n1,3n2,2 - n1,2n2,2 = a32 - a22.
Аналогічно витрати на агрегацію значень показника в розрізі менеджерів і кварталів
по часовому вимірі з метою одержання агрегатів тільки по менеджерах рівні
C(1, A12) = (n1,1 – n1,0)n2,2 = (n1,1 – 1) n2,2 = n1,1n2,2 - n2,2 = a12 - a02,
Узагальнюючи вище описані приклади, можна сформулювати висновок, що при
підсумовуванні множин агрегатів по i-му вимірі з li-го на li-1 рівень необхідно для кожної
комбінації зі членів поточних рівнів всіх інших m-1 вимірів провести ni,li – ni,li-1
елементарних операцій підсумовування. Таким чином, одержуємо
m
C (i , Al1 ...li -1 0li +1 ...l m ) = (ni ,li - ni,li -1 ) Õ n j ,l j , де li = 1…li*...
j =1, j ¹ i
множини Al ...l ...lm , зробивши ад'єктивування по i-му вимірі. При цьому необхідно
1 i +1
із цих операцій агрегації різні. Логічно із всіх можливих альтернатив агрегації вибирати
ту, котра вимагає найменших обчислювальних витрат.
Розподіл агрегатів між множинами одного рівня деталізації. Розглянемо сукупність
множин агрегації Al, що відповідають рівню деталізації l ( l=1...1…1*). Допустимо, що на
цей момент всі множини більшого ступеня деталізації, чим l, сформовані й загальна їхня
кількість дорівнює a’. Позначимо множину всіх агрегатів рівня l як al. Залежно від заданої
для поточного куба ступеня агрегації можливі наступні варіанти подальшого поводження.
· Оцінювана сумарна кількість агрегатів, що відповідають рівню деталізації більш
або рівного l, не перевищує дозволеної кількості агрегатів а, обумовленого заданим
ступенем деталізації, тобто a’+ al<= a. У цьому випадку повністю формуються всі
множини агрегатів Al ...l ...l , що відповідають рівню деталізації l.
1 i m
Вправи
1. Визначите міру й три виміри для куба із предметної області «Лікарня».
Розрахуйте кількість усіляких агрегатів для випадку із простими вимірами.
2. Додайте ієрархію у виміри із вправи 1. Розрахуйте кількість усіляких агрегатів.
3. Розрахуйте обчислювальні витрати для агрегації по одному з вимірів для куба із
вправи 2.
4. Намалюйте граф, що визначає шляхи формування агрегатів для куба із вправи 3.
Семестровий модуль 2
Змістовний модуль 4
Підготовка даних для СД
ЛЕКЦІЯ №9
Витяг, перетворення й завантаження даних
Розподіл даних на кілька потоків перед вставкою в СД потрібний для того, щоб
розділити нові дані й записи, які повинні обновити або доповнити раніше інформацію, що
надійшла, у СД. Завдяки цьому завантаження даних у СД проходить простими запитами,
без додаткової фільтрації.
Вправи
1. Розробіть реляційну БД для обліку оперативної інформації в предметній області
«Поліклініка». Розробіть для даної предметної області структуру реляційних таблиць для
СД типу «зірка» із трьома вимірами. Напишіть оператори SQL для перенесення даних з
оперативної БД у СД.
2. Виконайте вправу 1 для предметної області «Телефонна компанія».
ЛЕКЦІЯ №10
Очищення даних
Клієнт (джерело 2)
N Прізвище Ім'я Рід Адреса Телефон/Факс
клієнта
Миколаївська обл., Первомайськ, 333-222-6542/
24 Петренко Євгеній Ж
вул. Шевченко 2 333-222-6599
Од. обл., Білгород-Дністровський,
493 Петренко Евг. М. М 444-555-6666
ін. Шевченко 2
(продовження)
Область Індекс Телефон Факс Id замовника N клієнта
Одеська 67700 333-222-6542 333-222-6599 11 493
Одеська 67700 444-555-6666 24
Миколаївська 55200 444-555-6666 24
Слід зазначити, що конфлікти схеми необхідно врегулювати в першу чергу, щоб
забезпечити можливість очищення даних, особливо – виявлення дублікатів на основі
уніфікованого Представлення імен і адрес і зіставлення значень Рід/Стать.
Вправи
1. Приведіть приклади виникнення проблем одного джерела даних на рівні схеми
для предметної області «Поліклініка».
2. Приведіть приклади виникнення проблем одного джерела даних на рівні
елемента даних для предметної області «Банк».
3. Приведіть приклади виникнення проблем множини джерел даних для
предметної області «Відділ кадрів студентів» для ВНЗ, що має множину факультетів.
ЛЕКЦІЯ №11
Очищення даних (продовження)
Аналіз даних
Для досягнення якості даних, що відповідає джерелу, метадані, відбиті в схемах,
звичайно недостатні, особливо якщо обмежень цілісності задано мало. Тому для
одержання модернізованих метаданих з характеристиками даних важливо аналізувати
реальні приклади. Існує два зв'язаних між собою методу аналізу: профайлінг даних і data
mining.
Профайлінг даних орієнтований на зразковий аналіз окремих атрибутів. При цьому
відбувається одержання такої інформації, як тип, довжина, спектр значень, дискретні
значення даних і їхня частота, зміна, унікальність, наявність невизначених значень,
типових рядкових моделей (наприклад, для номерів телефонів) і ін., що дозволяє
забезпечити точне представлення різних аспектів якості атрибута.
Data mining допомагає знайти специфічні моделі даних у великих наборах даних –
наприклад, відношення між декількома атрибутами. Саме на це спрямовані так звані
описові моделі data mining, включаючи угруповання, узагальнення, пошук асоціацій і
послідовностей. При цьому можуть бути отримані обмеження цілісності в атрибутах –
наприклад, функціональні залежності або характерні для конкретних застосувань бізнес-
правила, – які можна використовувати для заповнення втрачених і виправлення
неприпустимих значень, а також для виявлення дублікатів записів у джерелах даних.
Приклади використання модернізованих метаданих для роботи із проблемами
якості даних
Проблеми Метадані Приклади/пояснення
Наприклад, кількість елементів (Стать)>2 указує
Кількість елементів
на проблему
Неприпустимі Max і min не повинні виходити за межі області
Max, min
значення припустимих значень
Невідповідності, Невідповідності й відхилення статистичних
відхилення величин не повинні перевищувати граничних
Невизначені значення Відсоток/число невизначених значень
Втрачені Значення атрибутів +
Наявність значення за замовчуванням може
значення значення за
вказувати на відсутність справжнього значення
замовчуванням
Різні
Порівняння множини значень атрибутів стовпця
представлення
Значення атрибутів однієї таблиці з тією же множиною для стовпця
значень
іншої таблиці
Проблеми Метадані Приклади/пояснення
Дублікати Кількість елементів + Кількість значень атрибута повинне дорівнювати
унікальність кількості рядків
Сортування значень по числу входжень; більш 1
Значення атрибутів
входження означає дублікат.
Вирішення конфліктів
Іноді потрібно виконати підготовку окремого джерела до інтеграції з іншими
джерелами, що може включати наступні етапи:
· Витяг значень із атрибутів вільного формату (розщеплення атрибутів).
Атрибути вільного формату часто містять множину окремих значень, що підлягають
витягу для підвищення точності представлення й підтримки наступних етапів очищення –
таких, як зіставлення елементів даних і видалення дублікатів. Типовими прикладами є
поля імен і адрес. Необхідні на цьому етапі перетворення перерозподіляють значення в
полі для одержання можливості переміщення слів і витягають значення для розщеплених
атрибутів.
· Перевірка допустимості й виправлення. На цьому етапі кожний елемент даних
джерела даних досліджується на наявність помилок, а виявлені помилки в міру
можливості автоматично виправляються. Перевірка орфографії на основі перегляду
словника потрібна для ідентифікації й виправлення помилок у написанні слів. Словники
географічних найменувань і поштових індексів допомагають коректувати адресні дані.
Атрибутивні залежності (дата народження – вік, загальна вартість – ціна за шт., місто –
регіональний телефонний код, і т.д.) можуть використовуватися для виявлення проблем і
заміни втрачених або виправлення невірних значень.
· Стандартизація. Для співвіднесення й інтеграції елементів даних, значення
атрибутів варто перетворити в погоджений і уніфікований формат. Наприклад, записи про
дату й час повинні бути оформлені в спеціальному форматі, імена й інші символьні дані
повинні конвертуватися або в прописні, або в малі літери, і т.д. Текстові дані можуть бути
стислі й уніфіковані за допомогою виявлення основи, видалення префіксів, суфіксів і
вступних слів. Абревіатури й зашифровані схеми підлягають погодженій розшифровці за
допомогою спеціального словника синонімів або застосування визначених правил
перетворення.
Вирішення проблем множини джерел вимагає зміни схем для досягнення інтеграції,
у тому числі й розщеплення, злиття, згортання й розгортання атрибутів і таблиць. На рівні
елемента даних повинні дозволятися проблеми із суперечливими представленнями й
даними, що перекривають один одного. До видалення дублікатів звичайно приступають
після того, як більша частина інших етапів перетворення й очищення вже виконані,
особливо – після очищення від помилок і суперечних представлень даних окремого
джерела. Цей процес виконується або над двома очищеними джерелами одночасно або
над окремим, уже інтегрованим набором даних. Видалення дублікатів вимагає, у першу
чергу, виявлення (тобто зіставлення) схожих записів, що відносяться до того самого
об'єкта реального оточення. Другим кроком повинне стати злиття схожих записів в один,
що включає всі відповідні атрибути без надлишковості.
У найпростішому випадку для кожного запису існує ідентифікаційний атрибут або
комбінація атрибутів, яку можна використовувати для зіставлення записів, наприклад,
якщо різні джерела мають загальний первинний ключ або якщо існують різні інші загальні
унікальні атрибути. У випадку окремого набору дані зіставлення можуть визначатися
сортуванням по ідентифікуючому атрибуті й перевіркою погодженості сусідніх записів.
Для визначення більшості або навіть всіх зіставлень в «нечіткому зіставленні»
(приблизному об'єднанні) необхідно знайти подібні записи, засновані на правилі
зіставлення. Наприклад, таке правило може затверджувати, що записи по деякій особі,
швидше за все, погоджені, якщо погоджене ім'я й фрагменти. Ступінь схожості між
записами часто виміряється числовими значеннями між 0 і 1, що звичайно залежать від
характеристик застосування. Наприклад, різні атрибути в правилі зіставлення можуть
надавати різного значення загальному рівню подібності. Для строкових компонентів
(наприклад, ім'я споживача, найменування компанії й ін.) можуть виявитися корисними
точне зіставлення й неявні методи, засновані на групових символах, частоті знаків,
редакторських відстанях, відстанях клавіатури й фонетичної подібності (soundex).
Такий метод визначення відповідності елементів даних, як правило, є надзвичайно
довгою операцією при великих об’ємах даних.
Всі записи, для яких показник подібності перевищує граничний, можуть
розглядатися як відповідності або як кандидати на відповідність, далі підтверджувані або
відхилені користувачем.
Сьогодні на ринку існує великий вибір засобів для підтримки перетворень і
очищення даних. Ряд засобів орієнтовані на специфічну область – наприклад, на
очищення даних по іменах і адресах або на специфічні фази очищення – наприклад, аналіз
даних або виключення дублікатів. Завдяки своїй обмеженій області застосування,
спеціалізовані засоби звичайно дуже ефективні, однак для роботи із широким спектром
проблем перетворення й очищення вони мають потребу в доповненні іншими
інструментами. Загальною проблемою засобів ETL є обмежені можливості взаємодії за
рахунок власних API і форматів метаданих, що ускладнюють спільне використання різних
засобів.
Вправи
1. Приведіть приклади виникнення брудних даних у предметній області
«Поліклініка».
2. Приведіть приклади процедур очищення даних в предметній області «Деканат».
Змістовний модуль 5
Мова багатомірних виражень MDХ
ЛЕКЦІЯ №12
Мова багатомірних виражень MDX. Основні поняття
Основні концепції
Кожний вимір має одну або кілька ієрархій, а кожна ієрархія містить один або кілька
рівнів. Кожна ієрархія виміру містить один або кілька елементів, називаних членами
(members). Кожний член відповідає одному або декільком входженням цього значення в
базову таблицю вимірів.
Простір куба – це сукупність елементів ієрархій вимірів куба з мірами куба. Тому
простір куба визначається комбінаторним сполученням всіх елементів ієрархії виміру в
кубі й мер куба й визначає максимальний розмір куба. Важливо мати на увазі, що цей
простір включає всі можливі сполучення елементів ієрархії виміру, навіть сполучення, які
можуть здатися неможливими в реальному світі, наприклад сполучення, де містом є
Париж, а країнами — Англія, Іспанія, Японія або Індія, і т.д.
Поняття автоматичної перевірки існування обмежує простір куба комірками, які
дійсно існують. Елементи ієрархії виміру можуть не існувати з елементами іншої ієрархії
у тому же вимірі.
Наприклад, простір куба, що містить ієрархію Місто, ієрархію Країна й міру
ОбсягПродажу, включає тільки ті елементи, які існують один з одним. Наприклад, якщо
ієрархія Місто містить елементи Київ, Одеса, Москва, Тула й Краків, а ієрархія Країна
містить країни Україна, РФ, Польща, то простір куба не містить комірку на перетинанні
елементів Москва й Україна.
Запит до неіснуючих комірок повертає значення NULL.
Об'єкт Measures (міри), по суті, являє собою спеціальний вимір, що є набором мір.
Доступ до члена виміру
Можна одержати доступ до члена виміру за допомогою імені цього виміру, імені
ієрархії й імені рівня. Наприклад:
[Місце]. [Ієрархія_Місце].[Україна].[Одеса].[Проспект Гагаріна].[будинок
№10].[квартира №123],
[Місце]. [Ієрархія_Місце].[Україна].[Одеса]
У наведених прикладах використаний докладний запис:
[<Вимір>].[<Ієрархія>].[<Член верхнього рівня>]. … ... . [<Член нижнього рівня>]
У деяких випадках унікальні в межах виміру елементи такого запису можна
опускати.
Наприклад, якщо перший квартал кожного року називається Q1, то такий член
виміру не можна опускати, необхідно буде уточнити вираження MDX, використовуючи
ім'я рівня. Якщо все-таки використовувати даний формат звертання до члена ієрархії,
MDX завжди буде витягати член Q1 для першого із представлених в ієрархії років.
Можна організувати кілька ієрархій для одного виміру, наприклад:
[Дата].[Ієрархія1].[<Рік>].[<Місяць>].[<Число>] і
[Дата].[Ієрархія2].[<№ тижня>].[<День тижня>]
У випадку єдиної ієрархії на неї можна послатися по імені виміру, тобто:
[Дата].[Ієрархія1].Members еквівалентно [Дата].Members ,
[Місце].[Ієрархія_Місце].[Міста].Members еквівалентно [Місце].[Міста].Members .
Кожному рівню ієрархії (Level) привласнене своє ім'я. Імена рівнів застосовуються в
конструкціях виду:
[<Вимір>].[<Ієрархія>].[<Рівень>].Members .
Наприклад: [Дата].[ Ієрархія1].[Місяця].Members - всі можливі місяця;
[Місце].[Ієрархія_Місце].[Вулиці].Members - всі вулиці, незалежно від країни й
міста.
Імена вимірів, ієрархій, рівнів і членів обов'язково потрібно брати у квадратні
дужки, якщо в ім'ї зустрічається пробіл, цифра або ім'я являє собою ключове слово MDX.
Таким чином, у МDХ існують три способи посилання на об'єкти вимірів, ієрархій,
рівнів і елементів:
- по імені;
- по повному імені;
- по унікальному імені.
Для визначення члена, посилання на який виконується по імені, сервер повинен
пройти по всіх вимірах і всіх їхніх ієрархіях у пошуку елемента із заданим ім'ям. Це
вимагає великої кількості ресурсів, особливо коли елементи виміри зберігаються в
реляційній базі даних (ROLAP-виміри). Крім того, посилання на об'єкт по імені можуть
привести до неоднозначних результатів, наприклад, коли елементи з однаковими іменами
існують у різних вимірах, наприклад, елемент Україна існує у вимірі Клієнт і у вимірі
Магазин.
Посилання на об'єкти по повному імені швидше, ніж посилання на об'єкти по їхніх
іменах. Вона працює добре для вимірів, ієрархій і рівнів, але має недоліки при
використанні для посилання на елемент. Якщо повне ім'я створене з'єднанням імен батьків
елемента, елемент перестає бути мобільним. Повне ім'я стане неправильним, якщо
елемент перейде від одного батька до іншого. Якщо розглядати покупця в ієрархії
Покупці, який може переїхати жити в інше місто, і ім'я елемента, що його представляє,
поміняється.
Третій спосіб посилання на об'єкти складається у використанні їхніх унікальних
імен. Сервер привласнює унікальне ім'я кожному виміру, ієрархії, рівню й елементу.
Клієнтськезастосування, що генерує МDХ, або програміст, що пише запит, може
одержувати унікальне ім'я об'єкта, використовуючи опис схеми або з результатів іншого
запиту.
Існують досить складні правила для генерації унікальних імен. Постачальники, що
підтримують МDХ, можуть мати різні алгоритми для генерації унікальних імен. Тому при
написанні запитів унікальні імена повинні запитуватися із сервера, наприклад, за
допомогою функції UniqueName
Якщо у вибірці обрано осей менше, ніж кількість вимірів у кубі, не задані значення
атрибутів призначаються.
У кожного виміру існує член за замовчуванням. Як правило, у ролі Default Member
виступає єдиний член спеціального рівня ієрархії [All], автоматично створюваного при
створенні виміру. Цей рівень містить сукупні результати по всім вимірі.
Вказівка на член за замовчуванням можна записати за допомогою вираження
DefaultMember:
[Клієнти].DefaultMember .
Якщо рівень [All] відсутній, у його ролі виступає перший член наступного рівня.
У деяких системах членом за замовчуванням можна призначити будь-який член або
MDX-вираження виміру.
Оскільки сукупність мер ([Measures]) теж є одним з вимірів, те й серед мір є елемент
за замовчуванням.
Кортеж (tuple) – це набір членів одного або декількох різних вимірів. Кортеж
однозначно визначає зріз даних у кубі. Кортеж представлений членами вимірів куба даних
(по одному члену з кожного виміру), розділеними комами. Кортеж указує на
конкретнукомірку або набір комірок усередині куба. Кортежі задаються за допомогою
круглих дужок.
Приклади:
([Місце].[Україна].[Київ].[вулиця Хрещатик], [Піл].[Ж], [Тип місця].[Місце
проживання] ) - усі жінки, що живуть на вулиці Хрещатик у Києві;
([Місце].[Україна].[Харків], [Тип місця].[Місце народження] ) – всі клієнти, що
народилися в Харкові.
Кортеж необов'язково повинен явно містити члени всіх вимірів куба даних.
Елемент кортежу повинен належати різним ієрархіям.
([2010], [Франція]) - правильно
([США], [Франція]) - неправильно, елементи кортежу з однієї ієрархії
Порядок, у якому представлені члени вимірів у кортежі, не має значення.
Кортеж, представлений єдиним членом, називають простим кортежем. Простий
кортеж можна не брати в круглі дужки. Наприклад, кортеж ([Клієнт].[Стана].[Україна]) є
простим кортежем і може бути представлений у вигляді [Клієнт].[Країна].[Україна] або
просто Клієнт.Країна.Україна.
Вправи
1. Створіть куб К на основі бази даних Борею з вимірами Клієнт, Співробітник,
Товар, Час виконання замовлення й мірами Кількість і Ціна замовлення.
2. Приведіть приклади кортежів для кожного виміру.
3. Приведіть приклади множин для пар вимірів.
4. Створіть БД для предметної області «Біржа праці». На її основі розробіть СД.
При необхідності виконайте денормалізацію.
5. Створіть для СД із п.4 багатомірний куб зі схемою "сніжинка". Куб повинен
містити таблицю фактів з 2-3 мірами й не менш трьох вимірів. Хоча б один з вимірів
повинун представлятися двома зв'язаними таблицями. Один вимір повинне бути виміром
часу.
ЛЕКЦІЯ №13
Мова багатомірних виражень MDX. Запит до кубу
Речення FROM у запиті MDX визначає куб, з якого витягають дані для аналізу. Воно
нагадує речення FROM мови SQL, у якому вказується ім'я таблиці.
Вираження cube_expression позначає ім'я куба або підрозділу куба, з якого потрібно
витягти дані. Мова SQL допускає використання в реченні FROM декількох таблиць, однак
у запиті MDX можна вказати ім'я тільки одного куба даних. Куб, зазначений у речення
FROM, називають контекстом куба (cube context), і запит MDX виконується усередині
цього контексту. Тобто, кожна частина вираження axis_expression буде витягатисяі з
контексту куба, зазначеного в реченні FROM.
Приклад запиту, що витягає розмірність [Обсяг продажів] по осі X.
SELECT {[Measures].[Сума продажів]} ON COLUMNS
FROM [Mycube]
Зазначена в SELECT міра витягається з контексту куба [Mycube].
Можна одержувати дані з інших кубів, використовуючи спеціальну функцію
LookupCube. Якщо є два (або більше) куби із загальними членами вимірів, то ця функція
дає можливість за допомогою цих членів витягти розмірності, що не входять у поточний
контекст куба.
WITH
MEMBER Measures.Прибуток AS 'Measures.Продаж – Measures.Собівартість'
MEMBER Час.[11 до 10] AS 'Час.[2011] - Час.[2010]'
SELECT
{Measures.Продаж, Measures.Собівартість, Measures.Прибуток } ON
COLUMNS,
{ Час.[2010], Час.[2011], Час.[11 to 10] } ON ROWS
FROM MyCube
Продаж Собівартість Прибуток
2010 300 220 80
2011 350 210 140
11 до 10 50 -10 60
Створення елементів, що обчислюються, з областю дії сеансу
CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER
CURRENTCUBE | <Ім'я куба >.<Псевдонім >
AS <Вираження>
[,<Властивість>= <Значення>, ...n]
[,SCOPE_ISOLATION = CUBE]
Аргумент <Властивість> може відноситися до стандартних або додаткових
властивостей елемента, що обчислюється.
У кожного елемента, що обчислюється, є набір стандартних властивостей. При
підключенні клієнтського застосування до Analysis Services стандартні властивості або
підтримуються, або доступні для підтримки на вибір адміністратора.
Додаткові властивості можуть бути доступні залежно від визначення куба.
Наступні властивості відображають відомості, що відносяться до рівня виміру в
даному кубі.
Властивість Опис
SOLVE_ORDER Порядок, у якому цей елемент буде обчислюватися у
випадках, коли один елемент, що обчислюється, посилається
на іншій.
FORMAT_STRING Рядок форматування Microsoft Office, використовувана
клієнтським застосування для відображення значень комірок
VISIBLE Визначення видимості елемента, що обчислюється, у наборі
рядків схеми. Ненульове значення вказує, що даний елемент,
що обчислюються, бачений. Значення цієї властивості за
замовчуванням дорівнює Visible.
Невидимі елементи, що обчислюються (для яких значення
властивості дорівнює нулю) звичайно використовуються як
проміжні етапи при обчисленні більш складних елементів.
До таким елементів, що обчислюються, можуть також
звертатися інші типи елементів, наприклад, міри.
NON_EMPTY_BEHAVIOR Указує міру або набір, використовувані для визначення
поводження елементів, що обчислюються, при дозволі
порожніх комірок
Приклад
CREATE MEMBER CURRENTCUBE.Measures. [Відносний прибуток]
AS 'Measures.[Сума продажу]/Measures.[Сума закупівель]', SOLVE_ORDER =
10
Вправи
1. Напишіть запит до куба К, створеному у вправах до попередньої лекції, що
формує двовимірну таблицю з виводом членів одного з вимірів.
2. Одержати результати запитів до куба, створеному у вправі 5 лекції №10.
Продемонструвати наступні можливості MDX (для кожного випадку окремий запит):
1) простий запит, що повертає двовимірну таблицю, на одній осі виводяться члени
виміру, на іншій – міри куба;
2) запит, що повертає тривимірний куб, з використанням конструкції Where;
3) застосування операцій з множинами Unіon, Іntersect або Except;
4) застосування операцій з множинами Crossjoіn;
5) створення й використання іменованих множин з областю дії запиту;
6) створення й використання елементів, які обчислюються, з областю дії запиту.
При необхідності відредагувати дані в СД, щоб мати можливість побачити
результати запитів.
ЛЕКЦІЯ №14
Функції мови багатомірних виражень MDX
Функція Descendants небагато складніше, але вона більш гнучка, чим функція
Children. Вона використовується для одержання нащадків члена.
Наприклад, необхідно проаналізувати продажі магазинів, розташованих у різних
містах України
SELECT DESCENDANTS([Україна],[Місто магазина]) ON COLUMNS
FROM [MyCube]
Функція Descendants повертає множину членів, які є нащадками заданого члена на
заданому рівні ієрархії.
Щоб побачити листові елементи (leaf memebers) – елементи, у яких немає нащадків,
що є нащадками елемента Україна, використовується ключове слово LEAVES.
SELECT DESCENDANTS([Магазин.[Країна магазина].[Україна], LEAVES)
on COLUMNS
FROM [MyCube]
МDХ підтримує цілий ряд функцій, які підпадають під категорію функцій для
навігації по ієрархії, наприклад, FirstChild, LastChild, функції для роботи з елементами
одного рівня, і т.д.
Функція Filter має два параметри: множина і вираження МDХ, що задає критерій і
повертає значення типу Boolean. Для обчислення результату функції Filter сервер
проходить множину, що була передана як перший параметр функції. Потім для кожного
кортежу в множині обчислює вираження, передане як другий параметр. Якщо це
вираження приймає значення True, кортеж включається в результуючу множину.
Наприклад, нехай потрібно визначити магазини, продажі в які знизилися в 2010 р., у
порівнянні з 2009 р.
SELECT Filter([Магазин].members,
([Кількість продажів], [2010]) < ([Кількість продажів],[2009])) ON COLUMNS,
{[2009], [2010]} ON ROWS
FROM [MyCube]
WHERE [Кількість продажів]
Для виконання функції Filter сервер обчислює вираження фільтра ([Кількість
продажів],[2010]) < ([Кількість продажів],[2009]). Це вираження містить тільки члени
вимірів Measure і Час. Всі інші члени визначаються по кроках, описаних у визначенні
контексту запиту: сервер спочатку встановлює в поточну координату члени за
замовчуванням всіх атрибутів, а потім перезаписує їхніми членами вимірів, зазначеними в
реченні WHERE. Потім сервер перезаписує члени, зазначені у вираженні критерію. І,
нарешті, перезаписуються члени, зазначені у множині,яка фільтрується.
Інший приклад
SELECT Filter([Клієнт]. [Країна].members,
[Measures].[Кількість продажів].Value>1000) ON COLUMNS
FROM [MyCube]
WHERE ([Час].[Рік].[2009])
У цьому запиті фільтруються магазини в міру Кількість продажів. Нехай мережа
магазинів спочатку була тільки в Україні; так що в 2009 р. всі продажі були тільки в
Україні. Але в 2010 р. товари продавалися також у Росії й Молдові. Якби вираження Filter
обчислювалося в контексті вираження, а не в контексті всього запиту, у результаті були б
отримані всі три країни: Україна, РФ і Молдова. Для виміру Час використовується член за
замовчуванням ALL. У запиті із приклада буде отримана тільки одна країна: Україна,
тому що поточний контекст для виконання вираження включає члени, зазначені в реченні
WHERE
Україна
22786
Тобто речення WHERE впливає на обчислення вираження критерію й на результат
функції Filter.
Щоб краще зрозуміти правила обчислення контексту у функції фільтрації,
розглянемо, що відбудеться, якщо виміри, використовувані у вираженні критерію, були б
тими ж самими, що й у реченні WHERE. Допустимо, що в запиті вимір Measure існує й у
речнні WHERE, і у вираженні критерію. При виконанні вираження критерію сервер буде
використовувати міру Кількість продажів, але для обчислення значень комірок буде
використана міра Сума продажів.
SELECT Filter([Клієнт].[Країна].members,
[Measures].[Кількість продажів].Value>1000) ON COLUMNS
FROM [MyCube]
WHERE ([Час].[Рік].[2009], [Measures].[Сума продажів])
Режим відсутності члена може бути включений і виключений у рамках виміру. Деякі
виміри більш гнучкі, і дані в них міняються частіше, чим в інших. Наприклад, вимір
покупців буде часто мінятися, а вимір часу, наприклад, досить постійно.
Для керування режимом відсутності члена вимір має властивість Режим Відсутності
члена (MdxMissingMemberMode), що може бути встановлена в стан Помилки (Error) або
Ігнорувати Помилку (IgnoreError). За замовчуванням режим відсутності члена
встановлений в Ігнорувати Помилку (IgnoreError).
Режим відсутності елемента не поширюється на імена вимірів, і неправильно
зазначене ім'я виміру приведе до помилки.
Вправи
1. Одержати результати запитів до куба, створеного у вправі 5 лекції №10.
Продемонструвати наступні можливості MDX (для кожного випадку окремий запит):
1) застосування функцій для навігації в ієрархіях;
2) застосування функції fіlter;
3) застосування функції order.
При необхідності відредагувати дані в СД, щоб мати можливість побачити
результати запитів.
Змістовний модуль 6
Проблеми побудови СД
ЛЕКЦІЯ №15
Ключові показники ефективності
При розрахунку KPI необхідно опиратися на дані, які повинні бути достовірними,
актуальними, об'єднаними, загальними й надавати можливість історичного аналізу; саме
такі дані й утримуються в СД. По суті, KPI задають состав даних у сховищі.
При розрахунку більшості показників використовуються підсумки даних, які
перебувають у СД, і доступ до яких є у всіх співробітників – для цього досить
спеціалізованого інтерфейсу.
Вправи
1. Назвіть можливі ключові показники ефективності для предметної області «Біржа
праці».
2. Назвіть можливі ключові показники ефективності для предметної області
«Провайдер мобільного зв'язку».
СПИСОК ЛІТЕРАТУРИ
ВСТУП ......................................................................................................................................5
Семестровий модуль 1 Змістовний модуль 1 Системи підтримки ухвалення рішення.........6
ЛЕКЦІЯ №1 Введення в бізнес-інтелект ................................................................................6
ЛЕКЦІЯ №2 Поняття сховища даних ...................................................................................10
Змістовний модуль 2 OLAP-системи .....................................................................................15
ЛЕКЦІЯ №3 Аналітичні (OLAP) системи .............................................................................15
ЛЕКЦІЯ №4 Архітектура сховища даних.............................................................................25
Змістовний модуль 3 Багатомірні куби..................................................................................31
Лекція №5 Багатомірний куб. Основні поняття ...................................................................31
ЛЕКЦІЯ №6 Ієрархії вимірів. Схеми кубу «зірка» та «сніжинка».......................................34
ЛЕКЦІЯ №7 Агрегація даних у багатомірному кубі ...........................................................40
ЛЕКЦІЯ №8 Агреговані значення для різних видів вимірів.................................................44
Семестровий модуль 2 Змістовний модуль 4 Підготовка даних для СД..............................54
ЛЕКЦІЯ №9 Витяг, перетворення й завантаження даних....................................................54
ЛЕКЦІЯ №10 Очищення даних.............................................................................................58
ЛЕКЦІЯ №11 Очищення даних (продовження) ...................................................................62
Змістовний модуль 5 Мова багатомірних виражень MDХ ...................................................68
ЛЕКЦІЯ №12 Мова багатомірних виражень MDX. Основні поняття .................................68
ЛЕКЦІЯ №13 Мова багатомірних виражень MDX. Запит до кубу......................................73
ЛЕКЦІЯ №14 Функції мови багатомірних виражень MDX.................................................81
Змістовний модуль 6 Проблеми побудови СД ......................................................................89
ЛЕКЦІЯ №15 Ключові показники ефективності..................................................................89
СПИСОК ЛІТЕРАТУРИ.........................................................................................................94