NoSQL
NoSQL, meaning 'Not Only SQL,' refers to a broad class of database management systems that differ from traditional relational databases by not primarily using t...
Las bases de datos NoSQL ('Not Only SQL') representan una categoría diversa de sistemas de gestión de bases de datos que difieren de las bases de datos relacionales tradicionales (SQL) en sus modelos de datos y mecanismos de consulta. Fueron desarrolladas para abordar las limitaciones de las bases de datos relacionales en el manejo de grandes volúmenes de datos no estructurados o semi-estructurados que cambian rápidamente, y para proporcionar una mayor escalabilidad y flexibilidad. Los modelos de datos NoSQL comunes incluyen key-value stores (ej. Redis, DynamoDB), document databases (ej. MongoDB, Couchbase), column-family stores (ej. Cassandra, HBase) y graph databases (ej. Neo4j, Amazon Neptune). Los key-value stores ofrecen recuperación simple y de alto rendimiento basada en una key única. Las document databases almacenan datos en documentos flexibles, similares a JSON, lo que permite la evolución del schema. Las column-family stores optimizan las lecturas y escrituras en grandes conjuntos de datos organizando los datos en columnas en lugar de filas. Las graph databases sobresalen en la representación y consulta de relaciones complejas entre entidades. Las bases de datos NoSQL a menudo priorizan la disponibilidad y la tolerancia a particiones sobre la consistencia estricta (siguiendo el CAP theorem), ofreciendo niveles de consistencia ajustables. Típicamente escalan horizontalmente añadiendo más servidores commodity, a diferencia del escalado vertical que a menudo se requiere para las bases de datos relacionales. Las contrapartidas incluyen la falta de lenguajes de consulta estandarizados en todos los tipos, el potencial de redundancia de datos y los desafíos en la realización de joins o transacciones complejas que son estándar en SQL.
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;
🧒 Explícalo como si tuviera 5 años
Las bases de datos NoSQL son como diferentes tipos de cajas de almacenamiento para información de computadoras. En lugar de solo una forma de organizar todo como en un archivador ([SQL](/es/terms/sql)), puedes usar cajas especiales para diferentes necesidades, como un gran contenedor para muchos artículos similares o un archivador especial para notas conectadas.
🤓 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.