Sobes.tech
Junior

Ce sunt bazele de date NoSQL?

sobes.tech AI

Răspuns de la AI

NoSQL (Not Only SQL) este o clasă de sisteme de gestionare a bazelor de date non-relaționale care utilizează structuri diferite de cele ale tabelelor tradiționale cu schemă fixă. Acestea sunt proiectate pentru a lucra cu volume mari de date nestructurate, semi-structurate și polistructurate, oferind scalabilitate flexibilă și disponibilitate ridicată.

Categoriile principale de baze de date NoSQL:

  • "Cheie-valoare" (Key-Value Stores): Stochează date în perechi cheie-valoare, unde cheia identifică în mod unic valoarea.
    # Exemplu de reprezentare a datelor într-un magazin cheie-valoare
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Coloane" (Columnar Databases): Stochează datele pe coloane, nu pe rânduri. Optimizate pentru interogări analitice și procesarea volumelor mari de date.
  • "Documente" (Document Databases): Stochează date în formă de documente (de exemplu, JSON, BSON, XML). Schema datelor este flexibilă.
    // Exemplu de document într-o bază de date document
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["electronice", "mobil"]
    }
    
  • "Grafuri" (Graph Databases): Sunt proiectate pentru stocarea și procesarea datelor reprezentate sub forma de vârfuri (noduri) și muchii (relații). Sunt utilizate pentru analiza relațiilor.

Diferențe față de bazele de date relaționale (SQL):

Caracteristică Relaționale (SQL) NoSQL
Schema datelor Fixă, strictă Flexibilă, dinamică
Scalabilitate Verticală (creșterea puterii serverului) Orizontală (adăugarea de servere)
Normalizare Înaltă (reducerea redundanței) Scăzută (dublarea datelor pentru performanță)
Transacții ACID În general suport complet Suport variabil (uneori BASE)
Limbaj de interogare SQL Variază (adesea API, limbaje specifice)

Bazele de date NoSQL sunt alese pentru scenarii care necesită scalabilitate ridicată, flexibilitate a schemei, procesare rapidă a volumelor mari de date (Big Data), lucru cu date semi-structurate/nestrucurate sau modele de date specifice (de exemplu, grafuri).