NoSql vs Реляционная база данных

Недавно NoSQL приобрела огромную популярность.

В чем преимущества NoSQL по сравнению с традиционными RDBMS?

Ответ 1

Не все данные являются реляционными. Для этих ситуаций NoSQL может быть полезен.

С учетом сказанного, NoSQL означает "Не только SQL". Он не собирался стучать SQL или вытеснять его.

SQL имеет несколько очень больших преимуществ:

  • Сильная математическая основа.
  • Декларативный синтаксис.
  • Известный язык в языке структурированных запросов (SQL).

Те не ушли.

Ошибочно думать об этом как о любом аргументе. NoSQL - это альтернатива, которую люди должны учитывать, когда она подходит, и все.

Документы могут храниться в нереляционных базах данных, таких как CouchDB.

Возможно, чтение this поможет.

Ответ 2

История выглядит примерно так:

  • Google нуждается в уровне хранения для своего инвертированного индекса поиска. Они считают, что традиционная СУБД не собирается сокращать ее. Таким образом, они внедряют хранилище данных NoSQL, BigTable поверх их файловой системы GFS. Большая часть состоит в том, что тысячи дешевых аппаратных машин обеспечивают скорость и избыточность.

  • Все остальные понимают, что только что сделал Google.

  • Пивовары Теорема CAP доказана. Все используемые системы РСУБД представляют собой системы ЦС. Люди начинают играть с системами CP и AP. K/V магазины намного проще, поэтому они являются основным средством исследования.

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

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

C - Консистенция
A - Доступность
P - Толерантность раздела - K/V - ключ/значение

Ответ 3

NoSQL лучше, чем RDBMS, из-за следующих причин/свойств NoSQL

  1. Он поддерживает полуструктурированные данные и изменчивые данные
  2. Нет схемы
  3. Пропускная способность чтения/записи очень высокая
  4. Горизонтальная масштабируемость может быть легко достигнута
  5. Будет поддерживать Bigdata в объемах Terra Bytes & Пета Байт
  6. Обеспечивает хорошую поддержку аналитических инструментов поверх Bigdata
  7. Может быть размещен на более дешевых аппаратных машинах
  8. Опция кэширования в памяти доступна для повышения производительности запросов
  9. Более быстрые жизненные циклы разработки для разработчиков

EDIT:

Чтобы ответить на вопрос "почему СУБД не может масштабироваться", ознакомьтесь с накладными расходами СУРБД, написанными Ставросом Харизопулосом, Дэниелом Дж. Абади, Сэмюэлем Мэдденом и Майклом Стоунбрейкером

СУБД сталкиваются с проблемами при обработке огромных объемов данных в терабайтах и размерах. Пета байты. Даже если у вас есть резервный массив независимых/недорогих дисков (RAID) & измельчение данных, оно плохо масштабируется для огромного объема данных. Вам требуется очень дорогое оборудование.

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

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

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

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

Это не означает, что мы должны использовать NoSQL поверх SQL.

Тем не менее, RDBMS лучше, чем NoSQL, по следующим причинам/свойствам RDBMS

  1. Транзакции со свойствами ACID - атомарность, согласованность, изоляция & Прочность
  2. Соблюдение строгой схемы записи/чтения данных
  3. Управление запросами в режиме реального времени (в случае размера данных & lt; 10 терабайт)
  4. Выполнение сложных запросов с использованием join & сгруппировать по пунктам

Мы должны использовать RDBMS (SQL) и NoSQL (не только SQL) в зависимости от бизнес-ситуации & требования

Ответ 4

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

NOSQL означает не только SQL (или "не только SQL" ), но это не означает то же, что и реляционное. Реляционная база данных в принципе сделала бы очень хорошее решение NOSQL - просто, что ни один из текущих наборов продуктов NOSQL не использует реляционную модель.

Ответ 5

RDBMS уделяет больше внимания отношениям и NoSQL уделяет больше внимания хранению.

Вы можете использовать NoSQL, когда ваши РСУБД достигнут узких мест. NoSQL делает RDBMS более гибким.

Ответ 6

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

Ответ 7

Если вам нужно обработать огромный объем данных с высокой производительностью

ИЛИ

Если модель данных не задана

то

База данных NoSQL - лучший выбор.

Ответ 8

С mongodb.com:

Базы данных NoSQL отличаются от старых реляционных технологий четырьмя основными областями:

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

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

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

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

Ответ 9

Просто добавив ко всей приведенной выше информации

Преимущества NoSql:

1) NoSQL хорош, если вы хотите быстро подготовиться к работе, поскольку он поддерживает бессхемную и объектно-ориентированную архитектуру.

2) NoSql db в конечном итоге непротиворечивы, что на простом языке означает, что они не будут обеспечивать какую-либо блокировку данных (документов), как в случае СУБД, и что это означает, что всегда доступен последний снимок данных, что увеличивает задержку вашего приложения..

3) Он использует стратегию MVCC (Multi View параллелизм управления) для поддержки и создания снимка данных (документов).

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

Недостатки NoSql:

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

2) Кроме того, он создает несколько снимков (ревизий) ваших данных (документов), так как использует методологию MVCC для управления параллелизмом, в результате чего пространство используется быстрее, чем раньше, что делает сжатие и, следовательно, повторную индексацию более частым, и это замедлит вашу работу. ответ приложения по мере роста данных и транзакций в вашем приложении. Чтобы противостоять этому, вы можете масштабировать узлы по горизонтали, но с другой стороны это будет стоить дороже, чем сравнивать базу данных sql.