MongoDB World is back in NYC June 7 - 9!MongoDB World is back in NYC June 7 - 9!

¿Qué es NoSQL?

Cree un clúster NoSQL gratis
Pruebe una base de datos NoSQL con Atlas
¿Qué es NoSQL?

Las bases de datos NoSQL (también conocidas como “no solo SQL“) almacenan datos de manera diferente a las tablas relacionales. Existen distintos tipos de bases de datos NoSQL según su modelo de datos. Los tipos principales son documento, clave-valor, columna ancha y gráfico. Proporcionan esquemas flexibles y se escalan fácilmente con grandes cantidades de big data y cargas de usuario elevadas.

En este artículo, aprenderá qué es una base de datos NoSQL, por qué (¡y cuándo!) debería usar una y cómo comenzar.

Tabla de contenidos
¿Qué es una base de datos NoSQL?

Cuando la gente usa el término “base de datos NoSQL”, generalmente se refieren a cualquier base de datos no relacional. Algunos dicen que el término “NoSQL” significa “no SQL”, mientras que otros dicen que significa “no solo SQL”. De cualquier manera, la mayoría está de acuerdo en que las bases de datos NoSQL almacenan datos de una manera más natural y flexible. NoSQL, a diferencia de SQL, es un enfoque de administración de bases de datos, mientras que SQL es solo un lenguaje de consulta, similar a los lenguajes de consulta de las bases de datos NoSQL.

Tipos de bases de datos — NoSQL

Con el tiempo, surgieron cuatro tipos de bases de datos NoSQL: bases de datos de documentos, bases de datos clave-valor, almacenes de datos de columnas anchas y bases de datos de grafos. Hoy en día, las bases de datos multimodelo también se están volviendo bastante populares.

Bases de datos orientadas a documentos

Una base de datos orientada a documentos almacena datos en documentos similares a objetos JSON (JavaScript Object Notation). Cada documento contiene pares de campos y valores. Por lo general, los valores pueden ser de varios tipos, incluidos elementos como cadenas, números, booleanos, matrices o incluso otros objetos. Una base de datos de documentos ofrece un modelo de datos flexible, muy adecuado para conjuntos de datos semiestructurados y, por lo general, no estructurados. También admiten estructuras anidadas, lo que facilita la representación de relaciones complejas o datos jerárquicos.

Ejemplos de bases de datos de documentos son MongoDB y Couchbase. Un documento típico se verá como el siguiente:

Almacenes de columnas anchas

Los almacenes de columnas anchas almacenan los datos en tablas, filas y columnas dinámicas. Los datos se almacenan en tablas. Sin embargo, a diferencia de las bases de datos SQL tradicionales, los almacenes de columnas anchas son flexibles, donde las diferentes filas pueden tener diferentes conjuntos de columnas. Estas bases de datos pueden emplear técnicas de compresión de columnas para reducir el espacio de almacenamiento y mejorar el rendimiento. Las filas y columnas anchas permiten una recuperación eficiente de datos dispersos y amplios. Algunos ejemplos de tiendas de columna ancha son Apache Cassandra y HBase. Un ejemplo típico de cómo se almacenan los datos en una columna ancha es el siguiente:

NombreIDEmailFecha de nacimientoCiudad
Foo bar12345foo@bar.comAlguna ciudad
Carn Yale34521bar@foo.com12-05-1972

Bases de datos de grafos

Una base de datos de grafos almacena datos en forma de nodos y bordes. Los nodos suelen almacenar información sobre personas, lugares y cosas (como sustantivos), mientras que las aristas almacenan información sobre las relaciones entre los nodos. Funcionan bien para datos altamente conectados, donde las relaciones o patrones pueden no ser muy obvios inicialmente. Ejemplos de bases de datos de grafos son Neo4J y Amazon Neptune. MongoDB también proporciona capacidades de recorrido de grafos empleando la etapa $graphLookup del pipeline de agregación. A continuación se muestra un ejemplo de cómo se almacenan los datos:

Ejemplo de bases de datos gráficas.
Bases de datos multimodelo

Las bases de datos multimodelo admiten más de un tipo de modelo de datos NoSQL para que los desarrolladores puedan elegir en función de los requisitos de su aplicación. Estas bases de datos tienen un motor de base de datos unificado que puede manejar múltiples modelos de datos dentro de una instancia de base de datos. Algunos ejemplos son CosmosDB y ArangoDB.

Comparación rápida de tipos de bases de datos — NoSQL

