NoSQL (зазвичай розшифровується як англ. non SQL або англ. non relational, іноді англ. not only SQL) — база даних, яка забезпечує механізм зберігання та видобування даних відмінний від підходу таблиць-відношень в реляційних базах даних.
Потреби у створенні
Подібні бази даних існували вже в другій половині 1960-х років, але тоді вони ще не здобули гучне ім'я «NoSQL», одержане після сплеску популярності на початку 21-ого століття, що був спричинений потребами Web 2.0 компаній, такими як Facebook, Google, та Amazon.com. NoSQL бази даних все більше і більше використовуються в задачах із застосуванням великих даних та [en] web-застосунках. NoSQL системи також називають «Not only SQL» (англ. not only SQL — не тільки SQL) для підкреслення того, що вони все-таки можуть підтримувати SQL-подібну структуру та мову запитів.
Мотиви підходу
Мотиви цього підходу включають: простоту дизайну схеми БД, значно спрощене горизонтальне масштабування на кластери машин (що є проблемою для реляційних баз даних), і тонкий контроль над доступністю. Структури даних, що використовуються в NoSQL (такі як ключ-значення, сховище з широким стовпчиком, граф, документ) є відмінними від тих, що використовуються за замовчуванням в реляційних базах, що робить тим самим деякі операції над даними значно швидшими на NoSQL. Точна відповідність та доречність використання баз даних NoSQL залежить від задач, котрі вирішуються.
Іноді структури даних, які використовуються в NoSQL базах можуть розглядатись як більш гнучкі, ніж таблиці реляційних моделей.
Особливості
Багато NoSQL сховищ нехтують узгодженістю даних (у сенсі теореми CAP) на противагу доступності, толерантності до партиціонування, та, звісно, швидкості. Бар'єрами прийняття парадигми NoSQL сховищ є використання низькорівневої мови запитів (замість добре розвиненого та стандартизованого SQL), брак стандартизованих інтерфейсів і значні інвестиції уже в існуючі реляційні бази. Більшість NoSQL сховищ не забезпечують використання ACID транзакцій, однак декілька баз, такі як MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (що технічно теж NewSQL база даних), Symas [en], та OrientDB зробили на цьому додатковий акцент. (Див. підтримка ACID та JOIN)
Натомість більшість NoSQL баз даних пропонують концепцію випадкового узгодження даних, в якому зміни в базі продубльовано на всі вузли «випадковим чином» (зазвичай така дія займає мілісекунди), що запити даних можуть не повернути оновлені дані моментально, або ж прочитані дані будуть не точними — давно знана проблема читання станів. На додаток, деякі NoSQL системи можуть демонструвати втрачені записи та інші форми [en]. На щастя, деякі NoSQL забезпечують принцип WAL-журналювання (англ. write-ahead logging) для уникнення втрати даних. Для розподіленої обробки транзакцій, поверх множинних баз даних, узгодженість даних, як наслідок, навіть більше завдання ніж воно постає при реляційному підході. Навіть нинішні реляційні бази не гарантують цілісність посилальну цілісність для розподілених баз даних. Існує всього декілька систем, які підтримують як ACID транзакції, так і [en] стандарти для обробки транзакцій на розподілених базах даних.
Історія
Термін NoSQL було використано Карлом Строззі у 1998 як назву для його СУБД-легковаговика, базі даних з відкритим кодом [en], яка хоч і не послуговувалась стандартом Structured Query Language (SQL) інтерфейсу, проте все ще залишалася реляційною. Його СУБД NoSQL відрізняється від загальної концепції баз даних NoSQL за 2009 рік. Строцці вказує на те, що оскільки поточний рух NoSQL "повністю відходить від реляційної моделі, його слід назвати більш відповідним чином «NoREL», що відповідає «No Relational».
Джоан Оскарссон (англ. Johan Oskarsson), розробник Last.fm, наново ввів термін NoSQL на початку 2009 року, коли ним було організовано захід з обговорення розподілених, з відкритим кодом, не реляційних баз даних. Спроба ввести таку назву відповідала неочікуваному зростанню кількості нереляційних, розподілених сховищ даних, включаючи клони з відкритим кодом Bigtable/MapReduce від Google та Dynamo від Amazon. Більшість ранніх NoSQL систем не пробували акцентувати увагу на забезпечення атомарності, узгодженості, ізоляції та довговічності, всупереч усталеній практиці серед реляційних систем управління базами даних.
Мортеза Сарголзай Джаван (англ. Morteza Sargolzaei Javan), дослідник [en], наприкінці 2009 року використовував термін «Багатомірна та гнучка модель для баз даних» з візуалізацією та зразком застосунку. Він зазначив, що такі моделі здатні виконувати нові операції під час розробки або, навіть, під час роботи баз даних.
Типи та приклади NoSQL баз даних
Відомо декілька способів класифікації NoSQL баз даних, кожен зі своїм набором категорій, деякі з них частково збігаються. Розглянемо базову класифікацію за моделями даних:
- [en]: [en], Cassandra, [en], [en], [en]
- Документ: Apache CouchDB, ArangoDB, [en], [en], Couchbase, [en], IBM Notes, MarkLogic, MongoDB, OrientDB, [en], RethinkDB
- Ключ-значення: Aerospike, [en], ArangoDB, Couchbase, [en], FairCom c-treeACE, [en], [en], [en], [en], [en], OrientDB, Redis, Riak, Berkeley DB, [en], [en]
- Граф: [en], ArangoDB, InfiniteGraph, [en], MarkLogic, Neo4j, OrientDB, [en]
- [en]: [en], ArangoDB, Couchbase, [en], [en], MarkLogic, OrientDB, [en]
Більш деталізована версія
Оригінальна назва | Тип | Приклад |
---|---|---|
Key-Value Cache | Ключ-значення: кеш | , , , GemFire, Hazelcast, , JBoss Cache, Memcached, Repcached, , |
Key-Value Store | Ключ-значення: сховище | Flare, Keyspace, RAMCloud, SchemaFree, , Aerospike |
Key-Value Store (Eventually-Consistent) | Ключ-значення: сховище (випадково-узгоджене) | DovetailDB, , , Riak, Dynomite, MotionDb, , SubRecord |
Key-Value Store (Ordered) | Ключ-значення: сховище (впорядковане) | Actord, , Lightcloud, , Luxio, , NMDB, Scalaris, TokyoTyrant |
Data-Structures Server | Сервер структурованих даних | Redis |
Tuple Store | Кортеж: сховище | , Coord, |
Object Database | Об'єктна база даних | DB4O, , , Shoal, |
Document Store | Документ: сховище | , Couchbase, CouchDB, , IBM Domino, MarkLogic, MongoDB, , RethinkDB, |
Wide Column Store | Широко-колонкове сховище | BigTable, Cassandra, , , , KAI, KDI, OpenNeptune, Qbase |
Ключ-значення
Ключ-значення (англ. Key-value, KV) сховище використовує асоціативний масив (знаний як карта або словник) як основну модель даних. В цій моделі дані представляються як колекція пар типу ключ-значення, таких, що кожен можливий ключ з'являється в колекціях не більше одного разу.
Модель такого типу є однією із найпростіших, і більш розвинені моделі зазвичай реалізовані як їх розширення. Модель типу ключ-значення може бути розширена до скінченно впорядкованої, що підтримує ключі в лексикографічному порядку. Це розширення є обчислювально потужним, в тому, що він може ефективно видобувати селективні діапазони ключів.
Моделі типу ключ-значення можуть використовувати різні рівні узгодженості, починаючи від [en] і завершуючи [en] даними. Деякі бази даних підтримують впорядковані ключі. Існують різні реалізації апаратного забезпечення, і деякі користувачі підтримують дані в пам'яті (RAM), в той час як інші використовують твердотільні (SSD) накопичувачі або класичні обертові (HDD) диски.
Приклади баз: , Redis, та .
Сховища документів
Центральним поняттям такої моделі даних є «документ». У той час кожна документно-орієнтована реалізація бази даних відрізняється від деталей цього визначення, в загальному, всі вони припускають, що документи інкапсулюють та шифрують збережені дані в деяких стандартних форматах або кодуваннях. Кодування на практиці включає XML, YAML і JSON, а також бінарні форми, такі як BSON. Документи адресуються в базі даних за допомогою унікального ключа, який представляє цей документ. Однією з інших визначальних характеристик документо-орієнтованої бази даних, є те, що крім пошуку по ключу, база даних також надає API або мову запитів, яка дозволяє виймати документи на основі їх вмісту.
Різноманітні способи реалізації пропонують різноманітні підходи і (або) способи групування документів:
- Колекції
- Теги
- Невидимі мета-дані
- Ієрархія директорій
У порівнянні з реляційними, колекції, до прикладу, можна розглядати як аналоги таблиць, а документи як аналоги до записів. Однак існує відмінність: кожен запис в таблиці має сталу послідовність атрибутів, в той час як документні бази можуть містити в колекції набори з абсолютно відмінними атрибутами.
Графи
Цей тип баз даних розроблений для даних, де дані можуть бути представлені у вигляді складових вершин графу, об'єднаних скінченним числом зв'язків між ними. Таким типом даних можуть бути соціальні мережі, мережі громадського транспорту, карти доріг тощо.
- Графові бази даних та їх мови запитів
База даних (назва) | Мова(и) | Примітки |
---|---|---|
SPARQL | RDF кортеж | |
, Java, .NET, Python | Графова база даних | |
Scala | Графова база даних | |
IBM DB2 | SPARQL | RDF кортеж, доданий в DB2 10 |
InfiniteGraph | Java | Графова база даних |
MarkLogic | Java, JavaScript, SPARQL, XQuery | Мульти модельна документна база та RDF кортеж |
Neo4j | Графова база даних | |
Java, SPARQL 1.1 | RDF кортеж | |
Oracle | SPARQL 1.1 | RDF кортеж 11g |
OrientDB | Java | Мульти-модельна документна база і графова база даних |
Java | Графова база даних | |
, C#, Java, SPARQL | Гібрид Middleware та підсистемного зберігання | |
Java, SPARQL | Графова база даних |
Об'єктно-орієнтовані бази даних
Продуктивність
Бен Скотфілд оцінив різні категорії NoSQL баз даних:
Модель даних | Продуктивність | Масштабованість | Гнучкість | Складність | Функціональність |
---|---|---|---|---|---|
Key–Value Store | high | high | high | none | variable (none) |
Column-Oriented Store | high | high | moderate | low | minimal |
Document-Oriented Store | high | variable (high) | high | low | variable (low) |
Graph Database | variable | variable | high | high | теорія графів |
Relational Database | variable | variable | low | moderate | реляційна алгебра |
Обробка реляційних даних
Оскільки у більшості NoSQL баз даних відсутня можливість для операцій з'єднання в запитах, схема БД повинна бути спроектована іншим чином. Виділяють три техніки обробки реляційних даних в NoSQL базах:
Множинні запити
Підхід розбиття складних запитів на підмножину простих. NoSQL запити зазвичай простіші за традиційні SQL запити, тож можливість запуску додаткових запитів є доцільною з точки зору сумарного часу виконання. У випадку потреби запуску значної кількості запитів, варто розглянути наступні два підходи.
Кешування/Реплікація/Ненормалізовані дані
На відміну від зберігання вийнятково зовнішніх ключів, звичний підхід зберігати зовнішні значення заразом з даними моделі. До прикладу, кожен коментар блогу може включати ім'я користувача окрім його id, забезпечуючи тим самим легкий доступ до імені користувача, не вимагаючи іншого пошуку. Однак, коли ім'я користувача було змінено - це тепер вимагатиме змін в багатьох місцях. Таким чином, цей підхід працює краще, при частому читанні даних, ніж їх модифікації.
Вкладені дані
В документних базах, таких як MongoDB це цілком звично розміщувати більше даних в меншу кількість колекцій. До прикладу, застосунок типу блог може зберігати коментарі до певного посту як один запис. При цьому підході один документ міститиме всі необхідні дані для певного типу завдань.
Підтримка ACID та JOIN
Якщо база даних відзначена як така, що підтримує ACID чи joins, це означає, що це підтверджено в її документації. Ступінь підтримки в тій чи іншій мірі відповідає потребам конкретного застосування.
Database | ACID | Joins |
---|---|---|
[en] | Так | Ні |
Так | Так | |
ArangoDB | Так | Так |
CouchDB | Так | Так |
Так | Так | |
DB2 | Так | Так |
Так | Ні | |
Так | Ні | |
MarkLogic | Так | Так |
OrientDB | Так | Так |
- Приєднання виконуються не обов'язково над документами баз даних, проте MarkLogic може виконати приєднання за допомогою семантики.
- OrientDB може зробити 1:1 приєднання за допомогою зберігання прямих посилань на зовнішні записи.
Примітки
- http://nosql-database.org/ [ 26 грудня 2018 у Wayback Machine.] «NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable»
- Leavitt, Neal (2010). (PDF). . Архів оригіналу (PDF) за 18 листопада 2017. Процитовано 8 травня 2018.
- Mohan, C. (2013). (PDF). Proc. 16th Int'l Conf. on Extending Database Technology. Архів оригіналу (PDF) за 5 липня 2015. Процитовано 8 травня 2018.
- . Eventbrite.com. Архів оригіналу за 3 серпня 2017. Процитовано 6 березня 2017.
- . WIRED. 19 січня 2012. Архів оригіналу за 16 липня 2018. Процитовано 6 березня 2017.
- . DB-Engines.com. 21 листопада 2013. Архів оригіналу за 24 листопада 2013. Процитовано 24 листопада 2013.
- . Архів оригіналу за 21 квітня 2021. Процитовано 8 травня 2018.
NoSQL database, also called Not Only SQL
- Fowler, Martin. . Архів оригіналу за 1 травня 2021. Процитовано 8 травня 2018.
many advocates of NoSQL say that it does not mean a "no" to SQL, rather it means Not Only SQL
- Vogels, Werner (18 січня 2012). Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications. All Things Distributed. Архів оригіналу за 15 вересня 2012. Процитовано 6 березня 2017.
- Grolinger, K.; Higashino, W. A.; Tiwari, A.; Capretz, M. A. M. (2013). (PDF). Aira, Springer. Архів оригіналу (PDF) за 9 січня 2014. Процитовано 8 Jan 2014.
- . Aphyr.com. 20 квітня 2015. Архів оригіналу за 29 червня 2018. Процитовано 6 березня 2017.
- . Slideshare.net. Архів оригіналу за 29 березня 2019. Процитовано 6 березня 2017.
- Fowler, Adam. . Dummies.com. Архів оригіналу за 31 липня 2016. Процитовано 6 березня 2017.
- . Iggyfernandez.wordpress.com. Архів оригіналу за 11 липня 2018. Процитовано 6 березня 2017.
- Sargolzaei Javan, Morteza; Mohanna, Farahnaz (2009). . Innovations and Advances in Computer Sciences and Engineering. Springer. с. 159—164. Архів оригіналу за 21 липня 2018. Процитовано 21 травня 2018.
- Lith, Adam; Mattson, Jakob (2010). (PDF). Göteborg: Department of Computer Science and Engineering, Chalmers University of Technology. с. 70. Архів оригіналу (PDF) за 16 серпня 2011. Процитовано 12 травня 2011.
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[...]
- . Strozzi.it. 2 жовтня 2007. Архів оригіналу за 20 квітня 2016. Процитовано 29 березня 2010.
- . Blog.sym-link.com. 12 травня 2009. Архів оригіналу за 16 липня 2011. Процитовано 29 березня 2010.
- Chapple, Mike. . Архів оригіналу за 29 грудня 2016. Процитовано 21 травня 2018.
- Sandy (14 January 2011). Key Value stores and the NoSQL movement. http://dba.stackexchange.com/questions/607/what-is-a-key-value-store-database: Stackexchange. Процитовано 1 January 2012.
Key-value stores allow the application developer to store schema-less data. This data usually consists of a string that represents the key, and the actual data that is considered the value in the "key-value" relationship. The data itself is usually some kind of primitive of the programming language (a string, an integer, or an array) or an object that is being marshaled by the programming language's bindings to the key-value store. This structure replaces the need for a fixed data model and allows proper formatting.
- Seeger, Marc (21 September 2009). (PDF). http://blog.marc-seeger.de/2009/09/21/key-value-stores-a-practical-overview/: Marc Seeger. Архів оригіналу (PDF) за 5 січня 2012. Процитовано 1 January 2012.
Key-value stores provide a high-performance alternative to relational database systems with respect to storing and accessing data. This paper provides a short overview of some of the currently available key-value stores and their interface to the Ruby programming language.
- Katsov, Ilya (1 березня 2012). . Ilya Katsov. Архів оригіналу за 10 травня 2014. Процитовано 8 травня 2014.
- Scofield, Ben (14 січня 2010). . Архів оригіналу за 29 березня 2019. Процитовано 26 червня 2014.
- . Gennet.com. Архів оригіналу за 3 березня 2017. Процитовано 6 березня 2017.
- . OrientDB.com. Архів оригіналу за 11 травня 2018. Процитовано 24 квітня 2017.
Див. також
Посилання
- NoSQL Databases Explained [ 2 грудня 2015 у Wayback Machine.]
- Oracle NoSQL Database [ 8 лютого 2016 у Wayback Machine.]
- Strauch, Christoph. (PDF). Stuttgart: Hochschule der Medien. Архів оригіналу (PDF) за 17 травня 2018. Процитовано 24 травня 2018.
- Edlich, Stefan. . Архів оригіналу за 26 грудня 2018. Процитовано 4 лютого 2016.
- Neubauer, Peter (2010). . Архів оригіналу за 26 грудня 2018. Процитовано 24 травня 2018.
- Bushik, Sergey (2012). . NetworkWorld. Архів оригіналу за 26 грудня 2018. Процитовано 24 травня 2018.
- Zicari, Roberto V. (2014). . odbms.org. Архів оригіналу за 26 грудня 2018. Процитовано 24 травня 2018.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
NoSQL zazvichaj rozshifrovuyetsya yak angl non SQL abo angl non relational inodi angl not only SQL baza danih yaka zabezpechuye mehanizm zberigannya ta vidobuvannya danih vidminnij vid pidhodu tablic vidnoshen v relyacijnih bazah danih Potrebi u stvorenniPodibni bazi danih isnuvali vzhe v drugij polovini 1960 h rokiv ale todi voni she ne zdobuli guchne im ya NoSQL oderzhane pislya splesku populyarnosti na pochatku 21 ogo stolittya sho buv sprichinenij potrebami Web 2 0 kompanij takimi yak Facebook Google ta Amazon com NoSQL bazi danih vse bilshe i bilshe vikoristovuyutsya v zadachah iz zastosuvannyam velikih danih ta en web zastosunkah NoSQL sistemi takozh nazivayut Not only SQL angl not only SQL ne tilki SQL dlya pidkreslennya togo sho voni vse taki mozhut pidtrimuvati SQL podibnu strukturu ta movu zapitiv Motivi pidhodu Motivi cogo pidhodu vklyuchayut prostotu dizajnu shemi BD znachno sproshene gorizontalne masshtabuvannya na klasteri mashin sho ye problemoyu dlya relyacijnih baz danih i tonkij kontrol nad dostupnistyu Strukturi danih sho vikoristovuyutsya v NoSQL taki yak klyuch znachennya shovishe z shirokim stovpchikom graf dokument ye vidminnimi vid tih sho vikoristovuyutsya za zamovchuvannyam v relyacijnih bazah sho robit tim samim deyaki operaciyi nad danimi znachno shvidshimi na NoSQL Tochna vidpovidnist ta dorechnist vikoristannya baz danih NoSQL zalezhit vid zadach kotri virishuyutsya Inodi strukturi danih yaki vikoristovuyutsya v NoSQL bazah mozhut rozglyadatis yak bilsh gnuchki nizh tablici relyacijnih modelej OsoblivostiBagato NoSQL shovish nehtuyut uzgodzhenistyu danih u sensi teoremi CAP na protivagu dostupnosti tolerantnosti do particionuvannya ta zvisno shvidkosti Bar yerami prijnyattya paradigmi NoSQL shovish ye vikoristannya nizkorivnevoyi movi zapitiv zamist dobre rozvinenogo ta standartizovanogo SQL brak standartizovanih interfejsiv i znachni investiciyi uzhe v isnuyuchi relyacijni bazi Bilshist NoSQL shovish ne zabezpechuyut vikoristannya ACID tranzakcij odnak dekilka baz taki yak MarkLogic Aerospike FairCom c treeACE Google Spanner sho tehnichno tezh NewSQL baza danih Symas en ta OrientDB zrobili na comu dodatkovij akcent Div pidtrimka ACID ta JOIN Natomist bilshist NoSQL baz danih proponuyut koncepciyu vipadkovogo uzgodzhennya danih v yakomu zmini v bazi produblovano na vsi vuzli vipadkovim chinom zazvichaj taka diya zajmaye milisekundi sho zapiti danih mozhut ne povernuti onovleni dani momentalno abo zh prochitani dani budut ne tochnimi davno znana problema chitannya staniv Na dodatok deyaki NoSQL sistemi mozhut demonstruvati vtracheni zapisi ta inshi formi en Na shastya deyaki NoSQL zabezpechuyut princip WAL zhurnalyuvannya angl write ahead logging dlya uniknennya vtrati danih Dlya rozpodilenoyi obrobki tranzakcij poverh mnozhinnih baz danih uzgodzhenist danih yak naslidok navit bilshe zavdannya nizh vono postaye pri relyacijnomu pidhodi Navit ninishni relyacijni bazi ne garantuyut cilisnist posilalnu cilisnist dlya rozpodilenih baz danih Isnuye vsogo dekilka sistem yaki pidtrimuyut yak ACID tranzakciyi tak i en standarti dlya obrobki tranzakcij na rozpodilenih bazah danih IstoriyaPershe vizualne predstavlennya iniciativ NoSQL Termin NoSQL bulo vikoristano Karlom Strozzi u 1998 yak nazvu dlya jogo SUBD legkovagovika bazi danih z vidkritim kodom en yaka hoch i ne poslugovuvalas standartom Structured Query Language SQL interfejsu prote vse she zalishalasya relyacijnoyu Jogo SUBD NoSQL vidriznyayetsya vid zagalnoyi koncepciyi baz danih NoSQL za 2009 rik Strocci vkazuye na te sho oskilki potochnij ruh NoSQL povnistyu vidhodit vid relyacijnoyi modeli jogo slid nazvati bilsh vidpovidnim chinom NoREL sho vidpovidaye No Relational Dzhoan Oskarsson angl Johan Oskarsson rozrobnik Last fm nanovo vviv termin NoSQL na pochatku 2009 roku koli nim bulo organizovano zahid z obgovorennya rozpodilenih z vidkritim kodom ne relyacijnih baz danih Sproba vvesti taku nazvu vidpovidala neochikuvanomu zrostannyu kilkosti nerelyacijnih rozpodilenih shovish danih vklyuchayuchi kloni z vidkritim kodom Bigtable MapReduce vid Google ta Dynamo vid Amazon Bilshist rannih NoSQL sistem ne probuvali akcentuvati uvagu na zabezpechennya atomarnosti uzgodzhenosti izolyaciyi ta dovgovichnosti vsuperech ustalenij praktici sered relyacijnih sistem upravlinnya bazami danih Morteza Sargolzaj Dzhavan angl Morteza Sargolzaei Javan doslidnik en naprikinci 2009 roku vikoristovuvav termin Bagatomirna ta gnuchka model dlya baz danih z vizualizaciyeyu ta zrazkom zastosunku Vin zaznachiv sho taki modeli zdatni vikonuvati novi operaciyi pid chas rozrobki abo navit pid chas roboti baz danih Tipi ta prikladi NoSQL baz danihVidomo dekilka sposobiv klasifikaciyi NoSQL baz danih kozhen zi svoyim naborom kategorij deyaki z nih chastkovo zbigayutsya Rozglyanemo bazovu klasifikaciyu za modelyami danih en en Cassandra en en en Dokument Apache CouchDB ArangoDB en en Couchbase en IBM Notes MarkLogic MongoDB OrientDB en RethinkDB Klyuch znachennya Aerospike en ArangoDB Couchbase en FairCom c treeACE en en en en en OrientDB Redis Riak Berkeley DB en en Graf en ArangoDB InfiniteGraph en MarkLogic Neo4j OrientDB en en en ArangoDB Couchbase en en MarkLogic OrientDB en Bilsh detalizovana versiya Originalna nazva Tip PrikladKey Value Cache Klyuch znachennya kesh GemFire Hazelcast JBoss Cache Memcached Repcached Key Value Store Klyuch znachennya shovishe Flare Keyspace RAMCloud SchemaFree AerospikeKey Value Store Eventually Consistent Klyuch znachennya shovishe vipadkovo uzgodzhene DovetailDB Riak Dynomite MotionDb SubRecordKey Value Store Ordered Klyuch znachennya shovishe vporyadkovane Actord Lightcloud Luxio NMDB Scalaris TokyoTyrantData Structures Server Server strukturovanih danih RedisTuple Store Kortezh shovishe Coord Object Database Ob yektna baza danih DB4O Shoal Document Store Dokument shovishe Couchbase CouchDB IBM Domino MarkLogic MongoDB RethinkDB Wide Column Store Shiroko kolonkove shovishe BigTable Cassandra KAI KDI OpenNeptune QbaseKlyuch znachennya Dokladnishe Baza danih klyuch znachennya Klyuch znachennya angl Key value KV shovishe vikoristovuye asociativnij masiv znanij yak karta abo slovnik yak osnovnu model danih V cij modeli dani predstavlyayutsya yak kolekciya par tipu klyuch znachennya takih sho kozhen mozhlivij klyuch z yavlyayetsya v kolekciyah ne bilshe odnogo razu Model takogo tipu ye odniyeyu iz najprostishih i bilsh rozvineni modeli zazvichaj realizovani yak yih rozshirennya Model tipu klyuch znachennya mozhe buti rozshirena do skinchenno vporyadkovanoyi sho pidtrimuye klyuchi v leksikografichnomu poryadku Ce rozshirennya ye obchislyuvalno potuzhnim v tomu sho vin mozhe efektivno vidobuvati selektivni diapazoni klyuchiv Modeli tipu klyuch znachennya mozhut vikoristovuvati rizni rivni uzgodzhenosti pochinayuchi vid en i zavershuyuchi en danimi Deyaki bazi danih pidtrimuyut vporyadkovani klyuchi Isnuyut rizni realizaciyi aparatnogo zabezpechennya i deyaki koristuvachi pidtrimuyut dani v pam yati RAM v toj chas yak inshi vikoristovuyut tverdotilni SSD nakopichuvachi abo klasichni obertovi HDD diski Prikladi baz Redis ta Shovisha dokumentiv Dokladnishe Dokumento oriyentovana sistema keruvannya bazami danih Centralnim ponyattyam takoyi modeli danih ye dokument U toj chas kozhna dokumentno oriyentovana realizaciya bazi danih vidriznyayetsya vid detalej cogo viznachennya v zagalnomu vsi voni pripuskayut sho dokumenti inkapsulyuyut ta shifruyut zberezheni dani v deyakih standartnih formatah abo koduvannyah Koduvannya na praktici vklyuchaye XML YAML i JSON a takozh binarni formi taki yak BSON Dokumenti adresuyutsya v bazi danih za dopomogoyu unikalnogo klyucha yakij predstavlyaye cej dokument Odniyeyu z inshih viznachalnih harakteristik dokumento oriyentovanoyi bazi danih ye te sho krim poshuku po klyuchu baza danih takozh nadaye API abo movu zapitiv yaka dozvolyaye vijmati dokumenti na osnovi yih vmistu Riznomanitni sposobi realizaciyi proponuyut riznomanitni pidhodi i abo sposobi grupuvannya dokumentiv Kolekciyi Tegi Nevidimi meta dani Iyerarhiya direktorij U porivnyanni z relyacijnimi kolekciyi do prikladu mozhna rozglyadati yak analogi tablic a dokumenti yak analogi do zapisiv Odnak isnuye vidminnist kozhen zapis v tablici maye stalu poslidovnist atributiv v toj chas yak dokumentni bazi mozhut mistiti v kolekciyi nabori z absolyutno vidminnimi atributami Grafi Dokladnishe Grafova baza danih Cej tip baz danih rozroblenij dlya danih de dani mozhut buti predstavleni u viglyadi skladovih vershin grafu ob yednanih skinchennim chislom zv yazkiv mizh nimi Takim tipom danih mozhut buti socialni merezhi merezhi gromadskogo transportu karti dorig tosho Grafovi bazi danih ta yih movi zapitivBaza danih nazva Mova i PrimitkiSPARQL RDF kortezhC Java NET Python Grafova baza danihScala Grafova baza danihIBM DB2 SPARQL RDF kortezh dodanij v DB2 10InfiniteGraph Java Grafova baza danihMarkLogic Java JavaScript SPARQL XQuery Multi modelna dokumentna baza ta RDF kortezhNeo4j Grafova baza danihJava SPARQL 1 1 RDF kortezhOracle SPARQL 1 1 RDF kortezh 11gOrientDB Java Multi modelna dokumentna baza i grafova baza danihJava Grafova baza danihC C Java SPARQL Gibrid Middleware ta pidsistemnogo zberigannyaJava SPARQL Grafova baza danihOb yektno oriyentovani bazi danih Dokladnishe Ob yektno oriyentovana baza danih db4o JADEProduktivnistBen Skotfild ociniv rizni kategoriyi NoSQL baz danih Model danih Produktivnist Masshtabovanist Gnuchkist Skladnist FunkcionalnistKey Value Store high high high none variable none Column Oriented Store high high moderate low minimalDocument Oriented Store high variable high high low variable low Graph Database variable variable high high teoriya grafivRelational Database variable variable low moderate relyacijna algebraObrobka relyacijnih danihOskilki u bilshosti NoSQL baz danih vidsutnya mozhlivist dlya operacij z yednannya v zapitah shema BD povinna buti sproektovana inshim chinom Vidilyayut tri tehniki obrobki relyacijnih danih v NoSQL bazah Mnozhinni zapiti Pidhid rozbittya skladnih zapitiv na pidmnozhinu prostih NoSQL zapiti zazvichaj prostishi za tradicijni SQL zapiti tozh mozhlivist zapusku dodatkovih zapitiv ye docilnoyu z tochki zoru sumarnogo chasu vikonannya U vipadku potrebi zapusku znachnoyi kilkosti zapitiv varto rozglyanuti nastupni dva pidhodi Keshuvannya Replikaciya Nenormalizovani dani Na vidminu vid zberigannya vijnyatkovo zovnishnih klyuchiv zvichnij pidhid zberigati zovnishni znachennya zarazom z danimi modeli Do prikladu kozhen komentar blogu mozhe vklyuchati im ya koristuvacha okrim jogo id zabezpechuyuchi tim samim legkij dostup do imeni koristuvacha ne vimagayuchi inshogo poshuku Odnak koli im ya koristuvacha bulo zmineno ce teper vimagatime zmin v bagatoh miscyah Takim chinom cej pidhid pracyuye krashe pri chastomu chitanni danih nizh yih modifikaciyi Vkladeni dani V dokumentnih bazah takih yak MongoDB ce cilkom zvichno rozmishuvati bilshe danih v menshu kilkist kolekcij Do prikladu zastosunok tipu blog mozhe zberigati komentari do pevnogo postu yak odin zapis Pri comu pidhodi odin dokument mistitime vsi neobhidni dani dlya pevnogo tipu zavdan Pidtrimka ACID ta JOINYaksho baza danih vidznachena yak taka sho pidtrimuye ACID chi joins ce oznachaye sho ce pidtverdzheno v yiyi dokumentaciyi Stupin pidtrimki v tij chi inshij miri vidpovidaye potrebam konkretnogo zastosuvannya Database ACID Joins en Tak NiTak TakArangoDB Tak TakCouchDB Tak TakTak TakDB2 Tak TakTak NiTak NiMarkLogic Tak TakOrientDB Tak TakPriyednannya vikonuyutsya ne obov yazkovo nad dokumentami baz danih prote MarkLogic mozhe vikonati priyednannya za dopomogoyu semantiki OrientDB mozhe zrobiti 1 1 priyednannya za dopomogoyu zberigannya pryamih posilan na zovnishni zapisi Primitkihttp nosql database org 26 grudnya 2018 u Wayback Machine NoSQL DEFINITION Next Generation Databases mostly addressing some of the points being non relational distributed open source and horizontally scalable Leavitt Neal 2010 PDF Arhiv originalu PDF za 18 listopada 2017 Procitovano 8 travnya 2018 Mohan C 2013 PDF Proc 16th Int l Conf on Extending Database Technology Arhiv originalu PDF za 5 lipnya 2015 Procitovano 8 travnya 2018 Eventbrite com Arhiv originalu za 3 serpnya 2017 Procitovano 6 bereznya 2017 WIRED 19 sichnya 2012 Arhiv originalu za 16 lipnya 2018 Procitovano 6 bereznya 2017 DB Engines com 21 listopada 2013 Arhiv originalu za 24 listopada 2013 Procitovano 24 listopada 2013 Arhiv originalu za 21 kvitnya 2021 Procitovano 8 travnya 2018 NoSQL database also called Not Only SQL Fowler Martin Arhiv originalu za 1 travnya 2021 Procitovano 8 travnya 2018 many advocates of NoSQL say that it does not mean a no to SQL rather it means Not Only SQL Vogels Werner 18 sichnya 2012 Amazon DynamoDB a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications All Things Distributed Arhiv originalu za 15 veresnya 2012 Procitovano 6 bereznya 2017 Grolinger K Higashino W A Tiwari A Capretz M A M 2013 PDF Aira Springer Arhiv originalu PDF za 9 sichnya 2014 Procitovano 8 Jan 2014 Aphyr com 20 kvitnya 2015 Arhiv originalu za 29 chervnya 2018 Procitovano 6 bereznya 2017 Slideshare net Arhiv originalu za 29 bereznya 2019 Procitovano 6 bereznya 2017 Fowler Adam Dummies com Arhiv originalu za 31 lipnya 2016 Procitovano 6 bereznya 2017 Iggyfernandez wordpress com Arhiv originalu za 11 lipnya 2018 Procitovano 6 bereznya 2017 Sargolzaei Javan Morteza Mohanna Farahnaz 2009 Innovations and Advances in Computer Sciences and Engineering Springer s 159 164 Arhiv originalu za 21 lipnya 2018 Procitovano 21 travnya 2018 Lith Adam Mattson Jakob 2010 PDF Goteborg Department of Computer Science and Engineering Chalmers University of Technology s 70 Arhiv originalu PDF za 16 serpnya 2011 Procitovano 12 travnya 2011 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 Strozzi it 2 zhovtnya 2007 Arhiv originalu za 20 kvitnya 2016 Procitovano 29 bereznya 2010 Blog sym link com 12 travnya 2009 Arhiv originalu za 16 lipnya 2011 Procitovano 29 bereznya 2010 Chapple Mike Arhiv originalu za 29 grudnya 2016 Procitovano 21 travnya 2018 Sandy 14 January 2011 Key Value stores and the NoSQL movement http dba stackexchange com questions 607 what is a key value store database Stackexchange Procitovano 1 January 2012 Key value stores allow the application developer to store schema less data This data usually consists of a string that represents the key and the actual data that is considered the value in the key value relationship The data itself is usually some kind of primitive of the programming language a string an integer or an array or an object that is being marshaled by the programming language s bindings to the key value store This structure replaces the need for a fixed data model and allows proper formatting Seeger Marc 21 September 2009 PDF http blog marc seeger de 2009 09 21 key value stores a practical overview Marc Seeger Arhiv originalu PDF za 5 sichnya 2012 Procitovano 1 January 2012 Key value stores provide a high performance alternative to relational database systems with respect to storing and accessing data This paper provides a short overview of some of the currently available key value stores and their interface to the Ruby programming language Katsov Ilya 1 bereznya 2012 Ilya Katsov Arhiv originalu za 10 travnya 2014 Procitovano 8 travnya 2014 Scofield Ben 14 sichnya 2010 Arhiv originalu za 29 bereznya 2019 Procitovano 26 chervnya 2014 Gennet com Arhiv originalu za 3 bereznya 2017 Procitovano 6 bereznya 2017 OrientDB com Arhiv originalu za 11 travnya 2018 Procitovano 24 kvitnya 2017 Div takozhRozpodilenij kesh Teorema CAPPosilannyaNoSQL Databases Explained 2 grudnya 2015 u Wayback Machine Oracle NoSQL Database 8 lyutogo 2016 u Wayback Machine Strauch Christoph PDF Stuttgart Hochschule der Medien Arhiv originalu PDF za 17 travnya 2018 Procitovano 24 travnya 2018 Edlich Stefan Arhiv originalu za 26 grudnya 2018 Procitovano 4 lyutogo 2016 Neubauer Peter 2010 Arhiv originalu za 26 grudnya 2018 Procitovano 24 travnya 2018 Bushik Sergey 2012 NetworkWorld Arhiv originalu za 26 grudnya 2018 Procitovano 24 travnya 2018 Zicari Roberto V 2014 odbms org Arhiv originalu za 26 grudnya 2018 Procitovano 24 travnya 2018