Junior
Mi az a NoSQL adatbázis?
sobes.tech MI
Válasz az MI-től
A NoSQL (Not Only SQL) nem relációs adatbázis-kezelő rendszerek osztálya, amelyek a hagyományos, rögzített sémájú tábláktól eltérő struktúrákat használnak. Ezeket nagy mennyiségű strukturálatlan, félig strukturált és polisztrukturált adatok kezelésére tervezték, rugalmas skálázhatóságot és magas rendelkezésre állást biztosítva.
A NoSQL adatbázisok fő kategóriái:
- "Kulcs-érték" (Key-Value Stores): Adatokat kulcs-érték párokban tárolnak, ahol a kulcs egyedileg azonosítja az értéket.
# Példa adatmegjelenítésre kulcs-érték tárolóban user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Oszlop-alapú" (Columnar Databases): Adatokat oszloponként tárolnak, nem soronként. Elemző lekérdezésekhez és nagy adatmennyiség feldolgozásához optimalizált.
- "Dokumentum" (Document Databases): Adatokat dokumentumok formájában (pl. JSON, BSON, XML) tárolnak. Az adat séma rugalmas.
// Dokumentum példája dokumentum adatbázisban { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["elektronika", "mobil"] } - "Graf" (Graph Databases): Olyan adatok tárolására és feldolgozására tervezték, amelyek csúcsok (csomópontok) és élek (kapcsolatok) formájában vannak. Kapcsolatok elemzésére használják.
A relációs adatbázisoktól (SQL) való különbségek:
| Jellemző | Relációs (SQL) | NoSQL |
|---|---|---|
| Adatséma | Fix, szigorú | Rugalmas, dinamikus |
| Skálázhatóság | Vertikális (a szerver kapacitásának növelése) | Horizontális (szerverek hozzáadása) |
| Normalizáció | Magas (redundancia csökkentése) | Alacsony (adatok duplikálása a teljesítményért) |
| ACID tranzakciók | Általában teljes támogatás | Változó támogatás (néha BASE) |
| Lekérdező nyelv | SQL | Változik (gyakran API, speciális nyelvek) |
A NoSQL adatbázisokat olyan szcenáriókhoz választják, amelyek magas skálázhatóságot, séma rugalmasságot, gyors nagy adatfeldolgozást (Big Data), félig strukturált/nem strukturált adatokkal való munkát vagy speciális adatmodelleket (pl. grafokat) igényelnek.