Реляционные и нереляционные базы данных | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 26 октября, печатный экземпляр отправим 30 октября.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №23 (365) июнь 2021 г.

Дата публикации: 02.06.2021

Статья просмотрена: 947 раз

Библиографическое описание:

Ушанов, А. Р. Реляционные и нереляционные базы данных / А. Р. Ушанов. — Текст : непосредственный // Молодой ученый. — 2021. — № 23 (365). — С. 111-114. — URL: https://moluch.ru/archive/365/81938/ (дата обращения: 17.10.2024).



В статье рассматриваются реляционный и нереляционный подход к созданию баз данных, причины их появления, основные принципы их работы и дается ответ на вопрос: системы управления базами данных какого подхода более востребованы.

Ключевые слова: реляционные базы данных, нереляционные базы данных, SQL, NoSQL, ACID, BASE.

Множество различных областей и специальностей имеют потребность в хранении и доступу к структурированной информации. С изобретением компьютера начался процесс переноса информации с бумажных носителей на электронные. Результатом этого процесса стало появление баз данных (БД) и систем управления базами данных (СУБД), появилось разделение СУБД по подходам. При создании своих первых проектов с использованием СУБД, каждый разработчик должен ответить на несколько вопросов: «Какой тип СУБД будет более эффективным для решения поставленной задачи?», «На каких принципах основан этот тип СУБД?» и «Какую СУБД следует выбрать для решения задачи?». Одним из основных факторов для ответов на эти вопросы является популярность — многие задачи и программные решения существуют в области уже давно и люди уже отвечали на эти вопросы. Рассмотрим историю появления разных типов СУБД, их принципы и то, какие СУБД пользуются большей популярностью.

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

Базы данных — набор взаимосвязанных сведений (фактов), относящихся к определенной предметной области, организованных по определенным правилам, которые могут предусматривать их клиаративное представление, хранение и манипулирование ими [1].

Система управления базами данных в технической деятельности — комплекс программных средств для создания баз данных, хранения и поиска в них необходимой технической информации [1].

БД и СУБД принято разделять на два типа — реляционные и нереляционные. Рассмотрим каждый из них подробнее.

Начнем с рассмотрения реляционных баз данных. В публикациях компании Oracle указывается, что в самых первых базах данных, данные имели уникальную структуру, из-за чего для разработки какого-либо приложения необходимо было хорошо знать эту структуру. Очевидно, что реляционная структура была создана для оптимизации приложений и облегчения их обслуживания. Реляционная структура предоставила стандартный способ представления данных и отправки запросов [2]. Затем появился язык структурированных запросов — SQL. Он оптимизировал запросы к базам данных. Именно из-за стандартизации и оптимизации реляционные базы данных стали самыми распространёнными [2].

Нереляционные базы данных также называются NOSQL, что означает Not Only SQL. Очевидно, что базы данных до появления реляционных были нереляционными. Однако, этот термин, в тот смысле, в котором мы используем его сейчас, появился в середине 2009 года с базой данных Карло Строцци с открытым исходным кодом [3]. Ее особенности заключаются в использовании шелловских скриптов UNIX систем вместо SQL и хранении всех данных в качестве ASCII файлы. Указываются следующие причины появления нереляционных баз данных [3]:

1) Увеличение объема хранимых данных. Очевидно, что с развитием технологий различных областей, количество хранимой информации увеличивалось, вместе с количеством информации увеличивалась цена за хранение и обработку, а значит появилась необходимость в более эффективных методах хранения и обработки этой информации, позволяющих снизить цену.

2) Взаимосвязанность. Информация стала все более связана между собой, одна страница указывает на другую, теги ссылающиеся на источники, справочники указывающие взаимодействия между терминами и т. д.

