">

Скиба Виктор Евгеньевич

Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

Специальность «Компьютерные системы и сети»

Исследование и разработка оптимальных запросов при выборке многосвязных данных больших объемов в реляционных базах данных. Разработка АРМ «Нагрузка по кафедре» в рамках АСУ ДонНТУ.

Научный руководитель: к.т.н., доц. Краснокутский Владимир Алексеевич

Реферат по теме магистерской работы
Содержание
Введение
1 Актуальность темы и научная новизна
2 Цели и задачи исследования, планируемые результаты
3 Обзор исследований и разработок
3.1 Обзор международных источников
3.2 Обзор национальных источников
3.3 Обзор локальных источников
4 АРМ «Нагрузка по кафедре»
4.1 Исследование процесса формирования нагрузки в настоящее время
4.2 Набор необходимых функций разрабатываемого приложения
4.3 Выбор языка программирования, среды разработки и базы данных для реализуемого проекта
5 Лексическая оптимизация запросов
5.1 Исследование работы стандартного оптимизатора на примере MS SQL Server
5.2 Изучение и применение основных методов лексической оптимизации запросов
5.2.1. Лексическая оптимизация путем сокращения запросов
5.2.2. Лексическая оптимизация путем усовершенствования запросов
5.2.3. Лексическая оптимизация путем преобразования запросов
Выводы
Введение

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

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

1 — Актуальность темы и научная новизна

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

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

Научная новизна работы состоит в повышении эффективности существующих алгоритмов оптимизации запросов с целью улучшения работы действующей автоматизированной системы управления ДонНТУ.

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

2 — Цели и задачи исследования, планируемые результаты

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

Список целей, которые необходимо выполнить в рамках магистерской работы:

1) Изучение технологии составления и формирования учебного процесса в ВУЗе;

2) Изучение технологии формирования нагрузки на кафедру в настоящее время;

3) Разработка плана по автоматизации процесса формирования нагрузки на кафедру;

4) Разработка структуры программного обеспечения (ПО) и набора необходимых функций.

5) Разработка структуры БД для реализации поставленной задачи.

Результатами успешного выполнения магистерской работы должны являться:

1) Desktop — версия приложения для автоматизированного формирования нагрузки на кафедру в рамках вуза;

2) Web — версия приложения для просмотра сформированной нагрузки.

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

3 — Обзор исследований и разработок

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

Что касается вопроса об автоматизации процесса формирования нагрузки кафедры, то данная задача является довольно специфичной. Соответственно разработок в этой области намного меньше.

3.1 Обзор международных источников

В мире существует множество работ и публикаций на тему оптимизации запросов. Публикаций на тему автоматизированной нагрузки на кафедру найдено не было. Ниже приведен список наиболее популярных публикаций, авторы которых внесли весомый вклад в развитие данной отрасли.

Публикация Ionnidis Y. E. Query Optimization // The Computer Science and Engineering Handbook. Наиболее распространенная статья, в которой идет речь об основных понятиях и принципах оптимизации запросов [2].

Публикация Jarke M., Koch J. Query Optimization in Database Systems. Рассматривается методы семантической и логической оптимизации запросов [5].

Публикация Chaudhari S. An Overview of Query Optimization in Relational Systems. Рассматриваются методы оптимизации запросов в реляционных системах [6].

Публикация Graefe G. Query Evaluation Techniques for Large Databases. Рассмотрена концепция алгоритмов для управления системой доступа к большому набору данных [7].

Публикация Ozsu M. N., Valduriez P. Principles of Distributed Database Systems. В книге идет речь об особенностях работы с распределенными базами данных и СУБД [8].

3.2 Обзор национальных источников

В России и Украине также множество ученых занимается исследованиями в области оптимизации запросов. Список наиболее популярных публикаций будет приведен ниже.

В области разработок автоматизированных систем формирования нагрузки кафедры есть несколько разработок и публикаций Российских авторов. В качестве примера можно привести лабораторию математического моделирования и информационных систем (ММИС). Данная лаборатория занимается разработкой программного обеспечения для автоматизации учебного процесса высших учебных заведений. Была разработана автоматизированная система «Нагрузка ВУЗа», которая обеспечивает комплексный подход к формированию и распределению учебной нагрузки [9].