Cada una de las bases de datos NoSQL ofrece diferentes características. Por ejemplo, las bases de datos de grafos podrían ser más adecuadas para analizar relaciones complejas y patrones entre entidades, mientras que las bases de datos de documentos proporcionan una forma más flexible y natural de almacenar y recuperar grandes volúmenes de datos de tipos similares a los documentos. La elección de la base de datos depende del caso de uso que desee desarrollar.

Comparación de tipos de bases de datos NoSQL.

Para obtener más información, lea Descripción de los diferentes tipos de bases de datos NoSQL.

Breve historia de las bases de datos NoSQL

Las bases de datos NoSQL surgieron a finales de la década de 2000 a medida que el costo del almacenamiento disminuyó significativamente. Atrás quedaron los días en los que era necesario crear un modelo de datos complejo y difícil de gestionar para evitar la duplicación de datos. Bases de datos NoSQL optimizadas para la productividad de los desarrolladores.

 
A medida que los costos de almacenamiento disminuyeron rápidamente, aumentó la cantidad de datos que las aplicaciones necesitaban almacenar y consultar. Estos datos vinieron en todas las formas y tamaños: estructurados, semiestructurados y no estructurados — y definir el esquema de antemano se volvió casi imposible. Las bases de datos NoSQL permiten a los desarrolladores almacenar cantidades ingentes de datos no estructurados, lo que les da mucha flexibilidad.
Breve historia de las bases de datos NoSQL.

A principios de la década de 2000, un artículo publicado por Google en BigTable, la base de datos de columna ancha, exploró la amplia gama de posibilidades de un sistema de almacenamiento distribuido. 2009 vio un aumento importante en las bases de datos NoSQL, con dos bases de datos clave orientadas a documentos, MongoDB y CouchDB, entrando en escena.

En la década de 2010, surgieron diferentes tipos de bases de datos NoSQL y la aceptación de NoSQL se hizo generalizada, con las empresas cada vez más basadas en datos.

Además, la popularidad del Manifiesto Ágil iba en aumento y los ingenieros de software estaban repensando la forma en que se desarrollaba el software. Tuvieron que adaptar rápidamente a los requisitos cambiantes, iterar rápidamente y realizar cambios en toda su pila de software, hasta la base de datos. Las bases de datos NoSQL les aportaron esta flexibilidad.

La computación en la nube también aumentó en popularidad y los desarrolladores comenzaron a utilizar nubes públicas para alojar sus aplicaciones y datos. Querían tener la capacidad de distribuir datos en varios servidores y regiones para hacer que sus aplicaciones fueran resilientes, escalar horizontalmente en lugar de escalar verticalmente y colocar geográficamente sus datos de manera inteligente. Algunas bases de datos NoSQL, como MongoDB Atlas, Proporcionar estas capacidades.

Debido al crecimiento exponencial de la digitalización, las compañías ahora recopilan la mayor cantidad posible de datos no estructurados. Ser capaz de analizar y derivar información en tiempo real procesable de tales big data, Las compañías necesitan soluciones modernas que vayan más allá del simple almacenamiento. Las empresas necesitan una plataforma que pueda fácilmente escalar, transformar, y visualizar datos; crear cuadros de mando, reportes y gráficos; y trabajar con AI y herramientas de business intelligence para acelerar la productividad de su negocio. Debido a su naturaleza flexible y distribuida, las bases de datos NoSQL (por ejemplo, MongoDB) brillan en estas tareas.

Características de la base de datos NoSQL

Las bases de datos NoSQL son bases de datos flexibles, escalables y distribuidas. Los diferentes tipos de bases de datos NoSQL tienen sus propias características únicas.

Ilustración de características NoSQL.

A grandes rasgos, las bases de datos NoSQL suelen tener las siguientes características:

Cumplimiento BASE

Las bases de datos NoSQL cumplen con BASE, es decir, basic adisponibilidad sestado ofenteeconsistencia eventual. La disponibilidad básica se refiere a la capacidad del sistema para tolerar una falla parcial (como la pérdida de un nodo). Estado blando significa que el sistema permite incoherencias temporales antes de alcanzar finalmente la coherencia de forma automática con el paso del tiempo. El cumplimiento de BASE garantiza alta disponibilidad, procesamiento de datos más rápido, escalabilidad y flexibilidad. Sin embargo, MongoDB también se puede configurar para proporcionar cumplimiento de ACID de documentos múltiples.

Obtenga más información sobre las ventajas de las bases de datos NoSQL.

Ejemplo de base de datos relacional frente a base de datos NoSQL

Consideremos un ejemplo de almacenamiento de información sobre un usuario y sus aficiones. Necesitamos almacenar el nombre, apellido, número de teléfono celular, ciudad y pasatiempos de un usuario.

