Ilustración 1. Tomado de “https://www.ithinkupc.com/es/blog/sql-nosql-newsql-que-son-historia-y-eleccion”
El mayor porcentaje de información con el que cuentan las organizaciones no se encuentra plenamente ordenado en base de datos; sino que se encuentra en múltiples formatos como documentos, imágenes, audio, video y demás. Los motores relacionales no son lo suficientemente versátiles para gestionar fácilmente estos tipos de formatos de información.
¿Se quedan cortas la base de datos relacionales?
Las bases de datos relacionales están diseñadas para garantizar la consistencia de la información. Estas incluyen mecanismos de redundancia, como clústeres de bases de datos, que garanticen la disponibilidad. Por otra parte, cuando se trata de escalabilidad, en general, soportan escalabilidad vertical y que, por supuesto, está limitada por la capacidad de procesamiento de los servidores donde funcionan. Sin embargo, la escalabilidad horizontal se ve limitada y difícilmente llega en algunos motores relacionales a superar la centena.
Y, ¿qué dice el Teorema CAP?
El Teorema CAP indica que un sistema de cómputo distribuido solo puede satisfacer dos de los siguientes tres atributos: Consistencia (Consistency), disponibilidad (Avalibility) y tolerancia al particionado (Partition Tolerance). Los motores de base de datos relacionales cumplen con los atributos de consistencia y disponibilidad y, en consecuencia, tiene limitada la tolerancia al particionado. Dicho particionado es una estrategia que permite la escalabilidad horizontal en los motores NoSQL.
Entonces, ¿los motores NoSQL a qué renuncian?
Los motores NoSQL particionan la información en diferentes nodos y la replican de tal forma que logran ser tolerantes al particionado. Esto quiere decir que tienen que renunciar a garantizar consistencia o a tener una alta disponibilidad. Diferentes motores NoSQL han tomado decisiones diferentes al respecto, en particular Mongo y Paxos se quedan con CP (Capacidad y Tolerancia la Participado), mientras que motores como Cassandra y CouchDB optan por AP (Disponibilidad y Tolerancia al Particionado). En general, se trata de ofrecer en parte aquel atributo al que se renuncia y permiten el surgimiento de atributos como la consistencia eventual.
En el siguiente diagrama se ilustra esta situación:
Ilustración 2. Tomado de “https://medium.com/@Gildder/teorema-cap-e99d66fde6a0”
¿Qué tanto pueden escalar los motores NoSQL?
Los motores NoSQL pueden escalar a miles de nodos logrando una capacidad de almacenamiento y procesamiento muy por encima de la que se puede observar en los motores relacionales. La información se puede replicar en nodos alrededor del mundo para garantizar que, en caso de un desastre, el sistema siga operando.
¿Quién usa los motores NoSQL?
Todos los sectores de la industria utilizan motores NoSQL. Sin embargo, la gran pregunta es ¿qué sectores y por cuánto porcentaje es utilizado? La siguiente gráfica nos muestra.
Ilustración 3. tomado de “https://enlyft.com/tech/products/mongodb”
El desarrollo de la nube y la adopción de ésta por parte de las diferentes industrias se convierte en un aliado para la adopción de bases de datos NoSQL. Igualmente, las necesidades de escalabilidad en el procesamiento de datos que tienen las empresas hoy en día hacen que el uso de estos motores sea necesario. En definitiva, los motores NoSQL están aquí para quedarse.