Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Перетворення й консолідація даних




Після очищення даних отримана інформація, швидше за все, ще не буде відповідати вимогам системи ППР й, отже, буде мати потребу у відповідному перетворенні.

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

Процедура перетворення особливо важлива, коли необхідно виконати злиття даних, що надійшли з декількох різних джерел. Цей процес називається консолідацією. У такому випадку будь-який неявний зв'язок між даними з окремих джерел повинна бути перетворена в явний шляхом введення явних значень даних. Крім того, якщо окремі значення дати й часу зв'язані й мають певний діловий зміст, вони повинні бути проконтрольовані й наведені у відповідність між окремими джерелами. Цей процес називається синхронізацією часу.

Завантаження даних

Операцію завантаження даних можна розбити на наступні етапи:

а) пересилання перетворених і консолідованих даних у базу дані ППР;

Іноді, перш ніж буде виконане дійсне завантаження, дані перетворяться у внутрішній фізичний формат, необхідний для цільовий СУБД. Альтернативний і більше ефективний метод передбачає завантаження в робочі таблиці, склад яких відбиває структуру цільової схеми.

б) перевірка погодженості даних (тобто перевірка їхньої цілісності);

Більша частина процесу перевірки цілісності даних, що завантажують, може бути проведена ще до реального завантаження, без звертання до даних, що вже перебуває в сховищі даних. Однак деякі обмеження все-таки не можуть бути перевірені без звертання до існуючої бази даних. Наприклад, обмеження, що контролює унікальність значень, у загальному випадку повинне перевірятися під час реального завантаження (або, якщо завантаження виконується в пакетному режимі, після її завершення).

в) побудова всіх необхідних індексів.

Наявність індексів може різко сповільнити процес завантаження даних, оскільки більшість продуктів виконує відновлення індексів при вставці в таблицю кожного рядка. Тому іноді має сенс видаляти індекси перед завантаженням даних, а потім, після її завершення, створювати їх заново. Однак такий підхід не буде доцільним, якщо кількість нових даних стосовно вже існуючим досить мала; у цьому випадку витрати на створення індексів для всієї таблиці будуть істотно більше витрат на відновлення індексів. Більшість сучасних СКБД підтримує режим паралельного створення індексів, що дозволяє прискорити процеси завантаження даних і побудови індексів.

Відновлення даних

У більшості баз дані підтримки прийняття рішень потрібне періодичне відновлення даних для підтримки їхньої актуальності. Відновлення звичайно передбачає часткове завантаження, хоча для деяких системах ППР потрібне видалення всіх даних з бази і їхнє повне перезавантаження. При відновленні виникають ті ж проблеми, що й при завантаженні, і, крім того, може знадобитися, щоб відновлення виконувалося в той час, коли користувачі звертаються до БД.

Завдання

Побудувати на основі розробленої в лабораторній роботі №5 БД сховище даних (СД). При необхідності виконати денормалізацію.

Розробити процедуру перевантаження даних з вхідної БД у СД. При необхідності виконати перетворення й додаткові обчислення.

Створити для СД із п.1 багатомірний куб зі схемою "зірка". Куб повинен включати таблицю фактів з 2-3 мірами й не менш трьох вимірів. Один вимір повинен відповідати виміру часу.

 

Зміст протоколу:

1. Ціль роботи

2. Скріпти з операторами SQL для завантаження БД СД.

3. Функції перетворення даних.

4. Скріншоти створення багатомірного кубу

5. Висновок

 

Контрольні запитання

1. Що таке денормалізація?

2. Які види денормалізації Ви знаєте?

3. Чому в СД можна необмежено застосовувати денормалізацію?

4. Чому в СД можна необмежено використовувати індексацію?

5. Які проблеми виникають при перенесені даних з вхідних джерел даних до СД?

6. Як вирішуються проблеми очистки даних при завантаженні їх до СД?

 

