Junior
Co jsou to NoSQL databáze?
sobes.tech AI
Odpověď od AI
NoSQL (Not Only SQL) je třída nerelacionálních systémů správy databází, které používají struktury odlišné od tradičních tabulek s pevnou schémou. Jsou navrženy pro práci s velkými objemy nestrukturovaných, semi-strukturovaných a polistrukturovaných dat, poskytují flexibilní škálovatelnost a vysokou dostupnost.
Hlavní kategorie databází NoSQL:
- "Klíč-hodnota" (Key-Value Stores): Ukládají data ve formě párů klíč-hodnota, kde klíč jednoznačně identifikuje hodnotu.
# Příklad reprezentace dat v klíč-hodnota úložišti user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Sloupcové" (Columnar Databases): Ukládají data podle sloupců, nikoli podle řádků. Optimalizované pro analytické dotazy a zpracování velkých objemů dat.
- "Dokumentové" (Document Databases): Ukládají data ve formě dokumentů (například JSON, BSON, XML). Schéma dat je flexibilní.
// Příklad dokumentu v dokumentové databázi { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["elektronika", "mobil"] } - "Grafové" (Graph Databases): Jsou určeny pro ukládání a zpracování dat reprezentovaných ve formě vrcholů (uzlů) a hran (vztahů). Používají se k analýze vztahů.
Rozdíly od relačních databází (SQL):
| Charakteristika | Relační (SQL) | NoSQL |
|---|---|---|
| Schéma dat | Fixní, striktní | Flexibilní, dynamické |
| Škálovatelnost | Vertikální (zvyšování výkonu serveru) | Horizontální (přidávání serverů) |
| Normalizace | Vysoká (snižování redundance) | Nízká (duplicitní data pro výkon) |
| ACID transakce | Obvykle plná podpora | Variabilní podpora (někdy BASE) |
| Jazyk dotazů | SQL | Liší se (často API, specifické jazyky) |
Databáze NoSQL jsou vybírány pro scénáře, které vyžadují vysokou škálovatelnost, flexibilitu schématu, rychlé zpracování velkých objemů dat (Big Data), práci s semi-strukturovanými/nestrukturovanými daty nebo specifické datové modely (například grafy).