NoSQL significa “not only SQL” y es así como hay que entender el modelo de bases de datos: no se trata del elemento antagónico, sino de un enriquecimiento y complemento útil de las tradicionales bases de datos SQL relacionales. En este contexto, las bases de datos NoSQL traspasan los límites de los sistemas relacionales y, en su lugar, usan modelos alternativos de bases de datos. No obstante, esto no significa que no se van a usar sistemas SQL. También existen numerosas variantes mixtas, en las que se usan ambas soluciones y que también se engloban en el hiperónimo NoSQL.
Hasta los últimos años de la primera década del 2000, las bases de datos SQL eran el no va más del desarrollo de aplicaciones. Otros enfoques, como las bases de datos orientadas a objetos, nunca alcanzaron esa posición de peso, debido a la compleja implementación que conllevaban. El desarrollo de las bases de datos NoSQL, que surgió en respuesta a las limitaciones y los problemas de las bases de datos relacionales, supuso la creación de una auténtica alternativa, ya que, en muchas ocasiones, las bases de datos relacionales ya no son capaces de hacer frente a las exigencias del desarrollo moderno de aplicaciones. En cambio, los sistemas NoSQL usan novedades, como los servidores en la nube, para ofrecer un modelo de datos alternativo en el que se pueden almacenar y procesar muchos datos distintos. Las estructuras de datos resultantes son potentes y flexibles, y cuentan con la capacidad de reaccionar rápidamente a distintas exigencias.
A menudo, los sistemas NoSQL se designan como soportes de datos estructurados, una denominación que hace hincapié en la principal diferencia con respecto a las bases de datos SQL relacionales: a diferencia de estas últimas, las bases de datos NoSQL no usan rígidos esquemas de tablas en los que hay que definir los datos antes de su almacenamiento. Apuestan por métodos más flexibles que permiten la integración sencilla de nuevos juegos de datos que se actualizan de forma continua en la aplicación. Las soluciones NoSQL también son adecuadas para procesar datos no estructurados o desconocidos, una tarea prácticamente imposible con una base de datos relacional.