Потребность в обратной инженерии баз данных
Как функциональная, так и нефункциональная эволюция систем опирается на доступность актуальных концептуальных схем баз данных. Однако на практике такие схемы могут быть неполными, ненадежными, устаревшими или просто отсутствующими. В таких случаях концептуальную схему необходимо воссоздать, по крайней мере, частично.
Достаточно часто схема базы данных известна только из кода DDL или, что то же самое, из таблиц-каталогов базы данных. Этот код обычно является неполным, поскольку в большинстве баз данных многие структуры данных и ограничения не кодируются на DDL из-за недостаточных выразительных возможностей модели данных СУБД или из-за использования проприетарных приемов программирования. Для восстановления этих неявных конструкций требуется дополнительная обработка, такая как статический или динамический анализ программ и интеллектуальный анализ данных (data mining).
Схема, извлеченная из кода DDL и обогащенная неявными конструкциями, которые были восстановлены указанным образом, образуют полную физическую схему. Следующий шаг состоит в извлечении из этой схемы семантики – т.е. в воссоздании концептуальной схемы базы данных. Обратная инженерия баз данных – это сложный процесс, который невозможно полностью автоматизировать, но он обеспечивает разработчиков полной и актуальной документацией старой базы данных, являющейся необходимой потребностью любого процесса эволюции.