#база_данных #oracle #документация
В наличии БД Oracle. На протяжении примерно 20 лет разные люди поучаствовали в написании большого количества хранимого кода, с нетривиальными решениями и загадочными взаимосвязями. Документации как и требований по всему этому делу нет. Хочется в автоматическом режиме собрать как можно больше информации о БД(таблицы, процедуры, тригерры и т.д.) в удобо читаемом виде. Какие объекты какие таблицы модифицируют и от каких зависят, а так же последовательности вызовов. Для построения диаграмм по таблицам есть немало решений(например Oracle Data Modeler, ERwim или PowerDesigner), но вот касательно хранимого кода найти удалось мало: PLSQL Developer умеет строить простенькую HTML документацию на основе указанных пакетов в страшненьком виде. Консольная утилита pldoc. Умеет строить что то похожее на javadoc при наличии комментариев к коду в нужном формате. Open Source и можно доработать. Отсюда вопрос: Какую информацию и в каком виде имеет смысл собирать об объектах БД и какие для этого еще существуют инструменты?
Ответы
Ответ 1
Какую информацию и в каком виде имеет смысл собирать об объектах БД Сначала построить модель данных с помощью средств Oracle. Интересуют конечные точки входа, которые вызываются не из самого Oracle, а из вне. То есть, ищем непустые таблицы, а также процедуры и функции, которые вызываются не из других процедур и функций, а откуда-то из вне. Анализ пользовательского(ских) приложений на предмет вызова из него(них) этих конечных точек. То есть, ищем, какие таблицы и колонки в них заполняются и какие читаются, ищем вызовы процедур и функций. Если конечная точка ни от куда не вызывается - устанавливаем для нее префикс old_. Повторить пункты 1-3, исключив из поиска объекты с префиксом old_ до тех пор, пока ничего лишнего не останется. Если связь установлена: создаем описание связи в виде: Пользовательское приложение - Представление данных - Объект данных - Внутренние связи в объекте. Если очистка базы в планы не входит - исключить пункты 3-4. Для описания связей в БД, лучше написать отдельное приложение (которое само по себе будет еще одной БД). На его основе в будущем легче будет писать доработки к текущей БД. К сожалению ни одно, известное мне, приложение не может полностью выполнить все эти задачи. Его придется либо написать, либо делать все в полу-ручном режиме, в тесном сотрудничестве с пользователями. А как показывает мой личный опыт - придется писать приложение, которое будет работать в полу-ручном режиме, в тесном сотрудничестве с пользователями.Ответ 2
Есть утилиты для генерации описаний. Вот например одна из известных: dataedo Она позволяет автогенерировать описания, редактировать шаблоны итд и экспортировать в разные форматы. Вот пример результата ее работы.
Комментариев нет:
Отправить комментарий