Hoy en día ya paso la furia por NoSQL, podemos decir que esta en un crecimiento constante. NoSQL es un movimiento que surgió dado requerimientos no funcionales de aplicaciones que no podian ser subsanados con bases relacionales. Las bases NoSQL sacrificaron requerimientos de integridad de datos por requerimientos de escalabilidad y performance.
NoSQL es una etiqueta en la cual entran todas las bases no relacionales. Existen gran cantidad de diferentes soluciones etiquetadas como NoSQL,
- Bases orientadas a grafos (Neo4j) orientada a busquedas en grafos.
- Bases documentales (MongoDb, Apache CouchDB) guardan estructuras complejas de datos; y pueden guardar diferentes estructuras.
- Bases Clave-Valor (Voldemort): se guardan los datos por clave-valor.
- Bases basadas en columnas (Apache Cassandra, BigTable, HBase)
- Y hasta bases orientadas a objeto como db4o son llamadas NoSQL.
Antes de utilizar un producto NoSQL debe tener en cuenta que cada producto fue hecho para una realidad diferente y para atacar un problema particular; es menos generico que las bases relacionales. Por lo tanto debe ser cuidadoso y analizar bien sus requerimientos no funcionales para dar justo en la tecla.
No hay que tener miedo de mezclar bases NoSQL con base de datos relacionales dado que en una misma aplicación podemos tener problemas diferentes y por lo tanto soluciones diferentes.
Las Bases NoSQL funcionan y han solucionado muchos problemas, es hora de probarlas y utilizarlas si se justifica.