Публикация Гаврилец Е.З., Медведева О.А. Автоматизированная система формирования учебных планов и распределения учебной нагрузки преподавателей кафедры вуза. В данной статье описаны основные функции и возможности разработанной системы [10].

Публикация Каюгина С.М. Автоматизированная система расчета и распределения учебной нагрузки преподавателей кафедры вуза на базе платформы «1С». Статья посвящена решению вопроса автоматизации расчёта объёма учебной нагрузки и её распределения между преподавателями кафедры ВУЗа [11].

Публикация Зверев Д. Л. Оптимизация потоков простых SQL-запросов. В работе рассмотрены вопросы синтеза сложных запросов из множества простых [3].

3.3 Обзор локальных источников

Студентов, которые в рамках ДонНТУ занимались разработками в области автоматизации процесса формирования нагрузки на кафедру найдено не было, однако есть студенты, которые занимались исследованиями в области оптимизации запросов.

Работа магистра ДонНТУ Заславского В.А. Система оптимизации клиентских запросов к серверам распределённой базы данных. В работе идет речь о применении различных методов оптимизации запросов в частности, муравьиный алгоритм [12].

Работа магистра ДонНТУ Стародубцева М.В. Исследование методов доступа к данным MS SQL Server. В работе проводится исследование существующих провайдеров данным БД MS SQL Server на скорость доступа к записям таблиц [13].

Работа магистра ДонНТУ Бабич К.К. Оптимизации для высоконагруженных реляционных БД и альтернативные решения. В работе идет речь о создании высоконагруженной веб-системы и применении оптимизации реляционных баз данных, для решения задачи множественного доступа и высокой посещаемости [14].

4 — АРМ «Нагрузка по кафедре»

Основополагающим элементом в формировании учебного процесса в семестре после разработки учебных планов является формирование нагрузки по кафедрам (рис.1). Реализовав автоматизацию данной проблемы, в дальнейшем можно будет автоматизировать задачи: «расчет нагрузки по преподавателям», «журнал учета выполненных работ преподавателя», а также решить весьма важную задачу автоматического составления расписания занятий по ВУЗу.

Схема формирования учебного процесса на семестр

Рисунок 1. Схема формирования учебного процесса на семестр.

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

4.1 Исследование процесса формирования нагрузки в настоящее время

В настоящее время, каждый факультет, формирует нагрузку на семестр только в рамках своего факультета на базе информации собственных учебных планов в локальной БД. Итоговый документ с нагрузкой по кафедрам в формате EXCEL сохраняется на центральный сервер в папку «Нагрузка». Потом, каждая кафедра вручную из отдельных файлов с нагрузкой по факультетам, составляет документ с общей нагрузкой по кафедре и производит его редактирование, согласно методике от Учебного отдела ВУЗа (рис. 2). Проектируемая программа должна минимизировать работу кафедры по формированию сводной нагрузки и автоматизировать данный процесс.

Процесс формирования нагрузки на кафедру в настоящее время

Рисунок 2. Процесс формирования нагрузки на кафедру в настоящее время
(анимация: 6 кадров, 5 циклов повторения, 72 килобайт)

4.2 Набор необходимых функций разрабатываемого приложения

Установлено, что программа должна включать в себя следующие функции:

1) Авторизация и определение программной роли пользователя и связанных с ней прав доступа и набора функций;

2) Выборка необходимых дисциплин в целом по ВУЗу по каждой кафедре из сборника учебных планов, хранящихся на Центральном сервере, согласно заданным параметрам (код кафедры, учебный год, семестр, и т.д.);

3) Выполнение функций объединения групп в потоки согласно установленных методик в вузе;

4) Расчет планируемого количества ставок по кафедре в зависимости от сформированной нагрузки;

5) Сохранение результатов работы в базе данных;

6) Визуализация нагрузки по кафедре в виде веб-приложения;

7) Формирование выходных отчетов по нагрузке кафедры;

