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

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

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

Автор:

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

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

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

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

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

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


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

Технологии обработки больших данных | Статья в журнале...

Разработка реляционной базы данных для автоматизации... Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language).

Система управления базами данных, в свою очередь, является...

Ключевые слова: база данных, СУБД, реляционные базы данных, нереляционные базы данных, NoSQL. Базы данных являются незаменимым инструментом в разработке программного обеспечения.

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

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

база данных, СУБД, загрузка данных, обработка данных...

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

Не существует база данных, которая подойдет абсолютно всем. Именно поэтому используют реляционные или нереляционные БД для...

BigData: анализ больших данных сегодня | Статья в журнале...

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

База данных для Read DB для простоты была выбрана MS SQL.

Ключевые слова: база данных, СУБД, реляционные базы данных, нереляционные базы данных, NoSQL. Базы данных являются незаменимым инструментом в разработке программного обеспечения.

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

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

Методы интеллектуального анализа данных | Статья в журнале...

Современные системы управления базами данных (СУБД) поддерживают возможность настройки безопасности реляционных баз данных (БД) средствами языка SQL, в частности операторами определения доступа к данным (Data Control Language, DCL).

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

Технологии обработки больших данных | Статья в журнале...

Разработка реляционной базы данных для автоматизации... Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language).

Система управления базами данных, в свою очередь, является...

Ключевые слова: база данных, СУБД, реляционные базы данных, нереляционные базы данных, NoSQL. Базы данных являются незаменимым инструментом в разработке программного обеспечения.

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

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

база данных, СУБД, загрузка данных, обработка данных...

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

Не существует база данных, которая подойдет абсолютно всем. Именно поэтому используют реляционные или нереляционные БД для...

BigData: анализ больших данных сегодня | Статья в журнале...

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

База данных для Read DB для простоты была выбрана MS SQL.

Ключевые слова: база данных, СУБД, реляционные базы данных, нереляционные базы данных, NoSQL. Базы данных являются незаменимым инструментом в разработке программного обеспечения.

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

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

Методы интеллектуального анализа данных | Статья в журнале...

Современные системы управления базами данных (СУБД) поддерживают возможность настройки безопасности реляционных баз данных (БД) средствами языка SQL, в частности операторами определения доступа к данным (Data Control Language, DCL).

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