Pues sí y no.
La mayoría de los RDBMS tradicionales, como Oracle, SQL Server, MySql, Postgres, y otros, están diseñados para ser servidores independientes, únicos y, como tales, no tienen mecanismos internos que brinden funcionalidad de fragmentación de forma predeterminada.
Eso no significa que el fragmentación a nivel de aplicación sea imposible con ellos y, de hecho, muchos sistemas distribuidos grandes han hecho exactamente eso: compañías como Quora o Facebook. Por lo tanto, puede escalar horizontalmente el almacenamiento y la carga en múltiples RDBMS, simplemente no sale de la caja y el rendimiento es bueno. No puede hacer uniones a través de diferentes “fragmentos” o servidores, pero tampoco puede usar una base de datos NoSql, naturalmente fragmentada.
- ¿Cómo mejora BWT la compresión?
- ¿La velocidad de ejecución de un algoritmo que, al ejecutarse, hace que el sistema físico en ejecución tenga experiencia subjetiva, hace alguna diferencia en la naturaleza de esta experiencia subjetiva?
- ¿Qué precauciones podemos tomar para limitar el poder de la inteligencia artificial?
- ¿Cómo se sienten los estudiantes de informática cuando trabajas por primera vez en el mundo real?
- Cómo insertar, actualizar y eliminar valores en filas con restricciones de clave externa en bases de datos relacionales
Sin embargo, en realidad hay RDBMS que admiten el fragmentación de forma natural, hasta cierto punto. Piénselo: SQL es básicamente una interfaz sobre un optimizador de consultas, un ejecutor de consultas y un motor de almacenamiento. No hay nada que impida que una base de datos SQL implemente particiones internas.
Dos ejemplos que me vienen a la mente son: Amazon Redshift y Microsoft APS Parallel Data Warehouse. El primero lo uso bastante y el segundo en el que realmente trabajé. Ambos sistemas le permitirán definir claves de partición que utilizarán para distribuir datos entre los llamados nodos de cálculo. Las consultas SQL se ejecutan agrupando los datos distribuidos según sea necesario y agregando resultados de ejecución desde múltiples nodos. Ahora, estos sistemas no son infinitamente escalables: vienen en tamaños de clúster predefinidos, pero los datos están, de hecho, particionados y no hay nada que impida que un sistema relacional se distribuya por completo. De hecho, tenemos uno: la llave de Google.