1 / 17

Генерация скрипта создания базы данных с учетом зависимостей

Генерация скрипта создания базы данных с учетом зависимостей. Автор: Максим Масунов, 545 группа Санкт-Петербургский государственный университет Математико-Механический факультет Кафедра системного программирования Научный руководитель: Графеева Н.Г. Рецензент: Помыткина Т.Б. Проблема.

skip
Download Presentation

Генерация скрипта создания базы данных с учетом зависимостей

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Генерация скрипта создания базы данных с учетом зависимостей Автор: Максим Масунов, 545 группа Санкт-Петербургский государственный университет Математико-Механический факультет Кафедра системного программирования Научный руководитель: Графеева Н.Г. Рецензент: Помыткина Т.Б.

  2. Проблема • Скрипты разложены по разным файлам • Скрипты находятся в одном текстовом файле Table1.sql Table1.sql Table1.sql Table1.sql Table1.sql Table1.sql Tables.sql Views.sql Triggers.sql DataBase.sql

  3. Создание скрипта с учетом зависимостей DataBase Application Script.sql

  4. Существующие инструменты

  5. Алгоритм создания объектов • Создание графа зависимостей • Порядок создания объектов • Поиск зависимостей • Топологическая сортировка • Проверка ацикличности • Обход графа с выводом результата

  6. Порядок создания объектов Пользовательские типы … Таблицы … Индексы … Встроенные процедуры, функции, представления …

  7. Поиск зависимостей Процедура_2 Представление_3 Независимые объекты Процедура_1 Процедура_3 1-й уровень зависимости Функция_1 2-й уровень зависимости k-й уровень зависимости

  8. Проверка на ацикличность Процедура_3 Процедура_2 Процедура_1

  9. Решение .NET DB2 UDB DLL GUI Скрипт создания всех объектов с учетом зависимостей

  10. Задача, часть 2Синхронизация SQL-схем DataBase.sql Revision 58 Update DataBase.sql Revision 59

  11. Средствами контроля версий • Не всегда удобно • Сравнивают строки, а не объекты • Не создают скрипта, а лишь показывают различия • Может не понять, если поменять местами два текстовых блока без обрамляющих “\n”.

  12. Приложить резервную копию • Могут быть различные данные • Например, пользователи • Sample • 22таблицы по 20-30 записей • Резервная копия заняла 102 Мб

  13. Решение .NET DLL DB2 Новая SQL-схема в XML формате GUI Скрипт-патч

  14. Изменение схемы таблиц • Переименование колонок • Изменение размера колонок • Изменение типов колонок и приведение существующих данных к новому типу, используя встроенные скалярные функции • Изменение точности • Изменение значений поумолчанию • Изменение NULL/NOT NULL • Удаление колонок

  15. Отличие от существующих • Для создания патча не требуется подключения к обеим базам данных • Достаточно файла с новой схемой и подключения к базе данных со старой схемой • Скрипт может быть выполнен, так как объекты выстроены в порядке, учитывающем зависимости • Код приложения полностью открытый

  16. Результат • Проведено сравнение с существующими инструментами • Разработан алгоритм создания объектов с учетом зависимостей • Разработан алгоритм создания патчей • Реализована программная система • Работает на платформе .NET 3.5 • Использует DB2 Universal DataBasev 9.5

  17. Спасибо за внимание! • Вопросы?

More Related