Лабораторна робота №7-8
Мова багатомірних виражень MDX (Multi-Dimensional eXpressions)

Мета роботи:отримати навички складання запитів на витяг даних з багатомірного кубу.


Теоретичні основи

Для запиту MDX використається наступний синтаксис.

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

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

FROM [<cube_expression>]

[WHERE [slicer_expression]]

Об'єкт Measures (міри), власне кажучи, являє собою спеціальний вимір, що є набором мір. Міри є кількісними сутностями, які використаються для аналізу.

Кожен вимір має одну або кілька ієрархій, а кожна ієрархія містить один або кілька рівнів.

Якщо осей у вибірці обрано менше, ніж кількість вимірів у кубі, не задані значення атрибутів призначаються.

У кожного виміру існує член за замовчуванням (Default Member). Як правило, у ролі Default Member виступає єдиний член спеціального рівня ієрархії [All], автоматично створюваного при створенні виміру. Цей рівень містить сукупні результати по всьому вимірі.

<axis_expression> := <множество> ON Axis (номер оси)

Перші п'ять осей мають псевдоніми. Це осі COLUMNS (стовпці), ROWS (рядки), PAGES (сторінки), SECTІONS (розділи) і CHAPTERS (глави). Наступні осі вказуються за допомогою слова Axіs, за яким треба номер осі.

Приклад.

SELECT Measures.[Internet Sales Amount] ON COLUMNS,

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

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

Вираження cube_expressіon позначає ім'я куба або підрозділу куба, з якого потрібно витягти дані. Мова SQL допускає використання в реченні FROM декількох таблиць, однак у запиті MDX можна вказати ім'я тільки одного куба даних. Куб, зазначений у пропозиції FROM, називають контекстом куба (cube context), і запит MDX виконується усередині цього контексту. Тобто , кожна частина вираження axіs_expressіon буде витягатися з контексту куба, зазначеного в реченні FROM.

Вимір зрізу (slіcer dіmensіon) створюється при визначенні речення WHERE; по суті, це фільтр, що виключає небажані виміри й члени.

Речення WHERE не обов'язково повинне бути в запиті; і навіть якщо в запиті воно є, необов'язково вказувати в ньому координати із всіх можливих ієрархій.

Речення WHERE в SQL і МDХ відрізняються концептуально. Речення WHERE в SQL використовується для обмеження записів, що читають із таблиць. Речення WHERE у МDХ використовується для визначення зрізу куба. Основне його призначення - уточнення координат атрибутів вимірів, які не були визначені в реченні SELECT.

Множина або набір в MDX - це множина у математичному розумінні, і всі закони, установлені алгеброю множин, можуть бути застосовані до цих множин.

Існують три операції алгебри множин і дві основні операції з множинами, які дозволяють створювати нові множини із уже існуючих множин:

- Об'єднання (Union);

- Перетинання (Intersect);

- Різниця (Except);

- Перехресне з'єднання (Crossjoin);

- Витяг (Extract)

Unіon поєднує дві й більше множини однієї розмірності в одну множину. Результуюча множина містить всі кортежі з кожної множини. Якщо кортеж існує в обох первісних множинах, у нову множину Unіon він буде доданий тільки один раз - повторюваний кортеж доданий не буде. Ця операція еквівалентна операторові додавання.

Оскільки Unіon являє собою еквівалент операції додавання, для створення об'єднання множин також можна використати оператор +.

Крім того, MDX підтримує синтаксис операції Об'єднання (Unіon) з використанням фігурних дужок, але ця операція не є точним еквівалентом функції Unіon або оператора +. Якщо дві множини, поєднувані з використанням фігурних дужок, містять повторювані кортежі, у результуючій множині дублікати зберігаються.

Перетинання (Іntersect) створює нову множину, що містить кортежі, загальні для двох множин.

Різниця (Ехсерt) знаходить розходження між двома множинами Ця операція створює нову множину, що містить елементи, що є елементами однієї множини, але не елементами іншої. Ця операція еквівалентна операторові вирахування.

