Что такое NoSQL?

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

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

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

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


person bodacydo    schedule 31.01.2010    source источник
comment
en.wikipedia.org/wiki/Nosql ???   -  person skaffman    schedule 31.01.2010
comment
Джон Мередит недавно провел презентацию для группы пользователей PHP Front Range о базах данных NoSQL, которые могут оказаться полезными: ссылка   -  person Cal Jacobson    schedule 16.03.2010
comment
stackoverflow.com/questions/1245338/   -  person Mauricio Scheffer    schedule 05.05.2010
comment
Memcache - это не база данных. Это кеш!   -  person Maxim    schedule 07.03.2011


Ответы (8)


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

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

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

person Justin Ethier    schedule 31.01.2010
comment
Первоначальным стимулом для этих новых подходов является горизонтальная масштабируемость, но теперь значительно увеличиваются другие преимущества, в основном простота разработки. Документно-ориентированные базы данных, например, устраняют большую часть прошлой работы по объектно-реляционному «несоответствию импеданса». Также гибкие схемы здесь хорошо сочетаются с новыми динамически типизированными языками программирования (Python, Ruby, PHP, ...) - person dm.; 01.02.2010

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

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

Имея в виду такой подход:

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

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

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

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

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

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

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

person Cross    schedule 06.07.2012
comment
Это не так. Сокращенно от Not Only SQL. - person Apurv Nerlekar; 18.11.2015

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

person Nathan Hurst    schedule 05.05.2010

Что такое NoSQL?

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

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

2 Разнообразие баз данных Data NoSQL поддерживает любые типы данных. Он поддерживает хранение структурированных, полуструктурированных и неструктурированных данных. Он поддерживает журналы, файлы изображений, видео, графики, jpeg, JSON, XML для хранения и работы без какой-либо предварительной обработки. Таким образом, уменьшается потребность в ETL (Извлечь - Преобразовать - Загрузить).

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

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

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

person Saravanan Subramanian    schedule 15.01.2016


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

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

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

person John Knoeller    schedule 31.01.2010

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

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

person Donald Byrd    schedule 05.05.2010

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

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

person user1272893    schedule 26.05.2012