GNU/Linux >> Znalost Linux >  >> Cent OS

Co je to databáze dokumentů?

Úvod

Díky jedinečným schopnostem překonávají databáze NoSQL omezení nalezená v relačním databázovém modelu. NoSQL je zastřešující termín pro čtyři hlavní podmnožiny databází NoSQL:

  • Databáze klíč–hodnota
  • Sloupcové databáze
  • Databáze grafů
  • Databáze dokumentů

V tomto článku vysvětlíme, co je databáze dokumentů, popíšeme její výhody a nevýhody a uvedeme příklady.

Definice databáze dokumentů

Databáze dokumentů je typ databáze NoSQL, která ukládá data jako dokumenty JSON namísto sloupců a řádků. JSON je nativní jazyk používaný k ukládání a dotazování dat. Tyto dokumenty lze seskupit do kolekcí a vytvořit databázové systémy.

Každý dokument se skládá z několika párů klíč–hodnota. Zde je příklad dokumentu, který se skládá ze 4 párů klíč-hodnota:

{
"ID" : "001",
"Book" : "Java: The Complete Reference",
"Genre" : "Reference work",
"Author" : "Herbert Schildt",
}

Použití JSON umožňuje vývojářům aplikací ukládat a dotazovat se na data ve stejném formátu modelu dokumentu, jaký používají k uspořádání kódu své aplikace. Objektový model lze převést do jiných formátů, jako jsou JSON, BSON a XML.

Relační vs databáze dokumentů

Systémy správy relačních databází (RDBMS) spoléhají na strukturovaný dotazovací jazyk (SQL). NoSQL ne.

RDBMS se zaměřuje na vytváření vztahů mezi soubory pro ukládání a čtení dat. Databáze dokumentů jsou zaměřeny na samotná data a vztahy jsou reprezentovány vnořenými daty.

Klíčová srovnání mezi relačními a dokumentovými databázemi:

RDBMS Systém databáze dokumentů
Strukturováno kolem konceptu vztahů. Zaměřeno na data spíše než vztahy.
Uspořádá data do nic (nebo řádky). Dokumenty mají vlastnosti bez teoretických definic, namísto řádků.
Definuje data (vztahy formulářů) pomocí omezení a cizích klíčů (např. podřízená tabulka odkazuje na hlavní tabulku prostřednictvím svého ID). Žádný jazyk DDL pro definování schémat.
K vytváření vztahů používá DDL (Data Definition Language). Vztahy reprezentované pomocí vnořených dat , nikoli cizí klíče (každý dokument může obsahovat další vnořené uvnitř, což vede ke vztahu N:1 nebo 1:N mezi dvěma entitami dokumentu).
Nabízí extrémní konzistenci , kritické pro některé případy použití, jako je denní bankovnictví. Nabízí případnou konzistenci s obdobím nekonzistence.

Funkce databází dokumentů

Databáze dokumentů poskytují rychlé dotazy, strukturu vhodnou pro zpracování velkých dat, flexibilní indexování a zjednodušený způsob údržby databáze. Je efektivní pro webové aplikace a byl plně integrován velkými IT společnostmi, jako je Amazon.

Přestože mají databáze SQL velkou stabilitu a vertikální výkon, potýkají se s velmi velkými databázemi. Případy použití, které vyžadují okamžitý přístup k datům, jako jsou zdravotnické aplikace, jsou vhodnější pro databáze dokumentů. Databáze dokumentů usnadňují dotazování na data pomocí stejného modelu dokumentu, který byl použit pro kódování aplikace.

Případy použití databází dokumentů

Případy obecného použití
Uživatelské profily Extrahování velkých dat v reálném čase
Databáze knih Data různých struktur
Správa obsahu Katalogy
Údaje pacientů

Některé z výše uvedených případů použití pokryjeme podrobněji v následujících částech.

Databáze knih

K vytvoření databáze knih se používají relační i NoSQL dokumentové systémy, i když různými způsoby.

Relační přístup by představoval vztah mezi knihami a autory prostřednictvím tabulek s ID Autor stůl a Knihy stůl. Přinutí každého autora mít alespoň jednu položku v tabulce Knihy tím, že zakáže hodnoty null.

Pro srovnání, model dokumentu vám umožňuje vnořit se . Ukazuje vztahy přirozeněji a jednodušeji tím, že zajišťuje, že každý autorský dokument má vlastnost s názvem Knihy , s řadou souvisejících knižních dokumentů ve vlastnictví. Když hledáte autora, zobrazí se celá sbírka knih.

