Научная статья на тему 'Применение b*-деревьев для создания и вычисления OLAP-кубов с использованием комбинаторного алгоритма'

Применение b*-деревьев для создания и вычисления OLAP-кубов с использованием комбинаторного алгоритма Текст научной статьи по специальности «Математика»

CC BY
121
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОМЕРНЫЙ КУБ / ТАБЛИЦА ФАКТОВ / ТАБЛИЦА ИЗМЕРЕНИЙ / B*-ДЕРЕВО / УРОВЕНЬ ДЕТАЛИЗАЦИИ / КОМБИНАЦИЯ / АГРЕГИРОВАНИЕ / B*-TREE / OLAP / MULTIDIMENSIONAL CUBE / FACT TABLE / DIMENSION TABLE / LEVEL OF DETAIL / COMBINATION / AGGREGATION

Аннотация научной статьи по математике, автор научной работы — Горбань Г. В.

В статье представлен подход к созданию многомерного куба OLAP в виде структуры B*-дерева. Рассмотрены комбинаторные зависимости между итоговыми (агрегатными) значениями куба и на их основе предложен алгоритм его построения. Представленный пример вычисления данных в кубе с использованием предложенного алгоритма.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The use of B*-trees to create and calculate olap cubes using a combinatorial algorithm

The paper considers the approach to building a multidimensional OLAP cube in the form of B*-tree structure, and the algorithm of its creation, using a combinatorial approach to the calculation of aggregate values of the cube. The main objective of research is to develop the methods of effective materialization of OLAP-cubes for further integration with the models and methods of Data Mining. The proposed storage structure of multidimensional data allows solving the problem of data irrelevance; it is suitable for both dense and sparse cubes, and the proposed algorithm allows efficient calculation of aggregate values of the OLAP-cube. The research results can be applied in various fields, which use database management systems, as well as in decision support systems, using the methods of business intelligence.

Текст научной работы на тему «Применение b*-деревьев для создания и вычисления OLAP-кубов с использованием комбинаторного алгоритма»

7. Kenig, E. Rigorous dynamic modelling of complex reactive absorption processes [Text] / E. Kenig, R. Schneider, A. Gorak // Chem. Eng. Sci. - 1999. - № 54. - pp. 5195-5203.

8. Bugaeva, L. N. An application of expert system to choice, simulation and development of gases purification processes [Text] / L. N. Bugaeva, Yu. A. Beznosik, G. A. Statjukha, A. A. Kvitka // J. Computers Chem. Engng. — 1996. — Vol. 20. — pp. 401—402.

9. Безносик, Ю. А. Математическое моделирование процесса нейтрализации в производстве хлорметанов [Текст] / Ю. А. Безносик, А. Г. Бондарь, Г. А. Статюха // Хими-чекая технология. — 1980. — № 1. — С. 48—50.

10. Безносик, Ю. А. Абсорбция хлора и хлористого водорода из отходящих газов в производстве хлорметанов [Текст] / Ю. А. Безносик, Т. В. Бойко // Химическое машиностроение. — 1981. — Вып. 34. — С. 77—82.

11. Реутский, В. А. Процессы хемосорбции [Текст] / В. А. Реут-ский // Итоги науки и техники. Сер. Процессы и аппараты химической технологии. — T. 4. — М.: ВИНИТИ, 1976. — С. 5—81.

ОЧИСТКА ГАЗОВЫХ ВЫБРОСОВ ОТ ХЛОРА И ХЛОРИСТОГО ВОДОРОДА В ПРОИЗВОДСТВЕ ВИНИЛХЛОРИДА

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

Ключевые слова: зонная модель, абсорбция, хемосорбция, хлор, хлористый водород.

Гармаш Роман Вікторович, кафедра кібернетики хіміко-тех-нологічних процесів, Національний технічний університет України «Київський політехнічний інститут», Україна, e-mail: rondo104@mail.ru.

Гармаш Роман Викторович, кафедра кибернетики химико-технологических процессов, Национальный технический университет Украины «Киевский политехнический институт», Украина.

Garmash Roman, National Technical University of Ukraine «Kyiv Polytechnic Institute, Ukraine, e-mail: rondo104@mail.ru

УДК 004.652.5

Горбань Г. В. ЗАСТОСУВАННЯ В*-ДЕРЕВ ДЛЯ

СТВОРЕННЯ ТА ОБЧИСЛЕННЯ ОЬАР-КУБІВ З ВИКОРИСТАННЯМ КОМБІНАТОРНОГО АЛГОРИТМУ

