Sobes.tech
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.