УДК 004.652

ИССЛЕДОВАНИЕ ОПТИМАЛЬНОЙ СТРУКТУРЫ БАЗЫ ДАННЫХ В РАМКАХ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ПРИЕМНОЙ КОМИССИИ ДОННТУ

 

Дерксен Е.А., Завадская Т.В., Меренкова Л.Л.

ГОУВПО "Донецкий национальный технический университет" кафедра компьютерной инженерии

E-mail: derksen.evgenij@yandex.ua

 

Аннотация

Дерксен Е.А., Завадская Т.В., Меренкова Л.Л. Исследование оптимальной структуры базы данных в рамках автоматизированной системы приемной комиссии ДонНТУ. Рассмотрено влияние структуры базы данных на производительность выполнения разных транзакций. Определен подход к проектированию базы данных для автоматизированной системы приемной комиссии ДонНТУ.

 

Общая постановка проблемы

На этапе проектирования базы данных (БД) следует учитывать такой аспект, как производительность выполнения транзакций. Важно определить подход к проектированию структуры БД, для обеспечения максимального быстродействия в рамках решения конкретной задачи (введение, хранение, редактирование, обработка информации в рамках автоматизированной системы (АС) «Приемная комиссия»).

 

Исследования

Проектирование базы данных выполняется в три этапа [1]:

1)      Концептуальное проектирование.

2)      Логическое проектирование.

3)      Физическое проектирование.

В данной работе рассматривается этап физического проектирования, так как одна из важнейших задач данного этапа - дать гарантию того, что база данных обеспечивает требуемый уровень производительности.

Обычно, производительность базы данных измеряется в терминах производительности транзакций. Для решения задачи повышения производительности нужно сформировать транзакции, которые могут существовать в базе данных, но в большинстве практических случаев сформировать изначально полностью прописанные транзакции к базе данных является весьма сложной организационной задачей. К тому же, часть проблем, связанная с производительностью, может быть выявлена лишь на стадии тестирования и опытной эксплуатации базы данных [2].

Прежде чем определить набор и тип используемых транзакций, следует оценить тип приложений, для которых разрабатывается БД. Перед этим следует уточнить термины транзакция и запрос. В теории баз данных под транзакцией понимают одну из команд SQL: SELECT, INSERT, UPDATE, DELETE. Однако, в зависимости от типа приложений, термин транзакция трактуется более свободно как элементарная логически завершенная единица работы (так называемая бизнес-транзакция), которая может включать несколько команд вставки, удаления или модификации. В зависимости от того, какие команды SQL используются, транзакции разделяют на транзакции только для записи, только для модификации, только для чтения, только для удаления. Транзакции только для чтения называют запросом.

Исходя из такого деления транзакций по типам обработки с учетом частоты транзакций каждого типа, можно выделить основные классические типы приложений баз данных:

OLTP-системы (On-Line Transaction Processing) - это такое приложение, которое содержит в основном транзакции вставки, обновления и удаления, с высокой частотой преимущественно транзакций обновления. Для таких систем характерен высокий уровень параллелизма, который в данном случае означает, что много пользователей используют базу данных одинаковым образом.

DSS-системы (Decision Support System) - это такое приложение, которое работает с очень большой базой данных в режиме "только чтение". Обычно используется набор фиксированных простых запросов или нерегламентированные запросы пользователей.

OLAP-системы (On-Line Analytical Processing) - это приложение, которое обеспечивает аналитическую обработку данных, включающую математический, статистический или иной анализ данных. Такие системы нельзя отнести полностью либо к OLTP-, либо к DSS -системам. Они располагаются где-то между ними. В рамках OLAP систем выделяют так называемые ROLAP системы (Relational OLAP), т.е. OLAP -системы, использующие реляционные базы данных. Типичные OLAP-системы разрабатываются обычно под многомерные модели данных.

VCDB-системы (Variable Cardinality Database) - это такое приложение обработки данных, для которого база данных растет или сжимается в размерах периодически в зависимости от характера обработки данных. Обычно размер этих баз данных постоянно растет. Кардинальность относится к числу строк в таблицах базы данных в текущий момент времени.

Для того чтобы определить тип приложений, используемых в АС «Приемная комиссия», следует рассмотреть реализуемый ими функционал. АС «Приемная комиссия» включает в себя следующие функции:

1)      Хранение данных всех абитуриентов университета в единой базе.

2)      Персонализированный доступ к информации с разграничением прав пользователей в соответствии с должностными полномочиями.

3)      Регистрация анкетных данных, паспортных данных, фотографий и заявлений абитуриентов.

4)      Редактирование данных анкет и заявлений абитуриентов, подавших документы

5)      Учет документов, поданных абитуриентом.

6)      Формирование и контроль плана набора.

7)      Формирование необходимого пакета документов для абитуриента (расписки, заявление, анкета и т.д.).

8)      Формирование списка рекомендованных к зачислению в вуз.

9)      Зачисление абитуриентов (формирование списков, протоколов и приказов на зачисление).

10)  Формирование статистической отчетности для анализа данных об абитуриентах, поданных заявлениях и результатах вступительных испытаний в разрезе факультетов, специальностей, форм обучения, видов финансирования и др.

