Вестник Кольского научного центра РАН. 2016, №1.

А. Я. Фридман параметров исследуемой системы. Первая, самая простая ситуация, когда при моделировании используется только один изменяющийся параметр объектов исследуемой системы и изменения фиксируются с постоянным временным шагом. В этом случае данные, характеризующие объект, реализуются в компьютере в виде записи базы данных. Причем в явном виде объект, соответствующий этой записи, в КМПО может быть не декларирован. Запись определяется набором полей, куда, как правило, входят: “адресные” данные, определяющие связь конкретного экземпляра объекта с соответствующим экземпляром объекта верхнего уровня иерархии; одиночные данные {res,}, характеризующие объект и не изменяющиеся во времени; массив, представляющий временной ряд значений resjk изменяющегося параметра res,, помещенный в поле переменной длины (memo-поле). Использование поля типа memo в данном случае позволяет хранить в БД временные ряды с различным числом элементов. Число элементов временного ряда задается значением данного, которое назначено в КМПО управляющим для res,. Такой способ хранения временных рядов обеспечивает максимальную компактность БД. Однако он не эффективен, когда при моделировании требуется индивидуальный доступ к отдельному заданному элементу временного ряда или возникает необходимость использовать значения элементов временного ряда для поиска или сортировки данных. Второй вариант - изменение некоторого набора параметров исследуемой системы с одинаковым временным шагом. Подобная ситуация достаточно типична при моделировании производственных систем, в частности, региональной энергетики [4]. Для каждого энергопроизводящего объекта ежегодно фиксируется набор параметров. Значение практически любого параметра может изменяться ежегодно. При исследованиях энергопроизводителей необходим целевой доступ к набору показателей для любого года. Для каждого года создается отдельная запись в соответствующей БД. Для каждого типа энергопроизводящих объектов формируется отдельный исполнитель - файл БД, так как состав параметров для них различен. Поле, в котором содержится год, используется в индексном выражении для БД. Недостаток такой организации БДПО - частичное дублирование неизменяющихся данных в записях БД. Третий вариант - наличие данных предметной области, изменяющихся нерегулярно и имеющих различную дискретность изменений. Здесь необходимо определить временной шаг для рядов значений каждого из изменяющихся параметров, в пределах которого значение параметра считается неизменным. Для хранения данных можно предложить несколько моделей. По аналогии с первой ситуацией значения изменяющихся параметров можно разместить в memo-полях, дополнив значением момента времени получения экземпляра данного. Однако при этом невозможно организовать быстрый доступ к экземплярам на заданный момент времени. Кроме того, в БД может появиться большое количество дублирующихся значений, если в течение нескольких временных шагов параметр не изменялся. Использование отдельных записей для каждого временного шага также неэффективно. Во-первых, редко удается использовать кратные значения дискретности различных параметров исследуемого объекта, что позволило бы совместить моменты времени фиксации их значений. Во-вторых, не избежать избыточности БД из-за дублирования значений параметров с большей дискретностью в записях изменений значений параметров с малой дискретностью. Решение проблемы дает использование БДПО, в которой для каждого типа изменяющегося данного (переменной или параметра) формируется отдельная база. Связь экземпляра значения с конкретным объектом задается полем “Идентификатор Объекта”. Запись в БД производится только в том случае, если значение параметра Xk(i) для объекта о, на момент времени t(i) отличается от значения Xk(i - 1), записанного на момент времени t(i - 1) = t(i) - At (где At - шаг дискретности). Фактически в БД хранятся моменты времени, отмечающие границы интервалов, на протяжении которых значения параметра не изменялись, и значения параметра на этих ВЕСТНИК Кольского научного центра РАН 1/2016(24) 109

RkJQdWJsaXNoZXIy MTUzNzYz