Учебная лаборатория НГУ-Parallels - Написать нам Печать
LogoГлавнаяЛетняя практикаПроектыСеминарыСпецкурсыПубликацииДокументация
W Publikacii / 2012 / ISSC / Nsuts Konysheva
Миграция данных автоматической системы тестирования навыков программирования NSUts

Е. Н. Конышева
Новосибирский государственный университет
Совместная лаборатория Parallels-НГУ

При расширении функциональности системы автоматического тестирования NSUts возникли проблемы в использовании существующей схемы БД. Анализ показал, что развитию системы мешает неоптимальное построение БД: многоцелевые таблицы, избыточные данные, таблицы со слишком большим количеством столбцов, наличие нереализованных изменений. Была спроектирована новая БД, отвечающая требованиям модернизированной системы: изменены сущности, введены внешние ключи, механизм каскадного удаления.
При модернизации выдвигалось требование сохранения данных из старой системы для воспроизведения результатов прошедших олимпиад и участия в этих олимпиадах новых пользователей. Возникла задача миграции данных. Были намечены и реализованы следующие задачи: введение функциональности полуавтоматического экспорта/импорта задач, туров, олимпиад и автоматический перенос данных из старой системы.
Для осуществления автоматического переноса данных была проведена предварительная работа по выявлению неконсистентных состояний в старой БД. Отсутствие внешних ключей привело к потере ссылочной целостности. Например, существовали туры, не включенные ни в одну олимпиаду, и решения, не привязанные ни к одной задаче. Кроме того, наблюдалось несоответствие записей в БД, указывающих на объекты в файловой системе. Были написаны скрипты для проверки целостности БД и устранения несоответствий согласно варианту, выбранному пользователем.
Сложное изменение структуры БД потребовало проведения тестирования результатов работы алгоритма переноса данных. Проверка его корректности проводилась на архиве олимпиад за последние несколько лет, что позволило избежать генерации тестовых данных. Были использованы приближенное сравнение, а также сравнение таблиц и результатов выдачи на основных страницах: построение рейтинга, информация об участниках олимпиады.
В результате проведенной работы был успешно осуществлен переход на новую систему автоматического тестирования.

Научный руководитель – доцент Д. В. Иртегов