Change Surfers

Un vistazo directo a NoSql

NoSql es un extenso grupo de sistemas de gestión de base de datos que difieren del modelo clásico de bases de datos relacionales, a la hora de almacenar nuestros datos. Con la irrupción de la transformación digital, ha aumentado sustancialmente la generación de datos, pero, ¿son realmente tan útiles como se cree?

Con la llegada de internet, los servicios en la nube y las redes sociales de millones de usuarios, han hecho que la recopilación de datos sea cada vez mayor, y datos no precisamente estructurados. Nuestra información personal, las relaciones de amistad, las coordenadas de geolocalización, vídeos e imágenes generados por nosotros mismos u otros, incluso el número de veces que nos conectamos a un servicio online, son algunos ejemplos de la cantidad de datos que se pueden generar en un día, en unas horas o incluso en minutos. Además, no solo somos quienes los generamos, sino que también somos quienes los demandamos continuamente. Las tradicionales bases de datos SQL no están preparadas para tratar ni el tipo, ni la cantidad de datos que se manejan en Internet. Esto significa que la escalabilidad y el rendimiento, se han convertido en auténticos retos para las bases de datos relacionales clásicas, porque no llegan a solucionarlos. Ya no es suficiente, económica y logísticamente hablando, actualizar, ampliar y mejorar el hardware existente para mejorar el rendimiento, sino que se ha tenido que optar por crear un nuevo tipo de bases de datos, las conocidas como NoSql. 

Llamadas así por el término inglés ‘Not Only Sql’, nacieron, en gran medida, gracias a las grandes compañías como Google, Amazon o Facebook, y a esa necesidad de manejar y tratar grandes volúmenes de datos. 

Son una clase de sistemas de gestión de datos (estructurados, semi estructurados, no estructurados y datos polifórmicos) diferentes al modelo clásico de la base de datos relacionadas –la información es representada a modo de filas y columnas dentro de tablas– que conocíamos. Sus principales ventajas son que no necesitan tantos recursos, pueden ejecutarse en servidores de menos prestaciones, y tienen escalabilidad horizontal: para mejorar el rendimiento, tan solo debemos añadir más nodos. Pueden manejar gran cantidad de datos y no generan cuellos de botella.

Además, su popularidad se incrementó debido a que la adquisición exponencial y continua de esos datos, debía ser prácticamente en tiempo real, y ampliar o cambiar las tablas ya definidas era muy complejo. Si tenemos una tabla definida con ‘IdUsuario, nombre, teléfono’, ¿qué ocurriría si alguien solo rellena con el nombre o quiere meter varios teléfonos? A parte de tener que cambiar completamente el esquema con el que fueron diseñadas, se debía tener en cuenta el resto de relaciones.

Tipologías de bases de datos NoSQL

Es cierto que dependiendo de la forma en la que se almacene la información, nos podemos encontrar con diferentes tipos de bases de datos NoSQL.

Clave/Valor: son el modelo más popular y básico de las NoSql. Están diseñadas para almacenar información pesada y en grandes cantidades. Cada elemento está identificado por una clave única lo que permite la recuperación de la información de forma muy rápida. 

Orientada a documentos: este modelo extrae y almacena la información como clave/valor, donde el valor es almacenado como un documento. Estos documentos son guardados en formatos JSON o XML. Son las NoSql más versátiles y permiten realizar búsquedas sobre el contenido del documento ya que la BD entiende el valor almacenado. 

Basada en columnas: los datos se almacenan en familias de columnas en lugar de en filas, como se hace tradicionalmente. Cada columna es manejada individualmente, puede ser de diferente tamaño, y sus valores son almacenados contiguamente. Este modelo se adecua mejor a las operaciones analíticas sobre grandes conjuntos de datos. 

De Grafos: modelo para almacenar datos que se puedan representar adecuadamente mediante grafos. Almacena entidades (nodos), sus propiedades (información) y las relaciones de esas entidades. Cada nodo y cada relación tienen un identificador único. Son especialmente útiles en modelos con muchas relaciones (como las redes sociales).

Estos son algunos de los modelos más utilizados y cada uno tiene sus propias características, ventajas y desventajas. 

Con lo que hemos explicado hasta ahora, no significa que las bases de datos tradicionales vayan a desaparecer, ni que las bases de datos NoSql sean el futuro escrito. Ambas conviven y tienen diferentes usos en el mundo actual. El día de mañana, bases de datos nuevas, y totalmente diferentes, serán creadas para usos específicos. Tan solo debemos tener claro qué  datos son los que vamos a manejar para poder elegir correctamente qué sistema de base de datos vamos a utilizar.