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

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

Upload: skip

Post on 05-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

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

ПроблемаПроблемаСкрипты разложены по разным

файлам

Скрипты находятся в одном текстовом файле

Table1.sqlTable1.sql

Tables.sqlTable1.sqlTable1.sql

Views.sqlTable1.sqlTable1.sqlTriggers.s

ql

DataBase.sql

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

Создание скрипта с учетом Создание скрипта с учетом зависимостейзависимостей

DataBaseApplication

Script.sql

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

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

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 - - - - +

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

Алгоритм создания Алгоритм создания объектовобъектовСоздание графа зависимостей

◦Порядок создания объектов◦Поиск зависимостей

Топологическая сортировка◦Проверка ацикличности

Обход графа с выводом результата

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

Порядок создания Порядок создания объектовобъектов

Пользовательские типы

Таблицы

Встроенные процедуры, функции,

представления

Индексы

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

Поиск зависимостейПоиск зависимостей

Функция_1

Процедура_1 Процедура

_3

Процедура_2

Представление_3

Независимые объекты

1-й уровень зависимости

2-й уровень зависимости

k-й уровень зависимости

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

Проверка на Проверка на ацикличностьацикличность

Процедура_1

Процедура_2

Процедура_3

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

.NETDB2 UDB

РешениеРешение

GUI

DLL

Скрипт создания всех

объектов с учетом

зависимостей

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

Задача, часть 2Задача, часть 2Синхронизация Синхронизация SQLSQL-схем-схем

DataBase.sql

DataBase.sql

Update

Revision 58

Revision 59

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

Средствами контроля Средствами контроля версийверсийНе всегда удобно

◦Сравнивают строки, а не объекты◦Не создают скрипта, а лишь

показывают различия◦Может не понять, если поменять

местами два текстовых блока без обрамляющих “\n”.

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

Приложить резервную Приложить резервную копиюкопиюМогут быть различные данные

◦Например, пользователиSample

◦22 таблицы по 20-30 записей◦Резервная копия заняла 102 Мб

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

.NET

РешениеРешение

DB2GUI

DLL

Новая SQL-

схема в XML

формате

Скрипт-патч

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

Изменение схемы Изменение схемы таблицтаблицПереименование колонокИзменение размера колонокИзменение типов колонок и

приведение существующих данных к новому типу, используя встроенные скалярные функции

Изменение точностиИзменение значений по

умолчаниюИзменение NULL/NOT NULLУдаление колонок

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

Отличие от Отличие от существующихсуществующихДля создания патча не требуется

подключения к обеим базам данныхДостаточно файла с новой схемой и

подключения к базе данных со старой схемой

Скрипт может быть выполнен, так как объекты выстроены в порядке, учитывающем зависимости

Код приложения полностью открытый

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

РезультатРезультатПроведено сравнение с

существующими инструментамиРазработан алгоритм создания

объектов с учетом зависимостейРазработан алгоритм создания

патчейРеализована программная система

◦Работает на платформе .NET 3.5◦Использует DB2 Universal DataBase v

9.5

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

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