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


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

каковы преимущества NoSQL по сравнению с традиционными СУБД?

8 134

8 ответов:

Не все данные относительны. В таких ситуациях NoSQL может быть полезен.

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

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

  1. сильная математическая база.
  2. декларативный синтаксис.
  3. хорошо известный язык в языке структурированных запросов (SQL).

Они никуда не делись.

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

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

может быть, чтение этой поможет.

история, кажется, выглядит так:

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

  2. все остальные понимают, что Google просто делавший.

  3. Пивоваров CAP теорема доказана. Все используемые системы РСУБД являются системами ЦС. Люди также начинают играть с системами CP и AP. К/в магазинах значительно проще, поэтому они являются основным средством для исследования.

  4. системы Software-as-a-service в целом не предоставляют хранилище, подобное SQL. Следовательно, люди больше интересуются магазинами типа NoSQL.

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

C-Последовательность
А-Доступность
П - раздел терпимости
K/V - Ключ / Значение

NoSQL-это лучше, чем РСУБД, потому что из следующих причин/свойства при переходе на NoSQL

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

EDIT:

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

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

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

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

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

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

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

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

  1. сделки с кислоты свойства - атомарность, согласованность, изоляция и долговечность
  2. приверженность сильной схеме записи/чтения данных
  3. управление запросами в реальном времени (в случае размера данных
  4. выполнение сложных запросов с участием присоединиться к группе пунктами

мы должны использовать СУБД (SQL) и NoSQL (не только SQL), в зависимости от бизнес-требований

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

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

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

или

Если модель данных не является предопределенным

затем

база данных NoSQL является лучшим выбором.

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

СУБД больше сосредоточиться на отношениях и NoSQL больше сосредоточиться на хранение.

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

от mongodb.com:

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

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

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

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

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