Správa obsahu

Vývojáři využívají databáze dokumentů k vytváření platforem pro streamování videa, blogů a podobných služeb. Každý soubor je uložen jako jeden dokument a databáze se snáze udržuje, protože se služba postupem času vyvíjí. Významné úpravy dat, jako jsou změny datového modelu, nevyžadují žádné prostoje, protože není nutná žádná aktualizace schématu.

Katalogy

Databáze dokumentů jsou mnohem efektivnější než relační databáze, pokud jde o ukládání a čtení souborů katalogu. Katalogy mohou obsahovat tisíce uložených atributů a databáze dokumentů poskytují rychlé čtení. V databázích dokumentů jsou atributy související s jedním produktem uloženy v jediném dokumentu. Úprava atributů jednoho produktu neovlivní ostatní dokumenty.

Výhody a nevýhody databáze dokumentů

Níže jsou uvedeny některé klíčové výhody anevýhody databází dokumentů:

Výhody databáze dokumentů Nevýhody databáze dokumentů
Bez schématu
Omezení kontroly konzistence
Rychlejší tvorba a péče
Slabé stránky atomicity
Žádné cizí klíče Zabezpečení
Otevřené formáty
Vestavěné verzování

Výhody a nevýhody jsou dále vysvětleny v oddílech níže.

Výhody

  • Bez schématu . Neexistují žádná omezení ve formátu a struktuře ukládání dat. To je dobré pro uchování existujících dat v obrovských objemech a různých strukturních stavech, zejména v neustále se transformujícím systému.
  • Rychlejší tvorba a auto E. Jakmile dokument vytvoříte, je vyžadována minimální údržba, což může být stejně jednoduché jako jedno přidání složitého objektu.
  • Žádné cizí klíče . Bez této dynamiky vztahu mohou být dokumenty na sobě nezávislé.
  • Otevřené formáty . Čistý proces sestavení, který k popisu dokumentů používá XML, JSON a další odvozeniny.
  • Vestavěné verzování . Jak vaše dokumenty rostou ve velikosti, mohou také růst ve složitosti. Správa verzí snižuje počet konfliktů.

Nevýhody

  • Omezení kontroly konzistence . Ve výše uvedeném příkladu použití databáze knih by bylo možné vyhledat knihy od neexistujícího autora. Můžete prohledávat knižní sbírku a najít dokumenty, které nejsou spojeny s autorskou sbírkou.
    Každý záznam může také duplikovat informace o autorovi pro každou knihu. Tyto nekonzistence nejsou v některých kontextech významné, ale na vyšších úrovních auditů konzistence RDB vážně narušují výkon databáze.
  • Slabé stránky atomicity . Relační systémy také umožňují upravovat data z jednoho místa bez nutnosti JOINů. Všechny nové čtecí dotazy zdědí změny provedené ve vašich datech pomocí jediného příkazu (jako je aktualizace nebo smazání řádku).
    U databází dokumentů bude změna zahrnující dvě kolekce vyžadovat spuštění dvou samostatných dotazů (pro každou kolekci). To porušuje požadavky na atomicitu.
  • Zabezpečení . Téměř polovina webových aplikací dnes aktivně uniká citlivá data. Vlastníci databází NoSQL proto musí věnovat pečlivou pozornost zranitelnostem webových aplikací.

Nejlepší databáze dokumentů

Amazon DocumentDB

Vlastnosti:

  • Kompatibilní s MongoDB
  • Plně spravováno
  • Vysoký výkon s nízkou latencí dotazování
  • Přísné dodržování předpisů a zabezpečení
  • Vysoká dostupnost

Používá se pro:

  • Amazon celý vývojový tým používá Amazon DocumentDB ke zvýšení agilnosti a produktivity. Potřebovali vnořené indexy, agregace a ad hoc dotazy s plně spravovaným procesem.
  • BBC používá jej k dotazování a ukládání dat z více datových toků a kompilaci do jednotlivých zákaznických kanálů. Přešli na Amazon DocumentDB, aby získali výhody plně spravované služby s vysokou dostupností, trvanlivostí a výchozími zálohami.
  • Rappi přešel na Amazon DocumentDB, aby se zkrátil čas kódování, Dow Jones pro zjednodušení operací a Samsung pro lepší manipulaci s velkými kmeny flexibilněji.