В статті представлено підхід до створення багатомірного кубу OLAP у вигляді структури В*-дерева. Розглянуто комбінаторні залежності між підсумковими (агрегатними) значеннями кубу та на їх основі запропоновано алгоритм побудови кубу. Представлено приклад обчислення даних у кубі з використанням запропонованого алгоритму.

Ключові слова: OLAP, багатомірний куб, таблиця фактів, таблиця вимірів, В*-дерево, рівень деталізації, комбінація, агрегування.

1. Вступ

На сьогоднішні день інформація, що зберігається у базах даних (БД), може досягати достатньо великих розмірів. Тому сучасні напрямки інформаційних технологій концентруються на методах видобутку знань з великих обсягів інформації, що зберігається у БД. Одним з таких напрямів є технологія OLAP (On-Line Analytical Processing) [1, 2], яка вже стала частиною таких комерційних програмних продуктів як Microsoft SQL Server [3], Oracle [4] та інших. Однак питання подальшого дослідження систем OLAP ще досі не втратило своєї актуальності.

2. Аналіз літературних даних і постановка проблеми

Одним із шляхів підвищення ефективності виконання запитів в OLAP-системах є матеріалізація кубів. Але при збільшенні кількості вимірів кількість даних у кубі зростає експоненціально, і тому у випадках достатньо великого числа вимірів повністю матеріалізований гіперкуб, у якому

розраховані всі можливі підкуби з агрегованими даними, може займати достатньо великий об’єм пам’яті [5]. Наступною достатньо складною проблемою є розрідженість кубів, тому для ефективного обчислення кубу важливими є алгоритми його стискання (DWARF [б], MultiWay [7] та інші). Кожний з алгоритмів має свої переваги та недоліки. Тому питання про найкращу структуру кубу і досі залишається відкритим.

3. Результати досліджень

Як альтернативний варіант пропонується зберігати багатомірний куб даних у вигляді B*-дерева [8], що є різновидом B-дерева [9]. Їх відмінність полягає у тому, що у B*-дерева кожний ключ вказує на певний блок даних, що надає можливість інтеграції області покажчиків та області даних. На рис. 1. представлений приклад тривимірного кубу у вигляді вищеописаної структури.

У загальному випадку B*-дерево має n + 1 рівнів, де n — кількість вимірів у кубі. Коренева вершина дерева позначається як нульовий рівень. Теоретично вона може мати m1 вузлів, де m1 — кількість атрибутів

І 10

технологический аудит и резервы производства — № 5/4(13), 2013, © Горбань Г В.

першого виміру кубу. Перехід до вузлів першого рівня з кореневої вершини здійснюється за допомогою ключа, що містить відповідний порядковий номер певного атрибуту у вимірі. Якщо ключ містить значення «0», то це означає, що за відповідним виміром виконується агрегування. Вершини дерева на першому рівні матимуть такий вигляд: V(0), V(і), V(2), ..., V(т4).

Рис. 1. Структура OLAP-кубу у вигляді В*-дерева

У свою чергу, кожна вершина першого рівня може мати m2 вузлів, де m2 — кількість атрибутів другого рівня. Перехід до певного вузла другого рівня здійснюється так само, як для вузлів першого рівня. Вершини дерева на другому рівні матимуть вигляд: V(0,0), V(0,1), V(0,2), ...,

V (m1, m2). Описаний механізм формування дерева продовжується до вершин n-го рівня, в яких і зберігаються значення мір OLAP-кубу. Таким чином, вершини n-го рівня мають вигляд: V(, a2, a3,..., an), де a1 = 0..m1, a2 = 0..m2, ..., an = 0..mn, mt — відповідна кількість атрибутів у г-ому вимірі.

Пропонується алгоритм, за яким будується OLAP-куб у вигляді відповідного дерева. За даним алгоритмом проходження по фактичних даних відбувається тільки один раз, і для кожного об’єкту одночасно обраховується декілька агрегованих значень.

В основу алгоритму покладено той факт, що всі можливі агрегати за певним рівнем деталізації представляють собою всі можливі комбінації за вимірами кубу, кількість яких дорівнює Ckn, де n — кількість вимірів, k — рівень деталізації.

Позначимо множину порядкових номерів кубу як N, тобто N = {1,2,3,..., n}. В свою чергу, множина всіх можливих комбінацій елементів множини N за відповідним рівнем деталізації дорівнюють:

C1 = {{1},{2},{3},...,{n}};

C2 = {{1,2},{1,3},...,{1,n},{2,3},...,{2, n},...,{n -1, n}};