Права пользователей и набор доступных функций программы будут инициализироваться в момент его авторизации при старте программы и определяться по присвоенной логину программной роли, закрепленной администратором системы. Зная необходимый набор функций, которыми должен обладать разрабатываемый продукт, можно построить схему процесса автоматизированного формирования нагрузки (рис.3).

Схема процесса автоматизированного формирования нагрузки на кафедру при помощи разрабатываемого приложения

Рисунок 3 — Схема процесса автоматизированного формирования нагрузки на кафедру при помощи разрабатываемого приложения.

4.3 Выбор языка программирования, среды разработки и базы данных для реализуемого проекта

Поскольку разработка будет являться частью действующей АСУ ВУЗа, то в качестве базы данных будет использоваться — Microsoft SQL Server 2012. Desktop версию программы целесообразно разрабатывать на языке программирования C#, так как компания Microsoft предоставляет удобный инструмент и среду для разработки приложений на данном языке. Также, язык C# легко связать с используемой базой данных, не прибегая к подключению сторонних продуктов или библиотек.

5 — Лексическая оптимизация запросов

5.1 Исследование работы стандартного оптимизатора на примере MS SQL Server

Оптимизатор [1] — подкомпонент системы управления базой данных, который принимает входной аргумент в виде текста запроса и рассматривает возможные стратегии исполнения запроса, после чего выбирает из них наиболее эффективную. Выбранная стратегия и будет планом исполнения запроса. Оптимизатор принимает решение, учитывая такие факторы, как размер таблиц, из которых проводится выборка, существующие в таблицах индексы и всевозможные логические операторы (AND, OR, NOT), используемые в предложении WHERE.

Основной задачей оптимизатора является выборка наиболее эффективного плана выполнения запроса. Эта задача разбивается на 4 основных этапа, которые представлены на рисунке 4.

1) Синтаксический разбор(parsing). При выполнении синтаксического анализа, проверяется синтаксис запроса и запрос преобразовывается в дерево. После этого, выполняется проверка всех объектов базы данных, на которые ссылается запрос. (Например, проверка наличия в базе данных столбцов, указанных в запросе). После завершения работы создается окончательное дерево запроса.

2) Компиляция запроса (query compilation). На этом этапе дерево запроса компилируется оптимизатором.

3) Оптимизация запроса (query optimization). Оптимизатор в качестве входных параметров на данном этапе принимает скомпилированное дерево запроса и исследует различные стратегии обращения к данным, прежде чем решить, как обрабатывать данный запрос. Чтобы отыскать оптимальный план выполнения запроса, оптимизатор сначала выполняет анализ запроса, в процессе которого ищет аргументы поиска и операции соединения. Затем оптимизатор решает, какие индексы использовать. Далее, если в запросе есть операции соединения, оптимизатор выбирает методы соединения и метод обработки.

4) Выполнение запроса (query execution). Созданный план выполнения сохраняется как основной и затем выполняется.

Основные этапы обработки запроса

Рисунок 4. Основные этапы обработки запроса.

5.2 Изучение и применение основных методов лексической оптимизации запросов

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

Лексическая оптимизация может устранять неоптимальности запроса тремя различными способами [4]:

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

2) Усовершенствование — действие, при котором в некотором роде усложняется структура запроса, но ведет к оптимизации его выполнения.

3) Преобразование запроса — изменение запроса, не относящееся ни к сокращениям, ни к усовершенствованиям запроса, и играющее роль, служебную по отношению к иным формам оптимизации запроса, например, стандартизация формы представления запроса.

5.2.1. Лексическая оптимизация путем сокращения запросов

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

Основные идеи лексической оптимизации путем сокращения запросов сводятся к следующим:

• Исключение избыточных операций;

• Упрощение выражений, использующих пустые отношения и тривиальные условия;

• Вынос общих выражений «за скобки».

5.2.2. Лексическая оптимизация путем усовершенствования запросов

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

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

Перезапись исходного запроса с использованием этих фильтров включает следующие основные этапы:

• анализ и поиск неоптимальных связей в рамках реализации запроса;

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

5.2.3. Лексическая оптимизация путем преобразования запросов

