Документо-орієнтована система керування базами даних (англ. document-oriented database) — система керування базами даних, спеціально призначена для зберігання ієрархічних структур даних (документів) і зазвичай реалізована за допомогою підходу NoSQL. В основі документо-орієнтованих СКБД лежать документні сховища (англ. document store), котрі мають структуру дерева (іноді лісу). Структура дерева починається з кореневого вузла і може містити кілька внутрішніх і листових вузлів. Листові вузли містять дані, які при додаванні документа заносяться в індекси, що дозволяє навіть при досить складній структурі знаходити місце (шлях) шуканих даних. API для пошуку дозволяє знаходити за запитом документи та частини документів. На відміну від сховищ типу ключ-значення, вибірка за запитом до документного сховища може містити частини великої кількості документів без повного завантаження цих документів в оперативну пам'ять.
Документи можуть бути організовані (згруповані) в колекції. Їх можна вважати віддаленим аналогом таблиць реляційних СУБД, але колекції можуть містити інші колекції. Хоча документи колекції можуть бути довільними, для ефективнішого індексування краще об'єднувати у колекцію документи зі схожою структурою.
Документо-орієнтовані бази даних застосовуються у системах керування вмістом, видавничій справі, документальному пошуку тощо. Приклади СУБД даного типу — CouchDB, Couchbase, MarkLogic, MongoDB, , Berkeley DB XML.
Документи
Центральним поняттям документо-орієнтованих баз даних є Документ. Деталі визначення цієї головної концепції різняться у різних реалізаціях документо-орієнтованих баз даних, але загалом всі вони мають на увазі, що документ ізолює дані та кодує їх (або інформацію) у певному форматі або кодуванні. Це кодування може використовувати XML, YAML, JSON, BSON, а також бінарні формати, такі як PDF чи документи Microsoft Office (MS Word, Excel, тощо).
Документи всередині документо-орієнтованої бази даних у певному розумінні подібні до записів або рядків реляційних баз даних, але вимоги до них не такі жорсткі. Вони ані потребують задовольняти стандартній схемі, ані мати однакові секції, частини або ключі. Наприклад, такий документ
{ Ім'я: "Микола", Адреса: "Коцюбинського, 5", Захоплення: "рибалка" }
Другий документ може бути:
{ Ім ’я: "Петро", Адреса: "Панаса Мирного, 15", Діти: [ {Ім ’я: "Михайло", Вік: 10}, {Ім ’я: "Євгенія", Вік: 8}, {Ім ’я: "Одарка", Вік: 5}, {Ім ’я: "Олена", Вік: 2} ] }
Ці два документи мають спільні структурні елементи, але кожен має і свої власні унікальні елементи. На відміну від реляційних баз даних, де кожен запис містить однакові поля, невикористані з яких залишаються порожніми, у документно-орієнтованих базах нема пустих полів в жодному документі (запису), як у прикладі вище. Такий підхід дозволяє додавати нову інформацію у запис без потреби, щоб кожен інший подібний запис бази даних мав таку саму структуру.
Ключі
Документо-орієнтована СКБД звертається до документів через унікальний ключ, який представляє документ. Цей ключ часто є простим рядком, URI або шляхом. Ключ використовується для отримання документу з бази даних. Звичайно СКДБ зберігає індекс ключів для прискорення одержання документів.
Пошук
Іншою визначальною характеристикою документо-орієнтованих систем керування базами даних є спосіб, у який, крім простого пошуку за схемою ключ-документ, можна одержати документ. Для цього база даних надає програмний інтерфейс (API) або мову запитів, котрі дають користувачеві засоби шукати документ. Наприклад, ви хочете запитати всі документи з певним набором полів і з певними значеннями. Набір інтерфейсу запитів або мов запитів у реалізаціях, так само як і очікувана продуктивність запитів, дуже різниться від одної імплементації документо-орієнтованої СКДБ до іншої.
Організація
Реалізації відрізняються наборами способів організації документів, включаючи такі поширені як
Реалізації
Назва | Видавець | Ліцензія | Мова | Примітки | RESTful API |
---|---|---|---|---|---|
ArangoDB | triAGENS [ 15 квітня 2011 у Wayback Machine.] | Apache License 2.0 | C, & Javascript | розподілена багато-модельне, високопродуктивне сховище документів та графічна база даних | так |
BaseX Team [ 28 вересня 2007 у Wayback Machine.] | BSD License | Java, XQuery | Support for XML, JSON and binary formats; client-/server based architecture; concurrent structural and full-text searches and updates; REST APIs. | так | |
Cassandra | Apache Software Foundation | Apache License | Java | JSON over HTTP | так |
Cloudant, Inc. [ 25 червня 2014 у Wayback Machine.] | власницька | Erlang, Java, Scala та C | розподілена служба баз даних на основі , відкритого форку CouchDB від Apache | так | |
вільна спільнотна ліцензія / комерційна | безсхемна, докумнто-орієнтована платформа з сервером зберігання даних, рушій повнотекстового пошуку, інформаційне ранжування пошукової релевантності і кластерізація | так | |||
Couchbase Server | Apache License | Erlang та C | розподілена NoSQL | так | |
CouchDB | Apache Software Foundation | Apache License | Erlang | JSON через REST/HTTP з та обмеженими ACID властивостями. Використовує MapReduce для видів і запитів | так |
, [1] [ 27 травня 2020 у Wayback Machine.] | LGPL | XQuery, Java | XML через REST/HTTP, WebDAV, повнотекстовий пошук Lucene, валідація, контроль версій, кластеризація, , перезапис URL, колекції, ACLS, XQuery Update | так | |
MIT License | Clojure | безсхемна база даних, оптимізована для швидкої розробки | (невідомо) | ||
Apache Software Foundation | Apache License | Java | (невідомо) | ||
Informix | IBM | власницька | різні (сумісні з MongoDB API) | реляційна база даних з JSON, реплікація, шардинг та відповідність ACID | (невідомо) |
Inquire | власницька | невідомо | всередині 80-х це була домінуюча документо-орієнтована комерційна база даних, поширена і успішна. Схоже компанія вийшла з бізнесу у 2005. | (невідомо) | |
Lotus Notes | IBM | власницька | , Java, Lotus @Formula | (невідомо) | |
MarkLogic | MarkLogic Corporation | or | REST, Java, XQuery, XSLT, | розподілена документо-орієнтована база даних з , інтегрованим повнотекстовим пошуком та семантикою ACID-відповідних транзакцій | так |
MongoDB | MongoDB, Inc | GNU AGPL v3.0 for the DBMS, Apache 2 License for the client drivers | Document database with replication and sharding | Optional | |
Database | Proprietary and Affero GPL | Commonly used in health applications. | (невідомо) | ||
OrientDB | Orient Technologies [ 20 квітня 2012 у Wayback Machine.] | Apache License | Java | JSON over HTTP | так |
Hibernating Rhinos LTD [ 15 березня 2022 у Wayback Machine.] | власницька та модифікована Affero GPL | C#, JavaScript | так | ||
Redis | BSD License | ANSI C | Key-value store supporting lists and sets with binary-safe protocol | (невідомо) | |
RethinkDB | GNU APGL for the DBMS, Apache 2 License for the client drivers | (невідомо) | |||
Rocket Software | власницька | UniData, UniVerse | так (Beta) | ||
власницька | Java | Distributed, real-time database featuring cell-level security and massive scalability. | так |
Виноски
- McCreary, Kelly, 2013, 4.4. Document stores.
- Tiwari, 2011, Chapter 4: Understanding the Storage Architecture — Document Store Internals.
- McCreary, Kelly, 2013, 1.1. What is NoSQL?.
- . Архів оригіналу за 4 липня 2014. Процитовано 14 червня 2014.
- . Архів оригіналу за 2 травня 2012. Процитовано 14 червня 2014.
- Documentation [ 20 серпня 2012 у Wayback Machine.]. Couchbase. Retrieved on 2013-09-18.
- . Архів оригіналу за 20 жовтня 2011. Процитовано 14 червня 2014.
- . Архів оригіналу за 1 березня 2013. Процитовано 14 червня 2014.
- eXist-db Open Source Native XML Database [ 27 травня 2020 у Wayback Machine.]. Exist-db.org. Retrieved on 2013-09-18.
- . Архів оригіналу за 5 вересня 2015. Процитовано 14 червня 2014.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 29 січня 2013. Процитовано 14 червня 2014.
- (PDF). Архів оригіналу (PDF) за 6 липня 2016. Процитовано 14 червня 2014.
- . Архів оригіналу за 17 квітня 2021. Процитовано 14 червня 2014.
- . Архів оригіналу за 8 червня 2014. Процитовано 14 червня 2014.
Посилання
- Dan McCreary, Ann Kelly Making Sense of NoSQL: A guide for managers and the rest of us. — Manning Publications, 2013. — 312 p. —
- Shashank Tiwari Professional NoSQL. — Packt Publishing, 2011. — 384 p. —
- Эндрю Гловер, Java development 2.0: Вторая волна разработки Java-приложений. MongoDB – хранилище данных NoSQL со всеми (полезными) признаками СУРБД [ 4 січня 2014 у Wayback Machine.], 27.02.2012
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Dokumento oriyentovana sistema keruvannya bazami danih angl document oriented database sistema keruvannya bazami danih specialno priznachena dlya zberigannya iyerarhichnih struktur danih dokumentiv i zazvichaj realizovana za dopomogoyu pidhodu NoSQL V osnovi dokumento oriyentovanih SKBD lezhat dokumentni shovisha angl document store kotri mayut strukturu dereva inodi lisu Struktura dereva pochinayetsya z korenevogo vuzla i mozhe mistiti kilka vnutrishnih i listovih vuzliv Listovi vuzli mistyat dani yaki pri dodavanni dokumenta zanosyatsya v indeksi sho dozvolyaye navit pri dosit skladnij strukturi znahoditi misce shlyah shukanih danih API dlya poshuku dozvolyaye znahoditi za zapitom dokumenti ta chastini dokumentiv Na vidminu vid shovish tipu klyuch znachennya vibirka za zapitom do dokumentnogo shovisha mozhe mistiti chastini velikoyi kilkosti dokumentiv bez povnogo zavantazhennya cih dokumentiv v operativnu pam yat Dokumenti mozhut buti organizovani zgrupovani v kolekciyi Yih mozhna vvazhati viddalenim analogom tablic relyacijnih SUBD ale kolekciyi mozhut mistiti inshi kolekciyi Hocha dokumenti kolekciyi mozhut buti dovilnimi dlya efektivnishogo indeksuvannya krashe ob yednuvati u kolekciyu dokumenti zi shozhoyu strukturoyu Dokumento oriyentovani bazi danih zastosovuyutsya u sistemah keruvannya vmistom vidavnichij spravi dokumentalnomu poshuku tosho Prikladi SUBD danogo tipu CouchDB Couchbase MarkLogic MongoDB Berkeley DB XML DokumentiCentralnim ponyattyam dokumento oriyentovanih baz danih ye Dokument Detali viznachennya ciyeyi golovnoyi koncepciyi riznyatsya u riznih realizaciyah dokumento oriyentovanih baz danih ale zagalom vsi voni mayut na uvazi sho dokument izolyuye dani ta koduye yih abo informaciyu u pevnomu formati abo koduvanni Ce koduvannya mozhe vikoristovuvati XML YAML JSON BSON a takozh binarni formati taki yak PDF chi dokumenti Microsoft Office MS Word Excel tosho Dokumenti vseredini dokumento oriyentovanoyi bazi danih u pevnomu rozuminni podibni do zapisiv abo ryadkiv relyacijnih baz danih ale vimogi do nih ne taki zhorstki Voni ani potrebuyut zadovolnyati standartnij shemi ani mati odnakovi sekciyi chastini abo klyuchi Napriklad takij dokument Im ya Mikola Adresa Kocyubinskogo 5 Zahoplennya ribalka Drugij dokument mozhe buti Im ya Petro Adresa Panasa Mirnogo 15 Diti Im ya Mihajlo Vik 10 Im ya Yevgeniya Vik 8 Im ya Odarka Vik 5 Im ya Olena Vik 2 Ci dva dokumenti mayut spilni strukturni elementi ale kozhen maye i svoyi vlasni unikalni elementi Na vidminu vid relyacijnih baz danih de kozhen zapis mistit odnakovi polya nevikoristani z yakih zalishayutsya porozhnimi u dokumentno oriyentovanih bazah nema pustih poliv v zhodnomu dokumenti zapisu yak u prikladi vishe Takij pidhid dozvolyaye dodavati novu informaciyu u zapis bez potrebi shob kozhen inshij podibnij zapis bazi danih mav taku samu strukturu Klyuchi Dokumento oriyentovana SKBD zvertayetsya do dokumentiv cherez unikalnij klyuch yakij predstavlyaye dokument Cej klyuch chasto ye prostim ryadkom URI abo shlyahom Klyuch vikoristovuyetsya dlya otrimannya dokumentu z bazi danih Zvichajno SKDB zberigaye indeks klyuchiv dlya priskorennya oderzhannya dokumentiv Poshuk Inshoyu viznachalnoyu harakteristikoyu dokumento oriyentovanih sistem keruvannya bazami danih ye sposib u yakij krim prostogo poshuku za shemoyu klyuch dokument mozhna oderzhati dokument Dlya cogo baza danih nadaye programnij interfejs API abo movu zapitiv kotri dayut koristuvachevi zasobi shukati dokument Napriklad vi hochete zapitati vsi dokumenti z pevnim naborom poliv i z pevnimi znachennyami Nabir interfejsu zapitiv abo mov zapitiv u realizaciyah tak samo yak i ochikuvana produktivnist zapitiv duzhe riznitsya vid odnoyi implementaciyi dokumento oriyentovanoyi SKDB do inshoyi Organizaciya Realizaciyi vidriznyayutsya naborami sposobiv organizaciyi dokumentiv vklyuchayuchi taki poshireni yak kolekciyi tegi nevidimi metadani iyerarhiya direktorij komirkiRealizaciyiNazva Vidavec Licenziya Mova Primitki RESTful API ArangoDB triAGENS 15 kvitnya 2011 u Wayback Machine Apache License 2 0 C C amp Javascript rozpodilena bagato modelne visokoproduktivne shovishe dokumentiv ta grafichna baza danih tak BaseX Team 28 veresnya 2007 u Wayback Machine BSD License Java XQuery Support for XML JSON and binary formats client server based architecture concurrent structural and full text searches and updates REST APIs tak Cassandra Apache Software Foundation Apache License Java JSON over HTTP tak Cloudant Inc 25 chervnya 2014 u Wayback Machine vlasnicka Erlang Java Scala ta C rozpodilena sluzhba baz danih na osnovi vidkritogo forku CouchDB vid Apache tak vilna spilnotna licenziya komercijna C bezshemna dokumnto oriyentovana platforma z serverom zberigannya danih rushij povnotekstovogo poshuku informacijne ranzhuvannya poshukovoyi relevantnosti i klasterizaciya tak Couchbase Server Apache License Erlang ta C rozpodilena NoSQL tak CouchDB Apache Software Foundation Apache License Erlang JSON cherez REST HTTP z ta obmezhenimi ACID vlastivostyami Vikoristovuye MapReduce dlya vidiv i zapitiv tak 1 27 travnya 2020 u Wayback Machine LGPL XQuery Java XML cherez REST HTTP WebDAV povnotekstovij poshuk Lucene validaciya kontrol versij klasterizaciya perezapis URL kolekciyi ACLS XQuery Update tak MIT License Clojure bezshemna baza danih optimizovana dlya shvidkoyi rozrobki nevidomo Apache Software Foundation Apache License Java nevidomo Informix IBM vlasnicka rizni sumisni z MongoDB API relyacijna baza danih z JSON replikaciya sharding ta vidpovidnist ACID nevidomo Inquire vlasnicka nevidomo vseredini 80 h ce bula dominuyucha dokumento oriyentovana komercijna baza danih poshirena i uspishna Shozhe kompaniya vijshla z biznesu u 2005 nevidomo Lotus Notes IBM vlasnicka Java Lotus Formula nevidomo MarkLogic MarkLogic Corporation or REST Java XQuery XSLT C rozpodilena dokumento oriyentovana baza danih z integrovanim povnotekstovim poshukom ta semantikoyu ACID vidpovidnih tranzakcij tak MongoDB MongoDB Inc GNU AGPL v3 0 for the DBMS Apache 2 License for the client drivers C Document database with replication and sharding Optional Database Proprietary and Affero GPL Commonly used in health applications nevidomo OrientDB Orient Technologies 20 kvitnya 2012 u Wayback Machine Apache License Java JSON over HTTP tak Hibernating Rhinos LTD 15 bereznya 2022 u Wayback Machine vlasnicka ta modifikovana Affero GPL C JavaScript tak Redis BSD License ANSI C Key value store supporting lists and sets with binary safe protocol nevidomo RethinkDB GNU APGL for the DBMS Apache 2 License for the client drivers C nevidomo Rocket Software vlasnicka UniData UniVerse tak Beta vlasnicka Java Distributed real time database featuring cell level security and massive scalability takVinoskiMcCreary Kelly 2013 4 4 Document stores Tiwari 2011 Chapter 4 Understanding the Storage Architecture Document Store Internals McCreary Kelly 2013 1 1 What is NoSQL Arhiv originalu za 4 lipnya 2014 Procitovano 14 chervnya 2014 Arhiv originalu za 2 travnya 2012 Procitovano 14 chervnya 2014 Documentation 20 serpnya 2012 u Wayback Machine Couchbase Retrieved on 2013 09 18 Arhiv originalu za 20 zhovtnya 2011 Procitovano 14 chervnya 2014 Arhiv originalu za 1 bereznya 2013 Procitovano 14 chervnya 2014 eXist db Open Source Native XML Database 27 travnya 2020 u Wayback Machine Exist db org Retrieved on 2013 09 18 Arhiv originalu za 5 veresnya 2015 Procitovano 14 chervnya 2014 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 29 sichnya 2013 Procitovano 14 chervnya 2014 PDF Arhiv originalu PDF za 6 lipnya 2016 Procitovano 14 chervnya 2014 Arhiv originalu za 17 kvitnya 2021 Procitovano 14 chervnya 2014 Arhiv originalu za 8 chervnya 2014 Procitovano 14 chervnya 2014 PosilannyaDan McCreary Ann Kelly Making Sense of NoSQL A guide for managers and the rest of us Manning Publications 2013 312 p ISBN 978 1 61729 107 4 Shashank Tiwari Professional NoSQL Packt Publishing 2011 384 p ISBN 978 0 470 94224 6 Endryu Glover Java development 2 0 Vtoraya volna razrabotki Java prilozhenij MongoDB hranilishe dannyh NoSQL so vsemi poleznymi priznakami SURBD 4 sichnya 2014 u Wayback Machine 27 02 2012