Úvod
NoSQL je alternativou k tradičním SQL databázím. Postupem času se ukázalo, že relační databáze jsou pro konkrétní případy použití nedostatečné. Tato omezení se lišila v závislosti na aplikaci, kterou potřebovali podporovat.
Různí vývojáři se zaměřili na překonávání různých výzev podle svých potřeb. Výsledkem je, že nyní máte různé typy databází NoSQL.
Tento výukový program se zaměřuje na typy databází NoSQL. Podrobnějšího průvodce o NoSQL, jeho funkcích a o tom, kdy je používat, najdete v našem článku Co je NoSQL?
Typy NoSQL databází
Existují čtyři oblíbené typy databází NoSQL:
- Databáze klíč-hodnota
- Databáze dokumentů
- Databáze se širokými sloupci
- Databáze grafů
Databáze klíč-hodnota
Databáze klíč-hodnota jsou nejjednodušším typem databáze NoSQL. Díky své jednoduchosti jsou také nejvíce škálovatelné a umožňují horizontální škálování velkého množství dat.
Tyto databáze NoSQL mají datovou strukturu slovníku, která se skládá ze sady objektů, které představují pole dat. Každý objekt má přiřazen jedinečný klíč. Chcete-li načíst data uložená v konkrétním objektu, musíte použít specifický klíč. Obratem získáte hodnotu (tj. data) přiřazenou klíči. Tato hodnota může být číslo, řetězec nebo dokonce jiná sada párů klíč–hodnota.
Na rozdíl od tradičních relačních databází nevyžadují databáze klíč-hodnota předem definovanou strukturu. Nabízejí větší flexibilitu při ukládání dat a mají vyšší výkon. Aniž byste se museli spoléhat na zástupné symboly, databáze klíč–hodnota jsou lehčím řešením, protože vyžadují méně zdrojů.
Tyto funkce jsou vhodné pro velké databáze, které pracují s jednoduchými daty. Proto se běžně používají pro cachování , ukládání aspráva uživatelských relací , zobrazování reklam a doporučení .
Redis, Project Voldemort a Riak jsou jen některé příklady databází klíč-hodnota.
Databáze dokumentů
Databáze dokumentů je typ databáze NoSQL, která se skládá ze sad párů klíč-hodnota uložených v dokumentu. Tyto dokumenty jsou základní jednotky dat, které můžete také seskupovat do kolekcí (databází) na základě jejich funkčnosti.
Protože se jedná o databázi NoSQL, můžete snadno ukládat data bez implementace schématu. Objektový model můžete přenést přímo do dokumentu pomocí několika různých formátů. Nejčastěji používané jsou JSON, BSON a XML.
Zde je příklad jednoduchého dokumentu ve formátu JSON, který se skládá ze tří párů klíč–hodnota:
{
"ID" : "001",
"Name" : "John",
"Grade" : "Senior",
}
A co víc, můžete také používat vnořené dotazy v takových formátech, což poskytuje snazší distribuci dat na více disků a vyšší výkon.
Například můžeme do dokumentu výše přidat vnořený řetězec hodnot:
{
"ID" : "001",
"Name" : "John",
"Grade" : "Senior",
"Classes" : {
"Class1" : "English"
"Class2" : "Geometry"
"Class3" : "History"
}
}
Díky své struktuře jsou databáze dokumentů optimální pro případy použití, které vyžadují flexibilitu a rychlý, kontinuální vývoj. Můžete je například použít pro správu uživatelských profilů , které se liší podle poskytnutých informací. Jeho struktura bez schématu vám umožňuje mít různé atributy a hodnoty.
Příklady databází dokumentů NoSQL zahrnují MongoDB, CouchDB, Elasticsearch a další.
Databáze se širokým sloupcem
Úložiště se širokými sloupci jsou dalším typem databáze NoSQL. V nich se data ukládají a seskupují do samostatně uložených sloupců namísto řádků. Takové databáze organizují informace do sloupců, které fungují podobně jako tabulky v relačních databázích.
Na rozdíl od tradičních databází jsou však širokosloupcové databáze vysoce flexibilní. Nemají žádné předdefinované klíče ani názvy sloupců. Jejich charakteristika bez schémat umožňuje variace názvů sloupců i v rámci stejné tabulky a také přidávání sloupců v reálném čase.
Nejvýznamnější výhodou databází orientovaných na sloupce je to, že můžete ukládat velké množství dat do jednoho sloupce. Tato funkce umožňuje snížit diskové prostředky a čas potřebný k načtení informací z něj. Jsou také vynikající v situacích, kdy musíte data šířit na více serverů.
Příklady populárních databází se širokými sloupci zahrnují Apache Cassandra, HBase a CosmoDB.
Databáze grafů
Databáze grafů používají pro správu dat flexibilní grafické znázornění.
Tyto grafy se skládají ze dvou prvků:
- Uzly (pro ukládání datových entit)
- Okraje (pro uložení vztahu mezi entitami)
Tyto vztahy mezi entitami umožňují, aby data v úložišti byla přímo propojena a v mnoha případech byla načtena jednou operací. Uzly a hrany mají definované vlastnosti a pomocí těchto vlastností můžete snadno dotazovat data.
Jelikož je tento typ ukládání dat dosti specifický, nejedná se o běžně používanou NoSQL databázi. Existují však určité případy použití, ve kterých je nejlepším řešením mít grafické znázornění. Sociální sítě například často používají grafy k ukládání informací o tom, jak jsou jejich uživatelé propojeni.
OrientDB, RedisGraph a Neo4j jsou jen některé příklady databází grafů, které byste měli zvážit.