Sobes.tech
Junior

Co jsou to NoSQL databáze?

sobes.tech AI

Odpověď od AI

NoSQL (Not Only SQL) je třída nerelacionálních systémů správy databází, které používají struktury odlišné od tradičních tabulek s pevnou schémou. Jsou navrženy pro práci s velkými objemy nestrukturovaných, semi-strukturovaných a polistrukturovaných dat, poskytují flexibilní škálovatelnost a vysokou dostupnost.

Hlavní kategorie databází NoSQL:

  • "Klíč-hodnota" (Key-Value Stores): Ukládají data ve formě párů klíč-hodnota, kde klíč jednoznačně identifikuje hodnotu.
    # Příklad reprezentace dat v klíč-hodnota úložišti
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Sloupcové" (Columnar Databases): Ukládají data podle sloupců, nikoli podle řádků. Optimalizované pro analytické dotazy a zpracování velkých objemů dat.
  • "Dokumentové" (Document Databases): Ukládají data ve formě dokumentů (například JSON, BSON, XML). Schéma dat je flexibilní.
    // Příklad dokumentu v dokumentové databázi
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["elektronika", "mobil"]
    }
    
  • "Grafové" (Graph Databases): Jsou určeny pro ukládání a zpracování dat reprezentovaných ve formě vrcholů (uzlů) a hran (vztahů). Používají se k analýze vztahů.

Rozdíly od relačních databází (SQL):

Charakteristika Relační (SQL) NoSQL
Schéma dat Fixní, striktní Flexibilní, dynamické
Škálovatelnost Vertikální (zvyšování výkonu serveru) Horizontální (přidávání serverů)
Normalizace Vysoká (snižování redundance) Nízká (duplicitní data pro výkon)
ACID transakce Obvykle plná podpora Variabilní podpora (někdy BASE)
Jazyk dotazů SQL Liší se (často API, specifické jazyky)

Databáze NoSQL jsou vybírány pro scénáře, které vyžadují vysokou škálovatelnost, flexibilitu schématu, rychlé zpracování velkých objemů dat (Big Data), práci s semi-strukturovanými/nestrukturovanými daty nebo specifické datové modely (například grafy).