СУБД реляционная база данных против

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

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

8 ответов


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

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

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

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

Они не исчезли.

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

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

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


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

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

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

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

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

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

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


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

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

EDIT:

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

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

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

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

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

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

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

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

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

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


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

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


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

или

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

затем

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


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


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

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


от mongodb.com:

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

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

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

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

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