MongoDB

Vlastnosti:

  • Ad hoc dotazy
  • Optimalizované indexování pro dotazování
  • Sharding
  • Vyrovnávání zátěže

Používá se pro:

  • Forbes zkrácení doby sestavování o 58 %, což znamená 28% nárůst předplatného díky rychlejšímu vytváření nových funkcí, jednoduššímu začlenění a lepšímu zpracování stále rozmanitějších typů dat.
  • Toyota zjistil, že je pro vývojáře mnohem jednodušší pracovat vysokou rychlostí pomocí přirozených dokumentů JSON. Více času se věnuje budování obchodní hodnoty namísto datového modelování.

Cosmos DB

Vlastnosti:

  • Jakékoli rychlé čtení na stupnici
  • 99,999% dostupnost
  • Plně spravováno
  • Rozhraní API NoSQL/Native Core
  • Bezserverové, nákladově efektivní/okamžité škálování

Používá se pro:

  • Coca-Cola získává statistiky během několika minut, což usnadňuje globální škálování. Před migrací do Cosmos DB to trvalo hodiny.
  • ASOS potřebovali distribuovanou databázi, která by se flexibilně a bez problémů škálovala, aby zvládla více než 100 milionů globálních maloobchodních zákazníků.

ArangoDB

Vlastnosti:

  • Ověření schématu
  • Různé indexování
  • Rychle distribuované shluky
  • Efektivní versus velké datové sady
  • Podporuje více datových modelů NoSQL
  • Kombinovat modely do jednotlivých dotazů

Používá se pro:

  • Oxfordská univerzita snížení návštěvnosti nemocnic a zlepšení výsledků testů díky vývoji webového hodnotícího testu na kardiopulmonální onemocnění.
  • FlightStats transformovala fragmentovaná letová data (stav letu, počasí, zpoždění na letištích a referenční data) do jednoho standardu, což umožňuje přesné, prediktivní a analytické výsledky.

Couchbase Server

Vlastnosti:

  • Schopnost spravovat globální nasazení
  • Mimořádná hbitost a flexibilita
  • Rychlé ve velkém měřítku
  • Snadná integrace cloudu

Používá se pro:

  • BT použil flexibilní datový model Couchbase k urychlení své kapacity pro poskytování obsahu s vysokým výkonem při snadném škálování proti špičkám poptávky.
  • eBay migrovali z Oracle pro nákladově efektivnější řešení s použitelnými funkcemi (jejich systému úložiště klíč-hodnota/dokument). Výkon a dostupnost aplikací rostly, zatímco vývojáři mohli využít své znalosti SQL k urychlení procesu CI/CD pomocí flexibilnějšího schématu.

CouchDB

Vlastnosti:

  • GUI založené na prohlížeči
  • Nabízí nejjednodušší replikace
  • Ověření uživatele
  • Vlastnosti KYSELIN

Používá se pro:

  • Meebo, sociální platforma, používala CouchDB pro webové rozhraní a jeho aplikace.
  • BBC používá CouchDB pro své platformy dynamického obsahu.

Jak si vybrat?

O tom, jak strukturovat data, rozhodují kritické požadavky vaší aplikace. Několik klíčových otázek:

  • Budete více číst nebo psát? Relační systémy jsou lepší, pokud píšete více, protože se během aktualizací vyhýbají duplikacím.
  • Jak důležitá je synchronizace? Díky svému ACID frameworku to relační systémy dělají lépe.
  • Jak moc bude v budoucnu potřeba transformovat vaše databázové schéma? Databáze dokumentů jsou vítěznou volbou, pokud pracujete s různými daty ve velkém měřítku a vyžadujete minimální údržbu.

Ani dokument, ani SQL nejsou striktně lepší než ostatní. Správná volba závisí na vašem případu použití. Při rozhodování zvažte typy operací, které budou nejčastěji prováděny.


Cent OS
  1. Co je to relační databáze?

  2. Distribuovaná databáze NoSQL Elasticsearch – co to je a měli byste ji používat?

  3. Jak rm funguje? Co dělá rm?

  1. Co je databáze NoSQL? – Vysvětlení NoSQL

  2. Co je Spark DataFrame?

  3. Co je relační databáze?

  1. Co je databázový server a k čemu se používá?

  2. Nejlepší software pro správu databáze – Top 25 softwaru

  3. Co je to objektově orientovaná databáze