Upload
skip
View
69
Download
0
Embed Size (px)
DESCRIPTION
Генерация скрипта создания базы данных с учетом зависимостей. Автор: Максим Масунов, 545 группа Санкт-Петербургский государственный университет Математико-Механический факультет Кафедра системного программирования Научный руководитель: Графеева Н.Г. Рецензент: Помыткина Т.Б. Проблема. - PowerPoint PPT Presentation
Citation preview
Генерация скрипта Генерация скрипта создания базы данных с создания базы данных с учетом зависимостейучетом зависимостейАвтор: Максим Масунов, 545 группаСанкт-Петербургский государственный университетМатематико-Механический факультет Кафедра системного программированияНаучный руководитель: Графеева Н.Г.Рецензент: Помыткина Т.Б.
ПроблемаПроблемаСкрипты разложены по разным
файлам
Скрипты находятся в одном текстовом файле
Table1.sqlTable1.sql
Tables.sqlTable1.sqlTable1.sql
Views.sqlTable1.sqlTable1.sqlTriggers.s
ql
DataBase.sql
Создание скрипта с учетом Создание скрипта с учетом зависимостейзависимостей
DataBaseApplication
Script.sql
Существующие Существующие инструментыинструменты
Aqua Data Studio*
EMS SQL Manager
Advanced Query Tool *
UDB Workbench
Toad for DB2 freeware
-Tables + + + + -
-Views + + + + -
-Aliases + + - + -
-Sequences + + - + -
-Indexes + + - + -
-Triggers + + - + -
-Procedures
+ + - + -
-Functions + + - + -
-User Datatypes
+ + - + -
Зависимости
- - - - -
Патчи - - - + -
Freeware - - - - +
Алгоритм создания Алгоритм создания объектовобъектовСоздание графа зависимостей
◦Порядок создания объектов◦Поиск зависимостей
Топологическая сортировка◦Проверка ацикличности
Обход графа с выводом результата
Порядок создания Порядок создания объектовобъектов
Пользовательские типы
Таблицы
Встроенные процедуры, функции,
представления
…
Индексы
…
…
…
Поиск зависимостейПоиск зависимостей
Функция_1
Процедура_1 Процедура
_3
Процедура_2
Представление_3
Независимые объекты
1-й уровень зависимости
2-й уровень зависимости
k-й уровень зависимости
Проверка на Проверка на ацикличностьацикличность
Процедура_1
Процедура_2
Процедура_3
.NETDB2 UDB
РешениеРешение
GUI
DLL
Скрипт создания всех
объектов с учетом
зависимостей
Задача, часть 2Задача, часть 2Синхронизация Синхронизация SQLSQL-схем-схем
DataBase.sql
DataBase.sql
Update
Revision 58
Revision 59
Средствами контроля Средствами контроля версийверсийНе всегда удобно
◦Сравнивают строки, а не объекты◦Не создают скрипта, а лишь
показывают различия◦Может не понять, если поменять
местами два текстовых блока без обрамляющих “\n”.
Приложить резервную Приложить резервную копиюкопиюМогут быть различные данные
◦Например, пользователиSample
◦22 таблицы по 20-30 записей◦Резервная копия заняла 102 Мб
.NET
РешениеРешение
DB2GUI
DLL
Новая SQL-
схема в XML
формате
Скрипт-патч
Изменение схемы Изменение схемы таблицтаблицПереименование колонокИзменение размера колонокИзменение типов колонок и
приведение существующих данных к новому типу, используя встроенные скалярные функции
Изменение точностиИзменение значений по
умолчаниюИзменение NULL/NOT NULLУдаление колонок
Отличие от Отличие от существующихсуществующихДля создания патча не требуется
подключения к обеим базам данныхДостаточно файла с новой схемой и
подключения к базе данных со старой схемой
Скрипт может быть выполнен, так как объекты выстроены в порядке, учитывающем зависимости
Код приложения полностью открытый
РезультатРезультатПроведено сравнение с
существующими инструментамиРазработан алгоритм создания
объектов с учетом зависимостейРазработан алгоритм создания
патчейРеализована программная система
◦Работает на платформе .NET 3.5◦Использует DB2 Universal DataBase v
9.5
Спасибо за внимание!Спасибо за внимание!Вопросы?