Исходный код вики Анализ связей БД

Редактировал(а) Alexandr Fokin 2024/06/10 15:43

Скрыть последних авторов
Alexandr Fokin 3.4 1 |Задача|На основании существующих запросов (представлений, хранимых функций и процедур, разовых запросов) выделение возможных связей между таблицами (join), также в случае отсутствия внешнего ключа (на основании логики имеющихся запросов приложения).
2 |Алгоритм|(((
Alexandr Fokin 2.1 3 0) На вход получаем перечень таблиц.
Alexandr Fokin 3.6 4 1) Получение файлов, содержащих необходимые данные sql (скрипты).
Alexandr Fokin 2.1 5 2) Для каждого файла:
6 2.1) Определяем список таблиц, которые упоминаются в данном файле.
Alexandr Fokin 3.1 7 3) Отбираем совокупность скриптов, содержащую наименьшее кол-во скриптов при том, что вся совокупность отобранных скриптов покрывает все таблицы из п.0.
Alexandr Fokin 2.1 8 4) Выполняем ручной анализ скриптов и построение схемы связей.
Alexandr Fokin 3.1 9
Alexandr Fokin 3.4 10
Alexandr Fokin 3.1 11 Дополнение: если есть возможность, то можно сразу попытаться анализировать выражения from и join, но это сложнее.
Alexandr Fokin 3.4 12 )))
Alexandr Fokin 3.5 13 | |[[Парсинг SQL запросов>>doc:Разработка.NET.Работа с БД.Парсинг SQL запросов.WebHome]]