NoSQL
Conception de base de données flexible et non tabulaire pour l'évolutivité.
Les bases NoSQL gèrent de gros volumes de données non structurées. Types : documents (MongoDB), clé-valeur (Redis), graphes (Neo4j). Favorisent la mise à l'échelle horizontale.
graph LR
Center["NoSQL"]:::main
Pre_data_structures["data-structures"]:::pre --> Center
click Pre_data_structures "/terms/data-structures"
Pre_distributed_systems["distributed-systems"]:::pre --> Center
click Pre_distributed_systems "/terms/distributed-systems"
Rel_relational_databases["relational-databases"]:::related -.-> Center
click Rel_relational_databases "/terms/relational-databases"
Rel_big_data["big-data"]:::related -.-> Center
click Rel_big_data "/terms/big-data"
Rel_vector_database["vector-database"]:::related -.-> Center
click Rel_vector_database "/terms/vector-database"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique-moi comme si j'avais 5 ans
NoSQL databases are like different kinds of storage boxes for computer information. Instead of just one way to organize everything like in a filing cabinet ([SQL](/fr/terms/sql)), you can use special boxes for different needs, like a big bin for lots of similar items or a special binder for connected notes.
🤓 Expert Deep Dive
NoSQL databases diverge significantly from the ACID (Atomicity, Consistency, Isolation, Durability) properties typically guaranteed by relational databases, often embracing BASE (Basically Available, Soft state, Eventually consistent) principles, particularly in distributed systems prioritizing availability and partition tolerance (AP systems in CAP theorem). Key-value stores leverage hash tables or similar structures for O(1) average-case lookups. Document databases use formats like BSON or JSON, allowing for nested structures and dynamic schemas, often indexed for efficient querying. Column-family stores (wide-column stores) partition data by row key and then group related columns into column families, optimizing for queries that access specific column subsets across many rows. Graph databases use nodes, edges, and properties, with traversal algorithms optimized for relationship exploration. Architectural trade-offs center on the CAP theorem: choosing between Consistency and Availability in the presence of network partitions. Scalability is typically achieved via sharding and replication. Vulnerabilities can arise from insecure default configurations, lack of robust transaction support, and potential data inconsistencies if not managed carefully.