УДК 004.043
DOI 10.21685/2072-3059-2018-1-3
И. В. Бельченко, Р.А. Дьяченко
МЕТОДИКА ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ ИНФОРМАЦИОННОЙ СИСТЕМЫ ЗА СЧЕТ ОПТИМАЛЬНОЙ РЕСТРУКТУРИЗАЦИИ ДАННЫХ
Аннотация.
Актуальность и цели. Производительность информационной системы - это один из главных показателей ее эффективности. Большинство существующих информационных систем используют реляционные базы данных для хранения информации. Проектирование базы данных для информационной системы заключается в последовательной разработке концептуальной, логической и физической модели. Эта последовательность проектирования доказала свою эффективность в случае, когда требования к базе данных, продиктованные предметной областью, строго формализованы, нагрузка на сервер баз данных прогнозируема. Но существуют случаи, когда информационных систем, работающих с базой данных, несколько. Каждая из них имеет свои требования, иногда противоречивые, к информации, которая должна быть предоставлена базой данных за минимально возможное время. В таких случаях задачи прогнозирования нагрузки, выделения наиболее ресурсоемких запросов требуют применения методов системного анализа. Целью работы является теоретическое обоснование методики повышения производительности информационной системы за счет оптимальной реструктуризации данных.
Материалы и методы. Получение оптимального разбиения исследуемой табличной структуры на дочерние начинается с системного анализа способов хранения данных системой управления базой данных (СУБД). Для формализации предметной области выделены параметры и множества, влияющие на скорость обработки запросов на чтение информации к исследуемой таблице базы данных. Рассмотрен существующий подход к хранению строк данных таблиц в виде блоков на дисковом накопителе. Сформулирована задача оптимизации количества блоков данных, необходимых для обработки группы запросов на чтение информации. Предложена целевая функция, введены структурные ограничения. Предложен метод поиска субоптимального решения. Описан алгоритм методики.
Выводы. Предложен подход к нахождению субоптимального разбиения исследуемой табличной структуры на дочерние. Предложенная методика особенно актуальна для таблиц баз данных, содержащих большой набор строк. Полученные результаты могут быть использованы при проектировании отечественных СУБД. Дальнейшие исследования в этой области связаны с разработкой методик поиска оптимальных разбиений табличных структур баз данных без необходимости введения ограничений на максимально возможное число дочерних таблиц.
Ключевые слова: система поддержки принятия решений, оптимизация, структуры данных, базы данных, системный анализ.
I. V. Bel'chenko, R A. D'yachenko
METHODOLOGY OF IMPROVING THE PRODUCTIVITY OF THE INFORMATION SYSTEM THROUGH THE OPTIMUM DATA RESTRUCTURING
Abstract.
Backgrounds. The performance of the information system is one of the main indicators of its effectiveness. Most existing information systems and software complexes use relational databases to store information. Designing a database (DB) for an information system consists in the sequential development of a conceptual, logical and physical model. This design sequence has proven effective when the database requirements dictated by the subject area are strictly formalized, the load on the database server is predictable. But there are cases when the information systems working with the database are several. Each of them has its own information requirements, sometimes contradictory, which must be provided by the database in the shortest possible time. In such cases, the task of forecasting the load, allocating the most resource-intensive queries requires the use of methods of system analysis. The purpose of the work is the theoretical justification of the methodology for increasing the productivity of the information system through optimal data restructuring.
Materials and methods. Getting the optimal partition of the studied table structure into children begins with a system analysis of the methods of data storage by the database management system (DBMS). To formalize the domain, the parameters and sets that affect the processing speed of requests for reading information to the database table being researched are highlighted. An existing approach to storing rows of these tables as blocks on a disk drive is considered. The problem of optimization of the number of data blocks necessary for processing a group of requests for reading information is formulated. The objective function is proposed, structural limitations are introduced. A method for finding a suboptimal solution is proposed. The algorithm of the technique is described.
Conclusions. An approach is proposed for finding a suboptimal partition of the investigated table structure into its children. The proposed technique is especially relevant for database tables containing a large set of strings. The obtained results can be used in the design of domestic DBMS. Further research in this area is related to the development of techniques for searching for optimal partitioning of database tables without the need to introduce restrictions on the maximum possible number of child tables.
Key words: decision support system, optimization, data structures, databases, system analysis.
Введение
Большинство многопользовательских информационных web-систем выделяются такими требованиями, как оперативное взаимодействие с пользователем [1]. Эффективное исполнение данного требования зависит не только от аппаратной составляющей, включающей в себя серверное оборудование и линии связи, но и от реализации программных компонентов, среди которых программное приложение, реализованное с применением web-технологий, и система управления базой данных (СУБД). В статье рассмотрена методика повышения производительности информационной системы за счет увеличения скорости выполнения запросов на чтение информации базы данных. От структуры данных, способах ее физического размещения на жестких дисках зависит количество обращений к дисковым накопителям, которые сопровождаются соответствующими прерываниями и задержками по времени [2].
Важным понятием при рассмотрении вопроса физической организации баз данных является понятие блока. Блок - это минимальный адресуемый элемент внешней памяти, с помощью которого осуществляется обмен ин-
формацией между оперативной и внешней памятью. Запись и чтение блоков осуществляется через буферную часть оперативной памяти. Для организации каждого файла базы данных, в зависимости от его размера во внешней памяти, выделяется от одного до N блоков, где размещаются записи. В одном блоке могут разместиться все записи или в нескольких блоках - одна запись, либо в одном блоке - одна запись; от этого будет зависеть время считывания и записи элементов файла. Записи в блоках размещаются плотно, без промежутков, последовательно одна за другой. В блоке часть памяти отводится под служебную информацию: относительный адрес свободных участков памяти, указатели на следующий блок и т.д. Для хранения поступающих данных, которые должны размещаться в одном блоке, заполненном уже полностью, выделяется дополнительный блок памяти в области переполнения записи, организованной в виде одного блока, где записи связываются указателями в одну цепь.
Таким образом, на скорость поиска влияют: объем блока в байтах, объем файла, количество записей в блоке файла, количество записей в блоке индекса, количество блоков в файле, доля резервной части блока, число полей в записи, размер записи в байтах [2].
1. Постановка задачи вертикальной реструктуризации табличных структур данных
Процесс построения оптимальной модели данных информационной системы включает оптимальное распределение таблиц базы данных по блокам на дисковом накопителе. Основным критерием оптимизации модели данных информационной системы является минимальный размер строки таблицы реляционной базы данных, позволяющий в одном блоке хранить больше данных и, как следствие, минимизировать количество операций чтения блоков данных с жесткого диска при выполнении запросов к базе данных. Это достигается за счет уменьшения объема данных, побочно участвующих в запросе [3]. Традиционная схема процесса считывания блоков данных для выполнения запроса на считывание данных представлена на рис. 1.
В рамках методики предлагается разделить таблицы базы данных на несколько сущностей, связанных отношением один к одному. В соответствии с принципами блочного хранения данных в СУБД каждая таблица будет храниться в отдельном наборе блоков. При выполнении запроса на чтение информации СУБД считывает блоки данных с жесткого диска в оперативную память каждой таблицы, атрибуты которой участвуют в запросе. Схема процесса считывания блока данных для выполнения запроса на считывание данных с использованием методики разделения таблиц представлена на рис. 2.
Задача повышения производительности информационной системы сводится к поиску оптимального разделения табличных структур базы данных с учетом конкретной группы запросов на чтение информации, выявленной статистически в рамках жизненного цикла БД.
2. Оптимизация табличных структур данных информационной системы
Для формализации задачи рассмотрим множества и параметры, влияющие на скорость обработки запросов на чтение информации к исследуемой таблице базы данных.
Рис. 1. Традиционная схема процесса считывания блоков данных для выполнения запроса на считывание данных
1. Целочисленный параметр ТБ, равный количеству атрибутов в исследуемой таблице.
2. Вектор типов данных ВБТ = {¿Ы^г ¡¿Ы = 1,пёЬ^ , которые поддерживаются конкретной выбранной СУБД. Элемент вектора - занимаемый элементом типа размер данных в байтах памяти.
3. Набор атрибутов (столбцов таблицы) ТА, заданный бинарной матрицей, элемент которой tajta равен единице, если столбец Ш таблицы
имеет тип jta , Ш = 1,...,ТБ, jta = 1,...,ndbt.
4. Множество, представляющее группу запросов 2 = {дд ¡д = 1,пд] на
чтение информации из таблицы базы данных, элемент множества - кортеж из двух элементов дд = , 2Ад ] , где Б¥<щ числовой параметр, равный
частоте появления запроса за выбранный период времени, QAiq = {qaiqa iqa = 1, TS} - бинарный вектор, размерность которого равна количеству атрибутов таблицы TS; qa^qa = 1, если атрибут таблицы TA участвует в запросе, и 0 в противном случае; щ - количество запросов в статистической выборке, выявленной в рамках жизненного цикла БД.
Рис. 2. Схема процесса считывания блока данных для выполнения запроса на считывание данных с использованием методики разделения таблиц
5. Множество индексов, характеризующихся набором полей таблицы, по которым построен индекс Ш = {тцт Ип = 1, пш} . Элемент множества
Щт = {Щт рп jin = 1,ТБ] - бинарный вектор, размерность которого равна количеству атрибутов таблицы ТБ; Щщ ^п = 1, если атрибут jin таблицы ТА участвует в индексе Щщ , и 0 в противном случае.
6. Хранимые процедуры и функции РЕ = {р/гр/ грf = 1, пр/], характеризующиеся набором полей, используемых в теле хранимой процедуры или функции. Элемент множества р/гр/ = {Р/гр/ jpf jpf = 1,ТБ] - бинарный вектор, размерность которого равна количеству атрибутов таблицы ТБ, р/р/ ]'р/ = 1, если атрибут ]'р/ таблицы ТА участвует в теле хранимой процедуры или функции р/р/ , и 0 в противном случае.
7. Множество триггеров базы данных ТО = ^^ itg = 1,п^} , характеризующихся набором полей таблицы, используемых в теле триггера. Элемент множества tgitg = = 1,ТБ] - бинарный вектор, размерность кото-
рого равна количеству атрибутов таблицы ТБ; tgitg ^ = 1, если атрибут jtg таблицы ТА участвует в теле триггера tgitg , и 0 в противном случае.
3. Анализ влияния количества физических блоков данных, используемых таблицей базы данных, на общее время выполнения группы запросов к ней
Множество запросов 2 к рассматриваемой таблице обрабатывается СУБД за время Т(2,ТА,ВБТ). Временные затраты Т(2,ТА,ВБТ) можно представить в виде суммы временных затрат на чтение блоков данных таблиц Тн (Я,ТА, ВБТ), участвующих в запросах 2 , и остальных временных затрат Т0 (2, ТА, ВБТ), к которым относятся временные затраты на выполнение плана обработки запроса, на передачу информации и т.д.:
Т (2, ТА, ВБТ) = Тн (2, ТА, ВБТ) + Т0 (2,ТА, ВБТ).
В рамках методики предлагается уменьшить слагаемое, влияющее на общее время выполнения запроса Тн (2,ТА, ВБТ). Временные затраты Тн (2,ТА, ВБТ) в общем виде зависят от количества операций чтения блоков данных таблиц с жесткого диска. Пусть временная задержка, связанная с считыванием одного блока данных, равна Ть, тогда:
Th (в) =
f nq ^
ъ
\ щ
B (q ,TA, BBT)
Tb
где B(qq,TA,BBT) - число информационных блоков, которые необходимо
считать с жесткого диска в кэш СУБД для дальнейшего выполнения запроса qq к таблице, заданной бинарной матрицей TA. Кэш СУБД находится
в оперативной памяти вычислительного устройства; ^ - временная задержка, связанная со считыванием одного блока данных.
Функция B , TA, DBT) вычисляется как отношение:
, , RC ■ ^ ,TA,DBT)
B ((, TA, DBT) =---,
} DB
где RC - количество строк в рассматриваемой таблице;
RS,TA,DBT) = RSS(qiq ,TA,DBT) + RST(qiq,TA,DBT),
RS (qiq ,TA, DBT) - величина, характеризующая дисковое пространство, занимаемое одной строкой таблицы в байтах; RSS,TA,DBT) - количество
памяти, занимаемое служебными отметками СУБД для строки, считываемое при выполнении запроса qiq; RST,TA,DBT) - количество памяти, занимаемое атрибутами таблицы в строке, считываемое при выполнении запроса qiq; DB - фиксированный размер блока данных выбранной СУБД. В большинстве СУБД он равен 8 Кб.
Параметры RC и DB остаются неизменными.
Так как временную задержку T, связанную со считыванием одного блока данных, допускается считать постоянной величиной, на сумму временных затрат на чтение блоков данных таблицы TA - ^ (Q,TA, DBT) влияет количество блоков, необходимое для считывания, которое вычисляется как функция F (^А, DBT):
щ
F (Q,TA, DBT ) = (qiq, TA, DBT).
iq
Подставим в F (Q, TA, DBT), формулу функции B (щ, TA, DBT).
Функция, определяющая количество блоков, необходимых для считывания с жесткого диска в оперативную память при выполнении множества запросов Q к рассматриваемой таблице TA, имеет вид
F (Q, TA, DBT ) = £
iq
nq f RC * RS(qiq, TA, DBT) ^
DB
4. Методика уменьшения количества физических блоков данных, используемых СУБД для выполнения группы запросов к таблице, за счет ее оптимального разделения на дочерние таблицы
В рамках методики предлагается разделить рассматриваемую таблицу на NB е [1; TS] дочерних таблиц, связанных с родительской отношением один
к одному, 1:1.
Введем следующую переменную:
[1, если у -атрибут необходимо выделить в 7-ю таблицу, 0 в противном случае.
xij
Переменная представляют собой бинарную матрицу для таблицы реляционной базы данных размерностью TS X TS , где TS - количество атрибутов таблицы. Строки матрицы соответствуют таблицам, на которые разбивается родительская таблица, а столбцы соответствуют их атрибутам. Графический пример переменной, соответствующей разбиению таблицы на три дочерних, представлен на рис. 3.
Рис. 3. Графический пример переменной, соответствующей разбиению таблицы на три дочерних
Количество блоков ВМ (, RC, DB, DBT, ТА, X), которое необходимо считать с жесткого диска для выполнения множества запросов Q к таблице ТА, вычисляется как функция, равная сумме блоков, которые необходимо считать с жесткого диска для выполнения множества запросов Q к каждой из дочерних таблиц. Максимальное количество дочерних таблиц равно числу атрибутов родительской таблицы ТА и равно NB :
nq
= Z
iq=l
BM (Q, RC, DB, DBT, TA, X ) = RC ■ RSM(DBT,TA,Xx) • FQ(qiq,Xx)
DB
+...
nq
...+ S
iq=l
RC ■ RSM(DBT,TA,X^ ) ■ FQ{qiq,Xirs)
DB
+ ...
nq
■■■+ S
iq=l
RC ■ RSM (DBT, TA, Xtlb ) ■ FQ{qiq, XпЪ )
DB
где
' TS f ndbt ^ \
RSM (DBT,TA,Xirs ) = S x- ■ ■ irs, j S DBTidbt ■ TAj + RDS(DBT,TA,Xirs )
Vj V idbt /
F(qiq,Xirs )
TS
^ если Xirs )u ■ (qiq (QA))u > 0,
0 в противном случае, irs = 1,...,nb, j = 1,...,TS, idbt = 1,...,ndbt.
Параметры RC и DB являются постоянными; RSM - функция, характеризующая количество байт информации, занимаемое одной строкой дочерней таблицы irs ; RDS (DBT, TA, Xirs ) - функция, характеризующая дисковое
пространство, занимаемое служебными отметками СУБД в строке дочерней таблицы irs в байтах.
Следовательно, задача повышения производительности системы сводится к поиску такого разделения таблицы на дочерние, при котором сумма блоков, которые необходимо считать в КЭШ СУБД для выполнения множества запросов Q, минимальна.
Целевая функция:
min
S
lrs,j iq,irs где
fi TS
S
w
^irs, j
f ndbt
S dbtidbtta
V idbt
j
+ RDS (DBT,TA, xirs )
RCFQ(qiq,xirs )
//
DB
TS
\ если Xjrs )u •
(4iq (QA))u > 0,
u
0 в противном случае, irs = 1,...,nb, j = 1,...,TS, idbt = 1,...,ndbt.
F ( qiq, xirs ) "
При структурных ограничениях:
1. Каждый атрибут родительской таблицы может присутствовать только в одной дочерней таблице:
u
¿1 = 1' т1= 1' •••' ТБ, ¿1 = 1' •••> тб •
2. Атрибуты таблицы, используемые при построении индексов, должны принадлежать хотя бы одной дочерней таблице:
TS
У ix, ix = 1,...,| IN\: П
TS
К
xm2 ,i2 ' inix,i2 inix,i2
= 0,
Ш2 = 1, •.., ТБ, ¿2 = 1, •.., ТБ.
3. Атрибуты таблицы, используемые в теле хранимых процедур или функций, должны принадлежать хотя бы одной дочерней таблице:
TS
Урх, px = 1,...,|PF\: П
TS
"Z, ( xm3 ,г'з ' pfpx,iз pfpx,i3 )
= 0,
Шз = 1, •.., ТБ, ¿з = 1, •, ТБ.
4. Атрибуты таблицы, используемые в работе триггеров исследуемой таблицы, должны принадлежать хотя бы одной дочерней таблице:
TS
Vtx, tx = 1,.,|TG|: П
TS
ZI(xm4,i4 tgtx,i4 ~ tgtx,i4 )
= 0,
т4 = 1, •.., ТБ, /4 = 1, • .., ТБ.
5. Отношение количества физических блоков данных, необходимого для хранения данных рассматриваемой таблицы до применения к количеству блоков, необходимого для хранения данных в полученных после применения методики дочерних таблицах, не должно превышать заданного параметра ТБ1ХЕ, ТБЯЕ е (0;1]:
• RS (qia, TA, DBT)
TSIZE =
iq
liq>
DB
ff TS
z
w
J
f ndbt
irs, J
z dbtidbt • taj
idbt
\\
+ RDS(DBT,TA,xirs)
RC • FQ (q, xirs)
DB
//
5. Нахождение оптимального разделения таблицы на дочерние для выполнения группы запросов путем полного перебора множества допустимых решений
Целевая функция нелинейна, а также нелинейны ограничения. Переменная X - бинарная матрица размерностью ТБ • ТБ . Представим переменную в виде машинного слова длиной ТБ • ТБ . Следовательно, количество
ТБ ТБ
возможных комбинаций переменной определяется как 2 . Исходя из это-
го, задача обладает экспоненциальной сложностью и является ЛР-трудной. Система из N переменных, каждая из которых может принимать К возможных состояний, может иметь КЛ возможных состояний. Анализ такой системы требует обработки как минимум КЛ бит информации. Задача становится трансвычислительной, если КЛ > 1093. Данная задача становится трансвычислительной при количестве атрибутов ТО = 17, следовательно, отсутствуют способы решения методом полного перебора или грубой силы [4].
В статье представлен способ уменьшения количества возможных комбинаций переменной за счет ограничения максимально возможного числа дочерних таблиц, на которые производится разбиение. Для этого необходимо уменьшить число строк в бинарной матрице X . Это приведет к ограничению количества дочерних таблиц, на которые может быть разделена исследуемая таблица. Такой подход позволит найти субоптимальное разделение родительской таблицы ТА на дочерние для выполнения группы запросов 0 в рамках максимально возможного количества дочерних таблиц, и оптимальное для введенного ограничения на количество дочерних таблиц. Данный подход возможен, если в исследуемой таблице число атрибутов невелико. Это подходит для таблиц-справочников, которые описаны небольшим числом атрибутов.
6. Алгоритм методики повышения производительности информационной системы за счет оптимальной реструктуризации данных
Алгоритм применения методики состоит из следующих этапов:
- на первом этапе определяются множества, которые необходимы для дальнейшей оптимизации информационной системы;
- на втором этапе определяются необходимые параметры оптимизации информационной системы;
- на третьем этапе формализуется целевая функция минимизации;
- на четвертом этапе выявляются все структурные ограничения для целевой функции;
- на пятом этапе выполняется поиск субоптимального значения переменной на основе множеств параметров, ограничений и целевой функции оптимизации;
- на шестом этапе получаем оптимальную табличную структуру, повышающую производительность информационной системы.
Заключение
В результате проведенного исследования была сформулирована проблема повышения производительности информационной системы за счет реструктуризации табличных структур данных. Получено ее описание в теоретико-множественном представлении. Сформулирована целевая функция и ограничения. Предложен подход к нахождению субоптимального разбиения исследуемой табличной структуры на дочерние. Предложенная методика особенно актуальна для таблиц БД, содержащих большой набор строк. В таких табличных структурах обычно хранят данные транзакционные системы -системы обработки транзакций в реальном времени (ОЬТР) [5, 6].
Полученные результаты могут быть использованы при проектировании отечественных СУБД. Дальнейшие исследования в этой области связаны с разработкой методик поиска оптимальных разбиений табличных структур БД без необходимости введения ограничений на максимально возможное число дочерних таблиц.
Библиографический список
1. Богданова, А. В. Повышение качества образовательного процесса за счет внедрения системы «Электронное расписание» в учебной организации / А. В. Богданова, Р. А. Дьяченко, И. В. Бельченко // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета. -2016. - № 117. - С. 873-885.
2. Эмблер, С. В. Рефакторинг баз данных: эволюционное проектирование : пер. с англ. / Скотт В. Эмблер, Прамодкумар Дж. Садаладж. - М. : Вильямс, 2007. -672 с.
3. Тоу, Д. Настройка SQL. Для профессионалов / Д. Тоу. - СПб. : Питер, 2004. -333 с.
4. Чигаркина, Е. И. Базы данных : учеб. пособие / Е. И. Чигарина. - Самара : Изд-во СГАУ, 2015. - 208 с.
5. Atroshchenko, V. А. Development and research of statistical methods and optimization algorithms of search for solutions in intelligence automated systems / V. А. Atroshchenko, V. Ye. Belchenko, I. V. Belchenko, R. А. Dyachenko // International journal of pharmacy and technology. - 2016. - Vol. 8, № 2. - P. 14137-14149.
6. George, J. Klir. Facets of Systems Science / J. George. - N.Y., Springer, 1991. -664 с.
References
1. Bogdanova A. V., D'yachenko R. A., Bel'chenko I. V. Politematicheskiy setevoy el-ektronnyy nauchnyy zhurnal Kubanskogo gosudarstvennogo agrarnogo universiteta [Polytechnical network electronic scientific journal of Kuban State Agrarian University]. 2016, no. 117, pp. 873-885.
2. Embler S. V., Pramodkumar Dzh. Sadaladzh Refaktoring baz dannykh: evolyutsionnoe proektirovanie: per. s angl. [Database refactoring: evolutionary design: translated from English]. Moscow: Vil'yams, 2007, 672 p.
3. Tou D. Nastroyka SQL. Dlya professionalov [SQL configuration. For professionals]. Saint-Petersburg: Piter, 2004, 333 p.
4. Chigarkina E. I. Bazy dannykh: ucheb. posobie [Databases: scientific manuals]. Samara: Izd-vo SGAU, 2015, 208 p.
5. Atroshchenko V. A., Belchenko V. Ye., Belchenko I. V., Dyachenko R. A. International journal of pharmacy and technology. 2016, vol. 8, no. 2, pp. 14137-14149.
6. George J. Klir. Facets of Systems Science. New York, Springer, 1991, 664 p.
Бельченко Илья Владимирович
аспирант, Кубанский государственный технологический университет (Россия, г. Краснодар, ул. Московская, 2)
E-mail: [email protected]
Bel'chenko Il'ya Vladimirovich Postgraduate student, Kuban State Technological University (2 Moskovskaya street, Krasnodar, Russia)
Дьяченко Роман Александрович
доктор технических наук, доцент, директор института компьютерных систем и информационной безопасности, Кубанский государственный технологический университет (Россия, г. Краснодар, ул. Московская, 2)
E-mail: [email protected]
D'yachenko Roman Aleksandrovich Doctor of engineering sciences, associate professor, director of the Institute of Computer Systems and Information Security, Kuban State Technological University (2 Moskovskaya street, Krasnodar, Russia)
УДК 004.043 Бельченко, И. В.
Методика повышения производительности информационной системы за счет оптимальной реструктуризации данных / И. В. Бельченко, Р.А. Дьяченко // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2018. - № 1 (45). - С. 26-38. - Б01 10.21685/20723059-2018-1-3.