En un sistema de administración de bases de datos relacionales (RDBMS), probablemente crearíamos dos tablas: una para Usuarios y otra para Hobbies.

Para recuperar toda la información sobre un usuario y sus pasatiempos, la información de la tabla Usuarios y la tabla Hobbies deberá unirse.

El modelo de datos que diseñemos para una base de datos NoSQL dependerá del tipo de base de datos NoSQL que elijamos. Consideremos cómo almacenar la misma información sobre un usuario y sus pasatiempos en una base de datos de documentos como MongoDB.

Para recuperar toda la información sobre un usuario y sus aficiones, se puede recuperar un único documento de la base de datos. No se requieren combinaciones, lo que da como resultado consultas más rápidas.

RDBMS vs NoSQL (Documento)

Para ver una versión más detallada de este ejemplo de modelado de datos, lea Términos y conceptos de mapeo de SQL a MongoDB.

Diferencias entre bases de datos RDBMS y NoSQL

Hay una variedad de diferencias entre los sistemas de administración de bases de datos relacionales y las bases de datos no relacionales. Una de las diferencias clave es la forma en que se modelan los datos en la base de datos. Algunas diferencias clave de cada característica se enumeran a continuación:

Modelado de datos

NoSQL: Los modelos de datos varían según el tipo de base de datos NoSQL utilizada, por ejemplo, clave-valor, documento, gráfico y columna ancha, lo que hace que el modelo sea adecuado para datos semiestructurados y no estructurados.

RDBMS: RDBMS emplea una estructura de datos tabular, con datos representados como un conjunto de filas y columnas, lo que hace que el modelo sea adecuado para datos estructurados.

Esquema

NoSQL: Proporciona un esquema flexible en el que cada conjunto de pares de documentos/columna, columna y valor clave puede contener diferentes tipos de datos. Es más fácil cambiar el esquema, si es necesario, debido a la flexibilidad.

RDBMS: Este es un esquema fijo donde cada fila debe contener los mismos tipos de columna predefinidos. Es difícil cambiar el esquema una vez que se almacenan los datos.

Lenguaje de consulta

NoSQL: Varía según el tipo de base de datos NoSQL empleada. Por ejemplo, MongoDB tiene MQL, y Neo4J usa Cypher.

RDBMS: Emplea el lenguaje de consulta estructurado (SQL).

Escalabilidad

NoSQL: NoSQL está diseñado para el escalado vertical y horizontal.

RDBMS: RDBMS está diseñado para escalamiento vertical. Sin embargo, puede ampliar las capacidades limitadas para el escalado horizontal.

Relaciones de datos

NoSQL: Las relaciones pueden ser anidadas, explícitas o implícitas.

RDBMS: Las relaciones se definen a través de claves foráneas y se accede a ellas mediante uniones.

Tipo de transacción

NoSQL: Las transacciones son ACID- o compatible con BASE.

RDBMS: Las transacciones cumplen con ACID.

Rendimiento

NoSQL: NoSQL es adecuado para procesamiento en tiempo real, análisis de big data y entornos distribuidos.

RDBMS: RDBMS es adecuado para cargas de trabajo de gran lectura y transacciones.

Consistencia de datos

NoSQL: Esto ofrece una alta consistencia de datos.

RDBMS: Esto ofrece consistencia eventual, en la mayoría de los casos.

Computación distribuida

Una de las principales razones para introducir NoSQL fue la computación distribuida, y las bases de datos NoSQL admiten el almacenamiento de datos distribuido, el escalado vertical y horizontal a través de la fragmentación, la replicación y la agrupación en clústeres.

RDBMS: RDBMS soporta la computación distribuida a través de clustering y replicación. Sin embargo, es menos escalable y flexible, ya que no está diseñado tradicionalmente para admitir la arquitectura distribuida.

Tolerancia a fallos

NoSQL: NoSQL tiene tolerancia a fallos incorporada y alta disponibilidad debido a la replicación de datos.

RDBMS: RDBMS emplea mecanismos de replicación, copia de seguridad y recuperación. Sin embargo, dado que están diseñados para estos, es posible que sea necesario implementar medidas adicionales, como mecanismos de recuperación ante desastres, durante el desarrollo de la aplicación.

Partición de datos

NoSQL: Se realiza mediante la partición y la replicación.

RDBMS: Admite particiones basadas en tabla y poda de particiones.

Más información sobre partición de datos aquí.

Mapeo de datos a objetos

NoSQL: NoSQL almacena los datos de diversas maneras, por ejemplo, como documentos JSON, almacenes de columnas anchos o pares de clave y valor. Proporciona abstracción a través de los marcos ODM (mapeo de datos de objetos) para trabajar con datos NoSQL de manera orientada a objetos.

RDBMS: RDBMS se basa más en la asignación de datos a objetos para que haya una integración perfecta entre las columnas de la base de datos y el código de la aplicación orientado a objetos.

Para obtener más información sobre las diferencias entre las bases de datos relacionales y las bases de datos NoSQL, lea NoSQL vs SQL Databases.

Casos de uso de NoSQL

Los sistemas de bases de datos NoSQL se emplean en casi todas las industrias, para análisis en tiempo real, gestión de contenidos, aplicaciones de IoT, sistemas de recomendación, detección de fraudes, gestión de catálogos de productos y mucho más. Los casos de uso van desde los más críticos (por ejemplo, el almacenamiento de datos financieros y registros de atención médica) a los más divertidos y frívolos (por ejemplo, almacenar lecturas de IoT de una caja de arena para gatitos inteligentes).

¿Cuándo se debe usar NoSQL?

A la hora de decidir qué base de datos emplear, los responsables de la toma de decisiones suelen encontrar uno o varios de los siguientes factores que les llevan a seleccionar una base de datos NoSQL:

  • Desarrollo ágil de ritmo rápido
  • Almacenamiento de datos estructurados y semiestructurados
  • Grandes volúmenes de datos
  • Requisitos para la arquitectura de escalabilidad horizontal
  • Paradigmas de aplicaciones modernos como microservicios y streaming en tiempo real

Consulte Cuándo emplear bases de datos NoSQL y Exploración de ejemplos de bases de datos NoSQL para obtener información más detallada sobre las razones enumeradas anteriormente.

Conceptos erróneos de la base de datos NoSQL

A lo largo de los años, muchos conceptos erróneos sobre las bases de datos NoSQL se han extendido por toda la comunidad de desarrolladores. En esta sección, discutiremos dos de los conceptos erróneos más comunes.

Concepto erróneo: los datos de relación son los más adecuados para bases de datos relacionales

Un error común es que las bases de datos NoSQL o las bases de datos no relacionales no almacenan bien los datos de relaciones. Las bases de datos NoSQL pueden almacenar datos de relaciones; solo los almacenan de forma distinta a las bases de datos relacionales.

De hecho, en comparación con bases de datos relacionales, muchos se encuentran con que la modelización de las relaciones en bases de datos NoSQL es más fácil que en bases de datos relacionales, porque no es necesario separar los datos relacionados en tablas distintas. Los modelos de datos NoSQL permiten anidar los datos relacionados dentro de una sola estructura de datos.

Concepto erróneo: las bases de datos NoSQL no admiten transacciones ACID

Otro error común es que las bases de datos NoSQL no admiten transacciones ACID. Algunas bases de datos NoSQL, como MongoDB, admiten, de hecho, transacciones ACID.

Tenga en cuenta que la forma en que se modelan los datos en las bases de datos NoSQL puede eliminar la necesidad de transacciones de varios registros en muchos casos de uso. Considere el ejemplo anterior en el que almacenamos información sobre un usuario y sus pasatiempos tanto en un modelo relacional como en una tienda de documentos. Para asegurarnos de que la información sobre un usuario y sus pasatiempos se actualicen juntos en una base de datos relacional, necesitaríamos usar una transacción para actualizar los registros en dos tablas. Para hacer lo mismo en un almacén de documentos, podríamos actualizar un solo documento, sin necesidad de realizar transacciones de varios registros.

Para obtener más información sobre conceptos erróneos comunes, lea Todo lo que sabe sobre MongoDB es incorrecto.

Tutorial de consulta NoSQL

Podría comenzar con MongoDB, la base de datos NoSQL más popular del mundo, según DB-Engines. La forma más sencilla de empezar a emplear MongoDB es MongoDB Atlas. Atlas es la base de datos totalmente administrada de MongoDB como servicio. Atlas tiene un nivel gratis para siempre, que puedes usar para jugar. Consulte el Tutorial de MongoDB Atlas para empezar.

Puede continuar interactuando con sus datos utilizando el Explorador de datos Atlas para insertar nuevos documentos, editar documentos existentes y eliminar documentos.

Cuando esté listo para probar consultas más avanzadas que agreguen sus datos, cree una canalización de agregación. El marco de agregación es una herramienta increíblemente poderosa para analizar sus datos. Para obtener más información, tome el curso gratis de MongoDB University MongoDB Aggregation.

Cuando quiera visualizar sus datos, consulte MongoDB Charts. Charts le permiten crear paneles de control que se llenan de visualizaciones de sus datos.

Resumen

Las bases de datos NoSQL proporcionan una variedad de beneficios, incluidos modelos de datos flexibles, escalado horizontal, consultas ultrarrápidas y facilidad de uso para los desarrolladores. Las bases de datos NoSQL vienen en una variedad de tipos, incluidos almacenes de documentos, bases de datos de valores clave, almacenes de columnas anchos, bases de datos de gráficos y bases de datos multimodelo.

MongoDB es la base de datos NoSQL más popular del mundo. Obtenga más información sobre MongoDB Atlas y pruebe el nivel gratuito.

¿Estás emocionado por aprender más ahora que tienes tu propia cuenta Atlas? Vaya a la MongoDB University, donde puede obtener capacitación gratuita en línea de los ingenieros de MongoDB y obtener una certificación MongoDB. Los Quickstarts son otro gran lugar para comenzar; lo pondrán en marcha rápidamente con su lenguaje de programación favorito.

Preguntas frecuentes

¿Cuáles son los beneficios de NoSQL?

Muchas bases de datos NoSQL tienen los siguientes beneficios:

¿Qué es la consistencia eventual?
Coherencia eventual es una propiedad de las bases de datos distribuidas. La consistencia eventual asegura que cuando se realiza una actualización de la base de datos, eventualmente, todos los nodos de la base de datos distribuida reflejarán esa actualización.
¿Qué es el teorema CAP?
El teorema CAP establece que un sistema informático distribuido puede proporcionar un máximo de dos de las siguientes tres propiedades: cconsistencia, adisponibilidad y ptolerancia de partición.
¿Para qué se emplea NoSQL?

Las bases de datos NoSQL se emplean en casi todas las industrias para una variedad de casos de uso.

El tipo de base de datos NoSQL determina el caso de uso típico. Por ejemplo, las bases de datos de documentos como MongoDB son bases de datos de uso general. Las bases de datos de clave-valor son ideales para grandes volúmenes de datos con consultas de búsqueda sencillas. Los almacenes de columna ancha funcionan bien para casos de uso con grandes cantidades de datos y patrones de consulta previsibles. Las bases de datos de gráficos sobresalen en analizar y atravesar relaciones entre datos. Consulte Comprender los distintos tipos de bases de datos NoSQL para obtener más información.

¿Qué es una base de datos NoSQL?
Una base de datos NoSQL es una base de datos que almacena datos en un formato distinto de tablas relacionales.
¿Cómo escribo una consulta NoSQL?

Cada base de datos NoSQL tendrá su propio enfoque para escribir consultas. Visite el documentación interactiva de MongoDB para obtener más información sobre consultar una base de datos MongoDB.

¿Es NoSQL difícil de aprender?

No, las bases de datos NoSQL no son difíciles de aprender. De hecho, muchos desarrolladores consideran que el modelado de datos en bases de datos NoSQL es increíblemente intuitivo. Por ejemplo, los documentos de MongoDB se asignan a estructuras de datos en los lenguajes de programación más populares, lo que hace que la programación sea más rápida y sencilla.

Tenga en cuenta que aquellos con capacitación y experiencia en bases de datos relacionales probablemente enfrentarán una curva de aprendizaje a medida que se adaptan a nuevas formas de modelar datos en bases de datos NoSQL.

¿Es JSON un NoSQL?
Una base de datos de documentos es un tipo de base de datos NoSQL que almacena datos en documentos JSON o BSON.
¿Qué lenguaje se emplea para consultar NoSQL?
base de datos NoSQL abarca una variedad de tipos e implementaciones. Como resultado, base de datos NoSQL se puede consultar empleando muchos lenguajes de consulta y API. MongoDB, la base de datos NoSQL más popular del mundo, se puede consultar empleando el MongoDB lenguaje de consulta (MQL).
¿NoSQL tiene esquema?
Las bases de datos NoSQL suelen tener esquemas flexibles. Tenga en cuenta que algunas bases de datos NoSQL, como MongoDB, también son compatibles con la validación de esquemas, por lo que los desarrolladores pueden bloquear sus esquemas tanto o tan poco como quieran cuando estén listos.

Artículo escrito por Lauren Schaefer, defensora del desarrollador de MongoDB.

Obtenga más información sobre las diferencias clave entre NoSQL y bases de datos SQL

Recursos NoSQL relacionados
Más información

Siga este tutorial con MongoDB Atlas

Experimente los beneficios de usar MongoDB, la principal base de datos NoSQL, en la cloud.
Empiece gratis