Вестник Кольского научного центра РАН. 2016, №1.
А. Я. Фридман формы и порядок записей в которых ориентированы на прикладные программы, отнесены к вторичным. Целесообразность создания вторичных файлов обосновывается ускорением доступа к данным, хранящимся в этих файлах. Осуществление ускоренного селективного доступа к данным по заданным условиям входит в стандартные требования к современным СУБД. Для этого используются ключевые выражения - индексы. При работе с СУБД индексы задаются на этапе формирования физической структуры файла БД и представляют собой некоторые выражения, построенные из функциональных лексем и имен полей БД. Любую таблицу данных (файл БД) можно проиндексировать по нескольким полям и иметь любое число индексов (индексных файлов). Индексные файлы содержат информацию о расположении записей БД в соответствии с заданным порядком тех полей, по котором выполнено индексирование. Средства современных СУБД позволяют создавать мультииндексные файлы, являющиеся по существу соединением нескольких простых индексных файлов. Простейший вариант ключевого выражения, по которому проводится индексирование, имеет вид: I = Fi + ... + Fk, где Fj - имя поля базы данных. Использование мультииндексных файлов, фильтров и т. д. позволяет, не создавая вторичных файлов, осуществлять выборки необходимых подсхем данных из первичных файлов. Часть данных КМПО, включающая постоянные и временные данные с исполнителями типов DB и CMP, задает структуру первичных файлов БД объекта предметной области. Подсхемы данных, которые необходимы при выполнении конкретных вариантов расчета, задаются в основном в классе оперативных (тип исполнителя ТМР). В соответствии с принципом разделения данных на классы, эти данные не имеют собственных структурных единиц хранения на внешних устройствах. Назначение типа исполнителя POF_X, данным этого класса означает, что в оперативной памяти создается динамическая структура для хранения соответствующей подсхемы данных, хранящихся в первичном файле БД с именем, совпадающим с именем исполнителя рассматриваемого ресурса. Введение другого вспомогательного структурного типа - IND_X - позволяет автоматизировать процесс создания индексных выражений для ускоренного селективного доступа к данным [4]. Порядок включения элементов в индексное выражение задается отношениями следования, определенными на множестве подобъектов объекта с типом исполнителя IND_X,-. Ресурсы КМПО, из которых формируется индексное выражение, могут иметь разные типы исполнителей. Поэтому в систему поддержки моделирования включается набор функций построения индексных выражений. Эти функции генерируют индексное выражение на основе шаблона соответствующего ресурса КМПО, осуществляя при необходимости определенные преобразования типов элементов индекса. При этом должны соблюдаться некоторые дополнительные правила назначения типов, описанные далее. Ресурс res,, которому назначен такой исполнитель, т. е. tr(res ) = IND_X,, может содержать в соответствующем ему поддереве данных КМПО объекта только данные с типом отношения иерархии “композиция”. Кроме этого, в КМПО объекта должен входить ресурс res k такой, что он является суперобъектом по отношению к res,, и его исполнитель однозначно определяет принадлежность исполнителей соответствующего поддерева данных к некоторому файлу. Приведенные условия дают правило использования типа исполнителя данного IND_X,: для любых двух ресурсов res,, res,, принадлежащих некоторому объекту КМПО ССМ, должно выполняться следующее соотношение: ((tr(res,) = IND_X,) v (res, е hr*(res,) v (thr(o,) = &)) ^ ^ ((thr(res,) = &) v (tr(resk) = POF_X,) v (tr(resk) = FILE) v (eo(Oj)=eo(ok)) (2) для некоторого resk: res, е hr*(resk), где hr*(resk) - множество подчиненности [4] объекта, порождающего этот ресурс. Правило (2) учитывается при анализе назначений типов исполнителей ресурсов. Если в КМПО отсутствует нужный ресурс res,: (er(res,) = FILE_NAME, tr(res,) = FILE), но имеет место некоторое множество данных {res,1,..., resik}: (er(res/) = ... = er(resik) = FILE_NAME, ВЕСТНИК Кольского научного центра РАН 1/2016(24) 113
Made with FlippingBook
RkJQdWJsaXNoZXIy MTUzNzYz