ИНСТРУМЕНТЫ

 

 

ОГЛАВЛЕНИЕ

 

НАЗНАЧЕНИЕ  И  ПРЕИМУЩЕСТВА

СТРУКТУРА  БАЗЫ  ДАННЫХ

ИНТЕРФЕЙС  НА  C++

ФОРМАТЫ  ФАЙЛОВ

ИНСТРУМЕНТЫ

ТЕРМИНЫ

 

 

 

 

На данный момент создано 2 утилиты для работы с базой данных:  cross.exe  и  dbfloader.exe.

 

 

 

cross.exe – позволяет создавать, просматривать и редактировать многомерные базы данных.

 

 

Порядок работы:

 

1. Создать базу данных. После нажатия на эту кнопку предлагается ввести имя новой базы. Затем нужно ввести основные параметры, характеризующие новую базу (слева) и нажать кнопку «Создать базу». Эти параметры задаются один раз, изменить их будет нельзя. Размер пересечения характеризует возможное количество измерений; например, при размере 4 байта можно будет описать в базе 4 * 8 – 1 = 31 измерения.

 

2. Если база создана ранее, воспользуйтесь кнопкой «Открыть БД».

 

3. Для вновь созданной базы нужно описать измерения, иерархии на этих измерениях и функции.

 

3.1. Нажмите кнопку «Измерения». Введите имя измерения (например, «Фамилия») и нажмите «Добавить». Для вновь созданного измерения будет сразу же создан нулевой уровень иерархии.

В нижней таблице, в графе «Максимальный № элемента», отображается максимальный номер элемента на этом уровне. Если ни одного элемента нет, отображается «-1». (Если элемент с максимальным номером удаляется, значение в этой графе не меняется, следующий добавленный элемент получает номер, на единицу больший когда-либо введенного максимального номера)

Добавьте следующее измерение, например, «Год рождения». Закройте форму.

 

3.2. Нажмите «Функции». В первое поле введите кросс-маску для нулевого измерения. Если при создании базы Вы выбрали размер пересечения, равный 4 байтам, Вам нужно ввести маску из 4 * 8 = 32 нулей и единиц; для нулевого измерения это будет «01000000000000000000000000000000» (без кавычек, конечно). В следующее поле введите имя функции, например, «value» (оно вам не понадобится). В следующее – размер функции; так как фамилия вряд ли может быть больше 50 символов, введите это число. В следующие поля введите нули.

Нажмите «Добавить».

Для описания функции на первом измерении введите:

00100000000000000000000000000000, value, 4, 0, 0.

Нажмите «Добавить» и «Закрыть».

Обратите внимание, что в обоих случаях кросс-маска начинается с нуля, и только потом идут признаки присутствия нулевого, первого и т.д. измерения. Этот первый разряд – признак принадлежности фактов витрине. Пока мы не создаем витрин.

 

4. Для добавления – просмотра – удаления фактов нажмите «Факты».

 

4.1. Нажмите кнопку «Добавить факт». В окне «Все измерения» выберите мышью «Фамилия» и нажмите кнопку «>>». В окне «Измерения факта» опять выберите мышью «Фамилия», введите значение «Иванов» и нажмите кнопки «Запомнить» и «Сохранить».

Если Вы все сделали правильно, в таблице адресов появится новый диапазон. Данная запись состоит из кросс-маски, номера уровня иерархии (0), номера родительского элемента (-1, т.к. мы его не задали), адресов фактов из этого диапазона (0 – 55, пока у нас 1 факт) и размера таких фактов (56). Все эти данные соответствуют записи в файле адресов <имя базы>.adr.

В таблице фактов появится запись, соответствующая записи в файле фактов: начальный и конечный адреса фактов, номер факта и значение функции f[0], в которой, собственно, и хранится физическое значение факта.

Аналогичным образом добавьте на нулевое измерение еще 2 факта: «Петров» и «Сидоров». Проанализируйте данные в таблицах адресов и фактов.

 

Добавьте на первое измерение несколько фактов, скажем, 1970, 1980, 1990, 2000. В таблице адресов появится второй диапазон, соответствующий первому измерению.

 

Теперь надо описать двумерные факты. Нажмите «Добавить факт» и добавьте в «Измерения факта» оба имеющиеся измерения. Поочередно устанавливая курсор на измерения факта, введите в поле «Элемент» номера соответствующих элементов из таблицы фактов (третье слева поле таблицы), после чего каждый раз нажимайте «Запомнить». Нажмите «Сохранить».

В таблице адресов появится еще один диапазон – с кросс-маской 01100000000000000000000000000000. Обратите внимание, что значение номера родительского элемента здесь отсутствует, этот параметр актуален только для одномерных.

В таблице фактов появится двумерный факт; запись содержит начальный и конечный адреса факта и номера элементов, из которых он состоит.

Введите еще несколько двумерных фактов.

 

 

 

<продолжение следует…>

 

 

 

 

dbfloader.exe – позволяет загружать данные из файлов формата dbf в многомерную базу данных.

 

 

Порядок работы:

 

1. Открыть файл dbf.

 

2. Открыть файл многомерной базы.

 

3. Установить соответствие между полями таблицы dbf и измерениями многомерной базы. Для этого выбирать соответствующие поле и измерение и нажимать кнопку «=>».

 

4. Опции:

a) «Добавлять одномерные»: если снять эту галку, то те многомерные факты, для которых в базе еще нет соответствующих одномерных, не будут добавлены.

b) «Заменять все Null на 0»: если поле таблицы dbf содержит Null-значение, то при включенной опции Null-значение будет исправлено на «0». Если галку снять, то для строки с Null’ем будет создан факт меньшей размерности.

c) «Дефрагментация по завершению»: после окончания загрузки будет выполнена дефрагментация базы.

d) «Не создавать немаксимальные факты»: если в результате загрузки строки, содержащей Null-значение, должен получиться немаксимальный факт, то при включенной опции он не будет добавлен в базу.

 

 

 

 

 

Скачать программы можно здесь:

 

 

cross.rar

 

dbfloader.rar

 

 

Эти архивы содержат исходный код программ (язык C++), включая исходный код класса Fct, который находится в папке crosscommon.

 

 

 

 

* * * * * * *

 

 

 

Автор стандарта и кода:

 

Калюжный Олег Николаевич,  oleg314@mail.ru .

 

 

 

Следует отметить, что разработчик не имеет намерения сосредотачиваться на разработке качественного пользовательского интерфейса; идея состоит в создании интерфейса на языке C++, который можно будет встраивать (да уже сейчас можно!) в приложения, разрабатываемые другими программистами.

 

 

 

 

 

 

 

 

Рейтинг@Mail.ru