Научный журнал
Современные наукоемкие технологии
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

СРАВНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ SQL И NOSQL СУБД, ВЛИЯЮЩИЕ НА РАЗРАБОТКУ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ

Куприянчик Е.М. 1 Зудилова Т.В. 1 Ананченко И.В. 1 Осипов Н.А. 1 Осетрова И.С. 1
1 ФГАОУ ВО «Национальный исследовательский университет информационных технологий
Рассматриваются характеристики реляционных (SQL) и нереляционных (NoSQL) СУБД для определения параметров, существенно влияющих на разработку приложений баз данных. Цель выполненного исследования – проанализировать характеристики реляционных и нереляционных СУБД, влияющие на проектирование и разработку программного обеспечения, дать рекомендации о применимости систем. Выполнено проектирование схем баз данных для бизнес-процесса «Создание публикаций на веб-сайте» при помощи реляционного и нереляционного подходов на примерах двух СУБД: реляционной системы – MySQL и нереляционной системы – MongoDB. Две рассматриваемые СУБД с открытым исходным кодом обладают кроссплатформенностью, что является их преимуществом перед другими аналогичными системами. В работе проводится сравнение характеристик рассматриваемых СУБД. В частности, при проектировании и разработке схем баз данных рассматриваются параметры, которые могут повлиять на разработку программного обеспечения. Такое сравнение видится полезным для разработчиков будущих систем, так как выбор СУБД является одним из важнейших моментов в реализации проекта. В случае неверного выбора СУБД может существенно увеличиться время на разработку приложений, зачастую из-за ошибочных действий на этапе проектирования базы данных может пострадать ее функционал. Кроме того, неверный выбор СУБД может повлиять на дальнейшее масштабирование системы. От выбора СУБД зависят и этапы разработки запросов к данным, а именно извлечение, добавление и модификация данных, поэтому вопрос о выборе СУБД весьма актуален и должен рассматриваться до начала разработки системы.
БД
СУБД
реляционные СУБД
SQL
NoSQL
MySQL
MongoDB
проектирование
1. DB-Engines Ranking [Электронный ресурс]. URL: https://db-engines.com/en/ranking (дата обращения: 04.07.2022).
2. Илюшечкин В.М. Основы использования и проектирования баз данных: учебник для академического бакалавриата. М.: Юрайт, 2019. 213 с.
3. Якушин А.Ю., Муковозов А.М., Исмоилов М.И. Сравнительный анализ реляционной базы данных и документоориентированной NoSQL базы данных в разрезе их применения при создании локального чата/мессенджера // Инновационная наука. 2018. № 4. C. 73–84.
4. Филиппов А.Н., Поволоцкий Я.А. Применение нереляционной СУБД MongoDB в САПР ТП. СПб.: Университет ИТМО, 2018. 46 с.
5. Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров. MongoDB: полное руководство. Мощная и масштабируемая система управления базами данных / Пер. с англ. Д.А. Беликова. М.: ДМК Пресс, 2020. 540 с.
6. Указ Президента РФ от 02.03.2022 № 83 «О мерах по обеспечению ускоренного развития отрасли информационных технологий в Российской Федерации» [Электронный ресурс]. URL: http://publication.pravo.gov.ru/Document/View/0001202203020001 (дата обращения: 04.07.2022).

В настоящее время практически невозможно найти автоматизированную систему без использования СУБД. От выбора определенного типа СУБД будет зависеть перечень задач и качество их решения при автоматизации задач на предприятиях.

Наиболее часто в качестве СУБД выбирается реляционная система, которая идеально решает задачи обеспечения целостности данных и многие другие, но она уступает при работе с большими данными. При этом использование NoSQL баз данных (БД) позволяет работать с большими данными. Однако при использовании реляционных СУБД требуется тщательная подготовка на этапе проектирования системы, так как структура данных должна быть определена заранее. В свою очередь NoSQL СУБД не требуют такого тщательного процесса проектирования баз данных, потому что они работают с гибкими схемами, благодаря которым приложение можно реализовывать поэтапно. Цель выполненного исследования – проанализировать характеристики реляционных и нереляционных СУБД, влияющие на проектирование и разработку программного обеспечения, дать рекомендации о применимости систем.

Сравнение характеристик SQL И NoSQL СУБД

На данный момент наиболее используемыми типами баз данных являются реляционные (SQL) и нереляционные (NoSQL) БД. Как видно из табл. 1, самыми распространенными в 2022 г., согласно рейтингу DB-Engines, являются реляционные СУБД: Oracle, MySQL и Microsoft SQL Server [1].

