Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА МЕХАНИЗМОВ ПОДДЕРЖКИ КОМБИНИРОВАННОГО ИСПОЛЬЗОВАНИЯ БАЗ ДАННЫХ В НЕСКОЛЬКИХ МОДЕЛЯХ ДЛЯ ФРЕЙМВОРКА DJANGO

Работа №42494

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы41
Год сдачи2019
Стоимость6500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
185
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1. ПОДХОДЫ К ОРГАНИЗАЦИИ ХРАНЕНИЯ ДАННЫХ 7
1.1. Модели баз данных 7
1.1.1. Реляционный подход 7
1.1.2. Нереляционный подход 7
1.2. Сравнение реляционных и нереляционных баз данных 9
1.2.1. Масштабируемость 9
1.2.2. Зависимость от схемы данных 9
1.2.3. Транзакции 10
1.3. Мультимодельные базы данных и Polyglot Persistence 10
2. ОБЩАЯ АРХИТЕКТУРА 12
2.1. Используемые технологии 12
2.2. Структура взаимодействия 12
2.2.1. Инициализация классов 14
2.2.2. Классы-менеджеры 15
2.3. Стратегии хранения данных о внешних связях 16
2.3.1. Хранение внутри объекта БД (INNER) 16
2.3.2. Хранение информации о связях в отдельном хранилище (OUTER) 18
3. ОПЕРАЦИИ НАД ОБЪЕКТАМИ РАЗНЫХ МОДЕЛЕЙ 19
3.1. Получение связанных объектов 19
3.2. Добавление межмодельных связей 20
3.3. Удаление связей 21
4. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
КЛАССИЧЕСКОГО И КОМБИНИРОВАННОГО ПОДХОДОВ 23
4.1. Запросы в рамках одной модели 24
4.2. Мультимодельные запросы 26
4.3. Специфичные для разных моделей запросы 28
ЗАКЛЮЧЕНИЕ 30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 32
ПРИЛОЖЕНИЕ 35


На сегодняшний день наблюдается стремительный рост количества хранимой и обрабатываемой информации [1]. Эти данные являются разнородными, имеют различную структуру. В свою очередь, это привело к появлению многообразия хранилищ данных для более эффективного взаимодействия с разными видами информации.
На текущий момент наиболее распространенной является реляционная модель баз данных [2]. Реляционные БД предоставляют согласованность и целостность данных. В то же время они требуют заранее описанной структуры. Нереляционные решения, в свою очередь, являются более гибкими и хорошо подходят для частично структурированной и неструктурированной информации. Кроме того, с развитием технологии и увеличением объемов хранимых и обрабатываемых данных на первое место встаёт лёгкость горизонтального масштабирования и высокая скорость обработки запросов, которые также предоставляют базы данных NoSQL [3].
Каждый из подходов имеет собственные преимущества, которые проявляются при работе с различными видами информации. Стремление сочетать сильные стороны каждой БД привело к появлению гибридного подхода, сочетающего в себе SQL и NoSQL решения [4-6]. Основой такого подхода является не использование мультимодельных баз данных, а в использовании различных баз данных для разных задач в рамках приложения и обеспечения взаимодействия между этими базами.
В свою очередь, в силу распространенности реляционных хранилищ, большинство веб-фреймворков для взаимодействия с базой данных используют объектно-реляционное отображение (Object-Relational Mapping, ORM) [7]. Данное преобразование, как следует из названия, работает только с реляционными базами данных. Функциональность таких фреймворков во многом опираются на слой ORM, в связи с чем разработчик лишается возможности совместного использования реляционных и нереляционных баз данных.
Вышеуказанные решения [4-6], предоставляют собой интерфейсы, которые работают (или эмулируют эту работу) на уровне системы управления базами данных (СУБД). В данной работе рассмотрен подход, когда «межмодельное» (cross-model) взаимодействие переходит на уровень приложения. Пользователь-разработчик, самостоятельно определяет, к какому хранилищу принадлежат те или иные объекты отображения. При таком способе взаимодействия пользователь оперирует с интерфейсом, который похож на набор методов ORM, а перевод этих методов в нужный формат (в зависимости от места хранения объекта) и соблюдение целостности переходят на уровень разрабатываемого модуля.
Практическая значимость настоящей работы состоит в том, что будет предложен способ для комбинированного взаимодействия с базами данных многих моделей в рамках инфраструктуры веб-фреймворка, что позволит использовать данное решение при разработке веб-приложений. Кроме того, единый интерфейс взаимодействия позволяет использовать нереляционные базы данных с помощью средств стандартного ORM, что позволит, например, используя графовое хранилище, взаимодействовать с ним такими же средствами, как с реляционным.
Целью данной работы является разработка инструмента для взаимодействия приложения с базами данных различных моделей. Для реализации поставленной цели требуется решение следующих задач:
• Анализ средств для эффективного хранения информации о связях между объектами различных баз данных.
• Разработка модуля, который модифицирует средства стандартного объектно-реляционного отображения и позволяет совместно использовать несколько хранилищ для работы с данными.
• Предоставление унифицированного программного интерфейса приложения (API), который содержит методы для взаимодействия (добавление, редактирование, получение, удаление и пр.) с разными моделями.
• Сравнительный анализ производительности стандартных средств ORM и инструмента, который позволяет использовать несколько моделей данных.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе выполнения работы были проанализированы различные модели для хранения данных, а также подходы к взаимодействию с данными многих моделей.
На основе подхода Polyglot Persistence был спроектирован и разработан модуль, который позволяет использовать разные хранилища для разных видов данные и при этом хранить информацию о межмодельных связях. Основой данного модуля служит набор методов, который предоставляет веб-фреймворк Django, что, в свою очередь, позволяет разработчикам при разработке приложений взаимодействовать с базами данных разных моделей так же, как и с реляционными и не вносить изменения в уже функционирующие системы.
Также, был проведен сравнительный анализ производительности при использовании баз данных одной и многих моделей, который показал, что при необходимости выполнения специфичных запросов, которые зависят от модели хранилища, разработанный инструмент позволяет добиться меньшего времени их выполнениях. При этом данный модуль не влияет на производительность при взаимодействии с объектами внутри одного хранилища. Кроме того, модуль предоставляет возможность, разбивая данные на разные модели, выполнять осуществлять взаимодействие, которое не
В дальнейшем планируется расширить функциональность разработанного модуля и добавить следующие функции:
• возможность соединения объектов двух классов разными типами связи;
• реализация сервисного хранилища для межмодельных связей с помощью реляционной или документоориентированной базы данных;
• возможно хранения внутри сущности связи из сервисного хранилища дополнительной информации;
• автоматическое удаление из сервисного хранилища объектов, которые не имеют действующих связей.