Перехресне з'єднання (Crossjoіn) генерує множину, що містить всі можливі комбінації двох (або більше) множин зі збереженням у результуючій множині порядку ієрархій, використаних в оригінальних множинах.

Ця функція часто використається для проектування елементів з різних ієрархій на ту саму вісь. Операція Crossjoіn еквівалентна операторові множення.

Витяг (Extract) створює множину, що містить кортежі тільки заданої ієрархії. Ця операція протилежна Crossjoіn.

Функції для навігації в ієрархіях

Функція Members застосовується до ієрархій або до рівнів.

При застосуванні до ієрархії функція повертає набір всіх членів ієрархії, незалежно від рівня.

При застосуванні до рівня функція повертає набір всіх членів виміру, що перебувають на даному рівні.

Функція AllMembers працює аналогічно функції Members, але Members повертає всі елементи ієрархії, крім тих, що обчислюються, а AllMembers повертає також й обчислювані елементи.

Для переміщення в межах одного рівня, використаються функції PrevMember й NextMember:

[Дата].[2014].[Март].NextMember – повертає квітень 2014 року,

[Дата].[2014].[Март].PrevMember – повертає лютий 2014 року,

[Дата].[2014].[Март].PrevMember.PrevMember – повертає січень 2014 року.

Для переміщення нагору й униз по рівнях використаються функції Chіldren й Parent:

[Дата].[2014].[Март].Children – повертає всі дні березня,

[Дата].[2014].[Март].Parent  – повертає [Дата].[2014],

[Дата].[2014].[Март].[25].Parent.Parent – повертає [Дата].[2014] .

Функція .Chіldren створює множину елементів, які є дочірніми стосовно заданого елемента.

Функція Descendants небагато складніше, але вона більше гнучка, чим функція Chіldren. Вона використовується для одержання нащадків елемента.

Функція Descendants повертає множину елементів, які є нащадками заданого елемента на заданому рівні ієрархії.

Щоб побачити листові елементи (leaf memebers) - елементи, у яких немає нащадків, використається ключове слово LEAVES

SELECT DESCENDANTS([Store].[Stores].[Store Country].[USA], , LEAVES) on COLUMNS

FROM [Warehouse and Sales]

МDХ підтримує цілий ряд функцій, які підпадають під категорію функцій для навігації по ієрархії, наприклад, .FіrstChіld, . LastChіld, функції для роботи з елементами одного рівня, і т.д.

Функція Fіlter має два параметри: множина і вираження МDХ, що задає критерій і повертає значення типу Boolean. Для обчислення результату функції Fіlter сервер проходить множину, яка була передана як перший параметр функції. Потім для кожного кортежу в множині обчислює вираження, передане як другий параметр. Якщо це вираження приймає значення Так (True), кортеж включається в результуючу множину.

Функція Order сортує кортежі в множині у відповідності зі значенням вираження, що передається як другий параметр.

При використанні ключового слова BDESC результуюча множина сортується в порядку убування. Але при цьому ігнорується ієрархічність множини.

Ключове слово DESC у функції Order указує системі, що при упорядкуванні множини в убутному порядку треба зберегти ієрархічність, певну користувальницькою ієрархією.

 

Щоб полегшити роботу з довгими, складними або часто використовуваними вираженнями, у багатомірних вираженнях можна визначити таке вираження як іменована множина. По суті іменована множина являє собою вираження множини, якому призначений псевдонім.

<formula_expression>  := (SET < Псевдонім > AS '< Вираження >')

Вираження – припустиме багатомірне вираження, що повертає множину.

 

Елемент, що обчислюється, можна створити в будь-якому місці ієрархії. Крім того, елементи, що обчислюються, можуть залежати не тільки від існуючих елементів куба, але й від інших елементів, що обчислюються, визначених у тім же багатомірному вираженні.

