ФОРМАТЫ ФАЙЛОВ |
||
|
|
|
|
|
|
ФОРМАТЫ ФАЙЛОВ |
||
Формат файла
адресов (*.adr) описан в пункте
«Структура базы данных»; из этого описания следует, что длина
записи в файле зависит от длины кросса и размерности фактов. Кросс хранится в
файле побитовым образом, то есть признак наличия каждого измерения занимает 1
бит. Все прочие данные (№№ уровней, № род. элемента, адреса, размер факта)
занимают по 4 байта и записываются в файл как целые числа формата int языка
C++. Каждая запись файла фактов (*.fct) начинается с перечисления номеров элементов,
расположенных в порядке возрастания номеров присутствующих измерений. Каждый
номер элемента является целым числом и занимает 4 байта. Далее располагаются
значения функций (если они есть). Размер значения каждой функции определяется
при описании данной функции и кратен 1 байту. Файл
измерений (*.dim) имеет
фиксированную длину. Каждая запись в нем состоит из номера измерения (4
байта) и имени измерения (108 байт). Длина записи в файле иерархий (*.hrc) также фиксирована. Запись состоит из
номера измерения (4 байта), номера уровня иерархии (4 байта), максимального
существующего на данном уровне иерархии номера элемента (4 байта) и имени
уровня иерархии (100 байт). Запись файла
функций (*.fnc) состоит из кросса (на котором задана функция), имени
функции (112 байт), размера результата (4 байта), порядка суммирования (4
байта) и способа суммирования (4 байта). Таким образом, длина записи в этом
случае определяется длиной кросса. Файл
витрин (*.ext)
предназначен для описания множеств фактов, пересечение которых образует
избыточную информацию, вычисляемую при необходимости организации быстрого
доступа. Запись в таком файле состоит из имени
витрины (100 байт) и двух блоков информации: блок типа результата и блок типа
пересекаемого множества. Блок типа результата состоит из кросса (с первым
битом - единицей) и номеров уровней измерений. Блок пересекаемого множества
состоит из кросса и номеров уровней пересекаемого множества. Под запись
номеров уровней в обоих случаях резервируется место из расчета максимального
количества измерений, поэтому длина записи в файле витрин определяется только
размером кросса. И последний файл – файл базовых размеров (*.sz). В этом файле хранятся 4 основных
параметра, которые записываются туда один раз – в момент создания базы
данных. Это размер кросса в байтах (переменная CrossSize), максимально
возможное количество измерений, вычисляемое по формуле (CrossSize * 8) – 1,
максимальное количество уровней на одном измерении и максимальное количество
функций (на всех пересечениях). |
||
|
|
|