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

Post on 05-Jan-2016

69 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Генерация скрипта Генерация скрипта создания базы данных с создания базы данных с учетом зависимостейучетом зависимостейАвтор: Максим Масунов, 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

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

top related