WITH [ CALCULATED ] MEMBER < Псевдонім > AS < Вираження >               < Властивість >= < Значення > [ , ... ] ]SELECT <Опис осей>FROM <Куб>[ WHERE < Вираження >]

У синтаксисі WІTH аргумент Псевдонім – це повне ім'я елемента, що обчислюється. Повне ім'я містить у собі вимір або рівень, з яким зв'язаний елемент, що обчислюється. За бажанням можна задати значення властивостей комірки для елемента, що обчислює, указавши ім'я властивості комірки й значення властивості.

Завдання

Одержати результати запитів до куба, створеному в лабораторній роботі № 6. Продемонструвати наступні можливості MDX (для кожного випадку окремий запит):

1) простий запит, що повертає двовимірну таблицю, на одній осі виводяться члени виміру, на іншій - міри куба;

2) запит, що повертає тривимірний куб, з використанням конструкції Where;

3) застосування операцій з множинами Unіon, Іntersect або Except;

4) застосування операцій з множинами Crossjoіn;

5) застосування функцій для навігації в ієрархіях;

6) застосування функції fіlter;

7) застосування функції order;

8) створення й використання іменованих множин з областю дії запиту;

9) створення й використання елементів, що обчислюються, з областю дії запиту.

При необхідності відрегувати дані в СД, щоб отримати можливість побачити результати запитів.

 

Зміст протоколу

1. Ціль роботи

2. Структура багатомірного кубу та ієрархій вимірів.

3. Текст запитів на мові MDX

4. Скріншоти з результатами виконання запитів.

5. Висновок

 

Контрольні запитання

1. Які речення входять в оператор SELECT MDX?

2. Яка різниця між однаковими реченнями SQL та MDX?

3. Що таке множина у MDX?

4. Які операції над множинами Ви знаєте?

5. Які функції навігації Ви знаєте?

6. Що таке контекст запиту та контекст сеансу?

 

Література

1. Архипенков С., Голубев Д., Максименко О. Хранилища данных. От концепции до внедрения. - М.: Диалог-МИФИ, 2002. - 528 с.

2. Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Методы и модели анализа данных: OLAP и Data Mining – СПб.: БХВ-Петербург, 2004. – 336 с.: ил.

3. Бергер А., Горбач И., Меломед Э., Щербинин В., Степаненко В. Microsoft SQL Server 2005 Analysis Services. OLAP и многомерный анализ данных. – СПб.: БХВ-Петербург, 2007. – 928 с.

4. Гандерлой М. ADO и Visual Basic. Руководство разработчика. – М.: Энтроп, 2001. – 336 с.

5. Коннолли Т. Базы данных: Проектирование, реализация, сопровождение. Теория и практика. – М.: Издательский дом «Вильямс», 2002. – 1120 с.: ил.

6. Костромин, В. OpenOffice.org – открытый офис для Linux и Windows : экспресс-курс / В.Костромин . – СПб : БХВ - Петербург, 2005.- 262 с. (1 шт)

7. Спирли Э. Корпоративные хранилища данных. Планирование, разработка и реализация. Т.1. – М.: Изд. дом Вильямс, 2001. – 400 с.

8. Федоров А., Елманова Н. Введение в OLAP -технологии MICROSOFT. – М.: Диалог-Мифи, 2002. – 268 с.

9. Харинатх С., Куинн С. SQL Server Analysis Services 2005 и MDX для профессионалов.– М.: Издательство: Диалектика, 2008. – 848 с.

10. Пасічник, В. В. Сховища даних: навч. посібник / В.В. Пасічник, Н.Б. Шаховська; за ред. В.В. Пасічника .- Л. : Магнолія - 2006, 2008.- 492 с.  

11. Малахов, Є. В. Проектування баз даних та їх реалізація засобами стандартного SQL та PostgreSQL : навч. посібник / Є.В. Малахов, О.А. Блажко, М.Г. Глава. – О. : ВМВ, 2012.- 248 с.

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 211.

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