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).