Если кто-то спросит вас, почему вы должны выбрать базу данных NoSQL вместо SQL, вы можете обратиться к приведенным ниже указателям, которые описывают, когда и почему вы должны эффективно выбирать такие базы данных в архитектуре распределенной системы. Это не сравнение между двумя, но самое главное, когда чтобы выбрать один в вашем приложении

SQL:

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

1. Прошивка дорогая

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

2.Схему нелегко изменить

Предположим, что в приведенной выше таблице, если вы хотите вставить еще один столбец или атрибут, такой как рейтинг, как таковой, вам нужно добавить что-то, называемое «блокировками», для поддержания согласованности, что снова является дорогостоящей операцией в базе данных SQL.

3. Не рассчитан на масштабирование

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

4. Оптимизировано для чтения

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

5. Согласованность данных

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

6. Соединения легко построить:

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

NoSQL:

Эта система баз данных использовалась многими крупными компаниями в качестве основной базы данных. Данные хранятся в формате JSON, а не в таблице. Каждый объект JSON представляет собой документ, который представлен ObjectID в качестве первичного ключа. Приведенная выше схема таблицы будет переписана в NoSQL как документ, который будет содержать:

{
"key":111,
"name":"Raj",
"age":30,
"address":{
   "city":"BNG",
   "country":"IND"
},
"role:"SDE2"
}

1. Установка дешевле

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

Таким образом, когда вы отправляете запрос или вставляете данные, указанный выше объект JSON целиком поступает и устанавливается в базе данных за одну вставку. И всякий раз, когда вы извлекаете строку из NoSQL, вы фактически извлекаете весь объект, который дешевле.

2.Схема легко меняется

{
"key":111,
"name":"Raj",
"age":30,
"address":{
   "city":"BNG",
   "country":"IND"
},
"rating:"A"
}

Здесь, в приведенном выше документе JSON, если вы хотите вставить атрибут рейтинга, как мы хотели сделать в SQL, мы можем легко сделать это независимо от других документов. Можем сразу добавить. Согласованность будет сохранена, и никаких других изменений в документе не требуется.

3. Создан для масштаба

Большинство баз данных NoSQL построены с горизонтальным разделением (что такое горизонтальное разделение?). Поскольку большинство пользователей, которые хотят использовать базу данных NoSQL, склонны масштабировать свое приложение, поэтому доступность предшествует согласованности.

4. Не оптимизирован для чтения

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

5. Отсутствие согласованности данных

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

6. Соединения сложно построить

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

Спасибо за чтение! Если у вас есть какие-либо вопросы, не стесняйтесь обращаться по адресу [email protected], свяжитесь со мной в LinkedIn или подпишитесь на меня в Medium и Twitter.

Если вы нашли эту статью полезной, это будет много значить, если вы поддержите ее аплодисментами👏 и поделитесь ею, чтобы помочь другим найти ее! И не стесняйтесь оставлять комментарии ниже.