шування даних і перетворення їх до багатомірного кубу.
. Відображення побудованого куба за допомогою крос-таблиці або діаграми і т.п. У загальному випадку, до одного кубу може бути підключено довільну кількість відображень.
Розглянемо як подібна система може бути влаштована всередині. Почнемо ми це з тієї сторони, яку можна подивитися і помацати, тобто з відображень. Відображення, використовувані в OLAP системах, найчастіше бувають двох видів - крос-таблиці та діаграми. Розглянемо крос-таблицю, яка є основним і найбільш поширеним способом відображення куба.
.1.1 Підготовка даних
Дані, що зберігаються в таблиці необхідно перетворити для їх використання. Так, з метою підвищення продуктивності при побудові гиперкуба, бажано знаходити унікальні елементи, що зберігаються в стовпцях, які є вимірами куба. Крім того, можна виробляти попереднє агрегування фактів для записів, що мають однакові значення розмірностей. Як вже було сказано вище, для нас важливі унікальні значення, наявні в полях вимірювань.
При використанні такої структури ми значно знижуємо потребу в пам'яті. Що досить актуально, тому що для збільшення швидкості роботи бажано зберігати дані в оперативній пам'яті. Крім того, зберігати можна тільки масив елементів, а їхні значення вивантажувати на диск, так як вони будуть нам турбуватися тільки при виведенні крос-таблиці.
.1.2 Бібліотека компонентів CubeBase
Описані вище ідеї були покладені в основу при створенні бібліотеки компонентів CubeBase.СubeSource здійснює кешування і перетворення даних у внутрішній формат, а також попереднє агрегування даних. Компонент TСubeEngine здійснює обчислення гиперкуба та операції з ним. Фактично, він є OLAP-машиною, здійснює перетворення плоскої таблиці в багатовимірний набір даних. Компонент TCubeGrid виконує висновок на екран крос-таблиці та управління відображенням гиперкуба. TСubeChart дозволяє побачити гиперкуб у вигляді графіків, а компонент TСubePivote управляє роботою ядра куба.
.2 Усередині гиперкуба
Отже, мною була розглянута архітектура і взаємодію компонентів, які можуть бути використані для побудови OLAP машини. Тепер розглянемо докладніше внутрішній устрій компонентів.
.2.1 Завантаження даних в гиперкуб
Першим етапом роботи системи буде завантаження даних і перетворення їх у внутрішній формат. Закономірним буде питання - а навіщо це треба, адже можна просто використовувати дані з плоскою таблиці, переглядаючи її при побудові зрізу куба. Для того щоб відповісти на це питання, розглянемо структуру таблиці з точки зору OLAP машини. Для OLAP системи колонки таблиці можуть бути або фактами, або вимірами. При цьому логіка роботи з цими колонками буде різна. У гіперкубі вимірювання фактично є осями, а значення вимірювань - координатами на цих осях. При цьому куб буде заповнений сильно нерівномірно - будуть поєднання координат, яким не відповідатимуть ніякі записи і будуть поєднання, яким відповідає декілька записів у вихідній таблиці, причому перша ситуація зустрічається частіше, тобто куб буде схожий на всесвіт - порожній простір, в окремих місцях якого зустрічаються скупчення точок (фактів). Таким чином, якщо ми при початковому завантаженні ...