**NoSQL** (*ноу-эс-кью-эл*, ад англ.: non SQL — *не-SQL*) — гэта падыход да праектавання баз даных, які прадастаўляе механізмы для захоўвання і пошуку даных, адрозныя тых, што выкарыстоўваюцца ў рэляцыйных базах даных. Замест тыповай таблічнай структуры рэляцыйнай базы даных NoSQL-сістэмы змяшчаюць даныя ў адной структуры, якая не патрабуе яўнага апісання схемы базы даных і такім чынам дазваляе неструктураваныя наборы даных. Сістэмы NoSQL таксама часам называюць *Not only SQL* («не толькі SQL»), каб падкрэсліць, што яны могуць падтрымліваць мовы запытаў, падобныя на SQL.  

Нерэляцыйныя базы даных існуюць з канца 1960-х гадоў, але назва «NoSQL» была створана толькі ў пачатку 21-га стагоддзя з развіццём тэхналогій Web 2.0. Базы даных NoSQL таксама выкарыстоўваюцца для апрацоўкі вялікіх даных і ў вэб-праграмах у рэжыме рэальнага часу.

Структуры даных, якія выкарыстоўваюцца базамі даных NoSQL (напрыклад, пара ключ-значэнне, графы або дакументы), адрозніваюцца ад структур рэляцыйных баз даных, што робіць некаторыя аперацыі больш хуткімі ў NoSQL. Часам структуры даных NoSQL таксама разглядаюцца як «больш гнуткія», чым табліцы рэляцыйных баз даных.

Гісторыя
--------

Тэрмін *NoSQL* быў выкарыстаны Карла Строцы ў 1998 годзе, каб назваць створаную ім базу даных Strozzi NoSQL, якая не выкарыстоўвала SQL, але па-ранейшаму была рэляцыйнай. Яго разуменне тэрміна адрозніваецца ад канцэпцыі NoSQL, якая распаўсюдзілася пасля 2009 года. Строцы мяркуе, што, паколькі сучасны рух NoSQL "цалкам адыходзіць ад рэляцыйнай мадэлі, яго варта было б больш правільна называць «NoREL» , маючы на ўвазе «not relational» — «нерэляцыйны».

Віды і прыклады
---------------

Існуюць розныя класіфікацыі баз даных NoSQL. Далей прыводзяцца прыклады суадносна з выкарыстанымі мадэлямі даных: 

| Від | Прыклады |
| --- | --- |
| Кэш ключ-значэнне | Apache Ignite, Couchbase, Coherence, eXtreme Scale, Hazelcast, Infinispan, Memcached, Redis, Velocity |
| Сховішча ключ-значэнне | Azure Cosmos DB, ArangoDB, Amazon DynamoDB, Aerospike, Couchbase, ScyllaDB, Azure Cosmos DB, Oracle NoSQL Database, FoundationDB, InfinityDB, LMDB, MemcacheDB |
| Сховішча картэжаў | Apache River, GigaSpaces, Tarantool, TIBCO ActiveSpaces, OpenLink Virtuoso |
| Сховішча дакументаў | Azure Cosmos DB, ArangoDB, BaseX, Clusterpoint, Couchbase, CouchDB, DocumentDB, eXist-db, IBM Domino, MarkLogic, MongoDB, RavenDB, Qizx, RethinkDB, Elasticsearch, OrientDB |
| Шырокакалоннае сховішча | Azure Cosmos DB, Amazon DynamoDB, Bigtable, Cassandra, Google Cloud Datastore, HBase, Hypertable, ScyllaDB |
| Графавая база даных | Azure Cosmos DB, AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso |

Апрацоўка рэляцыйных даных
--------------------------

Паколькі ў большасці баз даных NoSQL адсутнічае магчымасць аб’яднання запытаў, схему базы даных звычайна трэба распрацоўваць па-іншаму. Ёсць тры асноўныя метады апрацоўкі рэляцыйных даных у базах даных NoSQL.

