Junior
Čo sú to NoSQL databázy?
sobes.tech AI
Odpoveď od AI
NoSQL (Not Only SQL) je trieda nerelácií systémov správy databáz, ktoré používajú štruktúry odlišné od tradičných tabuliek s pevnou schémou. Sú navrhnuté na prácu s veľkými objemami nestruktúrovaných, polostruktúrovaných a polystuktúrovaných dát, poskytujúc flexibilnú škálovateľnosť a vysokú dostupnosť.
Hlavné kategórie NoSQL databáz:
- "Kľúč-hodnota" (Key-Value Stores): Ukladajú dáta v pároch kľúč-hodnota, kde kľúč jednoznačne identifikuje hodnotu.
# Príklad reprezentácie dát v key-value store user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Stĺpcové" (Columnar Databases): Ukladajú dáta po stĺpcoch, nie po riadkoch. Optimalizované pre analytické dotazy a spracovanie veľkých objemov dát.
- "Dokumentové" (Document Databases): Ukladajú dáta vo forme dokumentov (napr. JSON, BSON, XML). Schéma dát je flexibilná.
// Príklad dokumentu v document database { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["electronics", "mobile"] } - "Grafové" (Graph Databases): Určené na ukladanie a spracovanie dát prezentovaných vo forme vrcholov (uzlov) a hrán (väzieb). Používajú sa na analýzu vzťahov.
Rozdiely od relačných DB (SQL):
| Charakteristika | Relational (SQL) | NoSQL |
|---|---|---|
| Schéma dát | Fixná, prísna | Flexibilná, dynamická |
| Škálovanie | Vertikálne (zvýšenie výkonu servera) | Horizontálne (pridanie serverov) |
| Normalizácia | Vysoká (zníženie redundancie) | Nízka (duplicitné dáta pre výkon) |
| ACID transakcie | Zvyčajne úplná podpora | Rôzna podpora (niekedy BASE) |
| Jazyk dotazov | SQL | Rôzne (často API, špecifické jazyky) |
NoSQL databázy sa volia pre scenáre vyžadujúce vysokú škálovateľnosť, flexibilitu schémy, rýchlu spracovanie veľkých objemov dát (Big Data), prácu s polostruktúrovanými/neštruktúrovanými dátami alebo špecifické modely dát (napríklad grafy).