Descubre todo lo que necesitas saber sobre las bases de datos NoSQL
Las metodologías de desarrollo ágiles y las aplicaciones web 2.0 han acelerado el uso de las bases de datos NoSQL que se adaptan mejor a sus requerimientos de volumen, variedad y velocidad.
Introducción
La forma en la que las aplicaciones web deben manejar los datos ha cambiado mucho durante la última década. Cada vez se necesita guardar mayor volumen de datos nuevos, en constante evolución y que más usuarios accedan a ellos al mismo tiempo. La escalabilidad y el rendimiento se han convertido en un reto para los sistemas de bases de datos.
Las metodologías de desarrollo también han cambiado. Ya no se usan aquellos ciclos de desarrollo en cascada que duraban 12 o 18 meses; ahora se trabaja en equipos pequeños, con metodologías ágiles, realizando Sprint con iteraciones rápidas con el objetivo de generar funcionalidad cada una o dos semanas. Esto lleva a una evolución constante del código y una ampliación o redefinición permanente de los esquemas de datos.
Los sistemas tradicionales de almacenamiento relacional requieren definir su esquema antes de añadir los datos; cualquier desarrollo de una nueva característica en una aplicación que los use, implica con frecuencia un cambio en este esquema, una interrupción del servicio y una migración de los datos existentes al nuevo esquema.
Bases de datos NoSQL
La utilización de los sistemas de bases de datos NoSQL se aceleró con la aparición de la nueva generación de sitios web donde las personas colaboran y comparten información en línea. En ese momento, aparecieron los primeros problemas para gestionar la información que se almacenaba en bases de datos relacionales.
Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad-relación. No usan tablas, registros o campos para almacenar los datos, si no otros formatos como clave-valor, mapeo de columnas, documentos o grafos.
Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad-relación
Tipos de bases de datos NoSQL
Dependiendo de la forma en la que se almacena la información, podemos encontrar distintas bases de datos NoSQL. Estas son las más utilizadas:
- Almacenes clave-valor. Es el caso más simple de bases de datos NoSQL; cada elemento se almacena como un nombre de atributo o clave y su valor.
- Bases de datos de documentos. En ellas se almacena la información como un documento, generalmente en formato JSON o XML y se usa una clave única para cada registro. Los documentos pueden contener muchos pares clave-valor distintos, pares de clave-matriz o incluso documentos anidados.
- Almacenes de grafos. La información se representa como nodos de un grafo y sus relaciones son las aristas de este. Se usan para guardar información de redes de datos, como las conexiones sociales.
- Bases de datos orientadas a columnas. En este tipo de almacenes cada entrada es una columna, por lo que, los datos de cada entrada están dispuestos uno debajo del otro. Se usan sobre todo cuando hay que analizar grandes cantidades de datos.
Ventajas e inconvenientes de NoSQL
Las principales ventajas de las bases de datos no relacionales son las siguientes:
- Son bases de datos más flexibles que permiten agregar información o hacer cambios en el sistema sin necesidad de agregar configuraciones extra, con lo que se adaptan mejor a las exigencias de entrega rápida y continuada de servicios.
- Requieren poca computación, con lo que se pueden instalar en máquinas con pocos recursos y, por tanto, con un coste más reducido.
- Soportan un crecimiento horizontal, es decir, toleran arquitecturas distribuidas permitiendo la instalación de nuevos nodos operativos que balancean la carga de trabajo. Con esto, la ampliación de la capacidad de una base de datos requiere muy poco tiempo.
- Permiten manejar gran cantidad de datos y guardar datos de cualquier tipo, en cualquier momento, sin requerir una validación.
Sin embargo, presentan los siguientes inconvenientes al compararlas con las de tipo relacional:
- No cumplen con las propiedades de atomicidad, consistencia, integridad y durabilidad (ACID).
- Puesto que la tecnología NoSQL es bastante nueva, las operaciones pueden ser limitadas, siendo necesario invertir más tiempo en los desarrollos.
- No hay un estándar definido entre los diferentes motores que ofrecen este servicio y, con ello, cambia el lenguaje que se tiene que usar dependiendo de la solución NoSQL elegida.
- La mayoría de las bases de datos NoSQL no contienen una interfaz gráfica para su administración, suelen tener acceso por consola, con lo que se requiere de un conocimiento amplio de las instrucciones necesarias para poder mantenerlas.
Conclusiones
Las bases de datos NoSQL no sustituyen a las relacionales. Se debe evaluar para cada aplicación qué solución de base de datos es más adecuada. Así podremos elegir una base de datos NoSQL cuando:
- El volumen de los datos a almacenar crece muy rápidamente en momentos puntuales.
- La escalabilidad que requiere una solución de base de datos relacional no es viable a nivel técnico o de costes en el proyecto.
- Cuando en cada inserción de datos la información que se almacena puede tener campos diferentes, es decir, que el esquema de la información no es homogéneo.
Sin embargo, la solución con bases de datos relacionales sigue siendo la más adecuada cuando la integridad, validez y consistencia de los datos son clave dentro de la organización.