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

Ссылки