Junior
Kas ir NoSQL datu bāzes?
sobes.tech AI
Atbilde no AI
NoSQL (Not Only SQL) irklase irrelāciju datu pārvaldības sistēmas, kas izmanto struktūras, kas atšķiras no tradicionālajām tabulām ar fiksētu shēmu. Tās ir paredzētas darbam ar lielu neorganizētu, pusstruktūrētu un daudzstruktūrētu datu apjomu, nodrošinot elastīgu mērogošanu un augstu pieejamību.
Galvenās NoSQL datu bāzu kategorijas:
- "Atslēga-vērtība" (Key-Value Stores): Glabā datus pāros atslēga-vērtība, kur atslēga ir unikāls identifikators vērtībai.
# Piemērs datu attēlojumam key-value glabātuvē user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Kolonnu" (Columnar Databases): Glabā datus pēc kolonnu principa, nevis pēc rindiņām. Optimizētas analītiskiem vaicājumiem un lielu datu apstrādei.
- "Dokumentu" (Document Databases): Glabā datus dokumentu formātā (piemēram, JSON, BSON, XML). Datu shēma ir elastīga.
// Dokumenta piemērs document database { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["electronics", "mobile"] } - "Tīklu" (Graph Databases): Paredzētas datu glabāšanai un apstrādei, kas attēloti kā virsotnes (mezgli) un saites (līnijas). Tās tiek izmantotas attiecību analīzei.
Atšķirības no relāciju datu bāzēm (SQL):
| Raksturlielums | Relāciju (SQL) | NoSQL |
|---|---|---|
| Datu shēma | Fiksēta, stingra | Elastīga, dinamiska |
| Mērogošana | Vertikāla (servera jaudas palielināšana) | Horizontāla (serveru pievienošana) |
| Normalizācija | Augsta (dublēto datu samazināšana) | Zema (dublēšana datu veiktspēnes uzlabošanai) |
| ACID transakcijas | Parasti pilnīgas | Dažādas (dažreiz BASE) |
| Vaicājumu valoda | SQL | Dažāda (bieži API, specifiskas valodas) |
NoSQL datu bāzes tiek izvēlētas scenārijiem, kuriem nepieciešama augsta mērogojamība, elastīga shēma, ātra lielu datu apstrāde (Big Data), darbs ar pusstruktūrētajiem/neorganizētajiem datiem vai specifiskiem datu modeļiem (piemēram, grafiem).