¿NoSQL Database System alguna vez ganará la posición actual de RDBMS?

La “batalla” entre las bases de datos relacionales tradicionales y los sistemas de gestión de datos NoSQL es realmente la última en la guerra entre las soluciones “de propósito general” y “especializadas”.

Tomando una visión histórica a más largo plazo, hemos visto muchas encarnaciones de soluciones especializadas para los desafíos de gestión de datos. Los sistemas mainframe CICS / ISAM, la base de datos de objetos, los cubos OLAP y ahora NoSQL son cuatro generaciones de esta guerra. En cada caso, se ha demostrado que los sistemas relacionales de propósito general han sido capaces de abordar los problemas de una manera más rentable.

Puede leer más sobre este tema en particular aquí: http://www.parelastic.com/blog/n….

Los sistemas tradicionales de gestión de bases de datos tienen algunas ventajas y desventajas. Las ventajas han demostrado, a la larga, superar las desventajas y es por eso que las tecnologías han evolucionado y siguen siendo las soluciones de “propósito general” para los problemas de gestión de datos.

Las soluciones de propósito especial como NoSQL y las bases de datos de objetos y los cubos OLAP anteriores a ellas seguirán siendo relevantes. No hay duda de que NoSQL y otras soluciones de propósito especial satisfacen una necesidad real y resuelven un problema, pero la historia ha demostrado que serán superadas por soluciones de propósito general que incorporan los aprendizajes de estas soluciones de propósito especial.

NoSQL es una herramienta que resuelve una necesidad diferente que un RDBMS. Ambos administran los datos de alguna forma, por supuesto, pero usar cada uno de ellos correctamente es un ejercicio diferente.

El diseño de la base de datos relacional tiene el objetivo de minimizar la oportunidad de anomalías en los datos. Puede diseñar un modelo de datos basado en lo que sabe de los datos en sí. Esto admite una amplia variedad de consultas potenciales contra los datos.

El diseño de bases de datos no relacionales tiene el objetivo de optimizar los datos para atender un conjunto dado de consultas. No puede elegir el mejor modelo de datos hasta que sepa para qué consultas debe optimizar.

Estos son dos enfoques diferentes para el diseño de datos. Ambos son apropiados en diferentes circunstancias. No hay forma de que uno “gane” sobre el otro, ni deberían hacerlo. Deberíamos estar felices de tener más herramientas en nuestra caja de herramientas.

No son solo dos opciones, tampoco. Existen múltiples almacenes de datos especializados que se ajustan al término de marketing “NoSQL” a pesar de que cada uno es bastante diferente.

No esperes que una herramienta se ajuste a todas las necesidades. No usarías un martillo para girar un tornillo, ni usarías un destornillador para clavar un clavo.

En la actualidad no existe una solución de base de datos NoSQL que compita con cualquier solución de base de datos preexistente como MySQL o PostgreSQL. No se puede superar una base de datos relacional tradicional y si fuera tan fácil, ya se habría logrado si ese fuera el caso.

Hay algunos contendientes serios en el espacio y MongoDB diría que ha hecho la mayor tracción, tienen un equipo de ventas bastante agresivo que inscribe a las personas y también podría discutir una vez que las personas se comprometen con una solución NoSQL como MongoDB, se vuelve más barato para seguir usándolo y luego cambiar a otra cosa.

El único problema en este momento es que la mayoría de las soluciones NoSQL funcionan bajo la premisa de escribir ahora y nunca verificar. Por lo tanto, hay casos en los que podría estar escribiendo muy rápido en una base de datos NoSQL y tener algunas de esas escrituras que en realidad no lo hacen. El soporte para las transacciones es incompleto y, en la actualidad, nadie parece haber encontrado una solución por falta de tabla JOINS o soporte de consultas avanzadas.

Dudo seriamente que las soluciones NoSQL rivalicen con un RDBMS.

No lo creo. El alcance de NoSQL es muy limitado: no proporciona la flexibilidad de una base de datos relacional. NoSQL suele ser solo clave / valor. Esto podría ser suficiente para manejar algo simple como un sitio web, pero; intente usarlo para una empresa compleja donde se necesitan miles de relaciones para manejar el caso de negocios.
Las bases de datos relacionales siempre estarán disponibles. Por cierto, si necesita un estilo NoSQL / almacén de valores clave … pruebe el nuevo tipo de datos JSON que obtuvimos en PostgreSQL y pruebe hstore (módulo contrib): hace todo lo que necesita. Si desea escalar como loco, considere PL / proxy.

Si lo hacen, no creo que sea pronto. Por un par de razones:

1) Inercia Hay muchos sistemas arraigados basados ​​en bases de datos SQL que no van a ir a ninguna parte durante mucho tiempo. Cuando estaba aprendiendo los sistemas mainframe MVS en la universidad en la década de los 90, todos teníamos la opinión de ‘guau, ¿alguien todavía está usando esta basura honestamente?’ Avancemos hasta el día de hoy y todavía tengo una integración de datos con un banco importante para mantener donde estoy transfiriendo datos de un lado a otro en un servidor FTP que está en su mainframe MVS.

2) Casos de uso. Los sistemas NoSQL se han demostrado con éxito en lugares donde el modelo de datos es en su mayor parte bastante simple. Hay muchos casos de uso en los que hay mucho dinero involucrado que son mucho más complicados. He visto algunos modelos de datos muy complicados utilizados en áreas de atención médica que no se expresan de la manera en que la mayoría de las bases de datos NoSQL con las que he trabajado manejarían efectivamente de cualquier manera que sería una mejora discutible sobre una base de datos SQL. Ahora, una respuesta viable a eso es, ‘bueno, ese es un modelo de datos innecesariamente complicado’, con el que estaría completamente de acuerdo, pero luego me remito a la razón 1.

3) Software de moda. En este momento, SQL está viejo y roto, y NoSQL es la nueva moda. Probablemente tomará algunos años más para que los sistemas NoSQL sean una verdadera amenaza para los sistemas SQL y podrían pasar muchas cosas en el camino (por ejemplo, un proveedor importante de bases de datos podría comprar un popular NoSQL db y convertirlo en ‘mainstream’ y en el proceso arruinar completamente las cosas * tos * Oracle * tos *) que hacen que los dbs NoSQL pasen de moda.

Creo que ambos serán reemplazados por una tecnología superset.

Probablemente almacenes de columnas [con extensiones de gráficos] ya que son los más eficientes hasta ahora.