В табл. 2 представлены популярные в 2022 г. нереляционные системы, где самыми популярными СУБД являются: MongoDB, Redis и Cassandra [1].

Рассмотрим характеристики, влияющие на разработку БД, при проектировании схем баз данных в реляционной и нереляционной СУБД на примерах двух систем: MySQL и MongoDB.

Основное различие между двумя системами: MySQL и MongoDB заключается в том, что при реляционном подходе необходима тщательная подготовка перед разработкой БД [2]. При проектировании реляционной схемы базы данных для бизнес-процесса «Создание публикаций на веб-сайте» проводится анализ предметной области, логическое и физическое проектирование. Также определяются сущности, необходимые для данного бизнес-процесса, их атрибуты, типы данных и связи между сущностями. В ходе выполнения этапов проектирования получена реляционная модель данных, представленная на рис. 1.

Таблица 1

Рейтинг популярности реляционных СУБД

Рейтинг

СУБД

Модель данных

июль 2022

июль 2021

1.

1.

Oracle

Реляционная

2.

2.

MySQL

Реляционная

3.

3.

Microsoft SQL Server

Реляционная

4.

4.

PostgreSQL

Реляционная

5.

5.

IBM Db2

Реляционная

6.

7.

Microsoft Access

Реляционная

7.

6.

SQLite

Реляционная

8.

8.

MariaDB

Реляционная

9.

16.

Snowflake

Реляционная

10.

10.

Microsoft Azure SQL Database

Реляционная

Таблица 2

Рейтинг популярности нереляционных СУБД

Рейтинг

СУБД

Модель данных

июль 2022

июль 2021

1.

1.

MongoDB

Документоориентированная

2.

2.

Redis

Ключ-значение

3.

3.

Cassandra

Широкий столбец

4.

4.

Amazon DynamoDB

Ключ-значение

5.

5.

Neo4j

Графовая

6.

6.

HBase

Широкий столбец

7.

7.

Microsoft Azure Cosmos DB

Документоориентированная

8.

8.

Couchbase

Документоориентированная

9.

9.

Memcached

Ключ-значение

10.

10.

Firebase Realtime Database

Документоориентированная

missing image file

Рис. 1. Реляционная схема базы данных на примере MySQL

missing image file

Рис. 2. Сопоставление таблиц MySQL с документами MongoDB

При использовании нереляционного подхода приложение можно проектировать сразу же без такой тщательной подготовки.

В MongoDB базы данных состоят из коллекций, которые являются эквивалентами таблиц в реляционных СУБД. В коллекциях хранятся данные в виде документов. Документ эквивалентен строке в таблице. Только в строке данные представлены в виде набора колонок, а в документе данные представлены в виде JSON-структуры (известной как BSON в MongoDB). И если в реляционных БД в строке имеются столбцы, то в MongoDB – поля. На рис. 2 представлены таблицы из MySQL и их отображение в MongoDB.

Еще одно из отличий MongoDB от MySQL заключается в том, что MongoDB обладает динамической схемой данных [3]. То есть один документ может иметь два поля, а второй – пять. Это позволяет легко добавлять и удалять поля. При использовании MySQL схему данных необходимо определить заранее, чтобы достичь согласованности. Также отметим, что при нереляционном подходе на тип данных поля не накладываются ограничения. Другими словами, одно и то же поле в одном документе может иметь данные типа int (целое значение), а в другом содержать тип array (массив).

Рассмотрим пример. В коллекции «users» можно создать документы с разной структурой. На рис. 3 представлены документы с разной структурой в одной коллекции.

missing image file

Рис. 3. Документы с разной схемой

Во второй документ добавили поля age и favorite_themes. При этом второе поле имеет несколько значений. При реляционном подходе в таблицу, которая хранит информацию о пользователях, необходимо было бы добавить поле age, а также создать как минимум одну таблицу для описания любимых тем пользователя. Таким образом, в виде документов можно эффективно реализовывать различные схемы, при этом при использовании реляционного подхода потребовалось бы несколько таблиц. Например, при проектировании в MySQL получилось три таблицы, а MongoDB позволяет несколько объектов объединить в один документ (рис. 4).

Еще одно отличие состоит в отображении связей. Если в реляционных СУБД используются первичные и внешние ключи, то в MongoDB нет прямого сопоставления, но используются ссылки на документы или вложенные документы (рис. 5).

