🗄️ Bases de Datos NoSQL – Guía Completa y Visual
📜 Introducción
El término NoSQL fue acuñado por Carlo Strozzi (1998) y popularizado por Eric Evans (Rackspace) para describir bases de datos no relacionales y distribuidas que no garantizan el modelo ACID.
Aunque no utilizan SQL como lenguaje principal (no está prohibido), muchos sistemas emplean JSON, XML, GraphQL u otros formatos.
🔍 Características Clave
- 📂 Sin estructuras fijas: Datos almacenados en esquemas flexibles.
- 🚫 No JOINs: Evitan operaciones complejas.
- 🌐 Arquitectura distribuida: Alta disponibilidad y escalabilidad horizontal.
- 📊 Soporte para datos semiestructurados y no estructurados.
- 📦 Formatos variados: Clave-valor, documentos, columnas, grafos.
✅ Ventajas
- Bajo consumo de recursos y coste.
- Escalabilidad horizontal sencilla (añadir nodos).
- Manejo eficiente de grandes volúmenes de datos.
- Menor riesgo de cuellos de botella.
⚠️ Inconvenientes
- Falta de estándares universales.
- Complejidad en la gestión del esquema.
- Algunas funciones no implementadas.
- Alta curva de aprendizaje.
🧩 Tipos de Bases de Datos NoSQL
| Tipo | Descripción | Ejemplos |
|---|---|---|
| Clave-Valor | Datos como pares clave-valor. Muy rápidas para lecturas y escrituras. | Cassandra, Redis, Riak |
| Documentales | Guardan datos como documentos JSON o XML, con clave única. | MongoDB, CouchDB |
| Columnar | Datos organizados en columnas en lugar de filas. Útil para analítica. | Cassandra, HBase |
| Orientadas a Objetos | Datos representados como objetos de programación. | Zope, Gemstone |
| Grafos | Información como nodos y aristas, ideal para relaciones complejas. | Neo4j, Virtuoso |
📌 Ejemplos y Puertos Predeterminados
| Base de Datos | Puerto(s) |
|---|---|
| ArangoDB | 8529 |
| Cassandra | 7000, 7001, 9042 |
| CouchDB | 5984 |
| Elasticsearch | 9200, 9300 |
| MongoDB | 27017, 27018, 27019, 28017 |
| Neo4J | 7473, 7474 |
| Redis | 6379 |
| Riak | 8087, 8098 |
📚 Lenguajes y Consultas
- SPARQL (AllegroGraph)
- Gremlin (Grafos)
- AQL, JavaScript, GraphQL (ArangoDB)
- Cypher (Neo4j)
- XQuery (XML)
- Java, Scala
⚖️ Teorema CAP
No es posible garantizar simultáneamente:
- Consistency (C) – Coherencia en los datos.
- Availability (A) – Disponibilidad continua.
- Partition Tolerance (P) – Tolerancia a particiones de red.
🔹 AP: Alta disponibilidad y tolerancia a particiones (Ej.: Cassandra, CouchDB).
🔹 CP: Coherencia y tolerancia a particiones (Ej.: MongoDB, HBase).
🔹 CA: Coherencia y disponibilidad (Ej.: Bases de datos relacionales).
🖼️ Infografía Visual
Podría incluir:
- Esquema de tipos NoSQL.
- Mapa con puertos y ejemplos.
- Triángulo del Teorema CAP.
- Ejemplos de consultas en Cypher, SPARQL, Gremlin.


Deja un comentario