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

Автоматизация синтеза баз данных системы. tr(res/)=POF_1, ..., tr(res/)=POF_£), то файл формируется на их основе. Число полей записи файла равно мощности множества FN, полученного в результате объединения множеств элементарных данных поддеревьев КМПО, соответствующих каждому данному res/: FN ::= {res/: (res*1 е h-^res/)) v (hr(res/) = 0 } u... ...u {resx^: (resx^ е hr*(res/)) v (hr(resxk) = 0)} . (3) Имя и тип каждого поля определяются именем и типом исполнителя соответствующего данного - er(resxl), tr(resxl), resx‘ е FN. Если в состав записи в качестве элементарных данных входят элементы массива и этот массив, в свою очередь, является элементом записи, т. е. существуют данные res/, reskl, resdи множество данных {ox‘}, для которых справедливо: (er(res/)=FILE_NAME) v (tr(res/) = POF_T) v (reskl е hr*(res/)) v (thr(reskl) =*) v v (resdе hr*(resjl) v (hr(resd) = &)) v (resxl е hr(reskl)) v (tr(resxl)=*) v v (resxl е hr*(resjl)) v (hr(resx) = 0 ) , (4) то массив можно не разбивать на отдельные элементы, а хранить в одном поле БД типа memo. При этом, как и в случае хранения массивов ссылок в БД концептуальной модели, в записи присутствует поле, задающее длину массива с именем er(resd). При наличии в КМПО данных res/,..., res/ таких, что tr(res/) = IND_1, ..., tr(res/)=IND_^ и существовании данного res j l, для которого найдется другое данное res l , такое, что (res/ е hr*(resl) v (er(resl)=FILE_NAME), для созданного файла БД с именем FILE_NAME формируется мультииндексный файл с тем же именем - структурный мультииндексный файл, где хранятся индексные выражения, сформированные по данным res/1,..., res/ КМПО. Получаемые индексные выражения представляют собой текстовую конкатенацию полей БД, соответствующих подобъектам элементарного уровня каждого res j l. Число индексов для каждого файла FILE_NAME БД будет равно числу данных, имеющих тип исполнителя IND_X и имя исполнителя FILE_NAME. Общее количество файлов, образующих БД объекта, равно количеству различных имен исполнителей, тип которых определяет наличие соответствующего файла. Для обмена данными между БД и программами - исполнителями процессов КМПО в ССМ включаются два вида сервисных процедур - процедуры считывания и процедуры записи. Процедуры считывания осуществляют индексацию БД по индексу выбираемой подсхемы и считывание в оперативную память из файлов БД элементов заданной подсхемы. Процедуры записи реализуют обратную процедуру - запись результатов работы программы - исполнителя процесса в БД. При этом либо происходит поиск требуемых записей в БД и обновление значений полей, входящих в рассматриваемую подсхему, значениями соответствующих переменных памяти, либо создание новых записей и заполнение в них определенных полей. Указанные сервисные процедуры автоматически включаются в исполняемые программы реализации процесса, если входными или выходными данными процесса являются подсхемы БД [9]. Автоматическое формирование БД объекта не предусматривает индивидуального задания размеров полей БД. Размер поля, отводимого под данное, зависит от его типа. В результате размеры БД, полученной в ходе работы ССМ, будут, как правило, превышать размеры аналогичной БД, построенной средствами стандартной СУБД. В качестве еще одного недостатка следует отметить ограниченность конструкций индексных выражений. В современных СУБД допускается построение индексов не только непосредственно из имен полей БД, но и в виде некоторой комбинации различных функций от этих полей. Основное достоинство предложенного способа создания БД состоит в том, что пользователь непосредственно формирует только концептуальную модель данных с использованием привычных ему терминов, а создание файловой структуры БД и выборка необходимых подсхем данных производится в соответствии с заданными описаниями автоматически. 114 ВЕСТНИК Кольского научного центра РАН 1/2016(24)

RkJQdWJsaXNoZXIy MTUzNzYz