МНОГОКОМПОНЕНТНЫЙ ПОДХОД К ПОСТРОЕНИЮ БАЗ ДАННЫХ ДЛЯ СИСТЕМ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ А.В. Евдокимов Московский физико-технический институт (ГУ), Россия В докладе рассматривается перспективный подход к базам данных (БД) для информационных систем, подобных средствам имитационного моделирования и другим интеллектуальным системам, а также к поддержке таких БД на уровне СУБД или серверной надстройки над СУБД. Предлагается решение следующих проблем теории и реализации БД. 1. Неэкономичность хранения (а также анализа) слабо различающихся состояний системы, связанная с многократным дублированием данных в независимых экземплярах БД. Иногда эта проблема интерпретируется как хранение динамики развития системы, иногда — как хранение версий БД, без привязки к временной последовательности состояний. В первой интерпретации проблема отчасти решается с помощью хранилищ данных (Data Warehouses), однако там упор делается на анализ данных (OLAP), но не их пополнение и обновление (OLTP). Вторая интерпретация проблемы (поддержка версий БД) и соответствующие решения наиболее распространены в CASE-средствах, но их системы версификации либо слишком зависят от структуры данных, либо являются внешними по отношению к БД. Поддержка версий была бы весьма полезна при создании не только программных продуктов, но и моделей сложных систем. Однако в этой области средств поддержки версий вообще не существует, и любые версии модели хранятся как независимые экземпляры БД (наборы файлов), даже если они отличаются лишь несколькими значениями параметров. 2. Многократное повторение одной и той же работы над версиями БД при их единообразной корректировке. Эта проблема тесно связана с предыдущей и также может быть решена лишь путём выделения из версий БД общей части данных. Особенно ярко она проявляется в имитационном моделировании и в искусственном интеллекте (точнее, в экспертных системах), где данные часто изменяются при одновременной настройке нескольких вариантов моделей. 3. Линейное (не иерархическое) упорядочение версий, не дающее представления о смысле различий между версиями. Многие БД объединяют относительно статичные, редко изменяемые данные (обычно качественные) и динамичные, часто изменяемые (количественные, неточно известные). Если используются независимые БД для каждой версии, изменение статичных данных сопровождается удвоением числа существующих версий. К тому же расположение версий во временной последовательности в этом случае не соответствует смыслу их отличий друг от друга, который требует представления версий в виде иерархической структуры. 4. Сложность повторного использования частей БД для решения близких задач. Очевидно, некоторая часть БД (статичные данные, см. выше) является достаточно универсальной, чтобы быть полезной в других сходных БД. Но чтобы её использовать, нужно создать копию существующей БД, и «вручную» удалить из неё всё, что не имеет отношения к новой задаче. При этом невозможно параллельно производить корректировку универсальной части в «старой» и «новой» БД. Для решения этих проблем предлагается представлять БД в виде набора иерархически связанных частей, имеющих похожую структуру (схему), но различные (не дублирующиеся) данные. Такие части, выделяемые по степени статичности (универсальности) данных и другим функциональным признакам, называются компонентами, а их иерархия — многокомпонентной базой данных (МКБД). Одной версии БД обычно соответствует одна последовательность, «вырезанная» из иерархии компонентов. МКБД в одних случаях можно трактовать как БД со встроенной поддержкой версий, в других — как БД для хранения истории систем. Идея данного подхода близка к идее наследования в объектно-ориентированном проектировании, но применяется она к экземплярам объектов, а не к их классам. В работе показывается, как следует разбивать БД на отдельные компоненты, чтобы избежать рассогласования данных из разных компонентов, не понизить скорость выполнения запросов и не потерять целостное представление каждой версии БД. В качестве дополнительного преимущества многокомпонентности также повышается эффективность разделения работы по заполнению БД между пользователями (на каждый компонент можно устанавливать различные привилегии пользователей). В случае использования МКБД в системах имитационного моделирования это очень важно, поскольку над моделями должны работать, как минимум, вычислительный математик, специалист по моделированию, эксперт предметной области и пользователь, проводящий имитационные эксперименты. Выделение функционально (не структурно) различных компонент в БД соответствует методологии имитационного моделирования, согласно которой после получения на модели результатов необходимо возвращаться на этап ввода числовых значений, изменения зависимостей между параметрами, определения качественной структуры модели или даже на уровень редактирования используемых численных методов, которые также должны храниться в базе знаний. Эти данные образуют иерархию: на одной модели можно получать разные результаты, меняя входные данные; одна качественная структура может быть реализована многими моделями, отличающимися некоторыми параметрами и зависимостями и т. д. Эффективность применения рассмотренного подхода к задачам имитационного моделирования, демонстрируется на примере создания комплексной модели (модели организма человека) с помощью программно реализованной среды моделирования.