NoSQL

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Содержание

NoSQL и SQL [править]

Сторонниками концепции NoSQL подчёркивается, что она не является полным отрицанием языка SQL и реляционной модели, проект исходит из того, что SQL — это важный и весьма полезный инструмент, но при этом он не может считаться универсальным. Одной из проблем, которую указывают для классических реляционных БД, являются проблемы при работе с данными очень большого объема и в проектах с высокой нагрузкой. Основная цель подхода — расширить возможности БД там, где SQL недостаточно гибок, и не вытеснять его там, где он справляется со своими задачами[источник не указан 718 дней].

Методологические основы [править]

Сайт nosql-database.org[неавторитетный источник?] утверждает, что в основе идеи NoSQL лежит следующее:

  1. Нереляционная модель данных
  2. Распределенность
  3. Открытый исходный код
  4. Хорошая горизонтальная масштабируемость.

В качестве одного из методологических обоснований подхода NoSQL используется эвристический принцип, известный как теорема CAP, утверждающий, что в распределённой системе невозможно одновременно обеспечить согласованность данных, доступность (англ. availability, в смысле наличия отклика по любому запросу) и устойчивость к расщеплению распределённой системы на изолированные части[1]. Таким образом, при необходимости достижения высокой доступности и устойчивости к разделению предполагается не фокусироваться на средствах обеспечения согласованности данных, обеспечиваемых традиционными SQL-ориентированными СУБД с транзакционными механизмами на принципах ACID.


UnQL [править]

В июле 2011 компания Couchbase, разработчик CouchDB, Memcached и Membase, анонсировала создание нового SQL-подобного языка запросовUnQL (Unstructured Data Query Language). Работы по созданию нового языка выполнили создатель SQLite Ричард Гипп (англ. Richard Hipp) и основатель проекта CouchDB Дэмиен Кац (англ. Damien Katz). Разработка передана сообществу на правах общественного достояния.[2][3][4]

Реализации [править]

Некоторые реализации, в той или иной мере реализующие концепцию NoSQL:

Поколоночные СУБД:

Документо-ориентированные СУБД:

Хранилища «ключ-значение», кортежные хранилища:

Базы данных на основе графов:

Примечания [править]

  1. Brewer, Eric A. A Certain Freedom: Thoughts on the CAP Theorem (англ.) // Proceeding of the IXXX ACM SIGACT-SIGOPS symposium on Principles of distributed computing. — N. Y.: ACM, 2010. — В. 29. — № 1. — С. 335-336. — ISBN 978-1-60558-888-9. — DOI:10.1145/1835698.1835701
  2. UnQL Query Language Unveiled by Couchbase and SQLite
  3. Welcome to the UnQL Specification home
  4. Создатели CouchDB и SQLite представили UnQL, аналог SQL для систем NoSQL, новость на OpenNet

Литература [править]