### Шматразовыя запыты

Замест таго, каб атрымліваць усе даныя з дапамогай аднаго запыту, выконваецца некалькі запытаў. Запыты ў NoSQL часта выконваюцца хутчэй, чым запыты ў рэляцыйных базах, таму кошт дадатковых запытаў можа быць прымальным.

### Ненармалізаваныя даныя

Замест таго, каб захоўваць толькі знешнія ключы (англ.: foreign keys), захоўваюць фактычныя знешнія значэнні разам з данымі мадэлі. Напрыклад, запіс аб каментары ў блогу можа ўключаць імя карыстальніка, што дазваляе пазбегнуць паўторнага пошуку па ідэнтыфікатары карыстальніка. Аднак калі імя карыстальніка змяняецца, яго трэба будзе змяніць у многіх месцах базы даных.

### Укладзеныя даныя

З дакументнымі базамі даных, такімі як MongoDB, можна змясціць больш даных у меншай колькасці калекцый. Напрыклад, у праграме для вядзення блога можна выбраць захаванне каментарыяў у дакуменце паведамлення ў блогу, каб пры аднаразовым пошуку можна было атрымаць усе каментарыі. Такім чынам, пры такім падыходзе адзіны дакумент змяшчае ўсе даныя, неабходныя для канкрэтнай задачы.

Гл. таксама
-----------

* Аб’ектна-рэляцыйная база даных

Крыніцы
-------

1. ↑   Архівавана 26 снежня 2018. «NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points : being non-relational, distributed, open-source and horizontally scalable».
2. ↑   «What is a NoSQL database?»
3. ↑  NoSQL (Not Only SQL) **(нявызн.)**. — «NoSQL database, also called Not Only SQL»
4. ↑  *Fowler*. NosqlDefinition **(нявызн.)**. — «many advocates of NoSQL say that it does not mean a "no" to SQL, rather it means Not Only SQL»
5. ↑  Amazon Goes Back to the Future With 'NoSQL' Database **(нявызн.)**.  WIRED (19 студзеня 2012). Праверана 6 сакавіка 2017.
6. ↑  RDBMS dominate the database market, but NoSQL systems are catching up **(нявызн.)**.  DB-Engines.com (21 лістапада 2013). Праверана 24 November 2013.
7. ↑  *Vogels*. Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications **(нявызн.)**.  All Things Distributed (18 студзеня 2012). Праверана 6 сакавіка 2017.
8. ↑  *Lith*. Investigating storage solutions for large data: A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data **(нявызн.)**. Göteborg:  Department of Computer Science and Engineering, Chalmers University of Technology (19 сакавіка 2010). — «Carlo Strozzi first used the term NoSQL in 1998 as a name for his open source relational database that did not offer a SQL interface[...]»  Праверана 12 May 2011.
9. ↑  NoSQL Relational Database Management System: Home Page **(нявызн.)**.  Strozzi.it (2 кастрычніка 2007). Праверана 29 March 2010.
10. ↑  *Strauch*. NoSQL Databases **(нявызн.)** 23–24. Праверана 27 жніўня 2017.

Спасылкі
--------

* *Strauch*. NoSQL whitepaper **(нявызн.)**. Stuttgart:  Hochschule der Medien.
* *Edlich*. NoSQL database List **(нявызн.)**(недаступная спасылка). Архівавана з першакрыніцы 26 снежня 2018. Праверана 23 кастрычніка 2023.
* *Neubauer*. Graph Databases, NOSQL and Neo4j **(нявызн.)** (2010).
* *Bushik*. A vendor-independent comparison of NoSQL databases: Cassandra, HBase, MongoDB, Riak **(нявызн.)**.  NetworkWorld (2012).
* *Zicari*. NoSQL Data Stores – Articles, Papers, Presentations **(нявызн.)**. *odbms.org* (2014).