Lee I. Big data: Dimensions, evolution, impacts, and challenges // Business Horizons. 2017. Vol. 60. No. 3. pp. 293-303.
DB-Engines Ranking 2019. [Электронный ресурс] [2019]. URL: https://db-engines.com/en/ranking, (дата обращения: 28.05.2019).
Abramova V., Bernardino J., Furtado P. Experimental evaluation of NoSQL databases // International Journal of Database Management Systems. 2014. Vol. 6. No. 3. P. 1.
Sadalage P.J., Fowler M. NoSQL distilled: a brief guide to the emerging world of polyglot persistence. Pearson Education, 2012.
James B.E., Asagba P.O. Hybrid database system for big data storage and management // International Journal of Computer Science, Engineering and Applications (IJCSEA). 2017. Vol. 7. No. 3/4. pp. 15-27.
Wu C., Zhu Q., Zhang Y., Du Z., Ye X., Qin H., Zhou Y. A NOSQL- SQL hybrid organization and management approach for real-time geospatial data: A case study of public security video surveillance // International Journal of Database Management Systems. 2017. Vol. 6. No. 1. pp. 21 - 36.
Yan C., Cheung A., Yang J. Understanding database performance inefficiencies in real-world web applications // Proceedings of the 2017 ACM on Conference on Information and Knowledge Management. 2017. Vol. 6. No. 2. pp. 1299-1308.
Codd F.E. A Relational Model of Data for Large Shared Data Banks // Information Retrieval. 1970. Vol. 13. No. 6. pp. 377-387.
Deepak G. A Critical Comparison of NOSQL Databases in the Context of Acid and Base. St. Cloud: St. Cloud State University, 2016.
Indrawan-Santiago M. Database Research: Are We at a Crossroad? Reflection on NoSQL // Proceedings of the 15th International Conference on Network-Based Information Systems. 2012. pp. 45 - 51.
11. Makris A. A classification of NoSQL data stores based on key design characteristics. // Procedia Computer Science. 2017. Vol. 97. pp. 94 - 103.
12. Что такое база данных на основе пар «ключ-значение»? [Электронный ресурс] // Amazon Web Services: [сайт]. URL: https:// aws.amazon.com/ru/nosql/key-value/ (дата обращения: 27.05.2019).
13. Vicknair C., Macias M., Zhao Z., Nan X. Comparison of a graph database and a relational database: a data provenance perspective // Proceedings of the 48th Annual Southeast Regional Conference. 2010.
14. De Marzi М. Neo4J is faster than MySQL in performing recursive
query // Graphs with Neo4. 2017. URL: https://maxdemarzi.com/2017/02/ 06/neo4j-is-faster-than-mysql-in-performing-recursive-query/ (дата
обращения: 22.05.2019).
15. Mohamed A., Obay G., Mohammed O. Relational vs. NoSQL Databases: A Survey // International Journal of Computer and Information Technology. 2014. Vol. 3. No. 3. pp. 598 - 601.
16. Hashem I., Yaqoob I. The rise of “big data” on cloud computing: Review and open research issues // Information Systems. 2015. Vol. 47. pp. 98-115.
17. Мультимодельные базы данных [Электронный ресурс] //
Национальная библиотека им. Н. Э. Баумана: [сайт]. [2017]. URL: https://ru.bmstu.wiki/Мультимодельные_базы_данных (дата обращения: 29.05.2019).
18. Models and databases [Электронный ресурс] // Django Framework Documentation: [сайт]. [2019]. URL: https://docs.djangoproject.com/en/ 2.2/topics/db/ (дата обращения: 03.05.2019).
19. Metaprogramming in Python [Электронный ресурс] // IBM Developer: [сайт]. [2018]. URL: https://developer.ibm.com/tutorials/ba- metaprogramming-python/ (дата обращения: 01.06.2019).
20. Абрамский М., Тимерханов Т. Сравнительный анализ использования реляционных и графовых баз данных в разработке цифровых образовательных систем // Вестник Новосибирского государственного университета. Серия: Информационные технологии.
2018. Т. 16. № 4. С. 5-12.
21. Тимерханов Т., Абрамский М. Механизмы совместного использования реляционных и нереляционных баз данных в веб- фреймворках // Ученые записки института социальных и гуманитарных знаний. 2019. Т. 17. № 1. С. 617 - 623.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