Создание базы данных
На этапе создания базы данных извлеченная информация преобразуется в стандартный формат и сохраняется в базе данных. В первую очередь необходимо выбрать модель базы данных. При этом полезно руководствоваться следующими соображениями: ♦ Выбранная модель должна быть широко известной — это значительно упрощает задачу замены одной реализации базы данных другой. ♦ Учитывая потенциально большие объемы исходных моделей, следует максимально повысить эффективность подачи запросов. ♦ Необходима возможность удаленного доступа к базе данных посредством одного или нескольких географически распределенных пользовательских интерфейсов. ♦ Путем комбинирования информации из различных таблиц следует реализовать объединение представлений. ♦ Необходима поддержка языков запросов, способных выражать архитектурные образцы. ♦ Реализации должны предусматривать возможность введения контрольных точек и, следовательно, сохранения промежуточных результатов. В условиях интерактивного процесса она предоставляет пользователю возможность действовать свободно, не бояться вносить изменения, поскольку их в любой момент можно отменить. К примеру в инструментарии Dali применяется реляционная модель базы данных. Она предполагает преобразование извлеченных представлений (которые в зависимости от инструментов извлечения, могут существовать в самых разных форматах) в стандартную форму Rigi. Затем данные считываются сценарием peri и выводятся в формате, предусматривающем наличие кода SQL, который позволяет конструировать реляционные таблицы и наполнять их извлеченной информацией. Схема этого процесса изображена на рис. 10.2. Пример кода SQL, предназначенного для построения и наполнения реляционных таблиц, показан в листинге 10.1. При вводе данных в базу генерируются две добавочные таблицы: elements и relationships. В них содержатся списки извлеченных элементов и отношений соответственно. Для преобразования из формата (форматов), применяемого утилитой извлечения, можно задействовать любые новые инструментальные средства и методики. Такую возможность обеспечивают инструментарии. К примеру, если для обработки нового языка требуется новый инструмент, его можно сконструировать, а его выходные данные можно преобразовать в формат инструментария. В текущей версии инструментария Dali функциональность реляционной базы данных POSTGRES формируется средствами SQL и peri, которые отвечают за генерирование и обработку архитектурных представлений (соответствующие примеры приводятся в разделе 10.5). Редактировать сценарии SQL в целях обеспечения их совместимости с другими реализациями SQL не представляет труда. Листинг 10.1. Пример кода SQL, сгенерированного средствами инструментария Dali create table calls< caller text, callee text); create table access(func text, variable text): create table defines_var(file text, variable text): insert into calls values('main', 'control'); insert into calls values('main', 'clock'); insert into accesses values('main', ' stat 1'); Практические рекомендации На этапе создания базы данных имеет смысл учитывать следующие соображения. ♦ Обработка представлений данных (при объединении представлений) упрощается, если таблицы базы данных создаются на основе извлеченных отношений. К примеру, если сохранить в такой таблице результаты определенного запроса, исполнять его повторно не придется. При необходимости получения аналогичных результатов можно будет обратиться к этой таблице ♦ Перед конструированием любой базы данных необходимо тщательно про думать се структуру Каким будет первичный (а возможно, и вторичный* ключ? Какие соединения, охватывающие сразу несколько таблиц, будут сопряжены с наибольшими издержками? Применяемые в ходе реконструкции таблицы, как правило, не отличаются особой сложностью — порядка dir_contains_dir или function_calls_function, а в качестве первичного ключа выступает функция всей строки. ♦ Для преобразования формата данных, извлеченных специализированными инструментальными средствами, в формат, поддерживаемый инструментарием, полезно применять простые инструменты лексического анализа наподобие peri и awk.
|