47369 (588480), страница 3
Текст из файла (страница 3)
Учитывая специфику задачи и возможности операционной системы, разрабатываемая система должна иметь следующую структуру, показанную на рис.2
Вычислитель системы - UniCalc - реализован в виде динамически связываемой библиотеки (Dynamic Link Library), которая экспортирует функции и переменные. Вычислитель основан на принципах недоопределенной математики и разрабатывается в Академгородке в Новосибирске.
База данных реализована в формате DB, т.е. в формате Paradox. В этом формате, в основном, хранятся значения экономических параметров, т.е. входные и выходные данные. Ограничения параметров, т.е. система неравенств, уравнений представлена в виде текстового файла, поскольку данная информация не упорядочивается и не структурируется.
Макропрепроцессор реализован в виде функций, находящихся в основном модуле системы, и функций динамически связываемой библиотеки. Такая реализация обусловлена проблемой совместимости с первой версией системы - функции библиотеки DLL служат для конвертирования модели из старого формата.
-
Структуры данных
Входные и выходные данные экономической модели хранятся в базе данных, реализованной в формате Paradox. В ней хранятся данные по экономическим параметрам, т.е. их описания и значения, и по структуре модели.
-
Инфологическая модель базы данных
Инфологическая модель подразумевает собой описание предметной области, которую следует представить в виде некоторой структуры базы данных, без привязки к какой-либо системе управления базами данных, имеет целью упорядочить информацию о предметной области, ее составе, и включает в себя следующие описания:
-
предметной области;
-
объектов и связи между ними;
-
лингвистическое;
-
ограничения целостности;
-
алгоритмических связей между показателями объектов;
-
информационных потребностей пользователя.
-
Предметная область
Под предметной областью подразумевается какая-либо область человеческой деятельности, вызывающая интерес для исследования. В данном случае предметной областью является макроэкономика РФ в целом и макроэкономика составляющих ее районов.
-
-
Описание объектов
Рис.3. Структура объектов базы данных.
-
-
Связи между объектами
Рис.4. Связи между объектами.
-
Лингвистическое описание
База данных описывает экономическую модель, поэтому одним из объектов, входящих в базу, является объект «Экономическая модель» . Объект «Экономическая модель» описывает файловую структуру экономической модели. Признаками данного объекта являются
-
обозначение модели - статический атрибут, который показывает, под каким псевдонимом выступает экономическая модель в различных выходных формах системы, например, в форме с деревом модели;
-
описание модели - статический атрибут, целью которого является пояснение - какую, собственно, часть макроэкономики описывает данная модель. В частности, это может быть представление макроэкономики какого-нибудь региона;
-
путь к базе данных модели - динамическое свойство;
-
название файла ограничений (файл, содержащий систему уравнений и неравенств для данной модели) - динамический атрибут.
Кроме этого в базе существуют объекты, которые описывают логическую структуру модели.
Объект «Экономический параметр» . Синонимом данного объекта также является «экономическая переменная». Объект имеет следующие свойства:
-
обозначение параметра в модели - статический признак, который показывает, под каким псевдонимом (алиасом) используется данная переменная в системе, например, в системе ограничений;
-
описание параметра (название параметра) - статическое свойство.
Объект «Индекс» - некая переменная, от которой зависят экономические параметры, в данном проекте эта переменная обозначает различные годы и кварталы. Признаки данного объекта следующие:
-
обозначение индекса модели - статический атрибут, показывающий, под каким псевдонимом используется индекс. В проекте обычно имеет вид «Y » (year);
-
минимальное значение - данное свойство, как и остальные, является статическим;
-
максимальное значение;
-
шаг изменения, в проекте обычно имеет значение «1».
Поскольку целью работы системы является автоматизация расчетов различных параметров макроэкономики, а также проверка различных предложений по разработке экономической политики, поэтому в базе существует объект «Версия расчета модели» . Данный объект нужен для регистрации расчета системы, т.к. рассчитываться может либо вся модель, либо в автономном режиме ее подмодель, и для реализации «отката» в системе, т.е. попытки вернуться на N шагов назад к данным предыдущих расчетов. Но на данной стадии производится расчет всей модели, автономный режим пока не реализован. Все свойства данного объекта являются статическими и выглядят следующим образом:
-
номер версии. После запуска системы, т.е. до всех расчетов, по умолчанию номер версии равен нулю;
-
комментарий по версии - например, «Проверка предложения фракции ЛДПР по введению новых налогов»
В базе имеется агрегированный объект, содержащий значения экономических параметров в зависимости от версии расчетов. Атрибутами данного объекта являются:
-
порядковый номер в переменной - статической свойство. По существу, экономическая переменная представляет собой массив, у которого, в общем случае, неизвестна ни размерность, ни диапазон изменения индексов. Данный признак введен для простоты работы с базой. Фактически, он отражает уникальную комбинацию значений индексов, от которых зависит экономический параметр;
-
значение - динамическое свойство. Имеет вид либо точного значения, либо некоторого интервала.
-
Алгоритмические связи
Порядковый номер в переменной равен номеру уникальной комбинации значений индексов, от которых зависит экономическая переменная. Номера в переменной вычисляются по взаимосвязи переменной с индексами.
Значение индекса = минимальное значение + i * шаг изменения, i - некоторое целое число, при условии, что значение индекса меньше либо равно максимальному значению индекса.
-
Информационные потребности пользователя
Пользователю очень важно знать все значения экономических параметров, чтобы на основании всех полученных данных успешно моделировать поведение экономики при различных воздействиях на нее.
-
Ограничение целостности
В объекте «Версия расчета модели » нужно, чтобы номер версии был неотрицательным, поскольку при отрицательном значении он не имеет смысла. Нулевое значение номер принимает при создании новой экономической модели, т.е. до ее первого расчета.
В объекте «Индекс » минимальное значение должно быть меньше максимального значения. Кроме того, сумма минимального значения индекса с шагом изменения должна быть меньше либо равно максимального значения индекса. Шаг изменения - это неотрицательное значение.
В объекте «Значение переменной » порядковый номер переменной может изменяться в пределах от единицы до произведения количества значений всех индексов, входящих в данную переменную.
-
Даталогическая модель данных
Под даталогической моделью (ДЛМ) подразумевается отображение конечных связей между реальными объектами предметной области к их смысловому содержанию в среде хранения. ДЛМ строится в терминах информационных единиц, предусмотренных в конкретной системе управления базами данных.
Все объекты и связи между объектами в нашем случае можно выразить следующими соотношениями:
-
экономическая модель(обозначение модели, описание модели, путь к базе данных модели, название файла ограничений) - таблица Model.db;
-
экономический параметр(обозначение параметра в модели, описание параметра) - таблица Params.db;
-
индекс(обозначение индекса, минимальное значение индекса, максимальное значение, шаг изменения) - таблица Indexes.db;
-
версия расчета модели(номер версии, обозначение модели, комментарий по версии) - таблица Version.db;
-
зависимость экономического параметра от индексов(обозначение параметра, обозначение индекса) - таблица Inter.db;
-
зависимость значения переменной от версии расчета (обозначение параметра, обозначение индекса, значение индекса, номер версии, значение переменной). Данную связь можно представить двумя таблицами, которые описываются следующими отношениями:
-
Различные сочетания индексов в переменной(обозначение параметра, обозначение индекса, значение индекса, номер сочетания индексов) - таблица Param.db.
-
Значение параметра(обозначение экономической переменной, значение переменной, порядковый номер в переменной, номер версии расчета) - таблица 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 | Обозначение модели |
-
-
-
Технический проект
В этом разделе рассматриваются алгоритмы клиентской части реализации доступа к данным в архитектуре клиент/сервер.
-
Конфигурация технических средств
Требования к составу и параметрам технических средств соответствуют требованиям к программному продукту - системе моделирования макроэкономики.















