Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
333.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
174.59 Кб
Скачать

3.1.1 Крос-таблиця.

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

Малюнок 1. Схематичне зображення крос-таблиці

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

Малюнок 2. Фрагмент крос-таблиці

Заповнюючи матрицю з фактами, ми повинні діяти таким чином:

- На підставі даних про виміри визначити координати додається елемента в матриці.

- Визначити координати стовпців і рядків підсумків, на які впливає елемент, що додається.

- Додати елемент в матрицю і відповідні стовпці і рядки підсумків.

При цьому треба відзначити те, що отримана матриця буде сильно розрідженої, чому її організація у вигляді двовимірного масиву (варіант, що лежить на поверхні) не тільки нераціональна, але, швидше за все, і неможлива у зв'язку з великою розмірністю цієї матриці, для зберігання якої не вистачить ніякого об'єму оперативної пам'яті. Наприклад, якщо наш куб містить інформацію про продажі за один рік, і якщо в ньому буде всього 3 вимірювання - Клієнти (250), Продукти (500) і Дата (365), то ми отримаємо матрицю фактів наступних розмірів: к-ть елементів = 250 х 500 х 365 = 45625000. І це при тому, що заповнених елементів в матриці може бути всього декілька тисяч. Причому, чим більше кількість вимірювань, тим більш розрідженої буде матриця.

Тому, для роботи з цією матрицею потрібно застосувати спеціальні механізми роботи з розрідженими матрицями. Можливі різні варіанти організації розрідженої матриці. Вони досить добре описані в літературі по програмуванню, наприклад, у першому томі класичної книги "Мистецтво програмування" Дональда Кнута.

Розглянемо тепер, як можна визначити координати факту, знаючи відповідні йому вимірювання. Для цього розглянемо докладніше структуру заголовка:

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

3.1.2 Підготовка даних

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

Схема 4. Структура зберігання унікальних значень

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]