ожна представити таким чином:
В
Схема 3. Робота настільної OLAP системи
Алгоритм роботи наступний:
. Отримання даних у вигляді плоскої таблиці або результату виконання SQL запиту.
. Кешування даних і перетворення їх до багатомірного куба.
. Відображення побудованого куба за допомогою крос-таблиці або діаграми і т.п. У загальному випадку, до одного кубу може бути підключено довільну кількість відображень. p> Розглянемо як подібна система може бути влаштована всередині. Почнемо ми це з тієї сторони, яку можна побачити і помацати, тобто з відображень. Відображення, використовувані в OLAP системах, найчастіше бувають двох видів - крос-таблиці та діаграми. Розглянемо крос-таблицю, яка є основним і найбільш поширеним способом відображення куба. p> На наведеному нижче малюнку, жовтим кольором відображені рядки і стовпці, що містять агреговані результати, світло-сірим кольором відзначені осередки, в які потрапляють факти і темно-сірим клітинки, які містять дані розмірностей.
Таким чином, таблицю можна розділити на наступні елементи, з якими ми і будемо працювати надалі:
Заповнюючи матрицю з фактами, ми повинні діяти таким чином:
На підставі даних про виміри визначити координати додається елемента в матриці.
Визначити координати стовпців і рядків підсумків, на які впливає елемент, що додається.
Додати елемент в матрицю і відповідні стовпці і рядки підсумків.
При цьому потрібно відзначити те, що отримана матриця буде сильно розрідженій, чому її організація у вигляді двовимірного масиву (варіант, що лежить на поверхні) не тільки нераціональна, але, швидше за все, і неможлива у зв'язку з великою розмірністю цієї матриці, для зберігання якої не вистачить ніякого об'єму оперативної пам'яті. Наприклад, якщо наш куб містить інформацію про продажі за один рік, і якщо в ньому буде всього 3 виміру - Клієнти (250), Продукти (500) і Дата (365), то ми отримаємо матрицю фактів таких розмірів: кол-во елементів = 250 х 500 х 365 = 45625000. І це при тому, що заповнених елементів в матриці може бути всього кілька тисяч. Причому, чим більше кількість вимірювань, тим більше розрідженій буде матриця. p> Тому, для роботи з цією матрицею потрібно застосувати спеціальні механізми роботи з розрідженими матрицями. Можливі різні варіанти організації розрідженій матриці. Вони досить добре описані в літературі з програмування, наприклад, у першому томі класичної книги "Мистецтво програмування" Дональда Кнута. p> Розглянемо тепер, як можна визначити координати факту, знаючи відповідні йому виміру. Для цього розглянемо докладніше структуру заголовка:
В
При цьому можна легко знайти спосіб визначення номерів відповідної комірки і підсумків, в які вона потрапляє. Тут можна запропонувати кілька підходів. Один з них - це використання дерева для пошуку відповідних осередків. Це дерево може бути побудовано при проході по вибірці. Крім ...