Что такое NoSQL?
Что такое NoSQL? Являются ли это системами баз данных, которые работают только с парами {ключ: значение}?
Насколько я знаю, MemCache
- одна из таких систем баз данных, я прав?
Какие еще популярные базы данных NoSQL существуют и где именно они полезны?
Спасибо, Бода Сидо.
Ответы
Ответ 1
Из Википедии:
NoSQL является зонтичным термином для слабо определенного класса нереляционных хранилищ данных, которые ломаются с длинной историей реляционных баз данных и гарантией ACID. Хранилища данных, подпадающие под этот термин, могут не требовать фиксированных схем таблиц и обычно избегать операций объединения. Этот термин был впервые популяризирован в начале 2009 года.
Мотивацией для такой архитектуры была высокая масштабируемость, поддержка сайтов, таких как Facebook, advertising.com и т.д.
Ответ 2
Я не согласен с ответами, которые я вижу, хотя верно, что решения NoSQL имеют тенденцию нарушать правила ACID, и не все они созданы из этого подхода.
Я думаю, сначала вы должны определить, что такое SQL-решение, и затем вы можете поставить перед ним "Не только", это будет более точное определение того, что представляет собой решение NoSQL.
С учетом этого подхода:
SQL-базы данных - это способ группировать все хранилища данных, доступные с использованием языка структурированных запросов, как основного (и чаще всего) способа связи с ними, это означает, что он требует, чтобы база данных поддерживала структуры, которые общие для таких систем, как "таблицы", "столбцы", "строки", "отношения" и т.д.
Теперь поставьте "Не только" перед последним предложением, и вы получите определение того, что означает "NoSQL". NoSQL группирует все магазины, созданные как попытка решить проблемы, которые не могут вписаться в структуры таблицы/столбца/строки или даже в SQL-выражениях, в большинстве случаев эти базы данных не поддерживают отношения, они отказываются от хорошо известных структур, просто потому что проблемы изменились с момента их зачатия.
Если у вас есть текстовый файл, и вы создаете API для хранения/получения/упорядочивания этой информации, тогда у вас есть база данных NoSQL в ваших руках.
Все это означает, что существует несколько решений для хранения информации таким образом, что традиционные системы SQL не позволят добиться большей производительности, гибкости и т.д. Каждый провайдер NoSQL пытается решить другую проблему и почему вы не будете иметь возможность сравнивать два разных решения, например:
- djondb - это хранилище документов, созданное для использования в качестве
Корпоративное решение NoSQL поддерживает транзакции, согласованность и т.д.
но жертвуйте результатами своих коллег.
- MongoDB - это хранилище документов (аналогично
djondb), которые достигают больших результатов, но торгуют некоторыми из
Свойства ACID для достижения этого.
- CouchDB является еще одним хранилищем документов, которое
решает несколько разных запросов, предоставляя представления для извлечения
информации без выполнения полного запроса каждый раз.
- ...
Как вы могли заметить, я только говорил о хранилищах документов, потому что я хотел показать вам, что у трех разных реализаций хранилищ документов есть другой подход, поэтому вы должны иметь в виду золотое правило магазинов NoSQL "Использовать правильный инструмент для правильной работы".
Я создатель djondb, и я проводил много исследований даже перед тем, как попытаться запустить собственную реализацию NoSQL, но это поле, в котором концепции будут продолжать изменять способ хранения информации.
Ответ 3
Чтобы быстро получить дескриптор систем NoSQL, см. это сообщение в блоге, которое я написал: Визуальное руководство к системам NoSQL. По сути, системы NoSQL жертвуют либо согласованностью, либо доступностью в пользу толерантности к сетевым разделам.
Ответ 4
Посмотрите на них:
http://en.wikipedia.org/wiki/Nosql#List_of_NoSQL_open_source_projects
и это:
http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
Ответ 5
Я использовал что-то, называемое Raima Data Manager более десятка лет назад, которое квалифицируется как NoSQL. Он называет себя "Set Oriented Database". Он не основан на таблицах, и нет "языка" запроса, просто API C для запроса подмножеств.
Быстро и легко работать с C/С++ и SQL, нет возможности создавать строки для передачи интерпретатору запросов, а данные возвращаются как перечислимый объект, а не как массив. записи с переменным размером являются нормальными и не теряют места. Я никогда не видел исходный код, но были некоторые намеки на интерфейс, который внутри, код использовал указатели много.
Я не уверен, что продукт, который я использовал, даже продан, но компания все еще рядом.
Ответ 6
MongoDB выглядит интересно, SourceForge теперь использует его.
Я слушал подкаст с членом команды. Идея с NoSQL заключается не столько в замене SQL, сколько в предоставлении решения проблем, которые не решаются с использованием традиционных СУБД. Как упоминалось в других разделах, они быстрее и лучше масштабируются за счет надежности и атомарности (разные решения в разной степени). Вы не хотите использовать его для финансовой системы, но система на основе документов будет работать отлично.
Ответ 7
Вот полный список NoSQL Databases: http://nosql-database.org/.
Я рад, что у вас был успех с RDM John! Я работаю в Raima, так что приятно слышать отзывы. Для тех, кто ищет дополнительную информацию, вот несколько ресурсов:
Ответ 8
Что такое NoSQL?
NoSQL - это аббревиатура для Not Only SQL. Основные свойства баз данных NoSQL являются схематичными, распределенными и масштабируемыми по горизонтали на товарном оборудовании. Базы данных NoSQL предлагают множество функций для решения различных задач с различными типами данных, где "blob" использовался как единственный тип данных в РСУБД для хранения неструктурированных данных.
1 Динамическая схема
Базы данных NoSQL позволяют гибкости схемы. Новые столбцы можно добавлять в любое время. Строки могут иметь или не иметь значений для этих столбцов и не требуют строгого соблюдения типов данных для столбцов. Эта гибкость удобна для разработчиков, особенно когда они ожидают частых изменений в течение жизненного цикла продукта.
2 Разнообразие данных
Базы данных NoSQL поддерживают любые типы данных. Он поддерживает структурированные, полуструктурированные и неструктурированные данные, которые необходимо сохранить. Его файлы поддержки, файлы изображений, видео, графики, jpegs, JSON, XML хранятся и управляются, так как без предварительной обработки. Таким образом, это уменьшает потребность в ETL (Extract - Transform - Load).
3 Кластер высокой доступности
Базы данных NoSQL поддерживают распределенное хранилище с использованием товарного оборудования. Он также поддерживает высокую доступность благодаря масштабируемости по горизонтали. Эти функции позволяют базам данных NoSQL извлекать выгоду из эластичности услуг инфраструктуры Cloud.
4 Open Source
Базы данных NoSQL - это программное обеспечение с открытым исходным кодом. Использование программного обеспечения является бесплатным, и большинство из них могут свободно использоваться в коммерческих продуктах. Кодовая база с открытыми исходными кодами может быть изменена для решения бизнес-задач. Существуют незначительные различия в лицензиях на программное обеспечение с открытым исходным кодом, пользователи должны знать о лицензионных соглашениях.
5 NoSQL - не только SQL
Базы данных NoSQL не только зависят от SQL для извлечения данных. Они предоставляют богатые интерфейсы API для выполнения операций DML и CRUD. Это API-интерфейсы, которые поддерживают взаимодействие с разработчиками и поддерживают различные языки программирования.