Исходя из этого можно сделать вывод, что отдельные части АС «Приемная комиссия» являются как OLTP-системами, так и ROLAP-системами. Следовательно, набор транзакций будет состоять из транзакций вставки, обновления и удаления, а также запросов для выборки и анализа данных. Для построения списка транзакций, используемых в БД, необходимо определить основные объекты модели данных АС «Приемная комиссия»:

1)      Персона – описывает модель персональных данных абитуриента;

2)      Дело – описывает модель данных заявления абитуриента;

3)      Объект справочной информации – описывает модель данных единицы справочной информации.

Объект «Персона» является составным и состоит из нескольких подобъектов:

1)      Фото.

2)      Паспортные данные.

3)      Адреса и контактные данные.

4)      Документы об образовании.

На основе функционала АС «Приемная комиссия» и основных объектов модели данных можно составить список основных транзакций БД:

1)      Добавление новой персоны.

2)      Добавления фото для персоны.

3)      Ввод паспортных данных персоны.

4)      Редактирование паспортных данных персоны.

5)      Добавление адресных и контактных данных персоны.

6)      Редактирование адресных и контактных данных персоны.

7)      Добавление документа об образовании персоны.

8)      Редактирование данных документа об образовании персоны.

9)      Добавление нового дела.

10)   Редактирование данных дела.

11)   Получение справочной информации.

12)   Получение списка дел с привязкой к данным персоны.

13)   Получение статистики о поданных делах с группировкой по различным параметрам.

Поскольку АС «Приемная комиссия» предусматривает одновременную работу большого количества пользователей, выполняющих как однотипные, так и разные операции - следует оптимизировать производительность параллельного выполнения транзакций. 

Для построения оптимальной структуры БД нужно учитывать особенности системы управления БД (СУБД), которая обеспечивает работу данной БД. В данном случае используется СУБД MS SQL Server 2012.

            Исходя из документации MS SQL Server 2012 для повышения производительности транзакций вставки и обновления данных выдвигаются следующие требования [3]:

    Короткие транзакции для минимизации долгосрочных блокировок и улучшения параллелизма.

•    Высокая нормализация базы данных.

•    Минимизация исторических и статистических данных или полное их отсутствие.

•    Минимизация использования индексов.

А для запросов на получение данных из БД:

Из приведенных выше требований к структуре БД можно сделать вывод, что невозможно оптимизировать структуру БД для обеспечения максимальной производительности как транзакций вставки, так и запросов на выборку данных. Для решения данной проблемы есть несколько вариантов:

1)      Использовать разные базы данных для обслуживания разных транзакций.

2)      Разработать структуру обеспечивающую средние показатели производительности для различных транзакций.

3)      Определить приоритеты и частоту использования для каждого типа транзакций, и разработать структуру обеспечивающую максимальную производительность наиболее приоритетных и часто используемых транзакций.

Реализация первого варианта потребует дополнительных аппаратных затрат для обслуживания двух БД вместо одной. Второй вариант кажется оптимальным, однако требует большого количества времени и трудозатрат на разработку оптимальной структуры БД. Таким образом было принято решение использовать третий вариант.

Наиболее приоритетными задачами для АС «Приемная комиссия» являются ввод, учет, хранение данных абитуриентов и заявлений поданных ими, а самым важным этапом проведения приемной компании ДонНТУ является прием дел абитуриентов, в ходе которого частота ввода новых данных и редактирования имеющихся будет максимальной. Следовательно, структура БД должна быть ориентирована на обеспечение максимальной производительности транзакций записи и обновления.

Однако АС «Приемная комиссия» реализует еще один немаловажный функционал – публичный web-сервис, который отображает в реальном времени конкурсное положение абитуриентов. Web-сервер обеспечивающий работу данного сервиса генерирует большое количество запросов на выборку многосвязных данных по различным параметрам. Для обеспечения максимальной производительности выполнения данных запросов следует использовать механизм представлений, реализованный в MS SQL Server.

            Представление — виртуальная (логическая) таблица, представляющая собой поименованный запрос (синоним к запросу), который будет подставлен как подзапрос при использовании представления. В отличие от обычных таблиц реляционных баз данных, представление не является самостоятельной частью набора данных, хранящегося в базе. Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах.

            При использовании представлений выигрыш в производительности достигается за счет использования механизма кеширования запросов, реализованного в MS SQL Server, который позволяет сократить время выполнения одинаковых запросов. Также данная СУБД позволяет создать индексы для представления, не затрагивая при этом исходные таблицы.

Выводы

Из всего вышесказанного можно сделать вывод, что для создания оптимальной структуры БД АС «Приемная комиссия» следует обеспечить хранение основных объектов модели данных в различных таблицах, избегать избыточности данных с помощью нормализации, минимизировать использование индексов, а для выборки многосвязных данных следует использовать представления.

 

Литература

 

  1. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — 3-е изд. — М.: «Вильямс», 2003. — 143 с
  2. Создание физической модели базы данных. Учет влияния транзакций // НОУ Интуит [Электронный ресурс]. – Режим доступа: http://www.intuit.ru/studies/courses/1095/191/lecture/4985
  3. Сравнение оперативной обработки транзакций // Microsoft TechNet [Электронный ресурс]. – Режим доступа: https://technet.microsoft.com/ru-ru/library/ms187669(v=sql.105).aspx