3) Области со слабоструктурированной информацией. Рассмотрим на примере товара в магазине. У нас есть 5 товаров в одном отделе, у каждого из этих товаров есть несколько десятков свойств, при этом у каждого есть несколько свойств, которые присущи не всем остальным товарам. Появляется новый товар, с некоторым количеством новых свойств. Эти свойства нужны только ему, а предыдущим товарам не нужны, однако с реляционными базами данных структуру все равно придется менять. Очевидно, что с увеличением количества принципиально новых товаров, проблема будет становиться глобальнее.

4) Архитектура. Архитектура в 80-ых годах, когда реляционные БД появились и стали популярными, и в 2000-ых, когда стали снова появляться и активно использоваться нереляционные БД, была разной. Если в 80-ых использовалась архитектура с одним компьютером, называвшимся мейнфрейм (mainframe), и одной базой данных, то уже в 2000-ых большое распространение имеет уже клиент-серверная архитектура. Новая архитектура давала новые возможности и ставила новые задачи. И реляционные БД не всегда были эффективным решением для этих задач.

Рассмотрим принципы каждого подхода, а затем перейдем к задачам, которые эти подходы позволяют решать.

Реляционные СУБД основаны на принципах ACID (ACID — atomicity, consistency, isolation, Durability):

1) Atomicity — атомарность. Это свойство гарантирует, что выполняться либо все запросы транзакции, либо ни один из запросов. Если хоть одна часть транзакции выполняется с ошибкой, то вся транзакция не выполнится.

2) Consistency — согласованность. Это свойство гарантирует, что все данные будут соответствовать всем предопределенным правилам и ограничениям, применяемым к БД.

3) Isolation — изолированность. Это свойство гарантирует, что все транзакции будут выполнятся изолированно, то есть ни одна транзакция не затронет другую пока последняя не выполнилась.

4) Durability — стойкость. Это свойство гарантирует, что любые изменения, внесенные транзакцией, должны остаться на всегда, даже если сразу после транзакции произошла ошибка, приведшая к завершению работы БД. То есть если БД успешно выполнила транзакцию, то она действительно должна быть применена.

Нереляционные СУБД основаны на принципах BASE (BASE — Basic Availability, Soft state, Eventual consistency):

1) Basic availability — базовая доступность. Нереляционные СУБД используют распределенный подход к базам данных. Вместо поддержания одного большого хранилища данных и фокуса на его отказоустойчивости, базы данных NoSQL распределяют данные по многим системам хранения с высокой степенью репликации. Это гарантирует завершение любого запроса.

2) Soft state — гибкое состояние. Отказ от согласованности ACID приводит к тому, что задача согласованности данных лежит на разработчике, а не на базе данных. То есть, состояние системы может изменяться даже без ввода новых данных для обеспечения согласованности.

3) Eventual consistency — согласованность в конечном итоге. Даже если в какой-то момент времени данные не согласованны, обязательно должен наступить момент, когда данные согласованы.

Реляционные базы данных отлично подходят для областей, где важна надежность, например, банковский сектор, где ошибка при переводе с одного счета на другой может стоить больших денег. Нереляционные базы данных отлично подходят для областей, где важна возможность быстрого и массового доступа к данным, например, поисковые системы.

Подведем итог рассмотрев пять самых популярных СУБД по данным нескольких сайтов и процент запросов по ним:

1) По данным сайта PYPL (PopularitY of Programming Languange), основанных на запросах в Google [4] — Oracle Database, MySQL, Microsoft SQL Server, Microsoft Access. Данные представлены в виде диаграммы на рис. 1.

Круговая диаграмма популярности СУБД (PYPL)

Рис. 1. Круговая диаграмма популярности СУБД (PYPL)

2) Данные сайта Stack Overflow [5] выражены в процентах, однако сумма процентов составляет больше 100 %, поэтому для диаграммы на рис. 2 проценты были пересчитаны. Пять самых популярных СУБД (в скобках неизмененный процент запросов с сайта Stack Overflow)– MySQL (55.6 %), PostgreSQL (36.1 %), Microsoft SQL Server (33.0 %), SQLite (31.2 %), MongoDB (26.4 %).

