NoSQL
NoSQL (англ. not only SQL, не только SQL), в информатике — термин, обозначающий ряд подходов, направленных на реализацию хранилищ баз данных, имеющих существенные отличия от моделей, используемых в традиционных реляционных СУБД с доступом к данным средствами языка SQL. Применяется к базам данных, в которых делается попытка решить проблемы масштабируемости (англ. scalability) и доступности (англ. availability) за счёт атомарности (англ. atomicity) и согласованности данных (англ. consistency).
Типы хранилищ данных
В зависимости от модели данных и подходов к распределённости и репликации можно выделить четыре типа хранилищ:
- «ключ-значение» (key-value store) - простейшее хранилище данных, использующее ключ для доступа к значению. Такие хранилища используются для хранения изображений, создания специализированных файловых систем, в качестве кэшей для объектов, а также в системах, спроектированных с прицелом на масштабируемость. Примеры таких хранилищ:
- Berkeley DB
- MemcacheDB
- Redis
- Riak
- Amazon DynamoDB
- документно-ориентированные (document store) - служат для хранения иерархических структур данных. Находят своё применение в системах управления содержимым, издательском деле, документальном поиске и т. п. Примеры СУБД данного типа:
- CouchDB
- Couchbase
- MarkLogic
- MongoDB
- eXist
- Berkeley DB XML
- хранилища семейств колонок (column database) или Bigtable-подобные базы данных - данные хранятся в виде разреженной матрицы, строки и столбцы которой используются как ключи. Типичным применением этого вида СУБД является веб-индексирование, а также задачи, связанные с большими данными, с пониженными требованиями к согласованности данных. Примерами СУБД данного типа являются:
- Apache HBase
- Apache Cassandra
- Apache Accumulo
- Hypertable
- SimpleDB (Amazon.com)
- графовые базы данных (graph database) - применяются для задач, в которых данные имеют большое количество связей, например, социальные сети, выявление мошенничества. Примеры:
- Neo4j
- OrientDB
- AllegroGraph
- Blazegraph (RDF-хранилище, ранее называлось Bigdata)
- InfiniteGraph
- FlockDB
- Titan