Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Как и чем собирать документацию по базе данных?

#база_данных #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 Она позволяет автогенерировать описания, редактировать шаблоны итд и экспортировать в разные форматы. Вот пример результата ее работы.

Комментариев нет:

Отправить комментарий