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