Черников Борис Васильевич - Национальный исследовательский университет «Высшая школа экономики», г. Москва; e-mail: [email protected]; 140008, Московская область, г. Люберцы, 3 почтовое отделение, 96 кв. 189; тел.: +79039614390; д.т.н.; старший научный сотрудник; доцент; профессор кафедры «Архитектура программных систем».
Chernikov Boris Vasil'evich - National Research University Higher School of Economics, Moscow; e-mail: [email protected]; 140008, Moskovskaya oblast, Lyubertsy, 3 post office, 96, sq. 189; phone: +79039614390; dr. of eng. sc.; senior research fellow; associate professor; professor of chair «Program systems architecture».
УДК 004.62
А.С. Грищенко
ПОДХОД К ПОВЫШЕНИЮ ПРОИЗВОДИТЕЛЬНОСТИ СТРУКТУРНОНЕЗАВИСИМОЙ БАЗЫ ДАННЫХ*
В ходе исследования предлагается подход, который решает проблему низкого быстродействия в структурно-независимой базе данных. Процессы создания пользовательской структуры и манипулирования данными в структурно-независимой базе данных являются динамическим переходом между состояниями. Для отображения перехода эти процессы предлагается представлять в виде механизмов. Были построены механизмы создания пользовательской структуры и манипулирования данными хорошо зарекомендовавших себя для решения определенных задач баз данных. В статье были представлены механизмы реляционной базы данных. Были сформулированы критерии на основе которых проводилась оценка механизмов. В ходе их анализа была выявлена связь между достижением максимальной производительности и наличием свойства взаимопроникновения. Предлагаемый подход заключается в том, чтобы представить процессы создания пользовательской структуры и манипулирования данными в структурно-независимой базе данных в виде механизмов и показать, что в них присутствует взаимопроникновение. Результатом статьи являются построенные, согласно критериям, новые механизмы для структурно-независимой базы данных.
Структурно-независимая база данных; производительность; механизм; взаимопроникновение.
A.S. Grishchenko
APPROACH TO IMPROVING STRUCTURE-INDEPENDENT DATABASE
PERFORMANCE
The work proposes an approach that solves the problem of low performance in structure-independent database. The processes of creating user’s structure and data manipulation in structure-independent database are dynamic transition between states. To display transition of these processes mechanisms are proposed. Creating user’s structure and data manipulation mechanisms of well-established databases to for specific tasks solving were created. The article presents the relational database mechanisms. Criteria on the basis of the evaluated mechanisms were formulated. During their analysis, the relation between high performance and interpenetration property was found. The proposed approach is to present in the form of mechanisms the processes of creating user’s structure and data manipulation in structure-independent database and show that interpenetration presents in them. The result of the article is the construction of new mechanisms for structure-independent database, which is built according to the criteria.
Structure-independent database; performance; mechanism; interpenetration.
* Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 12-07-00202-а.
Введение. В настоящее время существует класс статических баз данных [15]. К таким базам данных относится структурно-независимая база данных (СНБД) [6]. Эта база данных позволяет хранить разнородные данные и менять количество сущностей, а также их атрибутов без изменения ее физической структуры. В настоящий момент в качестве методов формирования пользовательской структуры и методов манипулирования данными в СНБД были использованы реляционные технологии. В результате вычислительного эксперимента в [7] была показана низкая производительность связки СНБД с реляционными методами манипулирования. Основной целью работы является выявление причин, влияющих на быстродействие СНБД, и поиск решений для его повышения.
Идея исследования. На этапе формирования пользовательской структуры и манипулирования данными происходят изменения структуры и данных, которые необходимо внести в базу данных. Эти изменения являются динамическими переходами из одного состояния данных в другое. Динамические переходы являются процессами, однако в настоящее время не существует методов отображения процессов. Для отображения структуры процесса, т.е. динамического перехода, Щед-ровицкий в [8] предлагает использовать механизмы, но саму структуру механизма он не приводит. Следовательно, необходимо создавать такие структуры. В [9] предлагается подход к построению механизмов и говорится, что они должны представлять собой реализацию правил через взаимодействие набора характеристик (элементов, функций, инструментов и результатов).
В нашем случае процессы создания пользовательской структуры данных и процессы манипулирования данными являются динамическими переходами из одного состояния в другое (рис. 1), а для отображения изменения (динамики) будут создаваться механизмы. Например, при выполнении одного из процессов манипулирования данными - обновления данных - в базе данных в качестве результата выступают обновленные данные. Таким образом, в качестве состояния 1 выступают исходные данные, а в качестве состояния 2 - обновленные данные, а процесс обновления данных выступает в роли динамического перехода между ними.
Процесс
Механизм
Рис. 1. Представление динамического перехода (процесса) в виде механизма
Ставится задача исследовать и выявить закономерности определяющие высокое быстродействие в существующих базах данных с помощью создания их механизмов. Эти закономерности в дальнейшем будут использованы для построения эффективных механизмов для СНБД.
Механизмы формирования пользовательской структуры и манипулирования данными среди баз данных, хорошо зарекомендовавших себя для решения определенных узконаправленных задач, были построены. В данной статье они приведены не будут, вместо этого сразу произведем их анализ.
Анализ механизмов существующих баз данных. Рассмотрим механизмы самой распространённой в настоящее время реляционной базы данных.
Реляционные базы данных подробно описаны в [10, 11]. Является одной из наиболее развитых и универсальных в настоящий момент технологий. В связи с этим они являются эталоном для измерения производительности. Механизмы реляционной базы данных представлены на рис. 2.
П1.
П1.
П2.
ПЗ.
П4.
П5.
31
31
Ф1
т
иг
Ф1
И1
И2
32 33
1
Ф2
И2
32 34 ФЗ И2
1
32 34 Ф4 И2
1 1
32 34 Ф5 И2
= Р1.
= Р1.
= Р2. = РЗ. = Р4.
= Р5.
Рис. 2. Взаимопроникновение механизмов в реляционной базе данных
Рассмотрим правила реализации механизмов процессов.
Процесс 1. Создание пользовательской структуры формируется по следующему правилу. Над элементом Э1 (модель пользовательской структуры) выполнить функцию Ф1 (создать пользовательскую структуру) с помощью инструментов И1 (проектировщик) и И2 (СУБД) получить результат Р1/Э2 (пользовательская структура в БД).
Процесс 2. Вставка данных в БД формируется по следующему правилу. Над элементом Э2 (пользовательская структура в БД) и Э3 (данные (состояние 0)) выполнить функцию Ф2 (вставить данные) с помощью инструмента И2 (СУБД) и получить результат Р2/Э4 (данные в БД (состояние 1)).
Процесс 3. Обновление данных в БД формируется по следующему правилу: над элементами Э2 (пользовательская структура в БД) и Э4 (данные в БД (состояние 1)) выполнить функцию Ф3 (редактировать данные) с помощью инструмента И2 (СУБД) и получить результат Р3/Э3 (обновленные данные (состояние 2)).
Процесс 4. Удаление данных из БД формируется по следующему правилу. Над элементами Э2 (пользовательская структура в БД) и Э4 (данные в БД (состояние 1)) выполнить функцию Ф3 (удалить данные) с помощью инструмента И2 (СУБД) и получить результат Р4/Э3 (Данные (Состояние 0)).
Процесс 5. Выборка данных из БД формируется по следующему правилу. Над элементами Э2 (пользовательская структура в БД) и Э4 (данные в БД (состояние 1)) выполнить функцию Ф3 (Редактировать данные) с помощью инструмента И2 (СУБД) и получить результат Р5 (результирующая таблица (состояние 3)).
Из правил видно, что при совершении процессов данные переходят из одного состояния в другое. Механизм создания пользовательской структуры образует результат Р1, который переходит в элемент Э2 всех процессов манипулирования данными. В связи с чем можно заключить, что механизмы реляционной базы дан-
ных согласованы. Дальнейшая декомпозиция механизма создания пользовательской структуры на составляющие действия позволяет увидеть, что его правила используют элементы реляционной модели данных: «отношения», «нормализованные отношения», «требования поддержки целостности».
Выполнение условий согласования механизмов базы данных через элемент-результат, а также использование действиями, образующими эти процессы, элементов самой базы данных, указывает на явное присутствие свойства взаимопроникновения механизмов.
Рассмотрим, как происходят процессы в технологии ORM, использующей реляционные базы данных в качестве отображения объектно-ориентированных концепций.
Object-relational mapping (ORM) [12, 13] - технология программирования, которая связывает реляционные базы данных с концепциями объектноориентированных языков программирования, создавая «виртуальную объектную базу данных». ORM является дополнительным программным кодом между приложением и базой данных, что приводит к снижению скорости выполнения операций и громоздким, не всегда точным SQL-запросам. Основная задача ORM заключается не в достижении максимальной производительности, а в абстрагировании программиста от знания конкретных СУБД и возможности оперирования объектами и классами. Представив процесс манипулирования данными в ORM в виде механизма, можно заключить, что между базой данных, использующей в качестве элементов «сущности», «атрибуты» и «отношения», и процессами в объектноориентированной концепции, использующей «объекты» и «классы», появляется интерфейс (рис. 3). Он представляет дополнительные действия, которые необходимо сделать для преобразования элементов объектно-ориентированной концепции в элементы базы данных и обратно, в связи с чем значительно понижается быстродействие. Это связано с тем, что в механизмах создания пользовательской структуры и манипулирования данными отсутствуют элементы объектноориентированной концепции, что нарушает взаимопроникновение между ними, не позволяя достичь максимальной производительности.
Рис. 3. Изображение интерфейса при динамическом переходе
СНБД на основе реляционных технологий была использована в конфигурируемой информационной системе «ПРИМИУС» [6], в которой решаются поставленные перед ней задачи, однако, как можно судить по оценке производительности [7] - не достаточно эффективно. В качестве элементов базы данных используются «факты». Факты - это тройки значений, вида <1, А, 1>, где 1 - идентификатор экземпляра сущности, А - атрибут сущности, f - фактическое значение атрибута А. Реляционные механизмы формирования пользовательской структуры и манипулирования данными вместо «фактов» используют «отношения». Для реализации СНБД необходимо использование уникальных идентификаторов, которые в случае использования в реляционной СУБД необходимо генерировать. При рассмотрении структуры механизмов манипулирования данными в СНБД можно увидеть, что происходит искусственное преобразование «фактов» в «отношения», что приводит к образованию интерфейса, который снижает быстродействие.
Сведем результаты исследования механизмов, рассмотренных баз данных, в табл. 1. Сформулируем критерии, на основе которых будут оцениваться механизмы:
1. Наличие взаимопроникновения механизмов через элемент-результат.
2. Использование элементов базы данных процессами формирования пользовательской структуры и манипулирования данными.
3. Достижение максимальной производительности при решении узкоспециализированных задач.
4. Отсутствие интерфейса.
5. Эффективность базы данных.
Таблица 1
Результаты исследования механизмов баз данных
' '——~^^№требования База данных " " ' ■—— 1 2 3 4 5
Реляционная + + + + +
ОШМ - - - - -
Иерархическая + + + + +
Сетевая + + + + +
Хранилище ключ-значение + + + + +
СНБД на основе реляционных технологий - - - - -
На основе табл. 1 можно сделать вывод, что те из рассмотренных баз данных являются эффективными, в которых присутствует свойство взаимопроникновения механизмов. Эффективность базы данных зависит от критериев 1 и 2, т.е. для ликвидации интерфейса и увеличения производительности необходимо использовать взаимопроникновение механизмов и элементов базы данных. Для достижения максимальной производительности в СНБД механизмы должны быть согласованы, в качестве элементов должны использоваться элементы базы данных, такие как «факт», и должно быть возможным присвоение «уникальных идентификаторов» значениям данных.
Механизм СНБД для вставки данных. Согласно этим критериям были построены механизмы формирования пользовательской структуры и манипулирования данными в СНБД. На примере процесса вставки данных в СНБД рассмотрим один из них (рис. 4).
Д1. Э1 Ф1 И1
Д2.
Э1 Ф2 И1
Д3. Э1 Ф3 И1
Д4. Э2 Ф4 И1 1
Д5. Э3 Э4 Э5 Ф5 И1
= Р1.
: Р2.
: Р3.
: Р4.
: Р5.
Рис. 4. Механизм взаимопроникновения действий в процессе вставки данных
в СНБД
Правила реализации механизма вставки данных в СНБД имеют следующий
вид:
Правило 1. Над элементом Э1 (список сущностей, атрибутов и значений атрибутов) выполнить функцию Ф1 (получить название сущности) и получить результат Р1/Э2 (сущность).
Правило 2. Над элементом Э1 (список сущностей, атрибутов и значений атрибутов) выполнить функцию Ф2 (получить название атрибута) и получить результат Р2/Э3 (атрибут).
Правило 3. Над элементом Э1 (список сущностей, атрибутов и значений атрибутов) выполнить функцию Ф3 (получить значение атрибута) и получить результат Р3/Э4 (значение атрибута).
Правило 4. Над элементом Э2 (сущность) выполнить функцию Ф4 (назначить идентификатор экземпляра сущности) и получить результат Р4/Э5 (идентификатор экземпляра сущности).
Правило 5. Над элементами Э3 (атрибут), Э4 (значение атрибута), Э5 (идентификатор экземпляра сущности), выполнить функцию Ф5 (вставить идентификатор экземпляра сущности, название атрибута и значение атрибута) и получить результат Р5 (факт).
В ходе рассмотрения построенных механизмов формирования пользовательской структуры и манипулирования данными в СНБД можно сделать вывод, что процессы взаимопроникают через элемент-результат и используют элементы СНБД - «факты». Была произведена предварительная оценка работы построенных механизмов. СНБД на основе новых механизмов оказалась эффективнее СНБД с использованием реляционных технологий за счет того, что искусственная генерация уникальных идентификаторов не используется и нет необходимости использования интерфейса преобразования «отношений» в «факты» и обратно.
Заключение. В ходе исследования предлагается подход, который решает проблему низкого быстродействия в структурно-независимой базе данных. Суть подхода заключается в том, чтобы представить процессы создания пользовательской структуры и манипулирования данными в СНБД в виде механизмов и показать, что в них присутствует согласование. В результате были разработаны новые механизмы для СНБД, в которых процессы взаимопроникают через элемент-результат и используют элементы СНБД - «факты». В ходе предварительной
оценки СНБД на основе новых механизмов оказалась эффективнее существующей СНБД на основе реляционных технологий. Направлением дальнейшей работы должна стать оценка производительности разработанных механизмов СНБД и сравнение их с реляционной базой данных.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Stead W.W., Hammond W.E., Straube M.J. A Chartless Record - Is It Adequate? // Proceedings of the Annual Symposium on Computer Application in Medical Care, 1982. - Р. 89-94.
2. Jacob Anh0j. Generic Design of Web-Based Clinical Databases // Journal of Medical Internet Research, 2004. http://www.jmir.org/2003/4/e27/.
3. Nadkarni,P. An Introduction to Entity-Attribute-Value Design for Generic Clinical Study Data Management Systems // Center for Medical Informatics, Yale University Medical School. http://med.yale.edu/.
4. DinuV., Nadkarni P. Guidelines for the effective use of entity-attribute-value modeling for biomedical databases // International journal of medical informatics. - 2007. - № 76. - P. 769-779.
5. Brandt C., Morse R., Matthews K., Sun K., Deshpande A., Gadagkar R., Cohen D., Miller P., Nadkarni P. Metadata-driven creation of data marts from an EAV-modeled clinical research database // International journal of medical informatics. - 2002. - № 65. - P. 225-241.
6. Rogozov Y.I., Bodrow W., Kucherov S.A., Sviridov A.S. Purpose-Driven Approach For Flexible Structure-Independent Database Design // Proceedings of 5th International Conference on Software and Data Technologies. - 2010. - Vol. 1. - P. 356-362.
7. Рогозов Ю. И., Грищенко А. С. Оценка производительности механизмов манипулирования данными в структурно-независимых баз данных // Информатизация и связь. - 2013. - № 2. - С. 41-43.
8. Щедровицкий Г.П. Категории «процесс-механизм» в контексте исследования развития // Научный фонд им. Г.П. Щедровицкого. - <http://www.fondgp.ru/gp/biblio/rus/40> (18.04.2014).
9. Рогозов Ю.И. Понятие метасистемы как системы // Промышленные АСУ и контроллеры. - 2013. - № 2. - С. 39-47.
10. Карпова T.C. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2002 г. - 304 c.
11. Дейт К. Дж. Введение в системы баз данных. - 8-е изд. - М.: Издательский дом "Вильямс", 2005. - 1328 c.
12. Ambler S. Mapping Objects to Relational Databases: O/R Mapping In Detail
<http://www.agiledata.org/essays/mappingObjects.html> (18.04.2014).
13. Venners B., Eckel B. Inappropriate Abstractions. A Conversation with Anders Hejlsberg, Part VI <http://www.artima.com/intv/abstract3.html> (18.04.2014).
Статью рекомендовал к опубликованию д.т.н., профессор В.Н. Иванченко.
Грищенко Андрей Сергеевич - Южный федеральный университет; e-mail:
[email protected]; 347928, г. Таганрог, Некрасовский, 44; тел.: 88634371787; кафедра системного анализа и телекоммуникаций; аспирант.
Grishchenko Andrey Sergeevich - Southern Federal University; e-mail:
[email protected]; 44, Nekrasovsky, Taganrog, 347928, Russia; phone: +78634371787; the department of system analysis and telecommunications; postgraduate student.