Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad-relación. Mientras que las tradicionales bases de datos relacionales basan su funcionamiento en tablas, joins y transacciones. Las bases de datos NoSQL no imponen una estructura de datos en forma de tablas y relaciones entre ellas sino que proveen un esquema mucho más flexible.
Las bases NoSQL son adecuadas para una escalabilidad realmente enorme, y tienden a utilizar modelos de consistencia relajados, no garantizando la consistencia de los datos, con el fin de lograr una mayor performance y disponibilidad. A esto se agrega el inconveniente de que no tienen un lenguaje de consulta declarativo, por lo que requiere de mayor programación para la manipulación de los datos.
En general se pueden mencionar Sistemas NoSQL clasificados en cuatro categorías:
• Framework Map-Reduce (usado por aplicaciones que hacen procesamiento analítico online - OLAP), Por ejemplo Hadoop.
• Almacenamiento Clave-Valor (sistemas que tienden al procesamiento de transacciones online - OLTP), Por ejemplo: Google BigTable, Amazon Dynamo, Cassandra, Voldemort, HBase.
• Almacenamiento de Documentos Por ejemplo: CouchDB, MongoDDB, SimpleDB
• Sistemas de base de datos Gráficas.Por ejemplo: Neo4j, FlockDB, Pregel.
Con respecto al almacenamiento en Columnas que en general son tratados como Sistemas NoSQL, no son más que una forma de organización de un sistema de base de datos relacional. Sin embargo por la alta performance para cierto tipo de aplicaciones son considerados como del tipo almacenamiento Clave-Valor.
En resumen, para manipular enormes cantidades de información de manera muy rápida los Sistemas NoSQL trabajan mejor que los sistemas de base de datos tradicionales, sin embargo para muchísimas aplicaciones la solución está en las bases de datos tradicionales.Eje: Bases de Datos y Minería de DatosRed de Universidades con Carreras en Informática (RedUNCI