C3 = {{1,2,3},{1,2,4},...,{n-2,n-1,n\} і т.д.

Кількість всіх можливих підкубів дорівнює C° + C\ + + Cn2 +... + Cn = 2n. При цьому C0 = 1 означає загальний агрегат за всім кубом, а Cn = 1 — підкуб фактичних значень. Таким чином, кількість підкубів, в яких хоча б один вимір є фіксованим, а за всіма іншими вимірами здійснюється агрегування, дорівнюватиме C1 + Cn2 +... + Cnn-1 = 2n - 2.

Суть алгоритму полягає у наступному: спочатку здійснюється генерація всіх можливих комбінацій [10] множини n з рівнем деталізації від 1 до n - 1, і отримані комбінації записуються у відповідний масив comb. Потім

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

Наступним кроком є підрахунок загального підсумку кубу. Відбувається це наступним чином: якщо був відкритий лише перший об’єкт, то відповідно створюється вершина V(0,0,...,0), в іншому випадку застосовується

n

відповідна функція агрегування для збереженого раніше значення вершини та поточного значення факту: V(0,0,...,0) = faggr(V(0,0,...,0),fact). Всі інші можливі

n n

агрегати обраховуються за допомогою масиву comb, кількість елементів якого дорівнюватиме 2п - 2.

Для кожного елементу масиву здійснюється перебір всіх порядкових номерів вимірів кубу з метою здійснення перевірки: чи є номер поточного виміру у відповідному елементі масиву для подальшого формування ключів у дереві. Якщо порядковий номер існує, то у ключ за рівнем дерева, що відповідає виміру, записується поточний ID значення відповідного виміру В іншому випадку у ключ записується значення «0», що означає агрегацію за відповідним виміром. Якщо вершина дерева за сформованим шляхом з послідовності ключів ще не існує, то вона створюється, і в неї записується поточне фактичне значення, а інакше до неї застосовується визначена для певної міри функція агрегування:

V (a1,a2,...,an ) = faggr (V (fl1,a2,...,an ), fact), причому в послі-

п n

довності a1,a2,...,an повинен міститись хоча б один нуль, що буде означати агрегацію хоча б за одним виміром.

Розглянемо приклад з базою даних деякої торговельної мережі. Позначимо виміри відповідними порядковими номерами: «Місяць» — 1, «Магазин» — 2, «Товар» — 3 (рис. 2).

Вимір «Магазин» Вимір "Товар" Вимір "Місяць" Таблиця фактів

m маг. Назва магазину Ш ТОЕ. Назва товару ш міс. Назва місяця Ш фасту ID міс. Ш маг. Ш тов. Дохід

1 «Зоря» 1 Алкогольні напої 1 Січень 2011 1 1 1 1 30570

2 «Капгган» 2 Безалкогольні напої 2 Лютий 2011 2 1 1 2 11351

3 «Промінь» 3 Хлі бо було чні вироби 3 Березень 2011 3 1 1 3 21392

4 «Троянда» 4 Кондитерські вироби 4 Квітень 2011 4 1 1 4 44299

5 «Тюльпан» 5 М'ясні продукти

6 Молочні продукти

Рис. 2. Приклад таблиць вимірів і таблиці фактів

Для створення багатомірного кубу за допомогою описаного вище алгоритму спочатку треба згенерувати множину N що буде містити всі можливі комбінації вимірів для обчислення агрегованих значень. Для трьох вимірів N = {«1»,«2»,«3»,«12»,«13»,«23»}, де «1» — агре-говані значення за певним місяцем, «2» — за певним магазином, «3» — за певним товаром, «12» — за певним місяцем і магазином, «13» — за певним місяцем і товаром, «23» — за певним магазином і товаром.

Після обробки першого об’єкту таблиці фактів будуть отримані наступні результати:

V (1,0,0) = 30570;

«1» ^ V (1,0,0) = 30570; «2» ^ V (0,1,0) = 30570;

TECHNOLOGY AUDiT AND PRODUCTiON RESERVES — № 5/4(13), 2013

773^)

MOTE МАТИ ЧЕСКОЕ МОДЕЛИРОВАНИЕ — ПРИКЛАДНЫЕ АСПЕКТЫ

ISSN 222Б-37В0

«3» ^ V (0,0,1) = 30510;

«12» ^ V (1,1,0) = 30510; «13» ^ V (1,0,1) = 30510;

«23» ^ V (0,1,1) = 30510.

Після обробки другого об’єкту таблиці фактів результати обчислення будуть наступними:

V(1,1,2) = 11351; V(0,0,0) = 30510 +11351 = 41951;

