К. Я. КУДРЯВЦЕВ, О. A. ШАМАРДИНА

Московский инженерно-физический институт (государственный университет)

"МАСТЕР МИГРАЦИИ" ТАБЛИЧНЫХ ДАННЫХ
МЕЖДУ СХЕМАМИ ПОЛЬЗОВАТЕЛЕЙ

В работе представлены результаты проектирования и разработки “Мастера миграции”' табличных данных между схемами пользователей (под СУБД ORACLE)

Задача миграции данных в работе рассматривается, как необходимость переноса табличных данных от пользователя к пользователю для упрощения тестирования и исправления ошибок в программном обеспечении, работающем с базами данных. При этом учитывается ряд ограничений:

1.  Мигрировать нужно лишь небольшую часть табличных данных, отвечающих определенным условиям.

2.  Чаще всего речь идет не об одной таблице, а о совокупности таблиц, поэтому не должно быть рассогласованности данных.

3.  Особенностью клиентских БД является совпадение объектов: таблиц, пакетов, последовательностей – и наличие поля, заполняемого из последовательности.

4.  Во время импорта данных не должна прекращаться их вставка в базу.

В процессе проектирования системы были:

1.  Изучены существующие (стандартные для ORACLE) средства переноса данных (утилиты EXP/IMP, SQL Loader, опция Export программной среды разработки SQL Navigator for Oracle)[1,2] в разрезе задачи миграции табличных данных от пользователя к пользователю. Проведенный анализ показал, что для поставленной задачи ни один из существующих методов не имеет достаточной эффективности и есть необходимость написания адекватного программного продукта для миграции данных между схемами пользователей в условиях указанных ограничений.

2.  Спроектирована программа MigrationWizard.

В результате была проведена разработка программного продукта “Мастер миграции”', предназначенного для переноса табличных данных между схемами пользователей. Программа реализована на языке C++. В качестве интерфейса доступа к данным, хранимым в базе данных (БД), используется пространство имен ADODB (ActiveX Data Objects Data Base)[4]. Для получения информации об объектах БД -- ADOX (ActiveX Data Objects Extensions for Data Definition Language and Security) [4]. Выполнение запросов, проверка целостности, вставка данных осуществляется хранимыми процедурами, реализованными на PL/SQL -- Procedure Language/SQL. PL/SQL интегрирован с сервером базы данных, поэтому программы, написанные на нем обрабатываются быстро и эффективно[1,2]. В хранимых процедурах используется Dynamic SQL (Structured Query Language) - "динамический" SQL[3], позволяющий гибко подойти к формированию запросов к серверу (не иметь жесткой зависимости на конкретные таблицы и атрибуты таблиц).

На данный момент программа проходит тестовую проверку в ЗАО "СофтПро".

Список литературы

1.  , , Головаш Oracle 9i. Харьков: ФОЛИО, 20с.

2.  Oracle для профессионалов. Книга 1: Архитектура и основные особенности: 2-е изд. Спб.: , 20с.

3.  Oracle для профессионалов: Книга 2: Расширение возможностей и защита. 2-е изд. Спб.: , 20с.

4.  Sceppa D. Programming ADO: Microsoft Press: A Division of Microsoft Corporation One Microsoft Way. Redmond, Washington , 2000.