Junior
Mis on NoSQL andmebaasid?
sobes.tech AI
Vastus AI-lt
NoSQL (Not Only SQL) on klass mitte-relatsiooniliste andmebaasisüsteemide, mis kasutavad struktuure, mis erinevad traditsioonilistest tabelitest fikseeritud skeemiga. Nad on mõeldud töötama suure mahuga struktureerimata, poolstruktureeritud ja mitmesugustes vormides andmetega, pakkudes paindlikku skaleeritavust ja kõrget kättesaadavust.
NoSQL andmebaaside peamised kategooriad:
- "Võti-väärtus" (Key-Value Stores): Salvestavad andmeid paaridena võti-väärtus, kus võti on unikaalne identifikaator väärtusele.
# Näide andmete esitamisest võti-väärtus salves user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Veergude" (Columnar Databases): Salvestavad andmeid veergude kaupa, mitte ridade kaupa. Optimeeritud analüütilisteks päringuteks ja suure andmemahu töötlemiseks.
- "Dokumendi" (Document Databases): Salvestavad andmeid dokumentidena (nt JSON, BSON, XML). Andmeskeem on paindlik.
// Näide dokumendist document database'is { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["electronics", "mobile"] } - "Graaf" (Graph Databases): Mõeldud andmete salvestamiseks ja töötlemiseks, mis on esitatud tippude (sõlmed) ja ühenduste (sidemed) kujul. Kasutatakse suhete analüüsiks.
Erinevused relatsioonandmebaasidest (SQL):
| Omadus | Relatsioon (SQL) | NoSQL |
|---|---|---|
| Andmeskeem | Fikseeritud, range | Paindlik, dünaamiline |
| Mastaapsus | Vertikaalne (serveri võimsuse suurendamine) | Horisontaalne (serverite lisamine) |
| Normaliseerimine | Kõrge (duplikaatandmete vähendamine) | Madal (andmete dubleerimine jõudluse jaoks) |
| ACID-tehingud | Tavaliselt täielikud | Erinevad (mõnikord BASE) |
| Päringukeel | SQL | Erinevad (tihti API, spetsiifilised keeled) |
NoSQL andmebaasid valitakse suuremahulise skaleeritavuse, paindliku skeemi, kiire andmetöötluse (Big Data), poolstruktureeritud/mitte-struktureeritud andmete või spetsiifiliste andmemudelite (näiteks graafid) nõuete jaoks.