Круговая диаграмма популярности СУБД (Stack Overflow)

Рис. 2. Круговая диаграмма популярности СУБД (Stack Overflow)

Oracle Database — реляционная СУБД. Она популярна у больших компаний и распространяется по коммерческой лицензии. Хотя у этой СУБД есть бесплатная версия, она имеет серьезные ограничения и некоторые нововведения, давно использующиеся бесплатными конкурентами, либо отсутствуют в бесплатной версии, либо добавляются в нее через несколько лет после популяризации. Учитывая эти два свойства, ее первое место вызывает вопросы. По данным Stack Overflow она занимает 8 позицию. Если объединять результаты, то она занимает примерно третье место.

MySQL — реляционная СУБД. По результатам обоих сайтов она является одной из самых популярных, занимая первое и второе место у Stack Overflow и PYPL соответственно. Учитывая то, что Oracle занимает третье место в нашем списке, первое место однозначно достается MySQL. MySQL является бесплатной и очень популярной для сайтов. Ее разработка и поддержка осуществляется компанией Oracle.

Microsoft SQL Server — реляционная СУБД. Эта СУБД от Microsoft имеет бесплатную версию. Ее популярность легко объясняется простотой в использовании, функционалом схожим с MySQL и бесплатностью. Она занимает позицию, наиболее близкую ко второму месту.

Microsoft Access — реляционная СУБД. Эта СУБД тоже от Microsoft, но ее отличие от предыдущей СУБД от Microsoft в необходимости покупать лицензию. Самые заметные особенности — встроенный язык VBA для написания приложений и вхождение данной СУБД в комплект Microsoft Office. Она сдвигается ближе к шестому и седьмому месту из-за отсутствия в списке Stack Overflow.

PostgreSQL — реляционная СУБД. Она распространена на UNIX системах и является бесплатной. Обладает схожим функционалом с MySQL и Microsoft SQL Server. Она занимает вторую позицию в списке Stack Overflow и 6 в PYPL, что делает наиболее подходящей для 4 места.

SQLite — реляционная СУБД. Ее отличительная особенность в том, что она является компактной встраиваемой СУБД, то есть она встраивается в проект как библиотека. Она является бесплатной. Как Microsoft Access сдвигается ближе к шестому и седьмому месту из-за присутствия только в одном списке.

MongoDB — нереляционная СУБД. Она бесплатна, проста в освоении и использует JSON-подобные документы для описания данных. MongoDB занимает пятое место в обоих опросах и нет никаких предпосылок, чтобы изменить ее место в списке.

Конечный список популярности рассмотренных СУБД выглядит так:

1) MySQL.

2) Microsoft SQL Server.

3) Oracle Database.

4) PostgreSQL.

5) MongoDB.

6) SQLite.

7) Microsoft Access.

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

Литература:

1. ГОСТ Р 43.0.11–2014. — Текст: электронный // Электронный фонд правовых и нормативно-технических документов [сайт]. — URL: https://docs.cntd.ru/document/1200113357 (дата обращения 31.05.2021).

2. Что такое реляционная база данных. — Текст: электронный // Oracle [сайт]. — URL: https://www.oracle.com/ru/database/what-is-a-relational-database/ (дата обращения 31.05.2021).

3. NoSQL. — Текст: электронный // Национальная библиотека имени Баумана [сайт]. — URL: https://ru.bmstu.wiki/NoSQL (дата обращения 31.05.2021).

4. TOPDB Top Database index. — Текст: электронный // PYPL [сайт]. — URL: https://pypl.github.io/DB.html (дата обращения 31.05.2021).

5. Stack Overflow Developer Survey Results. — Текст: электронный // Stack Overflow [сайт]. — URL: https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-loved (дата обращения 31.05.2021).

Основные термины (генерируются автоматически): SQL, баз данных, ACID, PYPL, BASE, реляционная СУБД, СУБД, нереляционная база данных, UNIX, реляционная база данных.