Однако, так как в MongoDB нет ограничений и правил на внешние ключи, то необходимо аккуратно относиться к связям и операциям над ними. Например, поле id_author в документе из коллекции «posts» является просто полем, которое содержит данные, и вся логика, связанная с их интерпретацией, должна быть реализована в приложении. То есть, если в id_author вставить ссылку на несуществующий документ из коллекции «users», то в MongoDB не возникнет ошибка о том, что соответствующая запись с таким идентификатором в коллекции «users» не была найдена. При этом в реляционной СУБД возникнет ошибка.

Для манипуляции данными MySQL использует язык SQL, а MongoDB – JavaScript [4]. Несмотря на разницу используемых подходов для работы с данными MongoDB отлично справляется со всеми типовыми задачами.

MongoDB обладает еще одним существенным преимуществом перед MySQL, заключающемся в функциях репликации и сегментирования, так как это решает проблему с масштабируемостью, характерную для реляционных систем [5]. При использовании реляционного подхода в основном реализуется возможность вертикального масштабирования.

Основные характеристики, влияющие на процесс разработки приложений баз данных, представлены в табл. 3.

missing image file

Рис. 4. Объединение таблиц в один документ на примере MongoDB

missing image file

Рис. 5. Варианты связей между документами в MongoDB

Таблица 3

Сравнительные параметры реляционной MySQL и нереляционной MongoDB СУБД

Параметр

СУБД

MySQL

MongoDB

Динамическая схема

+

Создание связей СУБД

С помощью первичных и внешних ключей

С помощью ссылок на документы или вложенных документов

Объединение таблиц

+

Необязательно, в зависимости от схемы

Формат данных

Таблицы, состоящие из строк со столбцами

Коллекции, состоящие из документов с полями

Язык для манипуляции данными

SQL

JavaScript

Запросы на создание/изменение таблиц/ документов, чтение, вставку данных

+

+

Масштабируемость

Вертикальная

Горизонтальная

СУБД MySQL лучше выбрать при следующих условиях:

− имеются логические требования к данным, которые могут быть определены заранее;

− необходимо обеспечивать целостность данных;

− имеется достаточный опыт работы и хорошая техническая поддержка проекта;

− может понадобиться быстрый переход с одной СУБД на другую.

При выборе MongoDB целесообразно придерживаться следующих рекомендаций:

− при проектировании базы данных для обеспечения гибкости системы необходимо учитывать требования пользователей;

− объединение объектов в один документ следует производить при их совместном использовании, в других вариантах их желательно хранить в разных документах;

− допускается частичное дублирование данных, так как это может уменьшить время вычислений;

− объединение данных лучше выполнять при записи самих данных, а не при их чтении;

− необходима оптимизация схемы базы в соответствии с наиболее частыми запросами данных.

Заключение

Представлен сравнительный анализ характеристик реляционных и нереляционных СУБД, влияющих на проектирование и разработку программного обеспечения, даны рекомендации о применимости систем. Анализ проводился на примерах двух СУБД: MySQL и MongoDB. Результат анализа будет полезен для разработчиков приложений, поскольку позволяет первоначально выбрать определенную технологию, однако позже при уточнении требований к системе, может использоваться и другой подход. Показаны характеристики СУБД, по которым можно определить, какая система лучше подойдет для того или иного проекта. MySQL лучше выбрать для проекта, если имеется предопределённая структура и заданные схемы баз данных. Иначе следует выбрать MongoDB, потому что данная СУБД отлично подходит для быстрорастущих проектов без определенной схемы данных. Сравнение характеристик SQL и NoSQL СУБД, влияющих на разработку приложений баз данных, актуально, так как в настоящее время происходит импортозамещение и переход с иностранных сервисов на российские. Иностранные продукты заменяются либо на ПО с открытым исходным кодом, либо на существующие российские аналоги, либо создаются новые отечественные системы. Также согласно указу Президента РФ, уделяется достаточное внимание обеспечению мер для развития информационных технологий [6].


Библиографическая ссылка

Куприянчик Е.М., Зудилова Т.В., Ананченко И.В., Осипов Н.А., Осетрова И.С. СРАВНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ SQL И NOSQL СУБД, ВЛИЯЮЩИЕ НА РАЗРАБОТКУ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ // Современные наукоемкие технологии. – 2022. – № 7. – С. 74-78;
URL: https://top-technologies.ru/ru/article/view?id=39236 (дата обращения: 21.11.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674