Критерием классификации алгоритма как относящегося к числу алгоритмов простого преобразования является его функциональное предназначение. Если итогом работы некоторого алгоритма должно стать обретение запросом более оптимальной формы с точки зрения того или иного критерия (например, числа условий в ограничении), то алгоритм может быть отнесен к числу алгоритмов сокращения или усовершенствования. Если же алгоритм, преобразует запрос к иному виду, к примеру, меняя порядок операций, то в данном случае речь идет о простом преобразовании запроса.

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

Выводы

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

При исследовании стандартного оптимизатора на примере Microsoft SQL Server были выявлены основные особенности и принципы его работы.

Также были проанализированы существующие технологии автоматизации учебного процесса, выявлены задачи, которые необходимо реализовать с целью дальнейшего развития АСУ ВУЗа, выбраны база данных и среда разработки, при помощи которых будет реализован проект.

Список источников

1. Microsoft SQL Server 2012. Руководство для начинающих: Пер. с англ. — СПб.:БХВ-Петербург, 2013, - 816 с.: ил.

2. Ionnidis Y. E. Query Optimization // The Computer Science and Engineering Handbook. Boca Raton: CRC Press, 1996. Pp. 1038-1054.

3. Зверев Д. Л. Оптимизация потоков простых SQL-запросов: Диссертация кандидата технических наук: 05.13.11. Санкт-Петербург: Санкт-Петербургский Государственный Университет Аэрокосмического Приборостроения, 2005. 169 сс.

4. Обзор развития методов лексической оптимизации запросов. Труды Института системного программирования РАН Том 23. 2012 г. Стр. 195-214.

5. Jarke M., Koch J. Query Optimization in Database Systems // ACM Computing Surveys (CSUR), 1984. March, Volume 16, Issue 2. Pp. 111-152.

6. Chaudhari S. An Overview of Query Optimization in Relational Systems // Proceedings of the seventeenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems. New York: SIGMOD, 1998. Pp. 34-43.

7. Graefe G. Query Evaluation Techniques for Large Databases // ACM Computing Surveys, 1993. Volume 25, Issue 2. P. 73-169.

8. Ozsu M. N., Valduriez P. Principles of Distributed Database Systems. Second Edition. New Jersey: Prentice Hall International, 1999. 666 pp.

9. Автоматизированная система «Нагрузка ВУЗа» [Электронный ресурс] // URL: http://www.mmis.ru/Default.aspx?tabid=170 (дата обращения: 03.05.2015).

10. Гаврилец Е.З., Медведева О.А. АВТОМАТИЗИРОВАННАЯ СИСТЕМА ФОРМИРОВАНИЯ УЧЕБНЫХ ПЛАНОВ И РАСПРЕДЕЛЕНИЯ УЧЕБНОЙ НАГРУЗКИ ПРЕПОДАВАТЕЛЕЙ КАФЕДРЫ ВУЗА // Современные наукоемкие технологии. — 2007. — № 2. — С. 40-41;

11. Каюгина С.М. Автоматизированная система расчета и распределения учебной нагрузки преподавателей кафедры вуза на базе платформы «1С» [Электронный ресурс] // Современные научные исследования и инновации. 2015. № 11, URL: http://web.snauka.ru/issues/2015/11/58943 (дата обращения: 03.05.2015).

12. Заславский В.А. Система оптимизации клиентских запросов к серверам распределённой базы данных. [Электронный ресурс] // Портал Магистров ДонНТУ, 2011г. URL: http://masters.donntu.ru/2011/fknt/zaslavskiy/ (дата обращения: 08.05.2015).

13. Стародубцев М.В. Исследование методов доступа к данным MS SQL Server. [Электронный ресурс] // Портал Магистров ДонНТУ, 2008г. URL: http://masters.donntu.ru/2008/fvti/starodubtsev/masterwork/index.htm (дата обращения: 08.05.2015).

14. Бабич К.К. Оптимизации для высоконагруженных реляционных БД и альтернативные решения. [Электронный ресурс] // Портал Магистров ДонНТУ, 2013г. URL: http://masters.donntu.ru/2013/fknt/babich/index.htm (дата обращения: 08.05.2015).

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2017 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.