Si tus datos son «altamente relacionales», entonces puedo interesarte en una… uhm… base de datos relacional? Tiene soporte de primera clase para eso, y es accesible a través de una interfaz familiar similar a SQL (es decir, SQL).
Si necesita escalabilidad debido a muchos usuarios, y no debido a informes extremadamente grandes o complejos, sólo tiene que añadir más réplicas de sólo lectura y ya está. El almacenamiento en caché y las actualizaciones programadas son extremadamente útiles (a veces los datos no necesitan ser «tiempo real» – una actualización nocturna es a veces suficiente; y la consulta de los mismos datos con 1 minuto de diferencia prácticamente nunca es útil).
Si usted tiene tantos datos que ya no caben en cualquier lugar (como, petabytes), entonces tal vez NoSQL puede ayudar. No es un problema que no tengas JOINs (a menos que tengas que soportar informes ad-hoc) porque tus datos pueden ser desnormalizados en el camino (por cierto, echa un vistazo a las vistas materializadas – esto puede aumentar masivamente tu rendimiento de lectura en SQL normal, si el espacio de almacenamiento no es un problema).
Pero si tu problema de rendimiento se debe a consultas complejas (donde el proceso de «materialización» en sí mismo toma demasiado tiempo), entonces tal vez echa un vistazo a las cosas de «Big Data». Hay motores SQL que se ejecutan en Hadoop, por ejemplo Vertica (y muchos otros).