«1» ^ V (1,0,0) = 30510 +11351 = 41951;

«2» ^ V (0,1,0) = 30510 +11351 = 41951;

«3» ^ V (0,0,2) = 11351;

«12»^ V (1,1,0) = 30510 +11351 = 41951;

«13» ^ V (1,0,2) = 11351;

«23» ^ V (0,1,2) = 11351.

Відповідні кроки алгоритму застосовуються для кожного об’єкту таблиці фактів доти, доки не буде досягнутий її кінець.

4. Висновки

Представлено підхід до створення OLAP-кубу у вигляді В*-дерева, який має переваги в тому, що дана структура дозволяє зберігати як щільні, так і розріджені куби, а також здатна швидко виконувати запити користувачів.

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

В подальшому планується дослідження методів пошуку асоціативних правил в OLAP-кубі, побудованим за допомогою вищеописаного алгоритму.

Література

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

2. Паклин, H. Б. Бизнес-аналитика: от данных к знаниям [Текст] : учеб. пособ. / H. Б. Паклин, В. И. Орешков. — 2-е изд. — СПб.: Питер, 2010. — 104 с.

3. Харинатх С., Куинн С. SQL Server 2005 Analysis Services

и MDX для профессионалов [Текст] : пер. с англ. — М.:

ООО «И. Д. Вильямс», 2008. — 848 с.

4. Архипенков, С. ORACLE Express OLAP [Текст] / С. Ар-

хипенков. — М.: Диалог МИФИ, 2000. — 320 с.

5. Кудрявцев, Ю. А. OLAP технологии: обзор решаемых задач и исследований [Текст] / Ю. А. Кудрявцев // Бизнес-информатика. — 2008. — № 1. — С. 66—10.

6. Sismanis, Ya. Dwarf: Shrinking the petacube [Text] / Yannis Sismanis, Antonios Deligiannakis, Nick Roussopoulos, Yannis Kotidis. — In VLDB, 2002.

7. Zhao, Y. An array-based algorithm for simultaneous multidimensional aggregates [Text] / Yihong Zhao, Prasad M. Deshpande, Jeffrey F. Naughton // In SIGMOD. — 1991. — pp. 159—110.

8. Иванчева, H. А. Постреляционная СУБД Cache [Текст] / H. А. Иванчева, Т. А. Иванчева. — Новосибирск: Новосибирский государственный университет, 2004. — 120 с.

9. Кормен, Т. Алгоритмы: построение и анализ [Текст] : пер. с англ / Т. Кормен и др. — 2-е изд. — М.: Издательский дом «Вильямс», 2005. — 1296 с.

10. Липский, В. Комбинаторика для программистов [Текст] / В. Липский. — М.: Мир, 1988. — 200 с.

применение в*-деревьев для создания и вычисления olap-кубов с использованием комбинаторного алгоритма

В статье представлен подход к созданию многомерного куба OLAP в виде структуры В*-дерева. Рассмотрены комбинаторные зависимости между итоговыми (агрегатными) значениями куба и на их основе предложен алгоритм его построения. Представленный пример вычисления данных в кубе с использованием предложенного алгоритма.

Ключевые слова: OLAP, многомерный куб, таблица фактов, таблица измерений, В*-дерево, уровень детализации, комбинация, агрегирование.

Горбань Гліб Валентинович, аспірант, кафедра інтелектуальних

інформаційних систем, Чорноморський державний університет

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

імені Петра Могили, Україна, e-mail: bobsley2006@ukr.net.

Горбань Глеб Валентинович, аспирант, кафедра интеллектуальных информационных систем, Черноморский государственный университет имени Петра Могилы, Украина.

Gorban Glib, Petro Mohyla Black Sea State University, Ukraine, e-mail: bobsley2006@ukr.net

УДК 519.63

Михайлова І. Ю. моделювання температурного поля з урахуванням залежності фізичних характеристик від температури

У статті розглянуто результати комп’ютерного моделювання температурного поля пластини під впливом лазерного променя з урахуванням залежності густини, теплоємності та теплопровідності матеріалу від температури. В основу моделі покладено тривимірне нестаціонарне нелінійне рівняння теплопровідності, що розв’язується за допомогою методу покоординатного розщеплення з використанням адаптивної сітки.

ключові слова: тривимірне нестаціонарне нелінійне рівняння теплопровідності, метод покоординатного розщеплення.

технологический аудит и резервы производства — № 5/4(13), 2013, © Михайлова І. Ю.

i Надоели баннеры? Вы всегда можете отключить рекламу.