Definición: ¿Qué significa NoSQL?
NoSQL es una clase de sistemas de administración de bases de datos (DBMS) que no siguen todas las reglas de un DBMS relacional y no pueden usar SQL tradicional para consultar datos. El término es algo engañoso cuando se interpreta como "Sin SQL", y la mayoría lo traduce como "No solo SQL", ya que este tipo de base de datos no es generalmente un reemplazo, sino una adición complementaria a los RDBMS y SQL.
Los sistemas basados en NoSQL se utilizan normalmente en bases de datos muy grandes, que son particularmente propensas a problemas de rendimiento causados por las limitaciones de SQL y el modelo relacional de bases de datos. Muchos piensan en NoSQL como la base de datos moderna preferida que se adapta a los requisitos de la Web. Algunas implementaciones notables de NoSQL son la base de datos Cassandra de Facebook, BigTable de Google y SimpleDB y Dynamo de Amazon.
Techinfo explica NoSQL
Una base de datos NoSQL no sigue necesariamente las reglas estrictas que rigen las transacciones en las bases de datos relacionales. Estas reglas violadas se conocen con el acrónimo ACID (Atomicity, Consistency, Integrity, Durability). Por ejemplo, las bases de datos NoSQL no utilizan estructuras de esquema fijas ni uniones SQL.
En un RDBMS tradicional, las operaciones básicas son lecturas y escrituras. Las lecturas se pueden escalar replicando datos en varias máquinas, lo que equilibra la carga de las solicitudes de lectura. Sin embargo, esto afecta las escrituras porque se debe mantener la coherencia de los datos. Las escrituras solo se pueden escalar dividiendo los datos. Esto afecta a las lecturas, ya que las combinaciones distribuidas suelen ser lentas y difíciles de implementar. Además, para mantener las propiedades de ACID, las bases de datos deben bloquear los datos. Esto significa que cuando un usuario abre un elemento de datos, ningún otro usuario debería poder realizar cambios en el mismo elemento. Esta restricción tiene serias implicaciones en el rendimiento.
Estas limitaciones no han sido un problema importante en el pasado. Sin embargo, con el advenimiento de las redes sociales y el big data, una serie de bases de datos masivas que surgieron se vieron obligadas a servir a las decenas, o incluso cientos, de millones de clientes en todo el mundo con varios miles de lecturas y escrituras por minuto. Los RDBMS tradicionales simplemente no satisfacen esta necesidad porque solo pueden "escalar" o aumentar los recursos en un servidor central. Una implementación NoSQL, por otro lado, puede "escalar horizontalmente" o distribuir la carga de la base de datos en más servidores.
Las bases de datos NoSQL se centran en clases particulares de problemas, desde ser más flexibles sobre los datos almacenados (almacenes de documentos), hasta casos de uso específicos, como relaciones (bases de datos de gráficos) y agregación de datos (bases de datos de columnas) o simplemente simplificar la idea de una base de datos hasta algo que almacena un valor (tiendas clave / valor).
Las bases de datos NoSQL ofrecen las ventajas de una rápida escalabilidad, un rendimiento mucho mejor y una estructura más simple en comparación con los RDBMS. Sin embargo, también sufren por ser una tecnología relativamente nueva y no probada, y no pueden proporcionar la rica funcionalidad analítica y de informes de RDBMS.
Esta definición fue escrita en el contexto de Base de datos