блиці визначено заздалегідь). p align="justify"> Можна було б спробувати використовувати для реалізації гиперкуба набір тимчасових таблиць, але цей метод забезпечить занадто низька швидкодія (приклад - набір компонентів Decision Cube), тому будемо використовувати свої структури зберігання даних.
Для реалізації гиперкуба нам необхідно використовувати структури даних, які забезпечать максимальну швидкодію і мінімальні витрати оперативної пам'яті. Очевидно, що основними у нас будуть структури для зберігання словників і таблиці фактів. Розглянемо завдання, які повинен виконувати словник з максимальною швидкістю:
перевірка наявності елемента в словнику;
додавання елемента в словник;
пошук номерів записів, що мають конкретне значення координати;
пошук координати за значенням виміру;
пошук значення вимірювання за його координаті.
Для реалізації цих вимог можна використовувати різні типи і структури даних. Наприклад, можна використовувати масиви структур. У реальному випадку до цих масивів необхідні додаткові механізми індексації, які дозволять підвищити швидкість завантаження даних і отримання інформації. p align="justify"> Для оптимізації роботи гиперкуба необхідно визначити те, які завдання необхідно вирішувати в першочерговому порядку, і за якими критеріями нам треба домагатися підвищення якості роботи. Головним для нас є підвищення швидкості роботи програми, при цьому бажано, щоб був потрібний не дуже великий обсяг оперативної пам'яті. Підвищення швидкодії можливо за рахунок введення додаткових механізмів доступу до даних, наприклад, введення індексування. На жаль, це підвищує накладні витрати оперативної пам'яті. Тому визначимо, які операції нам необхідно виконувати з найбільшою швидкістю. Для цього розглянемо окремі компоненти, що реалізують гиперкуб. Ці компоненти мають два основних типи - вимірювання і таблиця фактів. Для вимірювання типової завданням буде:
додавання нового значення;
визначення координати за значенням виміру;
визначення значення по координаті.
При додаванні нового значення елемента нам необхідно перевірити, чи є у нас вже таке значення, і якщо є, то не додавати нове, а використовувати наявну координату, в іншому випадку необхідно додати новий елемент і визначити його координату . Для цього необхідний спосіб швидкого пошуку наявності потрібного елемента (крім того, така задача виникає і при визначенні координати за значенням елемента). Для цього оптимальним буде використання хешування. При цьому оптимальною структурою буде використання хеш-дерев, в яких будемо зберігати посилання на елементи. При цьому елементами будуть рядки словника вимірювання. Тоді структуру значення вимірювання можна представити таким чином: