Tutorial de NoSQL: Tipos de bases de datos NoSQL y ejemplo
⚡ Resumen inteligente
NoSQL es un sistema de gestión de bases de datos no relacionales que no requiere un esquema fijo, evita las uniones y se escala fácilmente. Este recurso explica qué es NoSQL, por qué existe, su historia, sus características, los cuatro tipos de bases de datos, el teorema CAP, la consistencia eventual y sus ventajas y desventajas.

¿Qué es NoSQL?
Base de datos NoSQL es un sistema de gestión de datos no relacional que no requiere un esquema fijo. Evita las uniones y es fácil de escalar. El propósito principal de usar una base de datos NoSQL es para almacenes de datos distribuidos con enormes necesidades de almacenamiento de datos. NoSQL se utiliza para big data y aplicaciones web en tiempo real. Por ejemplo, empresas como Twitter, Facebook y Google Recopilamos terabytes de datos de usuarios cada día.
Base de datos NoSQL NoSQL significa “Not Only SQL” o “Not SQL”. Aunque un término más apropiado sería “NoREL”, el término se popularizó. Carl Strozzi introdujo el concepto NoSQL en 1998.
Los sistemas de gestión de bases de datos relacionales (RDBMS) tradicionales utilizan la sintaxis SQL para almacenar y recuperar datos y obtener información adicional. En cambio, un sistema de base de datos NoSQL abarca una amplia gama de tecnologías que permiten almacenar datos estructurados, semiestructurados, no estructurados y polimórficos. En este tutorial sobre bases de datos NoSQL, explicaremos qué es NoSQL con un diagrama:
¿Por qué NoSQL?
El concepto de bases de datos NoSQL se popularizó entre gigantes de Internet como Google, Facebook, Amazon, etc. que manejan grandes volúmenes de datos. El tiempo de respuesta del sistema se vuelve lento cuando utiliza RDBMS para volúmenes masivos de datos.
Para resolver este problema, podríamos "ampliar" nuestros sistemas actualizando nuestro hardware existente. Este proceso es costoso.
La alternativa para solucionar este problema es distribuir la carga de la base de datos entre varios servidores cuando esta aumenta. Este método se conoce como "escalado horizontal".
Las bases de datos NoSQL no son relacionales, por lo que se escalan mejor que las bases de datos relacionales, ya que están diseñadas pensando en las aplicaciones web.
Breve historia de las bases de datos NoSQL
- 1998 – Carlo Strozzi utiliza el término NoSQL para referirse a su base de datos relacional ligera y de código abierto.
- 2000 – Base de datos de grafos NeoSe lanza 4j.
- 2004 - Google Se lanza BigTable.
- 2005 - CouchDB se pone en marcha.
- 2007 – El documento de investigación sobre Amazon Se lanza Dynamo.
- 2008 – Facebook abre el código fuente Cassandra proyecto.
- 2009 – Se reintrodujo el término NoSQL.
Características de NoSQL
No relacional
- Las bases de datos NoSQL nunca siguen el modelo relacional.
- Nunca proporcione tablas con registros planos de columnas fijas.
- Trabajar con agregados autónomos o BLOBs.
- No se requiere un mapa objeto-relacional.ping y normalización de datos.
- No incluye características complejas como lenguajes de consulta, planificadores de consultas, uniones de integridad referencial ni ACID.
Sin esquemas
- Las bases de datos NoSQL no tienen esquema o tienen esquemas flexibles.
- No se requiere ningún tipo de definición del esquema de los datos.
- Ofrecer estructuras de datos heterogéneas en el mismo dominio.

API simple
- Ofrece interfaces fáciles de usar para el almacenamiento y la consulta de datos.
- Las API permiten la manipulación de datos de bajo nivel y métodos de selección.
- Protocolos basados en texto utilizados principalmente con HTTP REST con JSON.
- En su mayoría, no se utiliza ningún lenguaje de consulta NoSQL basado en estándares.
- Bases de datos habilitadas para la web que funcionan como servicios accesibles desde Internet.
Distribuido
- Es posible ejecutar varias bases de datos NoSQL de forma distribuida.
- Ofrece capacidades de escalado automático y conmutación por error.
- A menudo, el concepto ACID se sacrifica en aras de la escalabilidad y el rendimiento.
- En general, no hay replicación síncrona entre nodos distribuidos; se utiliza replicación asíncrona multi-maestro, de igual a igual y replicación HDFS.
- Solo proporciona consistencia eventual.
- Arquitectura sin recursos compartidos. Esto permite una menor coordinación y una mayor distribución.
Tipos de bases de datos NoSQL
Bases de datos NoSQL Las bases de datos se clasifican principalmente en cuatro tipos: pares clave-valor, orientadas a columnas, basadas en grafos y orientadas a documentos. Cada categoría tiene sus propias características y limitaciones. Ninguna de las bases de datos mencionadas resuelve todos los problemas por sí sola. Los usuarios deben seleccionar la base de datos que mejor se adapte a las necesidades de su producto.
Tipos de bases de datos NoSQL:
- Basado en pares clave-valor
- Gráfico orientado a columnas
- Basado en gráficos
- Orientado a documentos
Basado en pares clave-valor
Los datos se almacenan en pares clave-valor. Están diseñados para manejar grandes volúmenes de datos y cargas pesadas. Las bases de datos de pares clave-valor almacenan los datos como una tabla hash, donde cada clave es única y el valor puede ser JSON, BLOB (objeto binario grande), cadena de texto, etc.
Por ejemplo, un par clave-valor puede contener una clave como “Sitio web” asociada con un valor como “Guru99 ".
Es uno de los ejemplos más básicos de bases de datos NoSQL. Este tipo de base de datos NoSQL se utiliza como una colección, diccionarios, matrices asociativas, etc. Los almacenes clave-valor ayudan al desarrollador a almacenar datos sin esquema. Funcionan mejor para tiendasping Contenido del carrito.
Redis, Dynamo y Riak son algunos ejemplos de bases de datos NoSQL de almacenamiento clave-valor. Todas están basadas en AmazonEl papel Dynamo.
Basado en columnas
Las bases de datos orientadas a columnas funcionan con columnas y se basan en el documento BigTable de GoogleCada columna se trata por separado. Los valores de las bases de datos de una sola columna se almacenan de forma contigua.
Ofrecen un alto rendimiento en consultas de agregación como SUMA, CONTAR, AVG, MIN, etc., ya que los datos están disponibles fácilmente en una columna. Las bases de datos NoSQL basadas en columnas se utilizan ampliamente para administrar almacenes de datos, inteligencia empresarial , CRM y catálogos de tarjetas de biblioteca.
HBase, Cassandra, y Hypertable son ejemplos de consultas NoSQL de bases de datos basadas en columnas.
Orientado a documentos
Las bases de datos NoSQL orientadas a documentos almacenan y recuperan datos como pares clave-valor, pero el valor se guarda como un documento. Este documento se almacena en formato JSON o XML. La base de datos interpreta el valor y permite realizar consultas.
En este diagrama de la izquierda, se pueden ver filas y columnas, y a la derecha, una base de datos de documentos con una estructura similar a JSON. En una base de datos relacional, es necesario conocer las columnas, etc. Sin embargo, en una base de datos de documentos, se utiliza un almacén de datos similar a un objeto JSON. No es necesario definirlo, lo que la hace flexible.
Este tipo de documento se utiliza principalmente en sistemas de gestión de contenido (CMS), plataformas de blogs, análisis en tiempo real y aplicaciones de comercio electrónico. No debe utilizarse para transacciones complejas que requieran múltiples operaciones o consultas sobre estructuras agregadas variables.
Amazon base de datos simple, CouchDB, MongoDBRiak y Lotus Notes son populares sistemas de gestión de documentos orientados a documentos. sistemas DBMS.
Basado en gráficos
Una base de datos de tipo grafo almacena entidades y las relaciones entre ellas. Cada entidad se representa como un nodo y cada relación como una arista. Una arista establece una relación entre nodos. Cada nodo y arista tiene un identificador único.
En comparación con una base de datos relacional, donde las tablas están conectadas de forma laxa, una base de datos de grafos es multirrelacional por naturaleza. Recorrer las relaciones es rápido, ya que están predefinidas en la base de datos y no es necesario calcularlas. Las bases de datos de grafos se utilizan principalmente para redes sociales, logística y datos espaciales.
Neo4J, gráfico infinito, OrientDBy FlockDB son algunas bases de datos populares basadas en grafos.
Herramientas del mecanismo de consulta para NoSQL
El mecanismo de recuperación de datos más común es la recuperación de un valor basada en REST a partir de su clave/ID con un recurso GET.
Las bases de datos de almacenamiento de documentos ofrecen consultas más difíciles, ya que entienden el valor de un par clave-valor. Por ejemplo, CouchDB Permite definir vistas con MapReduce.
¿Qué es el teorema CAP?
El teorema CAP también se llama teorema de Brewer. Establece que es imposible que un almacén de datos distribuido ofrezca más de dos de tres garantías:
- Consistencia
- Disponibilidad
- Tolerancia de partición
Consistencia: Los datos deben permanecer consistentes incluso después de la ejecución de una operación. Esto significa que una vez que se escriben los datos, cualquier solicitud de lectura futura debe contener esos datos. Por ejemplo, después de actualizar el estado del pedido, todos los clientes deben poder ver los mismos datos.
Disponibilidad: La base de datos siempre debe estar disponible y responsiva. No debería tener ningún tiempo de inactividad.
Tolerancia de partición: Tolerancia de partición significa que el sistema debe continuar funcionando incluso si la comunicación entre los servidores no es estable. Por ejemplo, los servidores se pueden dividir en varios grupos que pueden no comunicarse entre sí. Aquí, si parte de la base de datos no está disponible, otras partes nunca se ven afectadas.
Coherencia eventual
El término “consistencia eventual” implica tener copias de los datos en varias máquinas para lograr alta disponibilidad y escalabilidad. Por lo tanto, los cambios realizados en cualquier dato en una máquina deben propagarse a las demás réplicas.
La replicación de datos puede no ser instantánea, ya que algunas copias se actualizarán de inmediato, mientras que otras lo harán con el tiempo. Estas copias pueden ser inconsistentes entre sí, pero con el tiempo se vuelven consistentes. De ahí el nombre de consistencia eventual.
BASE: Basicamente Adisponible Sestado a menudo, Econsistencia ventual
- Básicamente, "disponible" significa que la base de datos está disponible en todo momento, según el teorema CAP.
- El estado blando significa que, incluso sin ninguna entrada, el estado del sistema puede cambiar.
- La consistencia eventual significa que el sistema se volverá consistente con el tiempo.
Ventajas de NoSQL
- Puede utilizarse como fuente de datos primaria o analítica.
- Capacidad de big data.
- No existe un único punto de fallo.
- Fácil de replicar.
- No es necesario un nivel de almacenamiento en caché independiente.
- Proporciona un rendimiento rápido y escalabilidad horizontal.
- Puede procesar datos estructurados, semiestructurados y no estructurados con la misma eficacia.
- Programación orientada a objetos, fácil de usar y flexible.
- Las bases de datos NoSQL no necesitan un servidor dedicado de alto rendimiento.
- Compatible con los principales lenguajes y plataformas de desarrollo.
- Más sencillo de implementar que utilizando un sistema de gestión de bases de datos relacionales (RDBMS).
- Puede servir como fuente de datos principal para aplicaciones en línea.
- Gestiona grandes volúmenes de datos, controlando la velocidad, la variedad, el volumen y la complejidad de los mismos.
- Destaca en operaciones con bases de datos distribuidas y múltiples centros de datos.
- Elimina la necesidad de una capa de almacenamiento en caché específica para guardar los datos.
- Ofrece un diseño de esquema flexible que se puede modificar fácilmente sin tiempos de inactividad ni interrupciones del servicio.
Desventajas de NoSQL
- No existen reglas de estandarización.
- Capacidades de consulta limitadas.
- RDBMS Las bases de datos y las herramientas están relativamente maduras.
- No ofrece ninguna capacidad de base de datos tradicional, como consistencia cuando se realizan múltiples transacciones simultáneamente.
- Cuando aumenta el volumen de datos, resulta difícil mantener valores únicos, ya que las claves se vuelven complicadas.
- No funciona tan bien con datos relacionales.
- La curva de aprendizaje es pronunciada para los nuevos desarrolladores.
- Las opciones de código abierto no son muy populares entre las empresas.






