Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bases de datos no relacionales, image, definicion, image, image, image,…
Bases de datos no relacionales
¿Qué son?
Definición clara
Sistemas de datos que NO usan tablas rígidas ni esquemas fijos como en SQL.
Permiten almacenar datos estructurados, semiestructurados (ej. JSON) y no estructurados.
Por qué existen
Responden a necesidades de GRAN escala: millones de usuarios, baja latencia y alta disponibilidad.
Escalan horizontalmente añadiendo nodos/servidores en lugar de hacer un servidor más potente.
Diferencia con relacionales
SQL: esquema fijo, joins, ACID fuerte, muy bueno para transacciones complejas.
NoSQL: esquema flexible, sin joins (se modela por acceso), favorece rendimiento y escalado.
Modelos principales
Documento
Qué es
Guarda documentos (JSON/BSON). Cada documento puede tener campos distintos.
Ventajas
Flexibilidad de esquema, natural para objetos de apps web.
Casos típicos
Catálogos de e-commerce, usuarios, blogs, microservicios.
Ejemplos
MongoDB, CouchDB, Firestore.
Clave-valor
Qué es
Almacena pares {clave: valor}. Acceso ultrarrápido por clave.
Ventajas
Simplicidad, baja latencia, ideal para cache/estado.
Casos típicos
Sesiones, colas simples, contadores, feature flags.
Ejemplos
Redis, Amazon DynamoDB, Riak.
Columnares (wide-column)
Qué es
Tablas con familias de columnas; filas esparsas; pensado para lecturas/escrituras masivas.
Ventajas
Muy bueno para big data y escrituras distribuidas.
Casos típicos
Logs, eventos, telemetría, analítica a gran escala.
Ejemplos
Apache Cassandra, HBase, ScyllaDB.
Grafos
Qué es
Nodos y aristas; almacena relaciones explícitas.
Ventajas
Consultas complejas de relaciones profundas (path, comunidades).
Casos típicos
Redes sociales, rutas/transporte, fraude, recomendaciones.
Ejemplos
Neo4j, JanusGraph, ArangoDB (multi-modelo).
Series de tiempo
Qué es
Datos indexados por timestamp, compresión y retención por políticas.
Casos típicos
IoT, métricas, monitoreo, trading.
Ejemplos
InfluxDB, TimescaleDB, Prometheus (TS).
Búsqueda/Texto
Qué es
Motores para texto completo, relevancia, agregaciones.
Casos típicos
Buscadores internos, análisis de logs, observabilidad.
Ejemplos
Elasticsearch, OpenSearch, Solr.
Historia y contexto
Años 2000: auge web a gran escala
Google Bigtable (2006) y Amazon Dynamo (2007) inspiraron Cassandra/HBase.
2009: “NoSQL” como movimiento
Impulso por big data, nube y microservicios.
Hoy
Polyglot persistence: combinar varios motores según el caso de uso.
Teoría fundamental
Teorema CAP
Consistencia (C)
Todas las réplicas devuelven el mismo dato tras una escritura.
Disponibilidad (A)
Cada petición recibe respuesta (aunque no la más reciente).
Tolerancia a particiones (P)
El sistema sigue operando pese a fallos/red parcial.
Implicación
En presencia de particiones, eliges entre C o A.
PACELC (extiende CAP)
Si hay partición (PA): Consistencia (C) vs Disponibilidad (A).
Else (EL): Latencia (L) vs Consistencia (C) incluso SIN particiones.
Moraleja
Siempre hay trade-off entre latencia y consistencia.
Arquitectura interna
Particionamiento (sharding)
Estrategias
Hash por clave (balancea carga), por rango (consultas por rango eficientes), geográfica (afinidad local).
Buenas prácticas
Clave de partición con buena cardinalidad, evitar hot-keys.
Replicación
Tipos
Primario-réplicas (líder-seguidores), multi-líder, líder-less (gossip).
Objetivo
Alta disponibilidad, lecturas escalables, failover automático.
Consistencia y quorum
Lecturas/escrituras con N, R, W (ej. Cassandra): controlas cuántas réplicas responden para garantizar C/A.
Balanceo y resiliencia
Rebalanceo automático, tolerancia a fallos, recuperación sin downtime.
Modelos de consistencia
Fuerte
Lectura siempre ve la última escritura confirmada.
Eventual
Convergencia con el tiempo; máxima disponibilidad y latencia baja.
Causal
Respeta el orden causal de operaciones relacionadas (más fuerte que eventual).
Read-your-writes / Monotonic reads
Un cliente ve sus propias escrituras; lecturas nunca retroceden.
Elección práctica
Depende del caso: pagos → fuerte; feeds/analytics → eventual/causal.
Modelado de datos en NoSQL
Pensar en patrones de acceso
Diseña el documento/fila para responder a tus queries SIN joins.
Desnormalización
Duplicar algunos datos para evitar múltiples lecturas/joins (aceptar actualizaciones coordinadas).
Esquema flexible con validación
Acepta campos opcionales, pero define validadores/índices requeridos.
Índices
Índices compuestos y TTL (caducidad) cuando aplique.
Ventajas
Escalabilidad horizontal casi lineal.
Alta disponibilidad y baja latencia global (réplicas regionales).
Flexibilidad de esquema → ciclos de desarrollo más rápidos.
Coste/beneficio en cargas masivas (pay-as-you-go en la nube).
Desventajas y riesgos
No hay estándar único de consulta (cada motor su dialéctica).
Consultas ad-hoc complejas pueden ser difíciles o costosas.
Consistencia eventual no aplica a todo (ej. finanzas).
Operación y monitoreo de clústeres distribuidos requiere madurez.
¿Cuándo usar NoSQL?
Sí
Altas tasas de escritura/lectura, datos heterogéneos, escala global, baja latencia, IoT, eventos.
Mejor SQL
Reglas de negocio complejas, reportes transaccionales, integridad referencial fuerte.
Híbrido (polyglot)
SQL para transacciones + NoSQL para catálogos, sesiones, logs, búsquedas.
Casos de uso reales (resumen)
Netflix
Cassandra para eventos/telemetría a escala planetaria.
Amazon
Dynamo/DynamoDB para alta disponibilidad en e-commerce.
Uber
Redis/Cassandra para geolocalización en tiempo real.
Facebook/Google
Bigtable/HBase para feeds e infra interna.
Buenas prácticas operativas
Observabilidad
Métricas (latencia, p99, colas), logs estructurados, trazas.
Copias de seguridad y DR
Backups incrementales, pruebas de restauración, multi-región.
Seguridad
Autenticación/roles, cifrado en tránsito y en reposo, VPC/seguridad perimetral.
Costo
Elegir tamaño y políticas de retención (TTL, compaction) para evitar sobrecostos.
Servicios gestionados (nube)
AWS
DynamoDB, DocumentDB, ElastiCache (Redis), Keyspaces (Cassandra), OpenSearch.
GCP
Firestore, Bigtable, Memorystore (Redis), AlloyDB for PG-TS, Elastic en GCP.
Azure
Cosmos DB (APIs: Mongo, Cassandra, Gremlin), Azure Cache for Redis, Azure Cognitive Search.
Comparación con relacionales (resumen)
Relacionales (SQL)
ACID fuerte, joins, reporting; − escalado horizontal difícil, esquema rígido.
NoSQL
Escala/latencia/flexibilidad; − menos estandarización y joins limitados.
Estrategia práctica
Elegir por requerimientos; combinar cuando convenga (polyglot).