Похожие статьи

Анализ производительности и преимуществ разных подходов в управлении данными SQL и NoSQL

В статье рассмотрены основные особенности двух популярных на сегодняшний день подходов в системах управления базами данных. Также приводятся аргументы и доводы о том, какой подход является более актуальным и выгодным.

Роль SQL в среде облачных баз данных

В статье автор рассмотрел, что такое SQL, его роль в управлении данными, а также преимущества использования SQL в облачных базах данных.

Распределенные информационные системы: особенности применения и построения

Данная статья направлена на исследование вопроса построения распределенных информационных систем. Рассмотрены методы Grid и Cloud в качестве средства построения распределенных ИС, а также технологии построения распределенных баз данных.

Разработка программного модуля тестирования баз данных

Создание и заполнение базы данных «Студенты»

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

Методика построения информационно-аналитических систем

В работе рассматривается архитектура современной информационно-аналитической системы с точки зрения технологических процессов. Приводятся рекомендации по реализации этой архитектуры используя OLTP*системы.

Анализ развития современных баз данных

В данной статье рассматривается анализ развития современных баз данных. Анализируются основные тенденции развития, такие как рост популярности NoSQL-баз данных, использование облачных технологий, внедрение искусственного интеллекта и машинного обучен...

Особенности применения баз данных и систем управления базами данных в экономической сфере

В статье раскрывается понятие и сущность баз данных и систем управления базами данных, описываются сферы и отрасли их применения, в том числе особенности применения для обработки экономической информации, а также приводится актуальный рейтинг наиболе...

Анализ сетевой архитектуры, технологий обработки информации и критериев выбора DLP-систем

В настоящей статье представлены результаты анализа сетевой архитектуры DLP-системы, её основных технологий для обработки потоков информации и критериев выбора оптимального DLP-решения.

Анализ СУБД и перспективных языков программирования для реализации системы определения параметров сборного режущего инструмента на основании графовых моделей

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

Похожие статьи

Анализ производительности и преимуществ разных подходов в управлении данными SQL и NoSQL

В статье рассмотрены основные особенности двух популярных на сегодняшний день подходов в системах управления базами данных. Также приводятся аргументы и доводы о том, какой подход является более актуальным и выгодным.

Роль SQL в среде облачных баз данных

В статье автор рассмотрел, что такое SQL, его роль в управлении данными, а также преимущества использования SQL в облачных базах данных.

Распределенные информационные системы: особенности применения и построения

Данная статья направлена на исследование вопроса построения распределенных информационных систем. Рассмотрены методы Grid и Cloud в качестве средства построения распределенных ИС, а также технологии построения распределенных баз данных.

Разработка программного модуля тестирования баз данных

Создание и заполнение базы данных «Студенты»

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

Методика построения информационно-аналитических систем

В работе рассматривается архитектура современной информационно-аналитической системы с точки зрения технологических процессов. Приводятся рекомендации по реализации этой архитектуры используя OLTP*системы.

Анализ развития современных баз данных

В данной статье рассматривается анализ развития современных баз данных. Анализируются основные тенденции развития, такие как рост популярности NoSQL-баз данных, использование облачных технологий, внедрение искусственного интеллекта и машинного обучен...

Особенности применения баз данных и систем управления базами данных в экономической сфере

В статье раскрывается понятие и сущность баз данных и систем управления базами данных, описываются сферы и отрасли их применения, в том числе особенности применения для обработки экономической информации, а также приводится актуальный рейтинг наиболе...

Анализ сетевой архитектуры, технологий обработки информации и критериев выбора DLP-систем

В настоящей статье представлены результаты анализа сетевой архитектуры DLP-системы, её основных технологий для обработки потоков информации и критериев выбора оптимального DLP-решения.

Анализ СУБД и перспективных языков программирования для реализации системы определения параметров сборного режущего инструмента на основании графовых моделей

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

Задать вопрос