Please enable JavaScript.
Coggle requires JavaScript to display documents.
Base de datos no relacionales - Coggle Diagram
Base de datos no relacionales
DEFINICIÓN
Las Bases de Datos No Relacionales, comúnmente conocidas como NoSQL (del inglés "Not only SQL" o "NoSQL"), son un tipo de sistema de gestión de bases de datos que difieren de las bases de datos relacionales tradicionales en que no utilizan el esquema de tabla relacional estricto. Están diseñadas para manejar grandes volúmenes de datos distribuidos y no estructurados o semiestructurados, ofreciendo alta disponibilidad, escalabilidad horizontal y flexibilidad en el modelo de datos
Diferencia clave con SQL: A diferencia de las bases de datos relacionales que se basan en tablas con filas y columnas predefinidas y SQL para consultas, las bases de datos NoSQL utilizan diversos modelos de datos, como documentos, clave-valor, columnas anchas o grafos.
CARACTERÍSTICAS PRINCIPALES
Flexibilidad de Esquema (Schema-less)
No requieren un esquema fijo y predefinido
Permiten almacenar datos de diferentes estructuras en la misma base de datos.
Facilita el desarrollo ágil y la evolución de las aplicaciones.
Ejemplo
Imagina una colección de "productos" donde algunos tienen color, otros tamaño, y algunos ambos. En NoSQL, puedes almacenar esto directamente sin tener que añadir columnas nulas.
Escalabilidad Horizontal (Scale-out)
Capacidad de crecer añadiendo más servidores (nodos) a un clúster, en lugar de aumentar la capacidad de un solo servidor (escalabilidad vertical).
Ideal para manejar grandes volúmenes de datos y un alto número de transacciones.
Ejemplo Visual/Explicativo: Piensa en distribuir la carga de trabajo entre varias computadoras en lugar de tener una sola supercomputadora muy potente.
Alta Disponibilidad
Diseñadas para tener replicación de datos y mecanismos de tolerancia a fallos.
Aseguran que la base de datos siga funcionando incluso si algunos nodos fallan.
Ejemplo Visual/Explicativo: Tener copias de seguridad de tus datos en diferentes servidores, de modo que si uno falla, otro toma su lugar automáticamente.
Rendimiento Optimizado
Diseñadas para casos de uso específicos, lo que les permite ofrecer un rendimiento superior para ciertas cargas de trabajo.
La desnormalización y los modelos de datos flexibles contribuyen a esto.
Consistencia Eventual (BASE)
Muchas bases de datos NoSQL priorizan la disponibilidad y la tolerancia a particiones sobre la consistencia estricta (modelo ACID de las bases de datos relacionales).
Los datos pueden no ser instantáneamente consistentes en todos los nodos, pero eventualmente lo serán.
Acronym BASE
Basically Available (Básicamente Disponible)
Soft state (Estado flexible)
Eventual consistency (Consistencia eventual)
Ejemplo
Cuando actualizas tu estado en una red social, no todos tus amigos lo verán al instante, pero eventualmente sí.
HISTORIA
Orígenes (finales de los 2000s - principios de los 2010s)
Surgieron como respuesta a las limitaciones de las bases de datos relacionales para manejar los desafíos de la "Big Data" (grandes volúmenes, variedad y velocidad de datos).
Necesidad de escalabilidad y flexibilidad para aplicaciones web masivas (ej. redes sociales, comercio electrónico).
Google (BigTable), Amazon (Dynamo) fueron pioneros con sus sistemas distribuidos internos.
Auge y Popularización
La explosión de datos generados por internet y dispositivos móviles impulsó su adopción.
Proyectos de código abierto como Cassandra, MongoDB, Redis, y CouchDB ganaron popularidad.
Comunidades de desarrolladores crecieron alrededor de estas tecnologías.
TIPOS PRINCIPALES
Bases de Datos Clave-Valor
Almacenan datos como una colección de pares clave-valor, similar a un diccionario o hash map. Las claves deben ser únicas.
Ventajas
Extrema simplicidad, alta velocidad, escalabilidad.
Casos de Uso
Caché de datos, gestión de sesiones de usuario, carros de compra.
Ejemplos
Redis, DynamoDB (Amazon), Memcached.
Bases de Datos Orientadas a Documentos
Almacenan datos en documentos semi-estructurados (JSON, BSON, XML). Cada documento contiene pares clave-valor y puede tener estructuras anidadas.
Ventajas
Gran flexibilidad de esquema, ideal para datos jerárquicos.
Casos de uso
Catálogos de productos, perfiles de usuario, sistemas de gestión de contenido.
Ejemplos
MongoDB, Couchbase, RavenDB.
Un documento JSON representando un producto con su nombre, descripción, precio y una lista de etiquetas.
Bases de Datos Orientadas a Columnas Anchas (Wide-Column Stores)
Almacenan datos en "familias de columnas". Optimizadas para la agregación de datos y consultas en grandes conjuntos de datos dispersos.
Ventajas
Alta escalabilidad, excelente para datos que cambian con frecuencia.
Casos de uso
Análisis de grandes volúmenes de datos, series temporales, contabilidad.
Ejemplos
Apache Cassandra, Apache HBase, Google BigTable.
Piensa en una tabla donde cada fila puede tener un conjunto diferente de columnas.
Bases de Datos Orientadas a Grafos
APLICACIONES
Big Data y Análisis
Almacenamiento y procesamiento de grandes volúmenes de datos generados por aplicaciones web, sensores, IoT.
Aplicaciones Web y Móviles de Alto Tráfico
Redes sociales, plataformas de comercio electrónico, juegos en línea, donde la escalabilidad y la disponibilidad son cruciales.
Internet de las Cosas (IoT)
Recopilación y almacenamiento de datos de sensores y dispositivos conectados.
Personalización y Recomendación
Sistemas que analizan el comportamiento del usuario para ofrecer contenido y productos personalizados.
Gestión de Contenido y Documentos
Almacenamiento flexible para blogs, wikis, sistemas de gestión documental.
Bases de Datos en Tiempo Real
Caché de datos, mensajes instantáneos, análisis en tiempo real.