NoSQL
NoSQL (ноу-эс-кью-эл, ад англ.: non SQL — не-SQL)[1] — гэта падыход да праектавання баз даных, які прадастаўляе механізмы для захоўвання і пошуку даных, адрозныя тых, што выкарыстоўваюцца ў рэляцыйных базах даных. Замест тыповай таблічнай структуры рэляцыйнай базы даных NoSQL-сістэмы змяшчаюць даныя ў адной структуры, якая не патрабуе яўнага апісання схемы базы даных і такім чынам дазваляе неструктураваныя наборы даных.[2] Сістэмы NoSQL таксама часам называюць Not only SQL («не толькі SQL»), каб падкрэсліць, што яны могуць падтрымліваць мовы запытаў, падобныя на SQL. [3] [4]
Нерэляцыйныя базы даных існуюць з канца 1960-х гадоў, але назва «NoSQL» была створана толькі ў пачатку 21-га стагоддзя з развіццём тэхналогій Web 2.0.[5] Базы даных NoSQL таксама выкарыстоўваюцца для апрацоўкі вялікіх даных і ў вэб-праграмах у рэжыме рэальнага часу.[6]
Структуры даных, якія выкарыстоўваюцца базамі даных NoSQL (напрыклад, пара ключ-значэнне, графы або дакументы), адрозніваюцца ад структур рэляцыйных баз даных, што робіць некаторыя аперацыі больш хуткімі ў NoSQL. Часам структуры даных NoSQL таксама разглядаюцца як «больш гнуткія», чым табліцы рэляцыйных баз даных.[7]
Гісторыя
[правіць | правіць зыходнік]Тэрмін NoSQL быў выкарыстаны Карла Строцы ў 1998 годзе, каб назваць створаную ім базу даных Strozzi NoSQL, якая не выкарыстоўвала SQL, але па-ранейшаму была рэляцыйнай.[8] Яго разуменне тэрміна адрозніваецца ад канцэпцыі NoSQL, якая распаўсюдзілася пасля 2009 года. Строцы мяркуе, што, паколькі сучасны рух NoSQL "цалкам адыходзіць ад рэляцыйнай мадэлі, яго варта было б больш правільна называць «NoREL» [9], маючы на ўвазе «not relational» — «нерэляцыйны».
Віды і прыклады
[правіць | правіць зыходнік]Існуюць розныя класіфікацыі баз даных NoSQL. Далей прыводзяцца прыклады суадносна з выкарыстанымі мадэлямі даных: [10]
Від | Прыклады |
---|---|
Кэш ключ-значэнне | 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, можна змясціць больш даных у меншай колькасці калекцый. Напрыклад, у праграме для вядзення блога можна выбраць захаванне каментарыяў у дакуменце паведамлення ў блогу, каб пры аднаразовым пошуку можна было атрымаць усе каментарыі. Такім чынам, пры такім падыходзе адзіны дакумент змяшчае ўсе даныя, неабходныя для канкрэтнай задачы.
Гл. таксама
[правіць | правіць зыходнік]Крыніцы
[правіць | правіць зыходнік]- ↑ http://nosql-database.org/ Архівавана 26 снежня 2018. «NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points : being non-relational, distributed, open-source and horizontally scalable».
- ↑ https://www.ibm.com/topics/nosql-databases «What is a NoSQL database?»
- ↑ NoSQL (Not Only SQL) . — «NoSQL database, also called Not Only SQL»
- ↑ Fowler. NosqlDefinition . — «many advocates of NoSQL say that it does not mean a "no" to SQL, rather it means Not Only SQL»
- ↑ Amazon Goes Back to the Future With 'NoSQL' Database . WIRED (19 студзеня 2012). Праверана 6 сакавіка 2017.
- ↑ RDBMS dominate the database market, but NoSQL systems are catching up . DB-Engines.com (21 лістапада 2013). Праверана 24 November 2013.
- ↑ Vogels. Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications . All Things Distributed (18 студзеня 2012). Праверана 6 сакавіка 2017.
- ↑ 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 (27 лістапада 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.
- ↑ NoSQL Relational Database Management System: Home Page . Strozzi.it (2 кастрычніка 2007). Праверана 29 March 2010.
- ↑ 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).