Тема: Сравнительный анализ производительности СУБД с использованием OLAP и OLTP запросов
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ ИССЛЕДОВАНИЙ 7
ГЛАВА 2. ПРОВЕДЕНИЕ ЭКСПЕРИМЕНТОВ В ОКРУЖЕНИИ, СОСТОЯЩЕМ ИЗ ОДНОЙ ЭВМ 9
ГЛАВА 3. ПРОВЕДЕНИЕ ЭКСПЕРИМЕНТОВ В РАСПРЕДЕЛЕННОМ ОКРУЖЕНИИ 16
ГЛАВА 4. КОЛОНОЧНОЕ ХРАНЕНИЕ ДАННЫХ 24
ГЛАВА 5. ПРОВЕДЕНИЕ ЭКСПЕРИМЕНТОВ С JSON-ДОКУМЕНТАМИ 31
ЗАКЛЮЧЕНИЕ 37
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 38
ПРИЛОЖЕНИЕ 41
📖 Введение
Одной из главных причин популярности такого рода систем является необходимость расширения вычислительных архитектур «по горизонтали», т.е. не наращивания мощи отдельных узлов, а добавления новых к уже существующим. Представить работу традиционных SQL-, а точнее реляционных систем в таких условиях довольно трудно из -за сложностей реализации транзакций в распределенной среде.
Несмотря на то, что NoSQL-системы существуют довольно продолжительное время, на сегодняшний день существует относительно небольшое число исследований на тему сравнения их производительности с реляционными системами. Имеющиеся работы зачастую не позволяют получить полной картины, т.к. либо описывают эксперименты узкой направленности (например, сравнение временных затрат только на операции вставки данных), либо имеют в качестве объектов исследования специализированные и редко применяемые СУБД.
В рамках данной работы предлагается рассмотреть довольно известные PostgreSQL и MongoDB.
MongoDB [2] - документная СУБД, разрабатываемая однойименной компанией (ранее - 10gen). MongoDB имеет широкий функционал и на данный момент является одной из самых популярных NoSQL систем. MongoDB позволяет оперировать JSON-документами, хранящимися в коллекциях, которые являются аналогом привычных SQL-таблиц. Для работы с документами предусмотрены операции поиска, вставки, удаления и обновления. Для поиска документов в коллекции используется метод запросов по образцу, поддерживаются сортировка, проекция, просмотр результатов запроса с помощью курсора. Масштабируемость в MongoDB достигается за счёт разделения документов из коллекции по узлам на основании выбранного ключа (shard key). Поддерживается асинхронная репликация в режиме «главный-подчиненный»: операции записи обрабатываются только главным узлом, а чтения могут осуществляться как с главного узла, так и с одного из подчиненных. Клиент может работать в разных режимах: асинхронном (не дожидаясь отклика) или блокирующем (ожидая подтверждения от существующих в распределенной сети узлов). Таким образом, MongoDB поддерживает различные модели согласованности в зависимости от того, разрешены ли чтения с вторичных узлов и от скольких узлов ожидаются подтверждения при записи. Эта система используется в большом числе крупных компаний и проектов, среди которых SourceForge, Foursquare, The Guardian, Forbes, The New York Times и другие [3].
В свою очередь, PostgreSQL [4] - это объектно-реляционная система управления базами данных, которая была разработана в научном компьютерном департаменте Беркли Калифорнийского Университета. Это продукт с открытым исходным кодом, он поддерживает большую часть стандарта SQL: комплексные запросы, внешние ключи, триггеры, транзакционная целостность, многоверсионное управление параллельным доступом и т.д.
Целью работы является исследование производительности баз данных PostgreSQL и MongoDB с точки зрения выполнения запросов к хранимым данным для определения типов задач, в которых применение данных СУБД является оправданным.
Поэтому были обозначены следующие задачи:
• изучение технической документации по обозначенным СУБД и имеющихся исследований схожей тематики;
• проектирование структуры таблиц/коллекций, в которых будут храниться данные;
• заполнение полученной структуры данными;
• проведение экспериментов на основе различных запросов с измерением времени выполнения;
• анализ результатов.
✅ Заключение
• PostgreSQL опережает MongoDB на операциях вставки данных даже в распределенном окружении и с использованием JSON-документов, что опровергает существующее среди специалистов мнение о преимуществе MongoDB в задачах логирования информации. Стоит также отметить выигрыш SQL СУБД в аналитических запросах;
• MongoDB функционирует быстрее PostgreSQL в подавляющем большинстве задач по работе с JSON-документами;
• Результаты экспериментов показали лидерство MongoDB в индексированном поиске. Таким образом, применение данной СУБД является оправданным для хранения редко изменяющихся и часто читаемых данных (например, в базах знаний, словарях, справочниках);
• Денормализация данных, как способ превентивного присоединения кортежей в MongoDB, является вполне допустимым решением задачи, что особенно ярко это проявляется на больших объемах данных. Однако стоит отметить, что решение о денормализации нужно принимать исходя из оценок затрат на поддержание согласованности;
• На сегодняшний день рассмотренные в работе расширения над PostgreSQL не могут считаться подходящими решениями в области серьезных производственных задач. По большей части это связано с наличием существенных технических ограничений в отдельных аспектах работы указанных модификаций.





