Sobes.tech
Junior

Kas yra NoSQL duomenų bazės?

sobes.tech AI

Atsakymas iš AI

NoSQL (Not Only SQL) — tai nerelacinių duomenų valdymo sistemų klasė, kurios naudoja struktūras, skirtingas nuo tradicinių lentelių su fiksuota schema. Jos skirtos dirbti su dideliais neorganizuotų, pusiauorganizuotų ir daugiaorganizuotų duomenų kiekiais, užtikrinant lankstų mastelio keitimą ir aukštą prieinamumą.

Pagrindinės NoSQL duomenų bazių kategorijos:

  • "Raktas-reikšmė" (Key-Value Stores): Saugo duomenis poromis raktas-reikšmė, kur raktas unikalus identifikatorius reikšmei.
    # Pavyzdys duomenų reprezentacijos key-value saugykloje
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Stulpelinės" (Columnar Databases): Saugo duomenis pagal stulpelius, o ne eilutes. Optimizuotos analitinėms užklausoms ir didelių duomenų kiekių apdorojimui.
  • "Dokumentų" (Document Databases): Saugo duomenis dokumentų formatu (pvz., JSON, BSON, XML). Duomenų schema yra lanksti.
    // Dokumento pavyzdys document database
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["electronics", "mobile"]
    }
    
  • "Tinklų" (Graph Databases): Skirtos duomenų saugojimui ir apdorojimui, pateiktam kaip viršūnės (mazgai) ir briaunos (ryšiai). Naudojamos ryšių analizei.

Skirtumai nuo reliacinių DB (SQL):

Savybė Relacinė (SQL) NoSQL
Duomenų schema Fiksuota, griežta Lanksti, dinamiška
Mastelio keitimas Vertikalus (serverio pajėgumo didinimas) Horizontalus (serverių pridėjimas)
Normalizacija Aukšta (pasikartojančių duomenų mažinimas) Žema (dublikuoti duomenis našumui)
ACID transakcijos Paprastai visiškos Skirtingos (kartais BASE)
Užklausų kalba SQL Skirtinga (dažnai API, specifiniai kalbos)

NoSQL duomenų bazės pasirenkamos scenarijams, kuriems reikalingas aukštas mastelio keitimas, lanksti schema, greitas didelių duomenų apdorojimas (Big Data), darbui su pusiauorganizuotais/neorganizuotais duomenimis arba specifiniais duomenų modeliais (pvz., grafais).