Что именно NoSQL? - PullRequest
       6

Что именно NoSQL?

40 голосов
/ 31 января 2010

Что такое NoSQL? Это системы баз данных, которые работают только с парами {ключ: значение}?

Насколько я знаю MemCache является одной из таких систем баз данных, я прав?

Какие еще популярные базы данных NoSQL существуют и где именно они полезны?

Спасибо, Бода Цидо.

Ответы [ 8 ]

20 голосов
/ 07 июля 2012

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

Я думаю, сначала вы должны определить, чтоявляется решением SQL, и затем вы можете поставить перед ним «Не только», это будет более точное определение того, что такое решение NoSQL.

С учетом этого подхода:

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

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

Если у вас есть текстовый файл, и вы создаете API для хранения / извлечения / организации этой информации, то у вас в руках база данных NoSQL.

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

  • djondb - хранилище документов, созданное для использования в качестве корпоративного решения NoSQL, поддерживающего транзакции, согласованность и т. д., но жертвующего производительностью своегоcounterparts.
  • MongoDB - это хранилище документов (похожее на djondb), которое обеспечивает высокую производительность, но использует некоторые свойства ACID для достижения этой цели.
  • CouchDB - это еще одно хранилище документов, которое решает несколько разные запросы, предоставляя представления для извлечения информации без выполнения полного запроса каждый раз.
  • ...

Как вы могли заметить, яЯ говорил только о хранилищах документов, потому что я хотел показать вам, что в трех разных реализациях хранилищ документов используется разный подход, поэтому вам следует помнить о золотом правиле хранилищ NoSQL: «Используйте правильный инструмент для правильной работы».

Я - создатель djondb, и я проводил много исследований еще до того, как попытался запустить собственную реализацию NoSQL, но это область, в которой концепции будут постоянно меняться, как мы видим хранилище информации.

17 голосов
/ 31 января 2010

Из википедии:

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

Мотивация для такой архитектуры заключалась в высокой масштабируемости для поддержки таких сайтов, как Facebook, advertising.com и т. Д. *

7 голосов
/ 05 мая 2010

Чтобы быстро разобраться в системах NoSQL, см. Этот пост в блоге, который я написал: Визуальное руководство по системам NoSQL . По сути, системы NoSQL жертвуют либо согласованностью, либо доступностью в пользу терпимости к сетевым разделам.

1 голос
/ 05 мая 2010

MongoDB выглядит интересно, SourceForge теперь использует его .

Я слушал подкаст с членом команды. Идея NoSQL заключается не столько в замене SQL, сколько в том, чтобы обеспечить решение проблем, которые не решаются хорошо с помощью традиционных RDBMS. Как уже упоминалось, они быстрее и лучше масштабируются за счет надежности и атомарности (разные решения в разной степени). Вы не хотели бы использовать один для финансовой системы, но система на основе документов будет работать отлично.

1 голос
/ 31 января 2010

Я использовал нечто, называемое Raima Data Manager более десятка лет назад, что квалифицируется как NoSQL. Он называет себя «Set Oriented Database». Он не основан на таблицах, и не существует «языка» запросов, просто C API для запроса подмножеств.

Это быстро и с ним легче работать в C / C ++ и SQL, нет необходимости создавать строки для передачи интерпретатору запросов, и данные возвращаются как перечисляемый объект, а не как массив. записи переменного размера являются нормальными и не занимают много места. Я никогда не видел исходный код, но были некоторые намеки на интерфейс, который внутренне, код часто использовал указатели.

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

1 голос
/ 31 января 2010
0 голосов
/ 15 января 2016

Что такое NoSQL?

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

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

2 Разнообразие данных Базы данных NoSQL поддерживают любой тип данных. Он поддерживает структурированные, полуструктурированные и неструктурированные данные для хранения. Он поддерживает журналы, файлы изображений, видео, графики, JPEG, JSON, XML, которые будут храниться и работать без какой-либо предварительной обработки. Таким образом, это уменьшает потребность в ETL (Extract - Transform - Load).

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

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

5 NoSQL - не только SQL Базы данных NoSQL не только зависят от SQL для получения данных. Они предоставляют богатые интерфейсы API для выполнения операций DML и CRUD. Эти API удобны для разработчиков и поддерживаются на разных языках программирования.

0 голосов
/ 26 мая 2012

Вот полный список баз данных NoSQL: http://nosql -database.org / .

Я рад, что вы добились успеха с RDM John! Я работаю в Raima, так что приятно слышать отзывы. Для тех, кто ищет больше информации, вот пара ресурсов:

...