Zpětný příběh: V roce 2016 jsem studoval informatiku na univerzitě v Albany a musel jsem absolvovat kurz Úvod do databází.
V rámci kurzu jsem se naučil dvě věci:
Relační databáze a nerelační databáze, ale nikdy jsem se pořádně nedozvěděl, jaký je mezi nimi rozdíl, a tak jsem chtěl oživit svou zvědavost ohledně databází a rozdílů mezi nimi.
- Relační databáze, kterou definoval E. F. Codd v roce 1970, je digitální databáze založená na relačním modelu dat. Data jsou uložena v tabulkách obsahujících řádky (které představují záznam) a sloupce(které uchovávají a třídí určitý typ informací). Vztahy jsou vytvářeny prostřednictvím primárních a cizích klíčů.
Jazyky:
Výhody:
- Může zpracovávat množství složitých dotazů, databázových transakcí a rutinní analýzu dat.
- ACID(Atomity, Consistency, Isolation, Durability):
Nevýhody:
- Nemůže uchovávat složité nebo velmi rozsáhlé obrázky, čísla, návrhy a multimediální produkty
- Může se stát velmi nákladnou údržbou a novými servery
Skvělé! Ale co když jsou naše soubory dat příliš velké nebo nestrukturované?
Nerelační databáze neboli NoSQL
Co je to nerelační databáze?
- Nerelační databáze existovaly již koncem 60. let 20. století, ale tento termín začal používat až v roce 1998 Carlo Strozzi, který stál v čele vývoje NoSQL.
- „Databáze NoSQL (původně označující „non SQL“ nebo „nerelační“) poskytuje mechanismus pro ukládání a vyhledávání dat, která jsou modelována jinými prostředky, než jsou tabulkové vztahy používané v relačních databázích.“ – Wikipedia
Typy databází NoSQL:
Sloupcové úložiště: Používá koncept klíčového prostoru, který obsahuje všechny rodiny sloupců obsahující řádky a sloupce pro ukládání a organizaci dat.
Databáze:
Uložiště klíčových hodnot: Apache HBase, Cassandra
Key-Value Store: Používá asociativní pole(mapu nebo slovník) jako svůj základní datový model. Data jsou reprezentována jako kolekce dvojic klíč-hodnota a klíč se v kolekci objeví nejvýše jednou. Můžete uložit hodnotu, například celé číslo, řetězec, strukturu JSON nebo pole, spolu s klíčem používaným k odkazu na tuto hodnotu.
Databáze: Redis, Amazon DynamoDB
Graf: Je databáze, která k reprezentaci a ukládání dat využívá grafové struktury. To umožňuje uživatelům rychle procházet mezi všemi propojenými hodnotami a nacházet poznatky ve vztazích.
Databáze: neo4J, OrientDB, Titan
Databáze orientovaná na dokumenty: Databáze orientovaná na dokumenty neboli úložiště dokumentů je počítačový program určený k ukládání, vyhledávání a správě informací orientovaných na dokumenty, známých také jako polostrukturovaná data.