Sobes.tech
Junior

¿Qué son las bases de datos NoSQL?

sobes.tech AI

Respuesta de la IA

NoSQL (No Solo SQL) es una clase de sistemas de gestión de bases de datos no relacionales que utilizan estructuras diferentes de las tablas tradicionales con esquemas fijos. Están diseñados para trabajar con grandes volúmenes de datos no estructurados, semi-estructurados y poliestructurados, ofreciendo escalabilidad flexible y alta disponibilidad.

Categorías principales de bases de datos NoSQL:

  • "Clave-valor" (Key-Value Stores): Almacenan datos en pares clave-valor, donde la clave identifica de manera única el valor.
    # Ejemplo de representación de datos en un almacén clave-valor
    user_data = {
        "user:123": {"name": "Alice", "age": 30},
        "product:456": {"name": "Laptop", "price": 1200}
    }
    
  • "Columnar" (Columnar Databases): Almacenan datos por columnas, no por filas. Optimizados para consultas analíticas y procesamiento de grandes volúmenes de datos.
  • "Documentales" (Document Databases): Almacenan datos en forma de documentos (por ejemplo, JSON, BSON, XML). La esquema de datos es flexible.
    // Ejemplo de documento en base de datos documental
    {
      "_id": "prod_abc",
      "name": "Smartphone",
      "brand": "XYZ",
      "specs": {
        "display": "6.5 inch",
        "camera": "48MP"
      },
      "tags": ["electronics", "mobile"]
    }
    
  • "Grafos" (Graph Databases): Diseñados para almacenar y procesar datos representados en forma de vértices (nodos) y aristas (relaciones). Se utilizan para analizar relaciones.

Diferencias con bases de datos relacionales (SQL):

Característica Relacional (SQL) NoSQL
Esquema de datos Fijo, estricto Flexible, dinámico
Escalabilidad Vertical (aumentar la potencia del servidor) Horizontal (agregar servidores)
Normalización Alta (reducción de redundancia) Baja (duplicación de datos para rendimiento)
Transacciones ACID Generalmente soporte completo Soporte variable (a veces BASE)
Lenguaje de consultas SQL Varía (a menudo API, lenguajes específicos)

Las bases de datos NoSQL se eligen para escenarios que requieren alta escalabilidad, flexibilidad de esquema, procesamiento rápido de grandes volúmenes de datos (Big Data), trabajo con datos semi-estructurados/no estructurados o modelos de datos específicos (por ejemplo, grafos).