¿Es imprescindible la atomicidad, integridad, concurrencia en la mayoría de proyectos informáticos? No estamos hablando obviamente de aplicaciones del ámbito financiero, por ejemplo. ¿Pero en el resto?
Los que peinamos canas recordamos que durante la primera burbuja de internet se hicieron miles de proyectos en un sistema base de datos como MYSQL que en aquellos tiempo no soportaba la integridad de datos ni la atomicidad. Ya en aquella época era obvio que estos requisitos no eran tan necesarios en muchos de los proyectos que se realizaron y el éxito que están teniendo las bases de datos NoSQL(Not only SQL) indica claramente que en la actualidad tampoco.
¿Por qué tienen éxito estas soluciones? Porque han surgido para adaptarse a las necesidades de los proyectos actuales. No tienen esquemas fijos y permiten su modificación en caliente, son fáciles de utilizar en clusters de balanceo de carga facilitando la escalabilidad horizontal lo que es prácticamente imprescindible en la actualidad en los proyectos que aspiran a tener un gran tráfico.
Por hacer una analogía las bases de datos NoSQL son a las bases de datos convencionales lo que las metodologías ágiles de desarrollo como SCRUM a las metodologías basadas en Métricas etc. Se han ido adaptando a la realidad.
Aunque no vamos a profundizar ahora porque nos vamos a centrar en MongoDB comentar que existen varios tipos de bases de datos NoSQL que tratan de resolver diferentes problemáticas. Éstas se categorizan de la siguiente forma(En otros posts comentaremos las diferencias entre ellas):
- Almacenes de Clave-Valor: donde destacan HBase, Hypertable, Cassandra, Riak
- Almacenes de documentos: CouchDB, MongoDB
- Grafos: Neo4j
MongoDB ya lleva años instaurada en muchos proyectos punteros en el mundo y de hecho ha escalado recientemente hasta el 5 puesto entre los sistemas de gestión de datos más empleados http://db-engines.com/en/ranking. ¿Y por qué su empleo es casi testimonial en nuestro país? En mi opinión, porque somos mucho más conservadores que nuestros vecinos tanto en el ámbito empresarial y tristemente también en el ámbito de la educación universitaria.
En los siguientes posts iremos comentando las particularidades de MongoDB y explicaremos en qué proyectos es aconsejable utilizarlo.