Sobes.tech
Junior

Šta su NoSQL baze podataka?

sobes.tech АИ

Одговор од АИ

NoSQL (Not Only SQL) — то је класа нерелативних система за управљање базама података који користе структуре различите од традиционалних табела са фиксним шемама. Они су дизајнирани за рад са великим количинама неструктурираних, полуструктурираних и полиструктурираних података, пружајући флексибилну скалабилност и високу доступност.

Главне категорије NoSQL база података:

  • "Кључ-већност" (Key-Value Stores): Чувају податке у паровима кључ-већност, где кључ јединствено идентификује вредност.
    # Пример представљања података у key-value store
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Колона" (Columnar Databases): Чувају податке по колонама, а не по редовима. Оптимизоване за аналитичке упите и обраду великих количина података.
  • "Документ" (Document Databases): Чувају податке у виду докумената (нпр. JSON, BSON, XML). Шема података је флексибилна.
    // Пример документа у document database
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["electronics", "mobile"]
    }
    
  • "Графови" (Graph Databases): Намењени за чување и обраду података представљених у виду врхова (чворова) и ребара (веза). Користе се за анализу односа.

Разлике од релационих БД (SQL):

Карактеристика Relational (SQL) NoSQL
Шема података Фиксирана, строга Флексибилна, динамичка
Масовно скалирање Вертикално (повећање капацитета сервера) Хоризонтално (додавање сервера)
Нормализација Висока (смањење излишности) Ниска (дуплирање података за перформансе)
ACID трансакције Обично потпуна подршка Различита подршка (понекад BASE)
Језик упита SQL Различит (често API, специфични језици)

NoSQL базе података бирају се за сценарије који захтевају високу скалабилност, флексибилност шеме, брзу обраду великих количина података (Big Data), рад са полуструктурираним/неструктурираним подацима или специфичне моделе података (нпр. графови).