Реализация метода построения процедуры вставки данных в структурно-независимых базах данных
А.С. Грищенко, А.В. Егоров Южный федеральный университет, Таганрог
Аннотация: В работе разрабатывается методика построения эффективных процедур вставки данных в структурно-независимые базы данных, использующая деятельностный подход. Суть данной методики заключается в представлении процедуры в виде механизма действий, позволяющего раскрыть её семантику, тем самым минимизировав количество одинаковых по смыслу характеристик. Использование методики построения процедур вставки данных в структурно-независимые базы данных, а также применение однородной по структуре структурно-независимой базы данных NoSQL СУБД, позволило значительно повысить производительность, о чем можно судить по проведенному в работе вычислительному эксперименту.
Ключевые слова: процедура вставки данных, структурно-независимая база данных, деятельностный подход, методика, механизм действия, семантика, эксперимент, производительность.
Введение
В настоящее время существует класс баз данных (БД) называемый структурно-независимые базы данных (СНБД) [1], такие БД позволяют проектировать информационные системы (ИС) с изменяющейся структурой -конфигурируемые ИС: Magento, 1С-Битрикс [2], гидроакустические информационные системы с использованием конфигурируемого программного каркаса [3] и т.д. Их использование, в отличие от реляционных баз данных, дает пользователю возможность самостоятельно менять как структуру приложения, так и структуру данных без постоянного привлечения технических специалистов, что позволяет хранилищу данных соответствовать динамически изменяющимся требованиям.
Используемые в современных СНБД методы манипулирования данными работают в основном на базе реляционных технологий. Было проведено исследование, согласно которому был сделан вывод о том, что структура процесса построения процедур манипулирования данными в СНБД не является однородной [4], это связано с эмпирическим характером их
создания. Специалисты разработчики формируют цель процедуры используя действия, далее применяют объекты при создании процедуры и получают действия в полученном результате - коде процедуры. Это приводит к возникновению ошибок в коде процедуры и низкому быстродействию процедур [5 - 6].
Целью данной работы является реализация метода, описанного в [7]. Метод должен позволить строить эффективные процедуры вставки данных в СНБД за счет устранения существующих недостатков, связанных с неоднородностью процесса построения и, как следствие, с производительностью самих процедур.
Реализация метода построения процедур вставки данных с использованием деятельностного подхода
Реализуемый метод заключается в раскрытии семантики (смысла) существующей процедуры вставки данных в СНБД, производительность которой требуется повысить; поиске одинаковых по смыслу характеристик в ней, отвечающих за описание объекта реального мира в СНБД; минимизации характеристик и построении нового алгоритма процедуры; переходе от алгоритма к программному коду процедуры вставки данных в СНБД. Полученный алгоритм должен обладать достаточным уровнем абстракции, чтобы с его помощью строить новые процедуры вставки данных в конкретную СНБД.
В нашей работе для раскрытия смыслов характеристик существующих процедур манипулирования данными в СНБД будет использоваться деятельностный подход. Финский ученый Mikko Korpela в своей работе [8] применяет его для анализа бизнес-процессов в процессе разработки информационных систем. Однако, о каких-либо практических результатах в области построения программного кода с использованием деятельностного подхода в работах Mikko Korpela не говорится.
Суть деятельностного подхода заключается в представлении объекта исследования (раскрытии его смысла) в виде структуры действия. Такая необходимость обусловлена существующей в процессе построения процедур манипулирования данных неоднородностью, которая описана далее. Процесс построения начинается с постановки цели, которая определяет конкретную задачу манипулирования данными, выполняемую процедурой. Примером цели может служить следующая формулировка: «Добавить к сущности Монитор новую запись: Название модели - 'S1234', Диагональ -'24', Цена -'15000', Производитель - 'Sony'». Результатом процесса построения процедуры манипулирования данными должен стать программный код процедуры, удовлетворяющий поставленной цели. Эти две составляющие процесса построения представлены в виде действия. Однако, само построение процедуры выполняется разработчиком эмпирически и не представляет собой действие. В процессе создания процедуры манипулирования данными разработчик концентрируется на объекте -процедуре - он представляет её образ, и на объектах из которых она состоит: оператор манипулирования данными; объект; характеристика объекта; значения характеристики объекта; местоположение в БД.
Такое, используемое разработчиком, представление можно условно назвать «объектным» (не путать с объектно-ориентированным программированием). При переходе от цели к процессу построения и от процесса построения к программному коду возникает семантический разрыв, то есть возникают неоднородности при переходе «действие-объект-действие», вследствие чего возникают ошибки, дополнительные преобразования и снижается производительность. В качестве инструмента для исследования процессов манипулирования данными в СНБД предлагалось создавать механизмы действий [9, 10]. Они должны представлять собой реализацию правил через взаимодействие набора
характеристик (элементов, функций, инструментов и результатов). Таким образом, метод построения и сами процедуры манипулирования данными в качестве своих составляющих будут использовать не объекты, а механизмы действий по созданию объектов.
Сформулируем методику, использующую деятельностный подход и позволяющую реализовать метод построения процедур вставки данных в СНБД.
1. Представление объекта исследования - процедуры вставки данных в СНБД - в виде действия.
2. Каждую характеристику объекта исследования представить в форме единичных действий.
3. Определить все возможные отношения между этими действиями.
4. Построить механизм процедуры вставки данных в СНБД, состоящий из единичных действий, соединенных по определенным отношениям.
5. Проанализировать механизм процедуры вставки данных в СНБД:
5.1. найти одинаковые по смыслу элементы, функции, инструменты, отвечающие за описание объекта реального мира в СНБД;
5.2. выявить закономерности, по которым можно было бы минимизировать количество вносимых характеристик, отвечающих за описание объекта реального мира в СНБД;
5.3. ввести характеристики, отвечающие за описание объекта реального мира в СНБД, с целью сократить их количество и сделать структуру более однородной.
6. Сформировать новые действия с использованием новых характеристик;
7. Сформировать новые отношения (если необходимо).
8. Построить новый механизм процедуры вставки данных в СНБД.
9. Проверить полученный механизм на однородность (на наличие элементов одинаковых по смыслу). В случае, если таковые присутствуют, повторить п. 5-8.
10. Перейти от механизма к программному коду процедуры вставки данных в СНБД.
Вычислительный эксперимент
Для эксперимента была спроектирована физическая структура реляционной БД, основанная на логической структуре, состоящей из трёх связанных сущностей. Затем, аналогичная ей, физическая структура с учетом особенностей СНБД.
Сформулируем план проведения вычислительного эксперимента: в БД необходимо вставлять в две связанные сущности от 1 до 10000 экземпляров сущностей; при этом, вставляя один экземпляр в сущность, создается пять экземпляров в связанной сущности. Вставляемые значения генерируются случайно. Для повышения точности результатов, каждый раз после вставки определенного количества записей, БД необходимо удалять и создавать заново, а СУБД перезапускать. Это связано с сохранением временных записей в кэше СУБД и табличном пространстве.
На рис. 1 (а) показан график производительности процедуры вставки в связку двух сущностей существующей СНБД процедуры и аналогичной ей реляционной. Зависимость от времени выполнения растет экспоненциально. Разница при вставке 10000 экземпляров - более чем в 400 раз.
Для обеспечения максимальной однородности создаваемой процедуры структуре самой СНБД была построена БД на основе нереляционной высокопроизводительной СУБД Redis. На рис. 1 (б) показан график производительности разработанной по методике СНБД процедуры вставки данных и аналогичную ей реляционную. По результатам эксперимента можно наблюдать, что использование методики построения процедур с
использованием деятельностного подхода, а также однородной структуре СНБД СУБД, позволило сократить время по вставке 10000 экземпляров сущностей более чем в 1300 раз. Наряду с этим, новая процедура показывает в 3 раза лучшее быстродействие даже по сравнению с аналогичной
реляционной процедурой.
В ре мв, м с 1300000 1600000 —' \"П цион нал вд, WIC ■ Суще ствуво щая проц еДУР а Eper.'F, г." с 4500 4000 —« Реля ЦП он нал ВД, мс Redis СНБД , мс
1200000 1000000 3000 2500
600000 1500
о 00 О Ю 5 честао 00 й Z500 5000 7500 10050
ш 50 100 :.оо юос Количество записей Z500 5000 7500 10t 1 5 10 50 1 Коли » 10 запис
а) б)
Рис. 1. - Графики производительности реляционной процедуры вставки данных и СНБД процедуры до (а) и после (б) использования методики
Заключение
В работе была сформирована методика построения эффективных процедур вставки данных в СНБД, использующая деятельностный подход, и основанная на методе построения изложенном в статье [7]. Суть данной методики заключается в представлении процедуры в виде механизма действий, состоящего из единичных действий, позволяющих раскрыть её семантику (смысл) и минимизировать количество одинаковых по смыслу характеристик. Использование методики построения процедур вставки данных в СНБД, а также применение NoSQL СУБД Redis, однородной структуре СНБД, позволило значительно повысить производительность, о чем можно судить по проведенному вычислительному эксперименту.
Формализация описанной методики позволит совершенствовать и затем строить новые процедуры вставки данных в СНБД, повышая их
быстродействие до уровня аналогичных реляционных запросов, а также автоматизировать процесс построения процедур в СНБД.
Благодарность
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 17-07-00105
Литература
1. Nadkarni P. An Introduction to Entity-Attribute-Value Design for Generic Clinical Study Data Management Systems // Center for Medical Informatics, Yale University Medical School. URL: med.yale.edu/.
2. Рогозов Ю.И., Дегтярев А.А. Оценка эффективности построения программных средств гидроакустических информационных систем с использованием конфигурируемого программного каркаса // Инженерный вестник Дона, 2013, №4. URL: ivdon.ru/ru/magazine/archive/n4y2013/1877
3. Прощаева А.А. Влияние ролевой модели доступа на производительность веб-систем на при внедрении 1 С-Битрикс // Инженерный вестник Дона, 2017, №3. URL: ivdon.ru/ru/magazine/archive/N3y2017/4364
4. Грищенко А. С. Исследование методов построения процедур манипулирования данными в структурно-независимых базах данных // Известия ЮФУ. Технические науки. - Таганрог: Изд-во ЮФУ, 2015. Выпуск № 11 (172), с. 149-157
5. Змеев О., Моисеев А. Сравнительный анализ некоторых методов O-R-преобразования // Вестник Томского государственного университета. Томск: Изд-во ТГУ 2003, № 280, с. 263-271
6. Гмарь Д.В., Игнатова Ю.А., Цуранов Э.В., Шахгельдян К.И. Методы работы с вертикальной моделью данных // Информационные технологии и вычислительные системы №2. М.: ФИЦ ИУ РАН 2015. с. 1-28
7. Rogozov Y., Grishchenko A., Sviridov A. Method of creating procedures for inserting data in structure-independent databases based on activity driven approach // Proceedings of 17th International Multidisciplinary Scientific Geoconference "Informatics, Geoinformatics and remote sensing". Vol.21. Albena, Bulgaria. 2017. pp. 425-432
8. Korpela M., Mursu A., Soriyan A., Eerola A., Hakkinen H., Toivanen M. Information Systems Research and Development by Activity Analysis and Development: Dead Horse or the Next Wave? // IFIP Advances in Information and Communication Technology, January, 2004. pp. 453-471
9. Рогозов Ю. И. Понятие метасистемы как системы // Промышленные АСУ и контроллеры. М.: Изд-во Научтехлитиздат. 2013. № 2. с. 39-47
10. Юдин Г. Э. Системный подход и принцип деятельности. - М.: Наука, 1978. - 391 с.
References
1. Nadkarni P. Center for Medical Informatics, Yale University Medical School. URL: med.yale.edu
2. Rogozov Yu.I., Degtyarev A.A. Inzenernyj vestnik Dona (Rus), 2013, No 4. URL: ivdon.ru/ru/magazine/archive/n4y2013/1877
3. Proshchaeva A.A. Inzenernyj vestnik Dona (Rus), 2017, No 3. URL: ivdon.ru/ru/magazine/archive/N3y2017/4364
4. Grishchenko A.S. Izvestiya YuFU. Tekhnicheskie nauki. Taganrog: Izd-vo YuFU, 2015. Vypusk No 11 (172), pp. 149-157
5. Zmeev O., Moiseev A. Vestnik Tomskogo gosudarstvennogo universiteta. Tomsk: Izd-vo TGU 2003, No 280, pp. 263-271
6. Gmar' D.V., Ignatova Yu.A., Tsuranov E.V., Shakhgel'dyan K.I. Informatsionnye tekhnologii i vychislitel'nye sistemy. №2. M.: FITs IU RAN 2015. pp. 1-28
7. Rogozov Y., Grishchenko A., Sviridov A. Proceedings of 17th International Multidisciplinary Scientific Geoconference "Informatics, Geoinformatics and remote sensing". Vol.21. Albena, Bulgaria. 2017. pp. 425-432
8. Korpela M., Mursu A., Soriyan A., Eerola A., Häkkinen H., Toivanen M. IFIP Advances in Information and Communication Technology, January, 2004. pp. 453-471
9. Rogozov Yu. I. Promyshlennye ASU i kontrollery [Industrial Automatic Control Systems and Controllers]. M.: Izd-vo Nauchtekhlitizdat. 2013. No 2. p. 3947
10. Yudin G. E. Sistemnyy podkhod i printsip deyatel'nosti [System approach and activity principle]. M.: Nauka, 1978. р. 391.