Las bases de datos NoSQL renuncian deliberadamente a la estructura de tablas fija y compartida del modelo relacional, y a cambio obtienen un modelo de datos elegido específicamente para ajustarse a un tipo de problema concreto. Las bases de datos documentales almacenan cada registro como un documento flexible y autocontenido, los almacenes clave-valor recuperan datos únicamente mediante una clave de búsqueda, y las bases de datos de grafos representan las relaciones entre registros como lo principal que realmente se almacena, en lugar de tratar esas relaciones como algo secundario añadido sobre tablas separadas.
Un esquema fijo y compartido se convierte en una limitación real para datos irregulares o de búsqueda sencilla
El esquema fijo de tablas de una base de datos relacional exige que todos los registros del mismo tipo compartan exactamente la misma estructura, lo cual se convierte en una limitación real y práctica cuando los datos son naturalmente irregulares —un catálogo de productos en el que distintos tipos de producto tienen realmente atributos diferentes, por ejemplo— o cuando el objetivo principal de una aplicación es una búsqueda extremadamente rápida y sencilla, en lugar de consultas relacionales complejas que abarcan muchas tablas separadas a la vez.
Existen tres modelos NoSQL realmente distintos porque resuelven tres problemas realmente distintos
Las bases de datos documentales se adaptan bien a registros irregulares y autocontenidos, almacenando cada uno como un documento flexible sin forzar a todos los registros a tener una forma compartida idéntica. Los almacenes clave-valor se adaptan a búsquedas extremadamente rápidas y sencillas, como una caché de sesión, donde nunca hace falta nada más complejo que recuperar un valor mediante una clave exacta. Las bases de datos de grafos se adaptan a datos en los que lo que realmente hay que consultar de forma eficiente son las relaciones entre registros, y no solo los registros en sí, siendo las conexiones de una red social el ejemplo común más claro.
Lo que todavía no tenemos claro
Que las bases de datos NoSQL cambien la estructura compartida del modelo relacional por un modelo ajustado a un problema concreto es ingeniería de bases de datos bien establecida y poco controvertida. Lo que sí es una disyuntiva de ingeniería genuinamente viva y activamente debatida es elegir el modelo NoSQL adecuado —o, en su lugar, una base de datos relacional— para una aplicación real concreta, ya que una base de datos documental puede acabar necesitando reimplementar de forma incómoda uniones de estilo relacional en el código de la aplicación a medida que los datos de esta se vuelven realmente más interconectados con el tiempo, y predecir de antemano si eso ocurrirá en una aplicación nueva concreta sigue siendo una decisión real e imperfecta, y no algo que una regla fija pueda zanjar.
Esto forma parte de Modelos NoSQL (Documental, Clave-Valor, Grafos), uno de los siete temas de Bases de Datos, uno de los siete ámbitos de Informática, una de las diecisiete asignaturas sobre las que la aplicación puede ponerte a prueba.