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, 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 лістапада 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 (8 жніўня 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).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.