Технологии
RDBMS, MS SQL
Заказчик – транспортно-логистический холдинг, использующий проприетарное программное обеспечение с закрытым кодом, написанное на языке C# и хранящее данные в MS SQL.
Для качественной аналитики заказчику, помимо встроенных, т.е. предоставляемых вендором, отчётов понадобились дополнительные. К сожалению, описание структуры базы данных отсутствовало, а создание таких отчетов через разработчика ПО выглядело финансово неоправданным.
Чтобы иметь возможность экспортировать данные во внешние BI-системы и создавать собственные аналитические отчеты, заказчику понадобилось сделать реверс-инжиниринг структуры базы данных, содержащей более 600 таблиц.
Заказчик предоставил тестовую среду и опытного пользователя системы для консультаций по возникающим вопросам. В рамках аналитического этапа наш системный архитектор с экспертизой в БД погрузился в структуру БД и предметную область и выполнил:
Анализ шаблонов отчетов и запросов на формирование отчетов
В рамках основного этапа работ мы приступили к восстановлению соответствия колонок реляционных таблиц атрибутам приложения в терминах бизнес-модели. Для этого были выполнены трассировка SQL-запросов, которое приложение выполняет на стенде, и поиск соответствия между бизнес-сущностями и таблицами, а затем проведены анализ атрибутов и колонок и верификация результата. Помимо этого, по просьбе заказчика, были разработаны SQL-запросы, которые формируют отчеты, аналогичные встроенным в системе, но уже напрямую из базы.
В ходе работ специалисты столкнулись с определенными сложностями и нашли решения для следующих задач:
Приложение работает с базой данных ORM-прослойку. Для получения отчета или формы приложение отправляет в БД большое количество простых запросов, что видно по логам. По множеству маленьких запросов было необходимо сконструировать запрос, который отдаст все необходимые данные.
В базе есть основные таблицы, архивные и временные, которые используются как кэш для быстрой работы приложения. Между всеми этими таблицами выстроена синхронизация средствами БД и приложения. Наши специалисты смогли определить, из каких именно таблиц берутся данные для отчета.
RDBMS, MS SQL