¿Bases de datos NoSQL o Bases de datos SQL? ¿Tiene sentido en “nuestro mundo” usar bases de datos NoSQL?

bases de datos NoSQLDesde hace ya sus muchos años las bases de datos relacionales han gobernado el mundo de los datos. Estas, como bien sabe y ha sufrido todo estudiante de ingeniería informática, normalización va normalización viene, se basan en el modelo relacional, aquel que el gran Codd creara en los 1970. Pero en los últimos años, una visión alternativa ha vuelto a ponerse de moda: las bases de datos NoSQL (no relacionales).
Digo que las bases de datos NoSQL han vuelto porque los antiguos del lugar recordarán que hace ya sus años había populares bases de datos no relacionales, como las del modelo CODASYL o las jerárquicas (mucho más antiguas que las ahora modernas MongoDB, CouchDB, BigTable, etc).
Y no puedo evitar poner aquí eleste comentario: parece que toda moda vuelve, siempre volvemos a poner de moda cosas de hace años con nuevos nombres, vuelven las bases de datos NoSQL, las no relacionales, vuelven los lenguajes funcionales, etc.
También aclarar en este punto que se utiliza, y yo también utilizaré, el término bases de datos NoSQL de manera poco rigurosa, cuando se dice bases de datos NoSQL realmente lo que se intenta decir es que son BBDD que no utilizan el modelo relacional (ojo, el modelo relacional, no que no usan el entidad-relación, como he leído por ahí, no mezclemos). Pero no hay que olvidar que SQL es sólo un lenguaje típicamente usado para tratar con el modelo relacional de las BBDD.

Los principales argumentos a favor de las bases de datos NoSQL, los argumentos anti modelo relacional

Supongo que no serán los únicos, y que en este tema, como en todo, no hay una única respuesta, pero el argumento que yo más escucho a favor de las bases de datos NoSQL, contra las bases de datos relacionales, es el siguiente: Los “join” de las bases de datos relacionales ralentizan el sistema. Aquí te dejo algunas referencias con este argumento: una de slashdot, un debate en stackoverflow, y alguna más.
Conviene decir que esto de ralentización aplicaría cuando millones de usuarios hacen búsquedas en tablas con millones de filas, como es el caso de Google o Amazon, que por ello desarrollaron sus propias bases de datos NoSQL.
Luego hay otras críticas, como la de la difícil correlación, los mapeos, del modelo relacional con estructuras de datos jerárquicas, como XML, o con diseños de clases complejos.

Los principales argumentos en contra de las bases de datos NoSQL

Para los defensores de las bases de datos relacionales, los SGBDs potentes, como Oracle, son lo suficientemente potentes para optimizar “joins” complejos. Y como prueba, los bancos realizan miles de consultas, con miles de usuarios, y sobreviven utilizando SQL.
Quien defiende el uso de bases de datos SQL, las relacionales de toda la vida, argumentan que “es raro es que vayas a necesitar bases de datos NoSQL, no vas a construir un Google”.
Luego hay otros argumentos, como que prácticamente toda estructura de datos (como las de los XML y demás) se puede mapear al sistema relacional. Hay quien se atreve a decir que el problema viene de no entender el SQL.

¿Qué opináis vosotros?

Por mi parte, supongo que como en todo, habrá veces que será mejor usar bases de datos NoSQL y en otras no. Eso sin quitar ese toque que últimamente tienen tantas cosas en ingeniería software y desarrollo de volver a poner de moda cosas que tienen ya sus años, como algo nuevo, pero con cambio de nombre.