· обозначение параметра в модели - статический признак, который показывает, под каким псевдонимом (алиасом) используется данная переменная в системе, например, в системе ограничений;
· описание параметра (название параметра) - статическое свойство.
Объект «Индекс» - некая переменная, от которой зависят экономические параметры, в данном проекте эта переменная обозначает различные годы и кварталы. Признаки данного объекта следующие:
· обозначение индекса модели - статический атрибут, показывающий, под каким псевдонимом используется индекс. В проекте обычно имеет вид «Y» (year);
· минимальное значение - данное свойство, как и остальные, является статическим;
· максимальное значение;
· шаг изменения, в проекте обычно имеет значение «1».
Поскольку целью работы системы является автоматизация расчетов различных параметров макроэкономики, а также проверка различных предложений по разработке экономической политики, поэтому в базе существует объект «Версия расчета модели». Данный объект нужен для регистрации расчета системы, т.к. рассчитываться может либо вся модель, либо в автономном режиме ее подмодель, и для реализации «отката» в системе, т.е. попытки вернуться на N шагов назад к данным предыдущих расчетов. Но на данной стадии производится расчет всей модели, автономный режим пока не реализован. Все свойства данного объекта являются статическими и выглядят следующим образом:
· номер версии. После запуска системы, т.е. до всех расчетов, по умолчанию номер версии равен нулю;
· комментарий по версии - например, «Проверка предложения фракции ЛДПР по введению новых налогов»
В базе имеется агрегированный объект, содержащий значения экономических параметров в зависимости от версии расчетов. Атрибутами данного объекта являются:
· порядковый номер в переменной - статической свойство. По существу, экономическая переменная представляет собой массив, у которого, в общем случае, неизвестна ни размерность, ни диапазон изменения индексов. Данный признак введен для простоты работы с базой. Фактически, он отражает уникальную комбинацию значений индексов, от которых зависит экономический параметр;
· значение - динамическое свойство. Имеет вид либо точного значения, либо некоторого интервала.
Порядковый номер в переменной равен номеру уникальной комбинации значений индексов, от которых зависит экономическая переменная. Номера в переменной вычисляются по взаимосвязи переменной с индексами.
Значение индекса = минимальное значение + i * шаг изменения, i - некоторое целое число, при условии, что значение индекса меньше либо равно максимальному значению индекса.
Пользователю очень важно знать все значения экономических параметров, чтобы на основании всех полученных данных успешно моделировать поведение экономики при различных воздействиях на нее.
В объекте «Версия расчета модели» нужно, чтобы номер версии был неотрицательным, поскольку при отрицательном значении он не имеет смысла. Нулевое значение номер принимает при создании новой экономической модели, т.е. до ее первого расчета.
В объекте «Индекс» минимальное значение должно быть меньше максимального значения. Кроме того, сумма минимального значения индекса с шагом изменения должна быть меньше либо равно максимального значения индекса. Шаг изменения - это неотрицательное значение.
В объекте «Значение переменной» порядковый номер переменной может изменяться в пределах от единицы до произведения количества значений всех индексов, входящих в данную переменную.
Под даталогической моделью (ДЛМ) подразумевается отображение конечных связей между реальными объектами предметной области к их смысловому содержанию в среде хранения. ДЛМ строится в терминах информационных единиц, предусмотренных в конкретной системе управления базами данных.
Все объекты и связи между объектами в нашем случае можно выразить следующими соотношениями:
· экономическая модель(обозначение модели, описание модели, путь к базе данных модели, название файла ограничений) - таблица Model.db;
· экономический параметр(обозначение параметра в модели, описание параметра) - таблица Params.db;
· индекс(обозначение индекса, минимальное значение индекса, максимальное значение, шаг изменения) - таблица Indexes.db;
· версия расчета модели(номер версии, обозначение модели, комментарий по версии) - таблица Version.db;
· зависимость экономического параметра от индексов(обозначение параметра, обозначение индекса) - таблица Inter.db;
· зависимость значения переменной от версии расчета (обозначение параметра, обозначение индекса, значение индекса, номер версии, значение переменной). Данную связь можно представить двумя таблицами, которые описываются следующими отношениями:
1. Различные сочетания индексов в переменной(обозначение параметра, обозначение индекса, значение индекса, номер сочетания индексов) - таблица Param.db.
2. Значение параметра(обозначение экономической переменной, значение переменной, порядковый номер в переменной, номер версии расчета) - таблица Ver_value.db.
В приведенных отношениях номер сочетания индексов и порядковый номер в переменной - это одно и то же. Данное разбиение позволяет избежать избыточности - таблица, построенная на первом отношении будет содержать не изменяющиеся данные и, если в модель не добавлять новых переменных, будет служить неким неизменяемым справочником.
На уровне таблиц это выглядит следующим образом:
В приведенных ниже таблицах обозначение вида «X» в колонке «№», где X - номер поля, означает, что данное поле является ключевым.
Indexes.db
№ | Имя | Тип | Размер | Комментарий |
“1” | ID | Char | 5 | Обозначение индекса |
2 | Mn | Integer | Минимальное значение | |
3 | Mx | Integer | Максимальное значение | |
4 | Step | Integer | Шаг изменения |
Model.db
№ | Имя | Тип | Размер | Комментарий |
“1” | ID | Char | 10 | Обозначение модели |
2 | Remark | Char | 50 | Комментарий по модели |
3 | Path | Char | 100 | Директория, в которой хранятся файлы модели |
4 | MFile | Char | 20 | Файл описания модели |
Inter.db
№ | Имя | Тип | Размер | Комментарий |
“1” | ID | Char | 10 | Обозначение объекта |
“2” | IID | Char | 10 | Обозначение объекта, от которого зависит ID |
3 | InForm | Integer | Позиция в последовательности индексов, от которых зависит переменная, в системе ограничений | |
4 | Kind | Char | 10 | Тип записи |
Неописанные в отношениях поля:
· InForm - необходимо для распознавания файла ограничений. Показывает номер в последовательности индексов, например, при обозначении некоторой переменной f, зависящей от индексов K и Y, в виде f(Y,K), позиция Y равняется единице, для K - два.
· Kind - введено для дальнейшего развития проекта. Для описанного отношения значение будет «v» (variable), т.е. запись в таблице описывает взаимосвязь переменной с индексом. В дальнейшем будет использоваться для описания вхождения в модель некоторых глобальных переменных, т.е. модель будет выступать в качестве подмодели, значение в этом случае «g» (global).
Param.db
№ | Имя | Тип | Размер | Комментарий |
«1» | ID | Char | 10 | Обозначение переменной |
«2» | IID | Char | 10 | Обозначение индекса |
«3» | iid_value | integer | Значение индекса | |
«4» | Num | Integer | Порядковый номер в переменной |
Params.db
№ | Имя | Тип | Размер | Комментарий |
«1» | ID | Char | 10 | Обозначение переменной |
2 | Remark | Char | 50 | Описание переменной |
Version.db
№ | Имя | Тип | Размер | Комментарий |
«1» | Ver | Integer | Номер версии | |
2 | Remark | Memo | Комментарий по версии | |
«3» | ID | Char | 10 | Обозначение модели |
В этом разделе рассматриваются алгоритмы клиентской части реализации доступа к данным в архитектуре клиент/сервер.
Требования к составу и параметрам технических средств соответствуют требованиям к программному продукту - системе моделирования макроэкономики.